// <auto-generated />
using System;
using ERP.TallerAutomotriz.Infrastructure.Persistence;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;

#nullable disable

namespace ERP.TallerAutomotriz.Infrastructure.Persistence.Migrations
{
    [DbContext(typeof(ApplicationDbContext))]
    partial class ApplicationDbContextModelSnapshot : ModelSnapshot
    {
        protected override void BuildModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasDefaultSchema("dbo")
                .HasAnnotation("ProductVersion", "8.0.10")
                .HasAnnotation("Relational:MaxIdentifierLength", 128);

            SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Customers.Cliente", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<string>("CargoContacto")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Ciudad")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Codigo")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("nvarchar(20)");

                    b.Property<string>("ContactoPrincipal")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("CreadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Direccion")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("DocumentoIdentidad")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("nvarchar(20)");

                    b.Property<string>("Email")
                        .HasMaxLength(150)
                        .HasColumnType("nvarchar(150)");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaModificacion")
                        .HasColumnType("datetime2");

                    b.Property<decimal>("LimiteCredito")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<string>("ModificadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("NombreComercial")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("NombreRazonSocial")
                        .IsRequired()
                        .HasMaxLength(200)
                        .HasColumnType("nvarchar(200)");

                    b.Property<string>("Notas")
                        .HasColumnType("nvarchar(max)");

                    b.Property<bool>("RecibeNotificaciones")
                        .HasColumnType("bit");

                    b.Property<decimal>("SaldoPendiente")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<int?>("TecnicoConfianzaId")
                        .HasColumnType("int");

                    b.Property<string>("TelefonoPrincipal")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("TelefonoSecundario")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("Tipo")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("Codigo")
                        .IsUnique();

                    b.HasIndex("DocumentoIdentidad");

                    b.ToTable("Clientes", "crm");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Customers.Vehiculo", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<int>("Anio")
                        .HasColumnType("int");

                    b.Property<int>("ClienteId")
                        .HasColumnType("int");

                    b.Property<string>("Color")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("Combustible")
                        .HasColumnType("int");

                    b.Property<string>("CreadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaModificacion")
                        .HasColumnType("datetime2");

                    b.Property<int>("KilometrajeActual")
                        .HasColumnType("int");

                    b.Property<int?>("KilometrajeUltimoServicio")
                        .HasColumnType("int");

                    b.Property<string>("Marca")
                        .IsRequired()
                        .HasMaxLength(50)
                        .HasColumnType("nvarchar(50)");

                    b.Property<string>("Modelo")
                        .IsRequired()
                        .HasMaxLength(50)
                        .HasColumnType("nvarchar(50)");

                    b.Property<string>("ModificadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Motor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Notas")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("NumeroChasis")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Placa")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("nvarchar(20)");

                    b.Property<DateTime?>("ProximoServicioFecha")
                        .HasColumnType("datetime2");

                    b.Property<int?>("ProximoServicioKm")
                        .HasColumnType("int");

                    b.Property<int>("Transmision")
                        .HasColumnType("int");

                    b.Property<DateTime?>("UltimoServicio")
                        .HasColumnType("datetime2");

                    b.Property<string>("VIN")
                        .HasColumnType("nvarchar(450)");

                    b.HasKey("Id");

                    b.HasIndex("ClienteId");

                    b.HasIndex("Placa")
                        .IsUnique();

                    b.HasIndex("VIN");

                    b.ToTable("Vehiculos", "crm");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Inventory.Almacen", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<string>("Codigo")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("nvarchar(20)");

                    b.Property<string>("CreadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Direccion")
                        .HasColumnType("nvarchar(max)");

                    b.Property<bool>("EsPrincipal")
                        .HasColumnType("bit");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaModificacion")
                        .HasColumnType("datetime2");

                    b.Property<string>("ModificadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Nombre")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.Property<string>("Responsable")
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("Id");

                    b.HasIndex("Codigo")
                        .IsUnique();

                    b.ToTable("Almacenes", "inventario");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Inventory.CategoriaRepuesto", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<int?>("CategoriaPadreId")
                        .HasColumnType("int");

                    b.Property<string>("CreadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Descripcion")
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaModificacion")
                        .HasColumnType("datetime2");

                    b.Property<string>("ModificadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Nombre")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.HasKey("Id");

                    b.HasIndex("CategoriaPadreId");

                    b.ToTable("CategoriasRepuesto", "inventario");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Inventory.CompatibilidadRepuesto", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<int?>("AnioDesde")
                        .HasColumnType("int");

                    b.Property<int?>("AnioHasta")
                        .HasColumnType("int");

                    b.Property<string>("Marca")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Modelo")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Notas")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("RepuestoId")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("RepuestoId");

                    b.ToTable("CompatibilidadesRepuesto", "inventario");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Inventory.MovimientoInventario", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<int>("AlmacenId")
                        .HasColumnType("int");

                    b.Property<decimal>("Cantidad")
                        .HasPrecision(18, 4)
                        .HasColumnType("decimal(18,4)");

                    b.Property<decimal>("CostoUnitario")
                        .HasPrecision(18, 4)
                        .HasColumnType("decimal(18,4)");

                    b.Property<int?>("DocumentoReferenciaId")
                        .HasColumnType("int");

                    b.Property<DateTime>("Fecha")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaVencimiento")
                        .HasColumnType("datetime2");

                    b.Property<string>("Justificacion")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Lote")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("NumeroDocumento")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("NumeroSerie")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("RepuestoId")
                        .HasColumnType("int");

                    b.Property<decimal>("SaldoAnterior")
                        .HasPrecision(18, 4)
                        .HasColumnType("decimal(18,4)");

                    b.Property<decimal>("SaldoNuevo")
                        .HasPrecision(18, 4)
                        .HasColumnType("decimal(18,4)");

