Files
Final_Das/Modelo/Context.cs
2024-08-14 08:42:34 -03:00

92 lines
3.2 KiB
C#

using Entidades;
using Microsoft.EntityFrameworkCore;
namespace Modelo;
public class Context : Microsoft.EntityFrameworkCore.DbContext
{
public DbSet<Categoria> Categorias { get; set; }
public DbSet<Cliente> Clientes { get; set; }
public DbSet<Factura> Facturas { get; set; }
public DbSet<Lote> Lotes { get; set; }
public DbSet<DetalleFactura> DetalleFacturas { get; set; }
public DbSet<DetallePresupuesto> DetallePresupuestos { get; set; }
public DbSet<DetalleOrdenDeCompra> DetalleOrdenDeCompras { get; set; }
public DbSet<OrdenDeCompra> OrdenDeCompras { get; set; }
public DbSet<Presupuesto> Presupuestos { get; set; }
public DbSet<ProductoPercedero> ProductoPercederos { get; set; }
public DbSet<ProductoNoPercedero> ProductoNoPercederos { get; set; }
public DbSet<Proveedor> Proveedores { get; set; }
public DbSet<Remito> Remitos { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{ // Esto de poner credenciales sueltas está mal
optionsBuilder.UseSqlServer(@"Server=fedesrv.ddns.net,1433;Database=ControlStockDAS;User Id=ProyectoDas;Password=<IL-:aQI?TK{uRw:AU>A?5?~*=Gux'}JT0me,z5Cf^f(s'-gy[G#-jt%b&uHe+/,$Gl>qkXl-c[@&e(\.V?[3)\w|aMH+<GnkIo*99MNJ}:L=j<T,^$`8J\dXw6>^67x;Trusted_Connection=False;Encrypt=False;Connection Timeout=5;");
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
/// Categoria
modelBuilder.Entity<Categoria>()
.ToTable("Categoria")
.HasKey(x => x.Id);
modelBuilder.Entity<Categoria>()
.Property(c=>c.Descripcion)
.IsRequired()
.HasMaxLength(100);
/// Cliente
modelBuilder.Entity<Cliente>()
.ToTable("Clientes") // Nombre de la tabla
.HasKey(c => c.Cuit); // Configura la clave primaria
modelBuilder.Entity<Cliente>()
.Property(c => c.Nombre)
.IsRequired()
.HasMaxLength(100);
modelBuilder.Entity<Cliente>()
.Property(c => c.Apellido)
.IsRequired()
.HasMaxLength(100);
modelBuilder.Entity<Cliente>()
.Property(c => c.Direccion)
.HasMaxLength(200);
modelBuilder.Entity<Cliente>()
.Property(c => c.Correo)
.HasMaxLength(150);
modelBuilder.Entity<Cliente>()
.Property(c => c.Habilitado)
.HasDefaultValue(true);
/// Factura Y DetalleFactura WIP
modelBuilder.Entity<Factura>()
.ToTable("Facturas")
.HasKey(f => f.Id);
modelBuilder.Entity<Factura>()
.HasMany(f => f.detalles)
.WithOne()
.HasForeignKey(df => df.IdFactura);
modelBuilder.Entity<DetalleFactura>()
.ToTable("DetallesFacturas")
.HasKey(df => df.Id);
modelBuilder.Entity<DetalleFactura>()
.Property(df => df.IdFactura)
.IsRequired();
modelBuilder.Entity<DetalleFactura>()
.HasOne(df => df.Producto)
.WithMany()
.HasForeignKey(df => df.Producto.Id);
}
}