< Summary - Syki

Information
Class: Syki.Back.Database.Identity.SykiRoleDbConfig
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Database/Identity/SykiRoleDbConfig.cs
Tag: 56_26538939494
Line coverage
100%
Covered lines: 18
Uncovered lines: 0
Coverable lines: 18
Total lines: 37
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
Configure(...)100%11100%

File(s)

/home/runner/work/syki/syki/Back/Database/Identity/SykiRoleDbConfig.cs

#LineLine coverage
 1using Syki.Back.Domain.Identity;
 2using Syki.Back.Domain.Institutions;
 3
 4namespace Syki.Back.Database.Identity;
 5
 6public class SykiRoleDbConfig : IEntityTypeConfiguration<SykiRole>
 7{
 8    public void Configure(EntityTypeBuilder<SykiRole> entity)
 9    {
 410        entity.ToTable("roles", DbSchemas.Syki);
 11
 412        entity.HasKey(e => e.Id);
 13
 414        entity.Property(e => e.Description)
 415            .IsRequired();
 16
 417        entity.Property(e => e.Permissions)
 418            .HasColumnType("integer[]")
 419            .IsRequired();
 20
 421        entity.HasOne<Institution>()
 422            .WithMany()
 423            .HasPrincipalKey(u => u.Id)
 424            .HasForeignKey(e => e.OwnerId);
 25
 26        // Remove o índice único padrão do ASP.NET Identity
 427        entity.HasIndex(e => e.NormalizedName)
 428            .IsUnique(false)
 429            .HasDatabaseName("role_name_index");
 30
 31        // Índice único composto: permite mesmo nome em orgs diferentes
 32        // AreNullsDistinct(false) gera NULLS NOT DISTINCT no PostgreSQL 15+
 433        entity.HasIndex(e => new { e.OwnerId, e.NormalizedName })
 434            .IsUnique()
 435            .AreNullsDistinct(false);
 436    }
 37}