using Microsoft.EntityFrameworkCore; using MotoresArgentinosV2.Core.DTOs; using MotoresArgentinosV2.Core.Entities; namespace MotoresArgentinosV2.Infrastructure.Data; /// /// Contexto de Entity Framework unificado para la base de datos 'eldia' (Legacy) /// Contiene las tablas de avisos web, operaciones, medios de pago y lógica de usuarios legacy. /// public class EldiaDbContext : DbContext { public EldiaDbContext(DbContextOptions options) : base(options) { } // Tablas de la base 'autos' (ahora en eldia) public DbSet Operaciones { get; set; } public DbSet MediosDePago { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); // --- Configuración de tablas ex-Autos --- modelBuilder.Entity(entity => { entity.ToTable("operaciones"); entity.HasKey(e => e.Id); entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Fecha).HasColumnName("fecha"); entity.Property(e => e.Motivo).HasColumnName("motivo").HasMaxLength(50); entity.Property(e => e.Moneda).HasColumnName("moneda").HasMaxLength(50); entity.Property(e => e.Direccionentrega).HasColumnName("direccionentrega").HasMaxLength(50); entity.Property(e => e.Validaciondomicilio).HasColumnName("validaciondomicilio").HasMaxLength(50); entity.Property(e => e.Codigopedido).HasColumnName("codigopedido").HasMaxLength(50); entity.Property(e => e.Nombreentrega).HasColumnName("nombreentrega").HasMaxLength(50); entity.Property(e => e.Fechahora).HasColumnName("fechahora").HasMaxLength(50); entity.Property(e => e.Telefonocomprador).HasColumnName("telefonocomprador").HasMaxLength(50); entity.Property(e => e.Barrioentrega).HasColumnName("barrioentrega").HasMaxLength(50); entity.Property(e => e.Codautorizacion).HasColumnName("codautorizacion").HasMaxLength(50); entity.Property(e => e.Paisentrega).HasColumnName("paisentrega").HasMaxLength(50); entity.Property(e => e.Cuotas).HasColumnName("cuotas").HasMaxLength(50); entity.Property(e => e.Validafechanac).HasColumnName("validafechanac").HasMaxLength(50); entity.Property(e => e.Validanrodoc).HasColumnName("validanrodoc").HasMaxLength(50); entity.Property(e => e.Titular).HasColumnName("titular").HasMaxLength(50); entity.Property(e => e.Pedido).HasColumnName("pedido").HasMaxLength(50); entity.Property(e => e.Zipentrega).HasColumnName("zipentrega").HasMaxLength(50); entity.Property(e => e.Monto).HasColumnName("monto").HasMaxLength(50); entity.Property(e => e.Tarjeta).HasColumnName("tarjeta").HasMaxLength(50); entity.Property(e => e.Fechaentrega).HasColumnName("fechaentrega").HasMaxLength(50); entity.Property(e => e.Emailcomprador).HasColumnName("emailcomprador").HasMaxLength(50); entity.Property(e => e.Validanropuerta).HasColumnName("validanropuerta").HasMaxLength(50); entity.Property(e => e.Ciudadentrega).HasColumnName("ciudadentrega").HasMaxLength(50); entity.Property(e => e.Validatipodoc).HasColumnName("validatipodoc").HasMaxLength(50); entity.Property(e => e.Noperacion).HasColumnName("noperacion").HasMaxLength(50); entity.Property(e => e.Estadoentrega).HasColumnName("estadoentrega").HasMaxLength(50); entity.Property(e => e.Resultado).HasColumnName("resultado").HasMaxLength(50); entity.Property(e => e.Mensajeentrega).HasColumnName("mensajeentrega").HasMaxLength(50); entity.Property(e => e.Precioneto).HasColumnName("precioneto"); }); modelBuilder.Entity(entity => { entity.ToTable("mediodepago"); entity.HasKey(e => e.Id); entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Mediodepago).HasColumnName("mediodepago").HasMaxLength(20); }); // --- Configuración de DTOs Keyless de ex-Internet --- modelBuilder.Entity(e => { e.HasNoKey(); e.ToView(null); e.Property(p => p.ImporteSiniva).HasColumnType("decimal(18,2)"); e.Property(p => p.ImporteTotsiniva).HasColumnType("decimal(18,2)"); e.Property(p => p.PorcentajeCombinado).HasColumnType("decimal(18,2)"); e.Property(p => p.Centimetros).HasColumnType("decimal(18,2)"); }); } }