leandro 3d55913c31
All checks were successful
CI/CD Pipeline / Build and Deploy with Docker Compose (pull_request) Successful in 5m17s
feat(core): add sales document core flow with coverage
closes #60
2026-05-07 20:47:34 -03:00
2025-02-03 16:12:07 -03:00
2025-01-24 19:17:26 -03:00
2025-02-01 12:40:06 -03:00
2026-03-26 22:01:06 +00:00

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
Description
No description provided
Readme 74 MiB
Languages
JavaScript 60.9%
C# 16.2%
HTML 8.8%
CSS 4.7%
SCSS 4.7%
Other 4.6%