← Volver a Common.Domain.Master

Estructura del Proyecto

Organización y arquitectura del proyecto Common.Domain.Master

📁 Estructura de Directorios

🗂️ Organización del Proyecto

Common.Domain.Master/
├── Common.Domain.Master.csproj
├── Models/
│   ├── MasterDataContext.cs
│   ├── IMasterDataContextProcedures.cs
│   ├── MasterDataContextProcedures.cs
│   ├── DbContextExtensions.cs
│   │
│   ├── Articulo.cs
│   ├── ArticulosFoto.cs
│   ├── ArticulosDetalle.cs
│   ├── ArticulosBalanza.cs
│   ├── ArticulosBarra.cs
│   ├── ArticulosImpresora.cs
│   ├── ArticulosApertura.cs
│   ├── Subarticulo.cs
│   ├── AgrupacionArticulo.cs
│   ├── ArticuloRelacionVentaCompra.cs
│   ├── CambioTarifa.cs
│   ├── Carta.cs
│   ├── Comanda.cs
│   ├── OrdenPresentacion.cs
│   ├── AplicarDescuento.cs
│   │
│   ├── Empleado.cs
│   ├── EmpleadosFoto.cs
│   ├── Cajero.cs
│   ├── Camarero.cs
│   ├── CamareroFoto.cs
│   ├── Repartidore.cs
│   ├── RepartidorFoto.cs
│   ├── Comisionista.cs
│   │
│   ├── Empresa.cs
│   ├── Parametro.cs
│   ├── Permiso.cs
│   ├── EventosSecurity.cs
│   ├── CodigoPin.cs
│   ├── ESCajaConcepto.cs
│   │
│   ├── Salones.cs
│   ├── SalonesFoto.cs
│   ├── SalonesMesa.cs
│   ├── Dibujo.cs
│   │
│   ├── Cliente.cs
│   ├── Tarjeta.cs
│   ├── TarjetasFoto.cs
│   ├── TarjetasPrepago.cs
│   │
│   ├── Moneda.cs
│   ├── MonedasBillete.cs
│   ├── EnlaceMoneda.cs
│   ├── TipoIva.cs
│   ├── TiposMerma.cs
│   ├── TramosHorario.cs
│   │
│   ├── Sesiones.cs
│   ├── SesionesEmpresa.cs
│   ├── SesionesTrabajo.cs
│   ├── Secuencia.cs
│   ├── UltimaFactura.cs
│   ├── UltimoConsecutivo.cs
│   ├── UltimoPedido.cs
│   ├── Traspaso.cs
│   ├── TraspasosTrabajo.cs
│   │
│   ├── FormatoImpresion.cs
│   ├── FormatoImpresionCampo.cs
│   ├── FormatoImpresionLinea.cs
│   ├── FormatoImpresionSeccion.cs
│   │
│   ├── Modificadore.cs
│   ├── Familium.cs
│   ├── FamiliasBalanza.cs
│   ├── GruposFamilias.cs
│   ├── GruposFamiliasLineas.cs
│   └── ComisionistaFamilium.cs
                

🏗️ Arquitectura del Proyecto

🎯 Patrón de Diseño

  • Entity Framework Core: ORM para acceso a datos
  • DbContext Pattern: Contexto de datos centralizado
  • Code First: Generación de entidades desde código
  • Repository Pattern: Abstracción de acceso a datos

📊 Organización de Entidades

  • Entidades Principales: Entidades centrales del sistema
  • Entidades Relacionadas: Entidades que complementan las principales
  • Entidades de Configuración: Parámetros y configuraciones
  • Entidades de Sistema: Funcionalidades del sistema

🔗 Dependencias del Proyecto

📦 Paquetes NuGet

  • Microsoft.EntityFrameworkCore.SqlServer: Provider para SQL Server
  • Microsoft.EntityFrameworkCore: Framework ORM
  • Microsoft.Extensions.Logging: Sistema de logging

🎯 Configuración del Proyecto

  • Target Framework: .NET 8.0
  • Implicit Usings: Habilitado
  • Nullable: Habilitado
  • Compatibility Level: SQL Server 2014

