# PhronCare ## 📌 Descripción PhronCare es una plataforma back-office desarrollada en .NET 8 para la gestión de operaciones en ortopedia y logística médica. Incluye módulos principales como: - Presupuestos (Quotes) - Expediciones (Expeditions) - Stock médico con trazabilidad GS1 - Generación de documentos (PDF / Excel) --- ## 🧱 Arquitectura El sistema sigue una arquitectura estricta por capas: Data → Domain → Core → API → UI (Blazor) Reglas clave: - NO modificar modelos EF generados por scaffold (Models/Data) - La lógica de negocio vive en Domain/Core - Las entidades de dominio (E*) replican estructura de DB - Core orquesta casos de uso y transacciones --- ## 📦 Estructura del proyecto /src ├── 1.1 Data → EF Models + Repositories ├── 1.2 Domain → Entidades E*, contratos, enums ├── 1.3 Core → Servicios de negocio ├── API → Controllers / Endpoints ├── UIBlazor → Frontend Blazor ├── Documents → Templates PDF / Excel --- ## ⚙️ Requisitos - .NET 8 SDK - SQL Server - Docker (opcional) - Node.js (solo si se utiliza en contenedor o build específico) --- ## 🚀 Ejecución local 1. Configurar `appsettings.json` con la conexión a base de datos 2. Verificar que la base de datos esté disponible 3. Ejecutar la API: dotnet run (en proyecto API) 4. Ejecutar la UI Blazor: dotnet run (en proyecto UIBlazor) Opcional: - Ejecutar con Docker Compose si está configurado --- ## 🔌 Endpoints principales - /api/quotes - /api/expeditions - /api/stock - /api/lsstockscan Swagger disponible en: - /swagger --- ## 📄 Generación de documentos El sistema soporta generación de: - PDF (Quotes, Expeditions, Delivery Notes) - Excel (exportaciones) Implementación basada en: - DocumentTemplateService - Templates Razor - PuppeteerSharp --- ## 🧠 Convenciones del proyecto - Tablas: PascalCase - Campos: snake_case - Foreign Keys: *_id Prefijos por módulo: - PhS_ → Sales - PhLSM_ → Logística y Stock Médico - PhOH_ → Operations Hub Otros: - Entidades Domain: prefijo E (EQuoteHeader, etc.) - DTOs separados de entidades - No usar AutoMapper (usar EntityMapper) --- ## 🔄 Flujo de desarrollo - API-First - Stories pequeñas y atómicas - Branching: - feature/{issue}-{desc} - fix/{issue}-{desc} Commits: - Conventional Commits - Uso de “Closes #issue” en PR --- ## 📋 Stories y documentación Las stories del proyecto siguen una plantilla estándar ubicada en: /docs/story-template.md Incluye: - Objetivo - Contexto - Alcance - Criterios de aceptación - Decisiones de diseño --- ## ⚠️ Notas importantes - No romper contratos existentes de la API - Mantener consistencia con módulos existentes - Priorizar claridad sobre complejidad