template-saas/orchestration/inventarios/DATABASE_INVENTORY.yml
Adrian Flores Cortes 1cb357ee81
Some checks are pending
CI / Backend CI (push) Waiting to run
CI / Frontend CI (push) Waiting to run
CI / Security Scan (push) Waiting to run
CI / CI Summary (push) Blocked by required conditions
[SAAS-019] docs: Update SIMCO documentation for Portfolio module
- Add METADATA.yml for TASK-2026-01-25-SAAS-019-PORTFOLIO
- Update DATABASE_INVENTORY.yml with portfolio schema (4 tables)
- Update BACKEND_INVENTORY.yml with portfolio module (4 entities, 2 services)
- Update FRONTEND_INVENTORY.yml with portfolio hooks (21 hooks)
- Update MASTER_INVENTORY.yml - SAAS-019 now completado (SP: 13)
- Update _INDEX.yml with SAAS-019 task entry

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 05:58:24 -06:00

409 lines
9.8 KiB
YAML

---
# DATABASE INVENTORY - Template SaaS
# Version: 3.2.0
# Ultima actualizacion: 2026-01-24
# Nota: Commissions module (SAAS-020) added
metadata:
proyecto: "template-saas"
tipo: "DATABASE"
version: "3.2.0"
updated: "2026-01-24"
motor: "PostgreSQL 16+"
version_motor: "16.x"
estado: "completado"
features:
- "Row-Level Security (RLS)"
- "Multi-tenant isolation"
- "UUID primary keys"
- "JSONB for settings"
schemas:
- nombre: "auth"
descripcion: "Autenticacion y sesiones"
estado: "completado"
tablas:
- sessions
- tokens
- oauth_connections
enums:
- token_type
- oauth_provider
- session_status
funciones:
- cleanup_expired_sessions
- set_current_tenant
- get_current_tenant
- set_current_user
- get_current_user
- clear_context
rls_policies:
- sessions_tenant_isolation
- tokens_tenant_isolation
- oauth_tenant_isolation
- nombre: "tenants"
descripcion: "Multi-tenancy y organizaciones"
estado: "completado"
tablas:
- tenants
- tenant_settings
enums:
- tenant_status
- subscription_status
funciones:
- update_updated_at
rls_policies:
- tenant_settings_isolation
- nombre: "users"
descripcion: "Usuarios, roles y permisos"
estado: "completado"
tablas:
- users
- roles
- invitations
enums:
- user_status
- invitation_status
funciones:
- update_updated_at
- expire_old_invitations
rls_policies:
- users_tenant_isolation
- roles_tenant_isolation
- invitations_tenant_isolation
- nombre: "plans"
descripcion: "Planes y limites"
estado: "completado"
tablas:
- plans
funciones:
- get_tenant_limits
- check_limit
- get_tenant_features
- has_feature
rls_policies: []
- nombre: "billing"
descripcion: "Suscripciones, facturas y pagos"
estado: "completado"
tablas:
- subscriptions
- invoices
- payment_methods
enums:
- payment_status
- invoice_status
- billing_interval
- payment_method_type
- subscription_status
funciones:
- generate_invoice_number
rls_policies:
- subscriptions_tenant_isolation
- invoices_tenant_isolation
- payments_tenant_isolation
- nombre: "notifications"
descripcion: "Sistema de notificaciones v2"
estado: "completado"
tablas:
- notifications
- extended_notifications
enums:
- channel
- notification_status
- priority
- queue_status
- device_type
funciones:
- update_updated_at
rls_policies:
- notifications_tenant_isolation
- user_preferences_tenant_isolation
- nombre: "feature_flags"
descripcion: "Feature toggles"
estado: "completado"
tablas:
- flags
enums:
- flag_status
- rollout_stage
funciones:
- evaluate_flag
rls_policies:
- tenant_flags_isolation
- user_flags_isolation
- nombre: "audit"
descripcion: "Auditoria y logs"
estado: "completado"
tablas:
- audit_logs
enums:
- action_type
- severity
funciones:
- log_event
- cleanup_old_logs
rls_policies:
- audit_logs_tenant_isolation
- nombre: "storage"
descripcion: "Almacenamiento de archivos"
estado: "completado"
tablas:
- files
- storage_usage
enums:
- file_status
- visibility
- storage_provider
funciones:
- update_storage_usage
rls_policies:
- files_tenant_isolation
- storage_usage_tenant_isolation
- nombre: "ai"
descripcion: "Integracion AI"
estado: "completado"
tablas:
- ai_configs
- ai_usage
enums:
- ai_provider
- ai_model_type
- usage_status
funciones:
- track_ai_usage
rls_policies:
- ai_configs_tenant_isolation
- ai_usage_tenant_isolation
- nombre: "webhooks"
descripcion: "Webhooks outbound"
estado: "completado"
tablas:
- webhooks
- deliveries
enums:
- delivery_status
- event_type
funciones:
- retry_webhook
- get_webhook_stats
rls_policies:
- webhooks_tenant_isolation
- deliveries_tenant_isolation
- nombre: "whatsapp"
descripcion: "WhatsApp Business API"
estado: "completado"
tablas:
- whatsapp_configs
- whatsapp_messages
enums:
- message_status
- message_type
- message_direction
funciones: []
rls_policies:
- whatsapp_configs_tenant_isolation
- whatsapp_messages_tenant_isolation
- nombre: "sales"
descripcion: "Sales Foundation - Leads, Oportunidades, Pipeline"
estado: "completado"
tablas:
- leads
- opportunities
- pipeline_stages
- activities
enums:
- lead_status
- lead_source
- opportunity_stage
- activity_type
- activity_status
funciones:
- convert_lead_to_opportunity
- update_opportunity_stage
- calculate_lead_score
- get_pipeline_summary
- initialize_default_stages
rls_policies:
- leads_tenant_isolation
- opportunities_tenant_isolation
- pipeline_stages_tenant_isolation
- activities_tenant_isolation
indices:
- leads_tenant_status_idx
- leads_assigned_to_idx
- leads_source_idx
- leads_score_idx
- opportunities_tenant_stage_idx
- opportunities_assigned_to_idx
- opportunities_expected_close_idx
- pipeline_stages_position_idx
- activities_tenant_type_idx
- activities_lead_idx
- activities_opportunity_idx
- activities_due_date_idx
nota: "SAAS-018 - Implementado 2026-01-24"
- nombre: "commissions"
descripcion: "Sistema de comisiones - Esquemas, Asignaciones, Entradas, Períodos"
estado: "completado"
tablas:
- schemes
- assignments
- entries
- periods
enums:
- scheme_type
- applies_to
- entry_status
- period_status
funciones:
- calculate_commission
- close_period
- get_user_earnings
- apply_tiered_rate
rls_policies:
- schemes_tenant_isolation_select
- schemes_tenant_isolation_insert
- schemes_tenant_isolation_update
- schemes_tenant_isolation_delete
- assignments_tenant_isolation_select
- assignments_tenant_isolation_insert
- assignments_tenant_isolation_update
- assignments_tenant_isolation_delete
- entries_tenant_isolation_select
- entries_tenant_isolation_insert
- entries_tenant_isolation_update
- entries_tenant_isolation_delete
- periods_tenant_isolation_select
- periods_tenant_isolation_insert
- periods_tenant_isolation_update
- periods_tenant_isolation_delete
indices:
- schemes_tenant_active_idx
- schemes_type_idx
- assignments_tenant_user_idx
- assignments_scheme_idx
- assignments_active_dates_idx
- entries_tenant_user_idx
- entries_scheme_idx
- entries_status_idx
- entries_period_idx
- entries_reference_idx
- entries_created_at_idx
- periods_tenant_status_idx
- periods_dates_idx
nota: "SAAS-020 - Implementado 2026-01-24"
- nombre: "portfolio"
descripcion: "Catálogo de productos/servicios - Categorías, Productos, Variantes, Precios"
estado: "completado"
tablas:
- categories
- products
- variants
- prices
enums:
- product_type
- product_status
- price_type
- attribute_type
funciones:
- update_updated_at (triggers)
rls_policies:
- categories_tenant_isolation_select
- categories_tenant_isolation_insert
- categories_tenant_isolation_update
- categories_tenant_isolation_delete
- products_tenant_isolation_select
- products_tenant_isolation_insert
- products_tenant_isolation_update
- products_tenant_isolation_delete
- variants_tenant_isolation_select
- variants_tenant_isolation_insert
- variants_tenant_isolation_update
- variants_tenant_isolation_delete
- prices_tenant_isolation_select
- prices_tenant_isolation_insert
- prices_tenant_isolation_update
- prices_tenant_isolation_delete
indices:
- categories_tenant_slug_idx
- categories_parent_idx
- categories_position_idx
- products_tenant_status_idx
- products_category_idx
- products_sku_idx
- products_barcode_idx
- products_slug_idx
- products_type_idx
- products_featured_idx
- products_visible_idx
- products_price_range_idx
- products_search_idx
- products_tags_idx
- variants_product_idx
- variants_sku_idx
- variants_barcode_idx
- variants_active_idx
- prices_product_idx
- prices_variant_idx
- prices_type_idx
- prices_currency_idx
- prices_active_dates_idx
nota: "SAAS-019 - Implementado 2026-01-25"
resumen:
total_schemas: 15
total_tablas: 38
total_enums: 45
total_funciones: 35
total_rls_policies: 60
total_indices: 93
planificado:
tablas_actuales: 38
tablas_objetivo: 38
estado: "100%"
nota: "Portfolio module (SAAS-019) added 2026-01-25"
ddl_structure:
base_files:
- "00-extensions.sql"
- "01-schemas.sql"
- "02-enums.sql"
- "03-functions.sql"
schema_files:
- "schemas/*/tables/*.sql"
- "schemas/*/rls/*.sql"
- "schemas/*/triggers/*.sql"
seeds:
prod:
- plans: 4
- permissions: 21
- feature_flags: 8
- notification_templates: 6
dev:
- sample_tenants: 3
- sample_users: 10
scripts:
- create-database.sh
- drop-and-recreate.sh
ultima_actualizacion: "2026-01-25"
actualizado_por: "Claude Opus 4.5 (SAAS-019 Portfolio)"