📋 Categorización de Entidades

📦 Artículos (15 entidades)

Gestión completa de productos y menús

  • Articulo - Producto principal
  • ArticulosFoto - Imágenes
  • ArticulosDetalle - Detalles
  • ArticulosBalanza - Productos de balanza
  • ArticulosBarra - Códigos de barras
  • ArticulosImpresora - Configuración de impresión
  • ArticulosApertura - Productos de apertura
  • Subarticulo - Subproductos
  • AgrupacionArticulo - Agrupaciones
  • ArticuloRelacionVentaCompra - Relaciones
  • CambioTarifa - Cambios de tarifa
  • Carta - Cartas de menú
  • Comanda - Comandas
  • OrdenPresentacion - Orden de presentación
  • AplicarDescuento - Descuentos

👥 Personal (8 entidades)

Gestión de empleados y personal

  • Empleado - Empleados generales
  • EmpleadosFoto - Fotos de empleados
  • Cajero - Cajeros
  • Camarero - Camareros
  • CamareroFoto - Fotos de camareros
  • Repartidore - Repartidores
  • RepartidorFoto - Fotos de repartidores
  • Comisionista - Comisionistas

🏢 Empresa (6 entidades)

Configuración empresarial

  • Empresa - Datos de empresa
  • Parametro - Parámetros del sistema
  • Permiso - Permisos de usuario
  • EventosSecurity - Eventos de seguridad
  • CodigoPin - Códigos PIN
  • ESCajaConcepto - Conceptos de caja

🪑 Salones (4 entidades)

Gestión de salones y mesas

  • Salones - Salones del restaurante
  • SalonesFoto - Fotos de salones
  • SalonesMesa - Mesas por salón
  • Dibujo - Dibujos y planos

💳 Tarjetas (4 entidades)

Gestión de tarjetas de fidelización

  • Cliente - Clientes
  • Tarjeta - Tarjetas principales
  • TarjetasFoto - Fotos de tarjetas
  • TarjetasPrepago - Tarjetas prepago

💰 Financiero (6 entidades)

Configuración financiera

  • Moneda - Monedas del sistema
  • MonedasBillete - Billetes por moneda
  • EnlaceMoneda - Enlaces de moneda
  • TipoIva - Tipos de IVA
  • TiposMerma - Tipos de merma
  • TramosHorario - Tramos horarios

⚙️ Sistema (20 entidades)

Configuraciones del sistema

  • Sesiones - Sesiones de usuario
  • SesionesEmpresa - Sesiones por empresa
  • SesionesTrabajo - Sesiones de trabajo
  • Secuencia - Secuencias del sistema
  • UltimaFactura - Última factura
  • UltimoConsecutivo - Último consecutivo
  • UltimoPedido - Último pedido
  • Traspaso - Traspasos
  • TraspasosTrabajo - Traspasos de trabajo
  • FormatoImpresion - Formatos de impresión
  • FormatoImpresionCampo - Campos de formato
  • FormatoImpresionLinea - Líneas de formato
  • FormatoImpresionSeccion - Secciones de formato
  • Modificadore - Modificadores
  • Familium - Familias de productos
  • FamiliasBalanza - Familias de balanza
  • GruposFamilias - Grupos de familias
  • GruposFamiliasLineas - Líneas de grupos
  • ComisionistaFamilium - Familias por comisionista

🔗 Integración con Otros Componentes

📚 Componentes Relacionados

  • Back.API: Controladores que usan las entidades
  • Back.Application: Servicios que operan con las entidades
  • Back.Domain: DTOs que mapean desde las entidades
  • Common.Constants: Constantes para validaciones
  • Common.Domain.WorkingData: Datos de trabajo
  • Common.Domain.StoreData: Datos históricos

🎯 Casos de Uso

  • CRUD Operations: Operaciones básicas de datos
  • Complex Queries: Consultas complejas con Entity Framework
  • Transactions: Transacciones de base de datos
  • Migrations: Migraciones de esquema
  • Data Validation: Validación de entidades