Saltar a contenido

ADR 024: Ownership de dominios entre plugins

Estado

Aceptado — 2026-07

Relacionado con ADR 023 y plan maestro Fase 0.8.

Decisiones

Conflicto Decisión
pricing vs sales/tariffs pricing = catálogo tarifas reserva/clase; sales = tarifas paquete/ticket + POS
resources vs booking resources resources es dueño de recursos rentables; booking consume /api/v1/resources/resources
accounting vs ledger accounting = plugin de dominio contable (namespace /accounting); histórico ledger absorbido en accounting
control framework vs plugin Framework embebe panel control y API; plugin control legacy opcional
Contratos/convenios legacy Fase 2: extender discounts o plugin contracts
Pagos en wizard reserva payments dueño; booking usa capability payments (degradación graceful)
Clientes en reserva clients dueño; booking referencia client_ref por HTTP

Integración entre plugins

Solo HTTP (/api/v1/{namespace}) y capabilities (GET /api/v1/control/capabilities). Sin imports Python cruzados.

Consecuencias

  • pricing.register_resources debe implementar CRUD real (no no-op).
  • Booking no duplica tablas de recursos ni clientes.
  • Sales no redefine tarifas de reserva; delega lookup a pricing.