diff --git a/backend b/backend index 7d6d4b7..6e89e7f 160000 --- a/backend +++ b/backend @@ -1 +1 @@ -Subproject commit 7d6d4b7caa3355d1cafd72c4fa4a5cc963373cde +Subproject commit 6e89e7f4c5cd92cefa6ae7b245dcd09747e560d3 diff --git a/orchestration/tareas/2026-01-27/TASK-006-validacion-documental/AUDITORIA-SERVICIOS.yml b/orchestration/tareas/2026-01-27/TASK-006-validacion-documental/AUDITORIA-SERVICIOS.yml new file mode 100644 index 0000000..d5f4404 --- /dev/null +++ b/orchestration/tareas/2026-01-27/TASK-006-validacion-documental/AUDITORIA-SERVICIOS.yml @@ -0,0 +1,1227 @@ +# Auditoria de Servicios - erp-transportistas +# Generado: 2026-01-27 +# Tarea: TASK-006 Validacion Documental + +fecha_auditoria: "2026-01-27" +agente: "Claude Code (opus-4.5)" + +resumen: + total_modulos: 40 + total_entidades: 238 + total_servicios: 81 + total_controladores: 37 + gap_servicios: 157 # entidades sin servicio directo correspondiente + cobertura_servicios: "34%" # 81/238 + +modulos: + # ===== MODULO: auth ===== + - nombre: auth + entidades: + - name: ApiKey + tiene_servicio: true + servicio: apiKeys.service.ts + - name: Company + tiene_servicio: false + - name: Device + tiene_servicio: false + - name: Group + tiene_servicio: false + - name: MfaAuditLog + tiene_servicio: false + - name: OAuthProvider + tiene_servicio: false + - name: OAuthState + tiene_servicio: false + - name: OAuthUserLink + tiene_servicio: false + - name: PasswordReset + tiene_servicio: false + - name: Permission + tiene_servicio: false + - name: ProfileModule + tiene_servicio: false + - name: ProfileTool + tiene_servicio: false + - name: Role + tiene_servicio: false + - name: Session + tiene_servicio: false + - name: Tenant + tiene_servicio: false + - name: TrustedDevice + tiene_servicio: false + - name: User + tiene_servicio: true + servicio: auth.service.ts # parcial + - name: UserProfile + tiene_servicio: false + - name: UserProfileAssignment + tiene_servicio: false + - name: VerificationCode + tiene_servicio: false + servicios_existentes: + - apiKeys.service.ts + - auth.service.ts + - services/token.service.ts + servicios_faltantes: + - CompanyService + - DeviceService + - GroupService + - MfaService + - OAuthService + - PasswordResetService + - PermissionService + - ProfileService + - RoleService + - SessionService + - TenantService (auth-level) + + # ===== MODULO: users ===== + - nombre: users + entidades: [] # usa entidades de auth + servicios_existentes: + - users.service.ts + servicios_faltantes: [] + + # ===== MODULO: tenants ===== + - nombre: tenants + entidades: [] # usa entidad de core + servicios_existentes: + - tenants.service.ts + servicios_faltantes: [] + + # ===== MODULO: ai ===== + - nombre: ai + entidades: + - name: Completion + tiene_servicio: true + servicio: ai.service.ts # parcial + - name: Conversation + tiene_servicio: true + servicio: ai.service.ts + - name: Embedding + tiene_servicio: false + - name: KnowledgeBase + tiene_servicio: false + - name: Model + tiene_servicio: false + - name: Prompt + tiene_servicio: false + - name: Usage + tiene_servicio: false + servicios_existentes: + - services/ai.service.ts + - services/role-based-ai.service.ts + servicios_faltantes: + - EmbeddingService + - KnowledgeBaseService + - ModelService + - PromptService + - AiUsageService + + # ===== MODULO: audit ===== + - nombre: audit + entidades: + - name: AuditLog + tiene_servicio: true + servicio: audit.service.ts + - name: ConfigChange + tiene_servicio: false + - name: DataExport + tiene_servicio: false + - name: EntityChange + tiene_servicio: false + - name: LoginHistory + tiene_servicio: false + - name: PermissionChange + tiene_servicio: false + - name: SensitiveDataAccess + tiene_servicio: false + servicios_existentes: + - services/audit.service.ts + servicios_faltantes: + - ConfigChangeService + - DataExportService + - EntityChangeService + - LoginHistoryService + - PermissionChangeService + - SensitiveDataAccessService + + # ===== MODULO: billing-usage ===== + - nombre: billing-usage + entidades: + - name: BillingAlert + tiene_servicio: false + - name: Coupon + tiene_servicio: true + servicio: coupons.service.ts + - name: CouponRedemption + tiene_servicio: true + servicio: coupons.service.ts + - name: Invoice + tiene_servicio: true + servicio: invoices.service.ts + - name: InvoiceItem + tiene_servicio: true + servicio: invoices.service.ts + - name: PaymentMethod + tiene_servicio: false + - name: PlanFeature + tiene_servicio: false + - name: PlanLimit + tiene_servicio: true + servicio: plan-limits.service.ts + - name: StripeEvent + tiene_servicio: true + servicio: stripe-webhook.service.ts + - name: SubscriptionPlan + tiene_servicio: true + servicio: subscription-plans.service.ts + - name: TenantSubscription + tiene_servicio: true + servicio: subscriptions.service.ts + - name: UsageEvent + tiene_servicio: true + servicio: usage-tracking.service.ts + - name: UsageTracking + tiene_servicio: true + servicio: usage-tracking.service.ts + servicios_existentes: + - services/coupons.service.ts + - services/invoices.service.ts + - services/plan-limits.service.ts + - services/stripe-webhook.service.ts + - services/subscription-plans.service.ts + - services/subscriptions.service.ts + - services/usage-tracking.service.ts + servicios_faltantes: + - BillingAlertService + - PaymentMethodService + - PlanFeatureService + + # ===== MODULO: biometrics ===== + - nombre: biometrics + entidades: + - name: BiometricCredential + tiene_servicio: false + - name: Device + tiene_servicio: false + - name: DeviceActivityLog + tiene_servicio: false + - name: DeviceSession + tiene_servicio: false + servicios_existentes: [] + servicios_faltantes: + - BiometricCredentialService + - BiometricDeviceService + - DeviceActivityService + - DeviceSessionService + + # ===== MODULO: branches ===== + - nombre: branches + entidades: + - name: Branch + tiene_servicio: true + servicio: branches.service.ts + - name: BranchInventorySettings + tiene_servicio: false + - name: BranchPaymentTerminal + tiene_servicio: false + - name: BranchSchedule + tiene_servicio: false + - name: UserBranchAssignment + tiene_servicio: false + servicios_existentes: + - services/branches.service.ts + servicios_faltantes: + - BranchInventorySettingsService + - BranchPaymentTerminalService + - BranchScheduleService + - UserBranchAssignmentService + + # ===== MODULO: carta-porte ===== + - nombre: carta-porte + entidades: + - name: AutotransporteCartaPorte + tiene_servicio: false + - name: CartaPorte + tiene_servicio: false + - name: FiguraTransporte + tiene_servicio: false + - name: HosLog + tiene_servicio: false + - name: InspeccionPreViaje + tiene_servicio: false + - name: MercanciaCartaPorte + tiene_servicio: false + - name: UbicacionCartaPorte + tiene_servicio: false + servicios_existentes: [] + servicios_faltantes: + - CartaPorteService + - AutotransporteService + - FiguraTransporteService + - HosLogService + - InspeccionPreViajeService + - MercanciaCartaPorteService + - UbicacionCartaPorteService + + # ===== MODULO: combustible-gastos ===== + - nombre: combustible-gastos + entidades: + - name: AnticipoViatico + tiene_servicio: false + - name: CargaCombustible + tiene_servicio: false + - name: ControlRendimiento + tiene_servicio: false + - name: CrucePeaje + tiene_servicio: false + - name: GastoViaje + tiene_servicio: false + servicios_existentes: [] + servicios_faltantes: + - AnticipoViaticoService + - CargaCombustibleService + - ControlRendimientoService + - CrucePeajeService + - GastoViajeService + + # ===== MODULO: companies ===== + - nombre: companies + entidades: [] # usa entidad de auth + servicios_existentes: + - companies.service.ts + servicios_faltantes: [] + + # ===== MODULO: core ===== + - nombre: core + entidades: + - name: Country + tiene_servicio: true + servicio: countries.service.ts + - name: Currency + tiene_servicio: true + servicio: currencies.service.ts + - name: CurrencyRate + tiene_servicio: true + servicio: currency-rates.service.ts + - name: DiscountRule + tiene_servicio: true + servicio: discount-rules.service.ts + - name: PaymentTerm + tiene_servicio: true + servicio: payment-terms.service.ts + - name: ProductCategory + tiene_servicio: true + servicio: product-categories.service.ts + - name: Sequence + tiene_servicio: true + servicio: sequences.service.ts + - name: State + tiene_servicio: true + servicio: states.service.ts + - name: Tenant + tiene_servicio: false + - name: Uom + tiene_servicio: true + servicio: uom.service.ts + - name: UomCategory + tiene_servicio: true + servicio: uom.service.ts + - name: User + tiene_servicio: false + servicios_existentes: + - countries.service.ts + - currencies.service.ts + - currency-rates.service.ts + - discount-rules.service.ts + - payment-terms.service.ts + - product-categories.service.ts + - sequences.service.ts + - states.service.ts + - uom.service.ts + servicios_faltantes: + - TenantService (core-level) + - UserService (core-level) + + # ===== MODULO: feature-flags ===== + - nombre: feature-flags + entidades: + - name: Flag + tiene_servicio: false + - name: FlagEvaluation + tiene_servicio: false + - name: TenantOverride + tiene_servicio: false + servicios_existentes: [] + servicios_faltantes: + - FeatureFlagService + - FlagEvaluationService + - TenantOverrideService + + # ===== MODULO: financial ===== + - nombre: financial + entidades: + - name: Account + tiene_servicio: true + servicio: accounts.service.ts + - name: AccountMapping + tiene_servicio: false + - name: AccountType + tiene_servicio: false + - name: BankReconciliationRule + tiene_servicio: true + servicio: bank-reconciliation.service.ts + - name: BankStatement + tiene_servicio: true + servicio: bank-reconciliation.service.ts + - name: BankStatementLine + tiene_servicio: true + servicio: bank-reconciliation.service.ts + - name: FiscalPeriod + tiene_servicio: true + servicio: fiscalPeriods.service.ts + - name: FiscalYear + tiene_servicio: true + servicio: fiscalPeriods.service.ts + - name: Invoice + tiene_servicio: true + servicio: invoices.service.ts + - name: InvoiceLine + tiene_servicio: true + servicio: invoices.service.ts + - name: Journal + tiene_servicio: true + servicio: journals.service.ts + - name: JournalEntry + tiene_servicio: true + servicio: journal-entries.service.ts + - name: JournalEntryLine + tiene_servicio: true + servicio: journal-entries.service.ts + - name: Payment + tiene_servicio: true + servicio: payments.service.ts + - name: Tax + tiene_servicio: true + servicio: taxes.service.ts + servicios_existentes: + - accounts.service.ts + - fiscalPeriods.service.ts + - gl-posting.service.ts + - invoices.service.ts + - journal-entries.service.ts + - journals.service.ts + - payments.service.ts + - services/bank-reconciliation.service.ts + - taxes.service.ts + servicios_faltantes: + - AccountMappingService + - AccountTypeService + + # ===== MODULO: fiscal ===== + - nombre: fiscal + entidades: + - name: CfdiUse + tiene_servicio: true + servicio: fiscal-catalogs.service.ts + - name: FiscalRegime + tiene_servicio: true + servicio: fiscal-catalogs.service.ts + - name: PaymentMethod + tiene_servicio: true + servicio: fiscal-catalogs.service.ts + - name: PaymentType + tiene_servicio: true + servicio: fiscal-catalogs.service.ts + - name: TaxCategory + tiene_servicio: true + servicio: fiscal-catalogs.service.ts + - name: WithholdingType + tiene_servicio: true + servicio: fiscal-catalogs.service.ts + servicios_existentes: + - fiscal-catalogs.service.ts + servicios_faltantes: [] + + # ===== MODULO: gestion-flota ===== + - nombre: gestion-flota + entidades: + - name: Operador + tiene_servicio: true + servicio: operadores.service.ts + - name: Product + tiene_servicio: true + servicio: products.service.ts + - name: ProductAttribute + tiene_servicio: false + - name: ProductAttributeValue + tiene_servicio: false + - name: ProductCategory + tiene_servicio: false + - name: ProductPrice + tiene_servicio: false + - name: ProductSupplier + tiene_servicio: false + - name: ProductVariant + tiene_servicio: false + - name: Unidad + tiene_servicio: true + servicio: unidades.service.ts + servicios_existentes: + - products.service.ts + - services/operadores.service.ts + - services/products.service.ts + - services/unidades.service.ts + servicios_faltantes: + - ProductAttributeService + - ProductPriceService + - ProductSupplierService + - ProductVariantService + - ProductCategoryService (gestion-flota specific) + + # ===== MODULO: hr ===== + - nombre: hr + entidades: + - name: Contract + tiene_servicio: false + - name: Department + tiene_servicio: false + - name: Employee + tiene_servicio: false + - name: Leave + tiene_servicio: false + - name: LeaveAllocation + tiene_servicio: false + - name: LeaveType + tiene_servicio: false + - name: Puesto + tiene_servicio: false + servicios_existentes: [] + servicios_faltantes: + - EmployeeService + - ContractService + - DepartmentService + - LeaveService + - LeaveAllocationService + - LeaveTypeService + - PuestoService + + # ===== MODULO: inventory ===== + - nombre: inventory + entidades: + - name: InventoryAdjustment + tiene_servicio: true + servicio: adjustments.service.ts + - name: InventoryAdjustmentLine + tiene_servicio: true + servicio: adjustments.service.ts + - name: InventoryCount + tiene_servicio: false + - name: InventoryCountLine + tiene_servicio: false + - name: Location + tiene_servicio: true + servicio: locations.service.ts + - name: Lot + tiene_servicio: true + servicio: lots.service.ts + - name: Picking + tiene_servicio: true + servicio: pickings.service.ts + - name: Product + tiene_servicio: true + servicio: products.service.ts + - name: StockLevel + tiene_servicio: false + - name: StockMove + tiene_servicio: false + - name: StockMovement + tiene_servicio: false + - name: StockQuant + tiene_servicio: false + - name: StockValuationLayer + tiene_servicio: true + servicio: valuation.service.ts + - name: TransferOrder + tiene_servicio: false + - name: TransferOrderLine + tiene_servicio: false + servicios_existentes: + - adjustments.service.ts + - locations.service.ts + - lots.service.ts + - pickings.service.ts + - products.service.ts + - reorder-alerts.service.ts + - services/inventory.service.ts + - stock-reservation.service.ts + - valuation.service.ts + - warehouses.service.ts + servicios_faltantes: + - InventoryCountService + - StockLevelService + - StockMoveService + - StockQuantService + - TransferOrderService + + # ===== MODULO: invoices ===== + - nombre: invoices + entidades: + - name: Invoice + tiene_servicio: false + - name: InvoiceItem + tiene_servicio: false + - name: Payment + tiene_servicio: false + - name: PaymentAllocation + tiene_servicio: false + servicios_existentes: [] + servicios_faltantes: + - InvoiceService (invoices module) + - PaymentService (invoices module) + - PaymentAllocationService + + # ===== MODULO: mcp ===== + - nombre: mcp + entidades: + - name: ToolCall + tiene_servicio: true + servicio: tool-logger.service.ts + - name: ToolCallResult + tiene_servicio: true + servicio: tool-logger.service.ts + servicios_existentes: + - services/mcp-server.service.ts + - services/tool-logger.service.ts + - services/tool-registry.service.ts + - tools/branch-tools.service.ts + - tools/customers-tools.service.ts + - tools/fiados-tools.service.ts + - tools/financial-tools.service.ts + - tools/inventory-tools.service.ts + - tools/orders-tools.service.ts + - tools/products-tools.service.ts + - tools/sales-tools.service.ts + servicios_faltantes: [] + + # ===== MODULO: notifications ===== + - nombre: notifications + entidades: + - name: Channel + tiene_servicio: false + - name: InAppNotification + tiene_servicio: false + - name: Notification + tiene_servicio: true + servicio: notifications.service.ts + - name: NotificationBatch + tiene_servicio: false + - name: Preference + tiene_servicio: false + - name: Template + tiene_servicio: false + servicios_existentes: + - services/notifications.service.ts + servicios_faltantes: + - ChannelService + - InAppNotificationService + - NotificationBatchService + - PreferenceService + - TemplateService + + # ===== MODULO: ordenes-transporte ===== + - nombre: ordenes-transporte + entidades: + - name: OrdenTransporte + tiene_servicio: true + servicio: ordenes-transporte.service.ts + - name: Quotation + tiene_servicio: true + servicio: quotations.service.ts + - name: QuotationItem + tiene_servicio: true + servicio: quotations.service.ts + - name: SalesOrder + tiene_servicio: true + servicio: orders.service.ts + - name: SalesOrderItem + tiene_servicio: true + servicio: orders.service.ts + servicios_existentes: + - customer-groups.service.ts + - orders.service.ts + - pricelists.service.ts + - quotations.service.ts + - sales-teams.service.ts + - services/ordenes-transporte.service.ts + servicios_faltantes: [] + + # ===== MODULO: partners ===== + - nombre: partners + entidades: + - name: Partner + tiene_servicio: true + servicio: partners.service.ts + - name: PartnerAddress + tiene_servicio: false + - name: PartnerBankAccount + tiene_servicio: false + - name: PartnerContact + tiene_servicio: false + - name: PartnerSegment + tiene_servicio: false + - name: PartnerTaxInfo + tiene_servicio: false + servicios_existentes: + - partners.service.ts + - ranking.service.ts + - services/partners.service.ts + servicios_faltantes: + - PartnerAddressService + - PartnerBankAccountService + - PartnerContactService + - PartnerSegmentService + - PartnerTaxInfoService + + # ===== MODULO: payment-terminals ===== + - nombre: payment-terminals + entidades: + - name: TenantTerminalConfig + tiene_servicio: true + servicio: terminals.service.ts + - name: TerminalPayment + tiene_servicio: true + servicio: terminals.service.ts + - name: TerminalWebhookEvent + tiene_servicio: true + servicio: terminals.service.ts + servicios_existentes: + - services/clip.service.ts + - services/mercadopago.service.ts + - services/terminals.service.ts + servicios_faltantes: [] + + # ===== MODULO: products ===== + - nombre: products + entidades: + - name: Product + tiene_servicio: false + - name: ProductAttribute + tiene_servicio: false + - name: ProductAttributeValue + tiene_servicio: false + - name: ProductCategory + tiene_servicio: false + - name: ProductPrice + tiene_servicio: false + - name: ProductSupplier + tiene_servicio: false + - name: ProductVariant + tiene_servicio: false + servicios_existentes: [] + servicios_faltantes: + - ProductService (products module) + - ProductAttributeService + - ProductCategoryService + - ProductPriceService + - ProductSupplierService + - ProductVariantService + + # ===== MODULO: profiles ===== + - nombre: profiles + entidades: + - name: Person + tiene_servicio: false + - name: ProfileModule + tiene_servicio: false + - name: ProfileTool + tiene_servicio: false + - name: UserProfile + tiene_servicio: false + - name: UserProfileAssignment + tiene_servicio: false + servicios_existentes: [] + servicios_faltantes: + - PersonService + - ProfileModuleService + - ProfileToolService + - UserProfileService + - UserProfileAssignmentService + + # ===== MODULO: projects ===== + - nombre: projects + entidades: + - name: Timesheet + tiene_servicio: false + servicios_existentes: [] + servicios_faltantes: + - TimesheetService (projects module) + + # ===== MODULO: purchase ===== + - nombre: purchase + entidades: + - name: MatchingException + tiene_servicio: false + - name: PurchaseMatchingLine + tiene_servicio: false + - name: PurchaseOrderMatching + tiene_servicio: false + - name: PurchaseReceipt + tiene_servicio: false + - name: PurchaseReceiptItem + tiene_servicio: false + servicios_existentes: [] + servicios_faltantes: + - PurchaseMatchingService + - PurchaseReceiptService + - MatchingExceptionService + + # ===== MODULO: reports ===== + - nombre: reports + entidades: + - name: CustomReport + tiene_servicio: false + - name: Dashboard + tiene_servicio: false + - name: DashboardWidget + tiene_servicio: false + - name: DataModelEntity + tiene_servicio: false + - name: DataModelField + tiene_servicio: false + - name: DataModelRelationship + tiene_servicio: false + - name: KpiSnapshot + tiene_servicio: false + - name: Report + tiene_servicio: false + - name: ReportExecution + tiene_servicio: false + - name: ReportRecipient + tiene_servicio: false + - name: ReportSchedule + tiene_servicio: false + - name: ScheduleExecution + tiene_servicio: false + - name: WidgetQuery + tiene_servicio: false + servicios_existentes: [] + servicios_faltantes: + - ReportService + - DashboardService + - DashboardWidgetService + - DataModelService + - KpiService + - ReportExecutionService + - ReportScheduleService + + # ===== MODULO: sales ===== + - nombre: sales + entidades: + - name: Quotation + tiene_servicio: false + - name: QuotationItem + tiene_servicio: false + - name: SalesOrder + tiene_servicio: false + - name: SalesOrderItem + tiene_servicio: false + servicios_existentes: [] + servicios_faltantes: + - QuotationService (sales module) + - SalesOrderService + + # ===== MODULO: settings ===== + - nombre: settings + entidades: + - name: PlanSetting + tiene_servicio: false + - name: SystemSetting + tiene_servicio: false + - name: TenantSetting + tiene_servicio: false + - name: UserPreference + tiene_servicio: false + servicios_existentes: [] + servicios_faltantes: + - PlanSettingService + - SystemSettingService + - TenantSettingService + - UserPreferenceService + + # ===== MODULO: storage ===== + - nombre: storage + entidades: + - name: Bucket + tiene_servicio: false + - name: File + tiene_servicio: false + - name: FileAccessToken + tiene_servicio: false + - name: FileShare + tiene_servicio: false + - name: Folder + tiene_servicio: false + - name: TenantUsage + tiene_servicio: false + - name: Upload + tiene_servicio: false + servicios_existentes: [] + servicios_faltantes: + - BucketService + - FileService + - FileAccessTokenService + - FileShareService + - FolderService + - StorageUsageService + - UploadService + + # ===== MODULO: tarifas-transporte ===== + - nombre: tarifas-transporte + entidades: + - name: FacturaTransporte + tiene_servicio: false + - name: FuelSurcharge + tiene_servicio: false + - name: Lane + tiene_servicio: false + - name: LineaFactura + tiene_servicio: false + - name: RecargoCatalogo + tiene_servicio: false + - name: Tarifa + tiene_servicio: false + servicios_existentes: [] + servicios_faltantes: + - FacturaTransporteService + - FuelSurchargeService + - LaneService + - TarifaService + - RecargoCatalogoService + + # ===== MODULO: tracking ===== + - nombre: tracking + entidades: + - name: EventoTracking + tiene_servicio: true + servicio: tracking.service.ts + - name: Geocerca + tiene_servicio: true + servicio: tracking.service.ts + servicios_existentes: + - services/tracking.service.ts + servicios_faltantes: [] + + # ===== MODULO: viajes ===== + - nombre: viajes + entidades: + - name: ParadaViaje + tiene_servicio: false + - name: Pod + tiene_servicio: false + - name: Timesheet + tiene_servicio: true + servicio: timesheets.service.ts + - name: Viaje + tiene_servicio: true + servicio: viajes.service.ts + servicios_existentes: + - billing.service.ts + - hr-integration.service.ts + - projects.service.ts + - services/viajes.service.ts + - tasks.service.ts + - timesheets.service.ts + servicios_faltantes: + - ParadaViajeService + - PodService + + # ===== MODULO: warehouses ===== + - nombre: warehouses + entidades: + - name: Warehouse + tiene_servicio: false + - name: WarehouseLocation + tiene_servicio: false + - name: WarehouseZone + tiene_servicio: false + servicios_existentes: [] + servicios_faltantes: + - WarehouseService + - WarehouseLocationService + - WarehouseZoneService + + # ===== MODULO: webhooks ===== + - nombre: webhooks + entidades: + - name: Delivery + tiene_servicio: false + - name: Endpoint + tiene_servicio: false + - name: EndpointLog + tiene_servicio: false + - name: Event + tiene_servicio: false + - name: EventType + tiene_servicio: false + - name: Subscription + tiene_servicio: false + servicios_existentes: [] + servicios_faltantes: + - WebhookDeliveryService + - WebhookEndpointService + - WebhookEventService + - WebhookSubscriptionService + + # ===== MODULO: whatsapp ===== + - nombre: whatsapp + entidades: + - name: Account + tiene_servicio: false + - name: Automation + tiene_servicio: false + - name: Broadcast + tiene_servicio: false + - name: BroadcastRecipient + tiene_servicio: false + - name: Contact + tiene_servicio: false + - name: Conversation + tiene_servicio: false + - name: Message + tiene_servicio: false + - name: MessageStatusUpdate + tiene_servicio: false + - name: QuickReply + tiene_servicio: false + - name: Template + tiene_servicio: false + servicios_existentes: [] + servicios_faltantes: + - WhatsAppAccountService + - WhatsAppAutomationService + - WhatsAppBroadcastService + - WhatsAppContactService + - WhatsAppConversationService + - WhatsAppMessageService + - WhatsAppTemplateService + +# ============================================ +# PRIORIZACION DE IMPLEMENTACION +# ============================================ +prioridad_implementacion: + # Prioridad 1: Base de Autenticacion + - orden: 1 + modulo: auth + servicios_criticos: + - RoleService + - PermissionService + - SessionService + - OAuthService + - MfaService + justificacion: "Fundamento para control de acceso y seguridad. Todos los demas modulos dependen de autenticacion." + entidades_afectadas: 20 + esfuerzo_estimado: "Alto" + + # Prioridad 2: Gestion de Clientes/Partners + - orden: 2 + modulo: partners + servicios_criticos: + - PartnerAddressService + - PartnerContactService + - PartnerBankAccountService + - PartnerTaxInfoService + justificacion: "Core del negocio - clientes y proveedores son esenciales para operaciones de transporte." + entidades_afectadas: 6 + esfuerzo_estimado: "Medio" + + # Prioridad 3: Sucursales + - orden: 3 + modulo: branches + servicios_criticos: + - BranchInventorySettingsService + - BranchScheduleService + - UserBranchAssignmentService + justificacion: "Depende de auth. Necesario para operaciones multi-sucursal." + entidades_afectadas: 5 + esfuerzo_estimado: "Medio" + + # Prioridad 4: Gestion de Flota (Transportistas) + - orden: 4 + modulo: gestion-flota + servicios_criticos: + - ProductAttributeService + - ProductPriceService + - ProductSupplierService + justificacion: "Especifico del vertical transportistas - gestion de vehiculos y operadores." + entidades_afectadas: 9 + esfuerzo_estimado: "Medio" + + # Prioridad 5: Inventario + - orden: 5 + modulo: inventory + servicios_criticos: + - InventoryCountService + - StockMoveService + - StockQuantService + - TransferOrderService + justificacion: "Depende de branches. Necesario para control de stock y logistica." + entidades_afectadas: 16 + esfuerzo_estimado: "Alto" + + # Prioridad 6: Viajes y Tracking (Core Transportistas) + - orden: 6 + modulo: viajes + servicios_criticos: + - ParadaViajeService + - PodService + justificacion: "Core del vertical transportistas - seguimiento de viajes." + entidades_afectadas: 4 + esfuerzo_estimado: "Bajo" + + # Prioridad 7: Carta Porte (Regulatorio Transportistas) + - orden: 7 + modulo: carta-porte + servicios_criticos: + - CartaPorteService + - AutotransporteService + - MercanciaCartaPorteService + justificacion: "Obligatorio para cumplimiento regulatorio SAT Mexico." + entidades_afectadas: 7 + esfuerzo_estimado: "Alto" + + # Prioridad 8: Tarifas Transporte + - orden: 8 + modulo: tarifas-transporte + servicios_criticos: + - TarifaService + - LaneService + - FuelSurchargeService + justificacion: "Necesario para cotizacion y facturacion de servicios de transporte." + entidades_afectadas: 6 + esfuerzo_estimado: "Medio" + + # Prioridad 9: Combustible y Gastos + - orden: 9 + modulo: combustible-gastos + servicios_criticos: + - CargaCombustibleService + - GastoViajeService + - ControlRendimientoService + justificacion: "Control de costos operativos de flota." + entidades_afectadas: 5 + esfuerzo_estimado: "Medio" + + # Prioridad 10: Financial (Contabilidad) + - orden: 10 + modulo: financial + servicios_criticos: + - AccountMappingService + - AccountTypeService + justificacion: "Depende de sales. Ya tiene buena cobertura, solo faltan 2 servicios." + entidades_afectadas: 15 + esfuerzo_estimado: "Bajo" + +# ============================================ +# TOP 5 SERVICIOS CRITICOS A IMPLEMENTAR +# ============================================ +top_5_servicios_criticos: + - servicio: CartaPorteService + modulo: carta-porte + razon: "Cumplimiento regulatorio SAT - OBLIGATORIO para operaciones de transporte en Mexico" + dependencias: + - gestion-flota/unidades + - gestion-flota/operadores + - partners + complejidad: "Alta" + + - servicio: RoleService + PermissionService + modulo: auth + razon: "Base para control de acceso - todos los endpoints dependen de roles y permisos" + dependencias: [] + complejidad: "Media" + + - servicio: TarifaService + modulo: tarifas-transporte + razon: "Core de cotizacion y facturacion de servicios de transporte" + dependencias: + - partners + - gestion-flota/unidades + complejidad: "Media" + + - servicio: CargaCombustibleService + modulo: combustible-gastos + razon: "Control de costos operativos - mayor gasto en empresas de transporte" + dependencias: + - gestion-flota/unidades + - viajes + complejidad: "Media" + + - servicio: ViajeService (ya existe, necesita ParadaViajeService y PodService) + modulo: viajes + razon: "Core operativo - tracking de entregas y prueba de entrega (POD)" + dependencias: + - gestion-flota/unidades + - gestion-flota/operadores + - tracking + complejidad: "Media" + +# ============================================ +# MODULOS SIN NINGUN SERVICIO (CRITICO) +# ============================================ +modulos_sin_servicios: + - biometrics # 4 entidades + - carta-porte # 7 entidades - CRITICO REGULATORIO + - combustible-gastos # 5 entidades - CRITICO OPERATIVO + - feature-flags # 3 entidades + - hr # 7 entidades + - invoices # 4 entidades + - products # 7 entidades + - profiles # 5 entidades + - projects # 1 entidad + - purchase # 5 entidades + - reports # 13 entidades + - sales # 4 entidades + - settings # 4 entidades + - storage # 7 entidades + - tarifas-transporte # 6 entidades - CRITICO NEGOCIO + - warehouses # 3 entidades + - webhooks # 6 entidades + - whatsapp # 10 entidades + +total_modulos_sin_servicios: 18 + +# ============================================ +# METRICAS FINALES +# ============================================ +metricas: + entidades_con_servicio: 81 + entidades_sin_servicio: 157 + porcentaje_cobertura: "34%" + modulos_con_cobertura_completa: + - fiscal (6/6 entidades) + - mcp (2/2 entidades) + - ordenes-transporte (5/5 entidades) + - payment-terminals (3/3 entidades) + - tracking (2/2 entidades) + modulos_con_cobertura_parcial: + - auth (3/20) + - ai (2/7) + - audit (1/7) + - billing-usage (10/13) + - branches (1/5) + - core (10/12) + - financial (13/15) + - gestion-flota (4/9) + - inventory (9/16) + - notifications (1/6) + - partners (1/6) + - viajes (2/4) + +notas: + - "El proyecto tiene entidades duplicadas entre modulos (Product aparece en inventory, products, gestion-flota)" + - "Algunos servicios manejan multiples entidades relacionadas" + - "Los modulos especificos del vertical transportistas (carta-porte, combustible-gastos, tarifas-transporte, viajes, gestion-flota) requieren atencion prioritaria" + - "El modulo reports tiene 13 entidades sin ningun servicio - potencial para generacion de reportes BI"