                    b.Property<int>("Tipo")
                        .HasColumnType("int");

                    b.Property<string>("TipoDocumento")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Usuario")
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("Id");

                    b.HasIndex("AlmacenId");

                    b.HasIndex("RepuestoId");

                    b.ToTable("MovimientosInventario", "inventario");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Inventory.Repuesto", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<int?>("CategoriaId")
                        .HasColumnType("int");

                    b.Property<string>("CodigoBarras")
                        .HasColumnType("nvarchar(450)");

                    b.Property<string>("CodigoInterno")
                        .IsRequired()
                        .HasMaxLength(30)
                        .HasColumnType("nvarchar(30)");

                    b.Property<string>("CodigoOEM")
                        .HasColumnType("nvarchar(450)");

                    b.Property<decimal>("CostoPromedio")
                        .HasPrecision(18, 4)
                        .HasColumnType("decimal(18,4)");

                    b.Property<decimal>("CostoUltimo")
                        .HasPrecision(18, 4)
                        .HasColumnType("decimal(18,4)");

                    b.Property<string>("CreadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Descripcion")
                        .IsRequired()
                        .HasMaxLength(200)
                        .HasColumnType("nvarchar(200)");

                    b.Property<string>("DescripcionLarga")
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaModificacion")
                        .HasColumnType("datetime2");

                    b.Property<bool>("ManejaLote")
                        .HasColumnType("bit");

                    b.Property<bool>("ManejaSerie")
                        .HasColumnType("bit");

                    b.Property<int?>("MesesGarantia")
                        .HasColumnType("int");

                    b.Property<int>("MetodoCosteo")
                        .HasColumnType("int");

                    b.Property<string>("ModificadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<decimal>("PrecioVenta")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("StockActual")
                        .HasPrecision(18, 4)
                        .HasColumnType("decimal(18,4)");

                    b.Property<decimal>("StockMaximo")
                        .HasPrecision(18, 4)
                        .HasColumnType("decimal(18,4)");

                    b.Property<decimal>("StockMinimo")
                        .HasPrecision(18, 4)
                        .HasColumnType("decimal(18,4)");

                    b.Property<bool>("TieneGarantia")
                        .HasColumnType("bit");

                    b.Property<string>("Ubicacion")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("UnidadMedida")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("UrlImagen")
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("Id");

                    b.HasIndex("CategoriaId");

                    b.HasIndex("CodigoBarras");

                    b.HasIndex("CodigoInterno")
                        .IsUnique();

                    b.HasIndex("CodigoOEM");

                    b.ToTable("Repuestos", "inventario");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Inventory.StockAlmacen", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<int>("AlmacenId")
                        .HasColumnType("int");

                    b.Property<decimal>("Cantidad")
                        .HasPrecision(18, 4)
                        .HasColumnType("decimal(18,4)");

                    b.Property<int>("RepuestoId")
                        .HasColumnType("int");

                    b.Property<string>("Ubicacion")
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("Id");

                    b.HasIndex("AlmacenId");

                    b.HasIndex("RepuestoId", "AlmacenId")
                        .IsUnique();

                    b.ToTable("StockAlmacenes", "inventario");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Personnel.Comision", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<DateTime>("Fecha")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaPago")
                        .HasColumnType("datetime2");

                    b.Property<decimal>("MontoBase")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("MontoComision")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<int?>("OrdenTrabajoId")
                        .HasColumnType("int");

                    b.Property<bool>("Pagada")
                        .HasColumnType("bit");

                    b.Property<decimal>("Porcentaje")
                        .HasPrecision(5, 2)
                        .HasColumnType("decimal(5,2)");

                    b.Property<int>("TecnicoId")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("TecnicoId");

                    b.ToTable("Comisiones", "personal");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Personnel.RegistroAsistencia", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<DateTime>("Fecha")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("HoraEntrada")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("HoraSalida")
                        .HasColumnType("datetime2");

                    b.Property<decimal>("HorasExtras")
                        .HasPrecision(5, 2)
                        .HasColumnType("decimal(5,2)");

                    b.Property<decimal>("HorasTrabajadas")
                        .HasPrecision(5, 2)
                        .HasColumnType("decimal(5,2)");

                    b.Property<string>("Observaciones")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("TecnicoId")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("TecnicoId");

                    b.ToTable("RegistrosAsistencia", "personal");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Personnel.Tecnico", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<string>("Apellidos")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.Property<string>("Codigo")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("nvarchar(20)");

