< Summary

Information
Class: Repository.Mapping.DespesaMap
Assembly: Despesas.Repository
File(s): /src/Despesas.Repository/Mapping/DespesaMap.cs
Line coverage
100%
Covered lines: 22
Uncovered lines: 0
Coverable lines: 22
Total lines: 39
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)

/src/Despesas.Repository/Mapping/DespesaMap.cs

#LineLine coverage
 1using Domain.Entities;
 2using Microsoft.EntityFrameworkCore;
 3using Microsoft.EntityFrameworkCore.Metadata.Builders;
 4
 5namespace Repository.Mapping;
 6public class DespesaMap : IEntityTypeConfiguration<Despesa>
 7{
 8    public void Configure(EntityTypeBuilder<Despesa> builder)
 39    {
 310        builder.ToTable(nameof(Despesa));
 311        builder.Property(d => d.Id).HasColumnType("varchar(36)")
 312            .HasConversion(v => v.ToString(), v => new Guid(v))
 313            .IsRequired();
 314        builder.HasKey(d => d.Id);
 315        builder.Property(d => d.Descricao).IsRequired(false).HasMaxLength(100);
 316        builder.Property(d => d.UsuarioId).HasColumnType("varchar(36)")
 317            .HasConversion(v => v.ToString(), v => new Guid(v))
 318            .IsRequired();
 319        builder.Property(d => d.CategoriaId).HasColumnType("varchar(36)")
 320            .HasConversion(v => v.ToString(), v => new Guid(v))
 321            .IsRequired();
 22
 23        // MySqlServer
 324        builder.Property(m => m.Data).HasColumnType("datetime").HasDefaultValueSql<DateTime>("CURRENT_TIMESTAMP").IsRequ
 325        builder.Property(m => m.DataVencimento).HasColumnType("datetime").HasDefaultValueSql(null);
 26
 27        // MsSqlServer
 28        //builder.Property(d => d.Data).HasColumnType("datetime").HasDefaultValueSql<DateTime>("GetDate()").IsRequired()
 29        //builder.Property(d => d.DataVencimento).HasColumnType("datetime").HasDefaultValueSql(null);
 30
 331        builder.HasOne(d => d.Categoria)   // Despesa -> Categoria
 332               .WithMany(c => c.Despesas)  // Categoria -> Despesas
 333               .HasForeignKey(d => d.CategoriaId)
 334               .OnDelete(DeleteBehavior.Restrict);
 35
 336        builder.Property(d => d.Valor).HasColumnType("decimal(10, 2)").HasDefaultValue(0);
 337        builder.HasOne(d => d.Usuario).WithMany().HasForeignKey(d => d.UsuarioId).OnDelete(DeleteBehavior.NoAction);
 338    }
 39}