Skip to content

Plataforma técnica · Sevastopol

Administración en Sevastopol

Islands Administración

El panel de administración del tenant agrupa seis islands que mantienen los datos que rara vez cambian pero condicionan toda la operación: la identidad legal de la empresa, el capital, quién firma, el wiring contable por documento/concepto, las configuraciones de sistema y el bootstrap de cierre del ejercicio.

Las seis consumen /api/admin/* y mapean uno-a-uno con los servicios documentados en Servicios de Administración.

  • Directorysevastopol/src/components/islands/admin/
    • AdminWorkspace.tsx — tokens visuales compartidos (Header, pills, cards, botones)
    • BootstrapCierreIsland.tsx
    • CapitalViewIsland.tsx
    • CompanyViewIsland.tsx
    • ConfigContableViewIsland.tsx
    • LegalRepresentativesViewIsland.tsx
    • SystemConfigViewIsland.tsx
flowchart TB
  subgraph UI["Sevastopol · islands/administracion"]
    COMP["Empresa Island"]
    CAP["Capital Island"]
    LR["Legal Reps Island"]
    CC["Config Contable Island"]
    SC["System Config Island"]
    BC["Bootstrap Cierre Island"]
  end

  subgraph SRV["Orchestrator · services/administracion"]
    CMP["CompanyService"]
    CPS["CapitalService"]
    LRS["LegalRepService"]
    CCS["ConfigContableService"]
    SCS["SystemConfigService"]
  end

  subgraph REPS["Reportes"]
    RPT["BootstrapCierre<br/>reportes/cierre-periodo"]
  end

  subgraph PG["nostromo (tenant)"]
    PC["administracion.plan_contable"]
    CE["administracion.configuracion_empresa"]
    CAPT["administracion.capital"]
    RL["administracion.representantes_legales"]
    CS["administracion.configuracion_sistema"]
    CO["operaciones_sii.config_cuentas_*"]
    BAN["financieros.bancos"]
  end

  COMP --> CMP --> CE
  CAP --> CPS --> CAPT
  CAP -. valida cuenta .-> PC
  CAP -. socio_id .-> LR
  LR --> LRS --> RL
  LR -. crea sub-cuenta .-> PC
  LR -. saldo .-> BAN
  CC --> CCS --> CO
  CC -. valida cuenta .-> PC
  SC --> SCS --> CS
  BC -.-> RPT

Las 7 islands consumen el mismo AdminWorkspace:

ComponenteUso
AdminWorkspaceHeaderHeader con pills, controls y note.
InlineMetricPillMétricas inline (total, activos, pendientes).
WorkspaceSectionCardSección con eyebrow, title, description, pills.
WORKSPACE_SCROLL_HEIGHTAltura estándar para listas largas.
BotonesworkspacePrimaryButtonClass, workspaceSecondaryButtonClass, workspaceDangerButtonClass.
InputsworkspaceFieldClass, workspaceCompactFieldClass, workspaceFieldLabelClass.

useActiveTenant es el único hook común. Las 6 islands se re-pintan al cambiar tenant. Ninguna consume useActivePeriod — los datos de administración son atemporales (configuración del tenant); la excepción es Bootstrap, que pide explícitamente año+mes en sus propios <select> independientes del período activo.

Aunque cada island tiene su propio endpoint, varias dependen entre sí en el frontend para resolver cuentas o representantes — el plan de cuentas es la dependencia transversal más común aunque su UI vive en Command:

IslandEndpoint propioDependencias laterales
Empresa/api/admin/company/api/parameters/giros-comerciales (catálogo SII).
Capital/api/admin/capital/api/admin/representatives (socio), /api/admin/chart-of-accounts (cuentas).
Legal Reps/api/admin/representatives/api/admin/representatives/:id/activar-cuenta (cuenta socio bancaria).
Config Contable/api/admin/config-contable/cuentas y /conceptos/api/admin/chart-of-accounts (selector).
System Config/api/admin/system-config
Bootstrap/api/reportes/bootstrap-cierre/api/auth/validate para verificar rol SUPER_ADMIN.
AcciónRol mínimo
Lectura del panelADMIN
Edición de empresa / capital / reps / configADMIN
Bootstrap del ejercicioSUPER_ADMIN (verificado en cliente vía /api/auth/validate).
ServiceCubre
CompanyServiceDatos legales del tenant.
CapitalServiceMovimientos de capital con outbox.
LegalRepServicePersonas + cuenta socio.
ConfigContableServiceWiring por documento/concepto.
SystemConfigServiceParámetros del sistema.
DecisiónAplica aMotivo
Re-carga completa al cambiar tenantLas 6Cero ambigüedad sobre qué tenant está visible.
Validación de rol antes de operación críticaBootstrapSUPER_ADMIN se valida en cliente para evitar el viaje y dar feedback inmediato; el backend revalida igual.
Cargas en paralelo cuando hay lateralesCapital (3 fetches), Config Contable (3)Cuentas, reps y plan son independientes; serializar es latencia visible.
Confirm en eliminación y desactivaciónCapital, Legal Reps, Config ContableCada una afecta tablas con dependencias contables.
Forms controlados con <input class={workspaceFieldClass}>Las 6Lenguaje visual consistente; sin <Input> de atoms (mantiene neutralidad).
Sin useActivePeriodLas 6 (excepto Bootstrap con <select> propio)La admin del tenant no se filtra por mes contable.