                    b.Property<string>("CreadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Direccion")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("DocumentoIdentidad")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Email")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Especialidades")
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("FechaIngreso")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaModificacion")
                        .HasColumnType("datetime2");

                    b.Property<string>("ModificadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("Nivel")
                        .HasColumnType("int");

                    b.Property<string>("Nombres")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.Property<decimal>("PorcentajeComision")
                        .HasPrecision(5, 2)
                        .HasColumnType("decimal(5,2)");

                    b.Property<decimal>("TarifaHora")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<string>("Telefono")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("UrlFoto")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("UsuarioIdentityId")
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("Id");

                    b.HasIndex("Codigo")
                        .IsUnique();

                    b.ToTable("Tecnicos", "personal");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Purchases.CuentaPagar", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<string>("CreadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("Estado")
                        .HasColumnType("int");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("FechaEmision")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaModificacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("FechaVencimiento")
                        .HasColumnType("datetime2");

                    b.Property<string>("ModificadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<decimal>("Monto")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("MontoPagado")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<string>("NumeroFactura")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Observaciones")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int?>("OrdenCompraId")
                        .HasColumnType("int");

                    b.Property<int>("ProveedorId")
                        .HasColumnType("int");

                    b.Property<decimal>("Saldo")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.HasKey("Id");

                    b.HasIndex("OrdenCompraId");

                    b.HasIndex("ProveedorId");

                    b.ToTable("CuentasPagar", "compras");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Purchases.DetalleOrdenCompra", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<decimal>("Cantidad")
                        .HasPrecision(18, 4)
                        .HasColumnType("decimal(18,4)");

                    b.Property<decimal>("CantidadRecibida")
                        .HasPrecision(18, 4)
                        .HasColumnType("decimal(18,4)");

                    b.Property<decimal>("Descuento")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<int>("OrdenCompraId")
                        .HasColumnType("int");

                    b.Property<decimal>("PrecioUnitario")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<int>("RepuestoId")
                        .HasColumnType("int");

                    b.Property<decimal>("Subtotal")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.HasKey("Id");

                    b.HasIndex("OrdenCompraId");

                    b.HasIndex("RepuestoId");

                    b.ToTable("DetallesOrdenCompra", "compras");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Purchases.OrdenCompra", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<int?>("AlmacenDestinoId")
                        .HasColumnType("int");

                    b.Property<string>("AprobadaPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("CreadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("Estado")
                        .HasColumnType("int");

                    b.Property<DateTime>("Fecha")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaAprobacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaEntregaEsperada")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaModificacion")
                        .HasColumnType("datetime2");

                    b.Property<decimal>("Impuesto")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<string>("ModificadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Numero")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("nvarchar(20)");

                    b.Property<string>("Observaciones")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("ProveedorId")
                        .HasColumnType("int");

                    b.Property<decimal>("Subtotal")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("Total")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.HasKey("Id");

                    b.HasIndex("AlmacenDestinoId");

                    b.HasIndex("Numero")
                        .IsUnique();

                    b.HasIndex("ProveedorId");

                    b.ToTable("OrdenesCompra", "compras");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Purchases.Proveedor", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<decimal>("CalificacionCalidad")
                        .HasPrecision(3, 1)
                        .HasColumnType("decimal(3,1)");

                    b.Property<decimal>("CalificacionPrecio")
                        .HasPrecision(3, 1)
                        .HasColumnType("decimal(3,1)");

                    b.Property<decimal>("CalificacionTiempo")
                        .HasPrecision(3, 1)
                        .HasColumnType("decimal(3,1)");

                    b.Property<string>("Codigo")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("nvarchar(20)");

                    b.Property<string>("Contacto")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("CreadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("DiasCredito")
                        .HasColumnType("int");

                    b.Property<int>("DiasEntrega")
                        .HasColumnType("int");

                    b.Property<string>("Direccion")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("DocumentoIdentidad")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Email")
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaModificacion")
                        .HasColumnType("datetime2");

                    b.Property<string>("ModificadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("NombreComercial")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Notas")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("RazonSocial")
                        .IsRequired()
                        .HasMaxLength(200)
                        .HasColumnType("nvarchar(200)");

                    b.Property<string>("Telefono")
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("Id");

                    b.HasIndex("Codigo")
                        .IsUnique();

                    b.ToTable("Proveedores", "compras");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Sales.Caja", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<bool>("Abierta")
                        .HasColumnType("bit");

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<string>("Codigo")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("nvarchar(20)");

                    b.Property<string>("CreadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime?>("FechaApertura")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaCierre")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaModificacion")
                        .HasColumnType("datetime2");

                    b.Property<string>("ModificadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<decimal>("MontoApertura")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("MontoCierre")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<string>("Nombre")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.Property<string>("Observaciones")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("UsuarioApertura")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("UsuarioCierre")
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("Id");

                    b.HasIndex("Codigo")
                        .IsUnique();

                    b.ToTable("Cajas", "ventas");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Sales.Cotizacion", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<string>("AprobadaPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("ClienteId")
                        .HasColumnType("int");

                    b.Property<string>("CreadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Estado")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime>("Fecha")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaAprobacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaModificacion")
                        .HasColumnType("datetime2");

                    b.Property<decimal>("Impuesto")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<string>("ModificadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Numero")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("nvarchar(20)");

                    b.Property<string>("Observaciones")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int?>("OrdenTrabajoId")
                        .HasColumnType("int");

                    b.Property<decimal>("Subtotal")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("Total")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<DateTime>("ValidaHasta")
                        .HasColumnType("datetime2");

                    b.HasKey("Id");

                    b.HasIndex("ClienteId");

                    b.HasIndex("Numero")
                        .IsUnique();

                    b.HasIndex("OrdenTrabajoId");

                    b.ToTable("Cotizaciones", "ventas");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Sales.DetalleCotizacion", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<decimal>("Cantidad")
                        .HasPrecision(18, 4)
                        .HasColumnType("decimal(18,4)");

                    b.Property<int>("CotizacionId")
                        .HasColumnType("int");

                    b.Property<string>("Descripcion")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<decimal>("PrecioUnitario")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("Subtotal")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<string>("Tipo")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("Id");

                    b.HasIndex("CotizacionId");

                    b.ToTable("DetallesCotizacion", "ventas");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Sales.DetalleFactura", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<decimal>("Cantidad")
                        .HasPrecision(18, 4)
                        .HasColumnType("decimal(18,4)");

                    b.Property<string>("CodigoItem")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Descripcion")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<decimal>("Descuento")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<int>("FacturaId")
                        .HasColumnType("int");

                    b.Property<decimal>("PrecioUnitario")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("Subtotal")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<string>("Tipo")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("Id");

                    b.HasIndex("FacturaId");

                    b.ToTable("DetallesFactura", "ventas");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Sales.Factura", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<decimal>("BaseImponible")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<int>("ClienteId")
                        .HasColumnType("int");

                    b.Property<string>("CreadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<decimal>("Descuento")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<int>("Estado")
                        .HasColumnType("int");

                    b.Property<DateTime>("Fecha")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaModificacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("FechaVencimiento")
                        .HasColumnType("datetime2");

                    b.Property<decimal>("Impuesto")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<string>("ModificadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<decimal>("MontoPagado")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<string>("Numero")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("nvarchar(20)");

                    b.Property<string>("Observaciones")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int?>("OrdenTrabajoId")
                        .HasColumnType("int");

                    b.Property<decimal>("PorcentajeImpuesto")
                        .HasPrecision(5, 2)
                        .HasColumnType("decimal(5,2)");

                    b.Property<decimal>("SaldoPendiente")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<string>("Serie")
                        .IsRequired()
                        .HasMaxLength(10)
                        .HasColumnType("nvarchar(10)");

                    b.Property<decimal>("Subtotal")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<int>("Tipo")
                        .HasColumnType("int");

                    b.Property<decimal>("Total")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<string>("UrlPdf")
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("Id");

                    b.HasIndex("ClienteId");

                    b.HasIndex("OrdenTrabajoId");

                    b.HasIndex("Serie", "Numero")
                        .IsUnique();

                    b.ToTable("Facturas", "ventas");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Sales.Pago", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<int?>("CajaId")
                        .HasColumnType("int");

                    b.Property<string>("CreadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("FacturaId")
                        .HasColumnType("int");

                    b.Property<DateTime>("Fecha")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaModificacion")
                        .HasColumnType("datetime2");

                    b.Property<int>("FormaPago")
                        .HasColumnType("int");

                    b.Property<string>("ModificadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<decimal>("Monto")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<string>("NumeroReferencia")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Observaciones")
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("Id");

                    b.HasIndex("CajaId");

                    b.HasIndex("FacturaId");

                    b.ToTable("Pagos", "ventas");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.System.Empresa", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<string>("CreadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Direccion")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("DocumentoFiscal")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Email")
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaModificacion")
                        .HasColumnType("datetime2");

                    b.Property<string>("ModificadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Moneda")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("NombreComercial")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("NombreImpuesto")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Pais")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<decimal>("PorcentajeImpuesto")
                        .HasPrecision(5, 2)
                        .HasColumnType("decimal(5,2)");

                    b.Property<string>("RazonSocial")
                        .IsRequired()
                        .HasMaxLength(200)
                        .HasColumnType("nvarchar(200)");

                    b.Property<string>("SimboloMoneda")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Sitio")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Telefono")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("UrlLogo")
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("Id");

                    b.ToTable("Empresas", "sistema");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.System.LogAuditoria", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("Accion")
                        .IsRequired()
                        .HasMaxLength(50)
                        .HasColumnType("nvarchar(50)");

                    b.Property<string>("Detalle")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Entidad")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.Property<string>("EntidadId")
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime>("Fecha")
                        .HasColumnType("datetime2");

                    b.Property<string>("IpOrigen")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Usuario")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.HasKey("Id");

                    b.HasIndex("Fecha");

                    b.ToTable("LogsAuditoria", "sistema");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.System.NotificacionEnviada", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("Asunto")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Cuerpo")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Destinatario")
                        .HasColumnType("nvarchar(max)");

                    b.Property<bool>("Enviada")
                        .HasColumnType("bit");

                    b.Property<string>("Error")
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime>("Fecha")
                        .HasColumnType("datetime2");

                    b.Property<string>("PlantillaCodigo")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int?>("ReferenciaId")
                        .HasColumnType("int");

                    b.Property<string>("ReferenciaTipo")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("Tipo")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("Fecha");

                    b.ToTable("NotificacionesEnviadas", "sistema");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.System.ParametroSistema", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<string>("Categoria")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Clave")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.Property<string>("CreadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Descripcion")
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaModificacion")
                        .HasColumnType("datetime2");

                    b.Property<string>("ModificadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Valor")
                        .IsRequired()
                        .HasMaxLength(500)
                        .HasColumnType("nvarchar(500)");

                    b.HasKey("Id");

                    b.HasIndex("Clave")
                        .IsUnique();

                    b.ToTable("Parametros", "sistema");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.System.PlantillaNotificacion", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<string>("Asunto")
                        .IsRequired()
                        .HasMaxLength(200)
                        .HasColumnType("nvarchar(200)");

                    b.Property<string>("Codigo")
                        .IsRequired()
                        .HasMaxLength(50)
                        .HasColumnType("nvarchar(50)");

                    b.Property<string>("CreadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Cuerpo")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaModificacion")
                        .HasColumnType("datetime2");

                    b.Property<string>("ModificadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Nombre")
                        .IsRequired()
                        .HasMaxLength(150)
                        .HasColumnType("nvarchar(150)");

                    b.Property<int>("Tipo")
                        .HasColumnType("int");

                    b.Property<string>("Variables")
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("Id");

                    b.HasIndex("Codigo")
                        .IsUnique();

                    b.ToTable("PlantillasNotificacion", "sistema");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.System.Sucursal", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<string>("Codigo")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("nvarchar(20)");

                    b.Property<string>("CreadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Direccion")
                        .HasColumnType("nvarchar(max)");

                    b.Property<bool>("EsPrincipal")
                        .HasColumnType("bit");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaModificacion")
                        .HasColumnType("datetime2");

                    b.Property<string>("ModificadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Nombre")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.Property<string>("Responsable")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Telefono")
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("Id");

                    b.HasIndex("Codigo")
                        .IsUnique();

                    b.ToTable("Sucursales", "sistema");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.CategoriaServicio", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<int?>("CategoriaPadreId")
                        .HasColumnType("int");

                    b.Property<string>("CreadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Descripcion")
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaModificacion")
                        .HasColumnType("datetime2");

                    b.Property<string>("ModificadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Nombre")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.HasKey("Id");

                    b.HasIndex("CategoriaPadreId");

                    b.ToTable("CategoriasServicio", "taller");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.ChecklistInspeccion", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("Estado")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Item")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Observacion")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("OrdenTrabajoId")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("OrdenTrabajoId");

                    b.ToTable("ChecklistInspeccion", "taller");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.Cita", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<int>("ClienteId")
                        .HasColumnType("int");

                    b.Property<string>("Comentarios")
                        .HasColumnType("nvarchar(max)");

                    b.Property<bool>("ConfirmacionEnviada")
                        .HasColumnType("bit");

                    b.Property<string>("CreadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("DuracionMinutos")
                        .HasColumnType("int");

                    b.Property<int>("Estado")
                        .HasColumnType("int");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("FechaHora")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaModificacion")
                        .HasColumnType("datetime2");

                    b.Property<string>("ModificadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int?>("OrdenTrabajoId")
                        .HasColumnType("int");

                    b.Property<bool>("RecordatorioEnviado")
                        .HasColumnType("bit");

                    b.Property<int?>("ServicioId")
                        .HasColumnType("int");

                    b.Property<int?>("TecnicoPreferidoId")
                        .HasColumnType("int");

                    b.Property<int?>("VehiculoId")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("ClienteId");

                    b.HasIndex("OrdenTrabajoId");

                    b.HasIndex("ServicioId");

                    b.HasIndex("TecnicoPreferidoId");

                    b.HasIndex("VehiculoId");

                    b.ToTable("Citas", "taller");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.ControlCalidad", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<string>("CreadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("Estado")
                        .HasColumnType("int");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("FechaInspeccion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaModificacion")
                        .HasColumnType("datetime2");

                    b.Property<string>("InspectorId")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("KilometrajeRegreso")
                        .HasColumnType("int");

                    b.Property<int>("KilometrajeSalida")
                        .HasColumnType("int");

                    b.Property<string>("ModificadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Observaciones")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("OrdenTrabajoId")
                        .HasColumnType("int");

                    b.Property<bool>("PruebaRutaRealizada")
                        .HasColumnType("bit");

                    b.HasKey("Id");

                    b.HasIndex("OrdenTrabajoId");

                    b.ToTable("ControlesCalidad", "taller");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.DetalleOTRepuesto", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<decimal>("Cantidad")
                        .HasPrecision(18, 4)
                        .HasColumnType("decimal(18,4)");

                    b.Property<decimal>("CostoUnitario")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("Descuento")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<bool>("Entregado")
                        .HasColumnType("bit");

                    b.Property<DateTime?>("FechaConsumo")
                        .HasColumnType("datetime2");

                    b.Property<string>("Notas")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("OrdenTrabajoId")
                        .HasColumnType("int");

                    b.Property<decimal>("PrecioUnitario")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<int>("RepuestoId")
                        .HasColumnType("int");

                    b.Property<decimal>("Subtotal")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.HasKey("Id");

                    b.HasIndex("OrdenTrabajoId");

                    b.HasIndex("RepuestoId");

                    b.ToTable("DetalleOTRepuestos", "taller");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.DetalleOTServicio", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<int>("Cantidad")
                        .HasColumnType("int");

                    b.Property<bool>("Completado")
                        .HasColumnType("bit");

                    b.Property<string>("Descripcion")
                        .HasColumnType("nvarchar(max)");

                    b.Property<decimal>("Descuento")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<DateTime?>("FechaFin")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaInicio")
                        .HasColumnType("datetime2");

                    b.Property<string>("Notas")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("OrdenTrabajoId")
                        .HasColumnType("int");

                    b.Property<decimal>("PrecioUnitario")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<int>("ServicioId")
                        .HasColumnType("int");

                    b.Property<decimal>("Subtotal")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<int?>("TecnicoId")
                        .HasColumnType("int");

                    b.Property<int>("TiempoRealMinutos")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("OrdenTrabajoId");

                    b.HasIndex("ServicioId");

                    b.HasIndex("TecnicoId");

                    b.ToTable("DetalleOTServicios", "taller");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.FotoOT", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("CapturadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Categoria")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Descripcion")
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime>("FechaCaptura")
                        .HasColumnType("datetime2");

                    b.Property<int>("OrdenTrabajoId")
                        .HasColumnType("int");

                    b.Property<string>("Url")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("Id");

                    b.HasIndex("OrdenTrabajoId");

                    b.ToTable("FotosOT", "taller");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.HistorialEstadoOT", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("Comentario")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("EstadoAnterior")
                        .HasColumnType("int");

                    b.Property<int>("EstadoNuevo")
                        .HasColumnType("int");

                    b.Property<DateTime>("Fecha")
                        .HasColumnType("datetime2");

                    b.Property<int>("OrdenTrabajoId")
                        .HasColumnType("int");

                    b.Property<string>("Usuario")
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("Id");

                    b.HasIndex("OrdenTrabajoId");

                    b.ToTable("HistorialEstadoOT", "taller");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.OrdenTrabajo", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<string>("AprobadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("ClienteId")
                        .HasColumnType("int");

                    b.Property<string>("CodigoQR")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("CreadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<decimal>("Descuento")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<int>("Estado")
                        .HasColumnType("int");

                    b.Property<string>("FallasReportadasCliente")
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime?>("FechaAprobacionPresupuesto")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaEntregaEstimada")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaEntregaReal")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("FechaIngreso")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaModificacion")
                        .HasColumnType("datetime2");

                    b.Property<decimal>("Impuesto")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<int>("KilometrajeIngreso")
                        .HasColumnType("int");

                    b.Property<string>("ModificadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Numero")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("nvarchar(20)");

                    b.Property<string>("ObservacionesIngreso")
                        .HasColumnType("nvarchar(max)");

                    b.Property<bool>("PresupuestoAprobado")
                        .HasColumnType("bit");

                    b.Property<int>("Prioridad")
                        .HasColumnType("int");

                    b.Property<string>("SintomasDiagnosticados")
                        .HasColumnType("nvarchar(max)");

                    b.Property<decimal>("SubtotalManoObra")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("SubtotalRepuestos")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("SubtotalServiciosExternos")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<int?>("TecnicoPrincipalId")
                        .HasColumnType("int");

                    b.Property<decimal>("Total")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<int>("VehiculoId")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("ClienteId");

                    b.HasIndex("Numero")
                        .IsUnique();

                    b.HasIndex("TecnicoPrincipalId");

                    b.HasIndex("VehiculoId");

                    b.ToTable("OrdenesTrabajo", "taller");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.Servicio", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<int?>("CategoriaId")
                        .HasColumnType("int");

                    b.Property<string>("Codigo")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("nvarchar(20)");

                    b.Property<decimal>("CostoManoObra")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<string>("CreadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Descripcion")
                        .HasColumnType("nvarchar(max)");

                    b.Property<bool>("EsPaquete")
                        .HasColumnType("bit");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("FechaModificacion")
                        .HasColumnType("datetime2");

                    b.Property<string>("ModificadoPor")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Nombre")
                        .IsRequired()
                        .HasMaxLength(200)
                        .HasColumnType("nvarchar(200)");

                    b.Property<string>("Notas")
                        .HasColumnType("nvarchar(max)");

                    b.Property<decimal>("PrecioEstandar")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<int>("TiempoEstimadoMinutos")
                        .HasColumnType("int");

                    b.Property<int>("Tipo")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("CategoriaId");

                    b.HasIndex("Codigo")
                        .IsUnique();

                    b.ToTable("Servicios", "taller");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.TecnicoOT", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<DateTime>("FechaAsignacion")
                        .HasColumnType("datetime2");

                    b.Property<int>("OrdenTrabajoId")
                        .HasColumnType("int");

                    b.Property<string>("Rol")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("TecnicoId")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("OrdenTrabajoId");

                    b.HasIndex("TecnicoId");

                    b.ToTable("TecnicosOT", "taller");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Infrastructure.Identity.ApplicationRole", b =>
                {
                    b.Property<string>("Id")
                        .HasColumnType("nvarchar(450)");

                    b.Property<string>("ConcurrencyStamp")
                        .IsConcurrencyToken()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Descripcion")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Name")
                        .HasMaxLength(256)
                        .HasColumnType("nvarchar(256)");

                    b.Property<string>("NormalizedName")
                        .HasMaxLength(256)
                        .HasColumnType("nvarchar(256)");

                    b.HasKey("Id");

                    b.HasIndex("NormalizedName")
                        .IsUnique()
                        .HasDatabaseName("RoleNameIndex")
                        .HasFilter("[NormalizedName] IS NOT NULL");

                    b.ToTable("Roles", "seguridad");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Infrastructure.Identity.ApplicationUser", b =>
                {
                    b.Property<string>("Id")
                        .HasColumnType("nvarchar(450)");

                    b.Property<int>("AccessFailedCount")
                        .HasColumnType("int");

                    b.Property<bool>("Activo")
                        .HasColumnType("bit");

                    b.Property<string>("Apellidos")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("ConcurrencyStamp")
                        .IsConcurrencyToken()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Email")
                        .HasMaxLength(256)
                        .HasColumnType("nvarchar(256)");

                    b.Property<bool>("EmailConfirmed")
                        .HasColumnType("bit");

                    b.Property<DateTime>("FechaCreacion")
                        .HasColumnType("datetime2");

                    b.Property<bool>("LockoutEnabled")
                        .HasColumnType("bit");

                    b.Property<DateTimeOffset?>("LockoutEnd")
                        .HasColumnType("datetimeoffset");

                    b.Property<string>("Nombres")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("NormalizedEmail")
                        .HasMaxLength(256)
                        .HasColumnType("nvarchar(256)");

                    b.Property<string>("NormalizedUserName")
                        .HasMaxLength(256)
                        .HasColumnType("nvarchar(256)");

                    b.Property<string>("PasswordHash")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("PhoneNumber")
                        .HasColumnType("nvarchar(max)");

                    b.Property<bool>("PhoneNumberConfirmed")
                        .HasColumnType("bit");

                    b.Property<string>("SecurityStamp")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int?>("SucursalId")
                        .HasColumnType("int");

                    b.Property<int?>("TecnicoId")
                        .HasColumnType("int");

                    b.Property<bool>("TwoFactorEnabled")
                        .HasColumnType("bit");

                    b.Property<DateTime?>("UltimoAcceso")
                        .HasColumnType("datetime2");

                    b.Property<string>("UrlAvatar")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("UserName")
                        .HasMaxLength(256)
                        .HasColumnType("nvarchar(256)");

                    b.HasKey("Id");

                    b.HasIndex("NormalizedEmail")
                        .HasDatabaseName("EmailIndex");

                    b.HasIndex("NormalizedUserName")
                        .IsUnique()
                        .HasDatabaseName("UserNameIndex")
                        .HasFilter("[NormalizedUserName] IS NOT NULL");

                    b.ToTable("Usuarios", "seguridad");
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("ClaimType")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("ClaimValue")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("RoleId")
                        .IsRequired()
                        .HasColumnType("nvarchar(450)");

                    b.HasKey("Id");

                    b.HasIndex("RoleId");

                    b.ToTable("RolesClaims", "seguridad");
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("ClaimType")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("ClaimValue")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("UserId")
                        .IsRequired()
                        .HasColumnType("nvarchar(450)");

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("UsuariosClaims", "seguridad");
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
                {
                    b.Property<string>("LoginProvider")
                        .HasColumnType("nvarchar(450)");

                    b.Property<string>("ProviderKey")
                        .HasColumnType("nvarchar(450)");

                    b.Property<string>("ProviderDisplayName")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("UserId")
                        .IsRequired()
                        .HasColumnType("nvarchar(450)");

                    b.HasKey("LoginProvider", "ProviderKey");

                    b.HasIndex("UserId");

                    b.ToTable("UsuariosLogins", "seguridad");
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
                {
                    b.Property<string>("UserId")
                        .HasColumnType("nvarchar(450)");

                    b.Property<string>("RoleId")
                        .HasColumnType("nvarchar(450)");

                    b.HasKey("UserId", "RoleId");

                    b.HasIndex("RoleId");

                    b.ToTable("UsuariosRoles", "seguridad");
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
                {
                    b.Property<string>("UserId")
                        .HasColumnType("nvarchar(450)");

                    b.Property<string>("LoginProvider")
                        .HasColumnType("nvarchar(450)");

                    b.Property<string>("Name")
                        .HasColumnType("nvarchar(450)");

                    b.Property<string>("Value")
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("UserId", "LoginProvider", "Name");

                    b.ToTable("UsuariosTokens", "seguridad");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Customers.Vehiculo", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Customers.Cliente", "Cliente")
                        .WithMany("Vehiculos")
                        .HasForeignKey("ClienteId")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.Navigation("Cliente");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Inventory.CategoriaRepuesto", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Inventory.CategoriaRepuesto", "CategoriaPadre")
                        .WithMany()
                        .HasForeignKey("CategoriaPadreId")
                        .OnDelete(DeleteBehavior.Restrict);

                    b.Navigation("CategoriaPadre");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Inventory.CompatibilidadRepuesto", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Inventory.Repuesto", "Repuesto")
                        .WithMany("Compatibilidades")
                        .HasForeignKey("RepuestoId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Repuesto");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Inventory.MovimientoInventario", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Inventory.Almacen", "Almacen")
                        .WithMany()
                        .HasForeignKey("AlmacenId")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Inventory.Repuesto", "Repuesto")
                        .WithMany("Movimientos")
                        .HasForeignKey("RepuestoId")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.Navigation("Almacen");

                    b.Navigation("Repuesto");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Inventory.Repuesto", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Inventory.CategoriaRepuesto", "Categoria")
                        .WithMany()
                        .HasForeignKey("CategoriaId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.Navigation("Categoria");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Inventory.StockAlmacen", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Inventory.Almacen", "Almacen")
                        .WithMany()
                        .HasForeignKey("AlmacenId")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Inventory.Repuesto", "Repuesto")
                        .WithMany()
                        .HasForeignKey("RepuestoId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Almacen");

                    b.Navigation("Repuesto");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Personnel.Comision", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Personnel.Tecnico", "Tecnico")
                        .WithMany()
                        .HasForeignKey("TecnicoId")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.Navigation("Tecnico");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Personnel.RegistroAsistencia", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Personnel.Tecnico", "Tecnico")
                        .WithMany("Asistencias")
                        .HasForeignKey("TecnicoId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Tecnico");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Purchases.CuentaPagar", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Purchases.OrdenCompra", "OrdenCompra")
                        .WithMany()
                        .HasForeignKey("OrdenCompraId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Purchases.Proveedor", "Proveedor")
                        .WithMany()
                        .HasForeignKey("ProveedorId")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.Navigation("OrdenCompra");

                    b.Navigation("Proveedor");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Purchases.DetalleOrdenCompra", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Purchases.OrdenCompra", "OrdenCompra")
                        .WithMany("Detalles")
                        .HasForeignKey("OrdenCompraId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Inventory.Repuesto", "Repuesto")
                        .WithMany()
                        .HasForeignKey("RepuestoId")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.Navigation("OrdenCompra");

                    b.Navigation("Repuesto");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Purchases.OrdenCompra", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Inventory.Almacen", "AlmacenDestino")
                        .WithMany()
                        .HasForeignKey("AlmacenDestinoId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Purchases.Proveedor", "Proveedor")
                        .WithMany()
                        .HasForeignKey("ProveedorId")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.Navigation("AlmacenDestino");

                    b.Navigation("Proveedor");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Sales.Cotizacion", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Customers.Cliente", "Cliente")
                        .WithMany()
                        .HasForeignKey("ClienteId")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Workshop.OrdenTrabajo", "OrdenTrabajo")
                        .WithMany()
                        .HasForeignKey("OrdenTrabajoId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.Navigation("Cliente");

                    b.Navigation("OrdenTrabajo");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Sales.DetalleCotizacion", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Sales.Cotizacion", "Cotizacion")
                        .WithMany("Detalles")
                        .HasForeignKey("CotizacionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Cotizacion");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Sales.DetalleFactura", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Sales.Factura", "Factura")
                        .WithMany("Detalles")
                        .HasForeignKey("FacturaId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Factura");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Sales.Factura", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Customers.Cliente", "Cliente")
                        .WithMany()
                        .HasForeignKey("ClienteId")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Workshop.OrdenTrabajo", "OrdenTrabajo")
                        .WithMany()
                        .HasForeignKey("OrdenTrabajoId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.Navigation("Cliente");

                    b.Navigation("OrdenTrabajo");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Sales.Pago", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Sales.Caja", "Caja")
                        .WithMany()
                        .HasForeignKey("CajaId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Sales.Factura", "Factura")
                        .WithMany("Pagos")
                        .HasForeignKey("FacturaId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Caja");

                    b.Navigation("Factura");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.CategoriaServicio", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Workshop.CategoriaServicio", "CategoriaPadre")
                        .WithMany()
                        .HasForeignKey("CategoriaPadreId")
                        .OnDelete(DeleteBehavior.Restrict);

                    b.Navigation("CategoriaPadre");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.ChecklistInspeccion", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Workshop.OrdenTrabajo", "OrdenTrabajo")
                        .WithMany("Checklist")
                        .HasForeignKey("OrdenTrabajoId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("OrdenTrabajo");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.Cita", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Customers.Cliente", "Cliente")
                        .WithMany()
                        .HasForeignKey("ClienteId")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Workshop.OrdenTrabajo", "OrdenTrabajo")
                        .WithMany()
                        .HasForeignKey("OrdenTrabajoId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Workshop.Servicio", "Servicio")
                        .WithMany()
                        .HasForeignKey("ServicioId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Personnel.Tecnico", "TecnicoPreferido")
                        .WithMany()
                        .HasForeignKey("TecnicoPreferidoId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Customers.Vehiculo", "Vehiculo")
                        .WithMany()
                        .HasForeignKey("VehiculoId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.Navigation("Cliente");

                    b.Navigation("OrdenTrabajo");

                    b.Navigation("Servicio");

                    b.Navigation("TecnicoPreferido");

                    b.Navigation("Vehiculo");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.ControlCalidad", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Workshop.OrdenTrabajo", "OrdenTrabajo")
                        .WithMany()
                        .HasForeignKey("OrdenTrabajoId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("OrdenTrabajo");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.DetalleOTRepuesto", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Workshop.OrdenTrabajo", "OrdenTrabajo")
                        .WithMany("Repuestos")
                        .HasForeignKey("OrdenTrabajoId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Inventory.Repuesto", "Repuesto")
                        .WithMany()
                        .HasForeignKey("RepuestoId")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.Navigation("OrdenTrabajo");

                    b.Navigation("Repuesto");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.DetalleOTServicio", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Workshop.OrdenTrabajo", "OrdenTrabajo")
                        .WithMany("Servicios")
                        .HasForeignKey("OrdenTrabajoId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Workshop.Servicio", "Servicio")
                        .WithMany()
                        .HasForeignKey("ServicioId")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Personnel.Tecnico", "Tecnico")
                        .WithMany()
                        .HasForeignKey("TecnicoId");

                    b.Navigation("OrdenTrabajo");

                    b.Navigation("Servicio");

                    b.Navigation("Tecnico");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.FotoOT", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Workshop.OrdenTrabajo", "OrdenTrabajo")
                        .WithMany("Fotos")
                        .HasForeignKey("OrdenTrabajoId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("OrdenTrabajo");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.HistorialEstadoOT", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Workshop.OrdenTrabajo", "OrdenTrabajo")
                        .WithMany("Historial")
                        .HasForeignKey("OrdenTrabajoId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("OrdenTrabajo");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.OrdenTrabajo", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Customers.Cliente", "Cliente")
                        .WithMany()
                        .HasForeignKey("ClienteId")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Personnel.Tecnico", "TecnicoPrincipal")
                        .WithMany()
                        .HasForeignKey("TecnicoPrincipalId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Customers.Vehiculo", "Vehiculo")
                        .WithMany()
                        .HasForeignKey("VehiculoId")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.Navigation("Cliente");

                    b.Navigation("TecnicoPrincipal");

                    b.Navigation("Vehiculo");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.Servicio", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Workshop.CategoriaServicio", "Categoria")
                        .WithMany("Servicios")
                        .HasForeignKey("CategoriaId");

                    b.Navigation("Categoria");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.TecnicoOT", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Workshop.OrdenTrabajo", "OrdenTrabajo")
                        .WithMany("TecnicosAsignados")
                        .HasForeignKey("OrdenTrabajoId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("ERP.TallerAutomotriz.Domain.Entities.Personnel.Tecnico", "Tecnico")
                        .WithMany()
                        .HasForeignKey("TecnicoId")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.Navigation("OrdenTrabajo");

                    b.Navigation("Tecnico");
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Infrastructure.Identity.ApplicationRole", null)
                        .WithMany()
                        .HasForeignKey("RoleId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Infrastructure.Identity.ApplicationUser", null)
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Infrastructure.Identity.ApplicationUser", null)
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Infrastructure.Identity.ApplicationRole", null)
                        .WithMany()
                        .HasForeignKey("RoleId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("ERP.TallerAutomotriz.Infrastructure.Identity.ApplicationUser", null)
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
                {
                    b.HasOne("ERP.TallerAutomotriz.Infrastructure.Identity.ApplicationUser", null)
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Customers.Cliente", b =>
                {
                    b.Navigation("Vehiculos");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Inventory.Repuesto", b =>
                {
                    b.Navigation("Compatibilidades");

                    b.Navigation("Movimientos");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Personnel.Tecnico", b =>
                {
                    b.Navigation("Asistencias");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Purchases.OrdenCompra", b =>
                {
                    b.Navigation("Detalles");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Sales.Cotizacion", b =>
                {
                    b.Navigation("Detalles");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Sales.Factura", b =>
                {
                    b.Navigation("Detalles");

                    b.Navigation("Pagos");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.CategoriaServicio", b =>
                {
                    b.Navigation("Servicios");
                });

            modelBuilder.Entity("ERP.TallerAutomotriz.Domain.Entities.Workshop.OrdenTrabajo", b =>
                {
                    b.Navigation("Checklist");

                    b.Navigation("Fotos");

                    b.Navigation("Historial");

                    b.Navigation("Repuestos");

                    b.Navigation("Servicios");

                    b.Navigation("TecnicosAsignados");
                });
#pragma warning restore 612, 618
        }
    }
}
