Arquitectura base

Como debe repartirse el sistema

La regla principal es simple: el core del sistema vive en ApplicationDbContext y cada modulo funcional debe ser dueno de sus tablas, su DbContext y su logica.

Principios
Core separado Usuarios, roles, permisos, empresas, planes y configuracion global no deben mezclarse con negocio ERP.
Maestro comun ENTIDADES centraliza terceros, fiscal, direcciones, bancos, estados y clasificacion.
Modulos dueños PROVEEDORES, COMPRAS, FACTURACION y otros deben ser dueños de su operativa.

Resumen rapido

Core
App
Infraestructura del sistema, no logica funcional del ERP.
Maestro
ENT
Cliente, proveedor, contacto y clasificacion viven en el maestro comun.
Perfil
PRV
Proveedor solo guarda datos especificos del perfil proveedor.
Operativa
CMP
Compras, recepciones y facturas proveedor viven en su propio modulo.

Reparto correcto

Contexto o modulo Responsabilidad No debe hacer
ApplicationDbContext Empresas, usuarios, roles, permisos, modulos, planes, configuracion global y metadatos comunes Guardar logica funcional de negocio
ENTIDADES Maestro comun de clientes, proveedores, contactos, direcciones, fiscal, bancos, estados y clasificacion Operativa de compras o facturacion compleja
PROVEEDORES Perfil proveedor y configuracion especifica enlazada a EntidadId Duplicar nombre, email, telefono o direccion base
COMPRAS Pedidos, recepciones, incidencias, facturas proveedor y flujo de compras Ser dueno de la ficha base del tercero
FACTURACION Series, documentos, lineas, configuracion fiscal y flujo documental Absorber el maestro de productos o entidades

Regla de oro

Si una tabla pertenece funcionalmente a un modulo, debe vivir en ese modulo. Si un dato es maestro comun, debe vivir en el maestro comun.

Errores a evitar

Duplicar maestros No repitas nombre, telefono, email o direccion de la entidad en tablas de perfil.
Meter negocio en core El core no debe acumular reglas funcionales de ventas, compras o terceros.
Mezclar modulos Evita que un modulo escriba libremente tablas de otro salvo maestro comun y FKs claras.