Add scope-aware subscriptions using existing registrations
This commit is contained in:
@@ -37,6 +37,8 @@ class ServiceCatalogue(CommonBase):
|
||||
category_id: Mapped[int | None] = mapped_column(ForeignKey("service_categories.id"), nullable=True, index=True)
|
||||
recurrence_type: Mapped[str | None] = mapped_column(String(30), nullable=True, index=True)
|
||||
engagement_type: Mapped[str] = mapped_column(String(20), nullable=False, default="non_assurance", index=True)
|
||||
service_scope_type: Mapped[str] = mapped_column(String(30), nullable=False, default="client", server_default="client", index=True)
|
||||
required_registration_type: Mapped[str | None] = mapped_column(String(40), nullable=True, index=True)
|
||||
sort_order: Mapped[int] = mapped_column(Integer, nullable=False, default=100)
|
||||
description: Mapped[str | None] = mapped_column(Text, nullable=True)
|
||||
|
||||
@@ -377,8 +379,8 @@ class ClientServicePlan(CommonBase):
|
||||
__tablename__ = "client_service_plans"
|
||||
__table_args__ = (
|
||||
UniqueConstraint(
|
||||
"tenant_id", "client_id", "service_catalogue_id",
|
||||
name="uq_csp_tenant_client_service",
|
||||
"tenant_id", "service_catalogue_id", "scope_key",
|
||||
name="uq_csp_tenant_service_scope",
|
||||
),
|
||||
)
|
||||
|
||||
@@ -386,6 +388,11 @@ class ClientServicePlan(CommonBase):
|
||||
tenant_id: Mapped[int] = mapped_column(ForeignKey("tenants.id", ondelete="CASCADE"), nullable=False, index=True)
|
||||
branch_id: Mapped[int | None] = mapped_column(ForeignKey("branches.id", ondelete="SET NULL"), nullable=True, index=True)
|
||||
client_id: Mapped[int] = mapped_column(ForeignKey("clients.id", ondelete="CASCADE"), nullable=False, index=True)
|
||||
scope_type: Mapped[str] = mapped_column(String(30), nullable=False, default="client", server_default="client", index=True)
|
||||
scope_key: Mapped[str] = mapped_column(String(80), nullable=False, default="", server_default="", index=True)
|
||||
business_unit_id: Mapped[int | None] = mapped_column(ForeignKey("client_business_units.id", ondelete="SET NULL"), nullable=True, index=True)
|
||||
client_branch_id: Mapped[int | None] = mapped_column(ForeignKey("client_branches.id", ondelete="SET NULL"), nullable=True, index=True)
|
||||
registration_id: Mapped[int | None] = mapped_column(ForeignKey("client_registrations.id", ondelete="SET NULL"), nullable=True, index=True)
|
||||
service_catalogue_id: Mapped[int] = mapped_column(ForeignKey("service_catalogues.id", ondelete="CASCADE"), nullable=False, index=True)
|
||||
firm_service_selection_id: Mapped[int | None] = mapped_column(ForeignKey("firm_service_selections.id", ondelete="SET NULL"), nullable=True, index=True)
|
||||
|
||||
@@ -426,11 +433,11 @@ class ClientServiceSubscription(CommonBase):
|
||||
__table_args__ = (
|
||||
UniqueConstraint(
|
||||
"tenant_id",
|
||||
"client_id",
|
||||
"service_catalogue_id",
|
||||
"scope_key",
|
||||
"financial_year",
|
||||
"period_label",
|
||||
name="uq_css_tenant_client_service_fy_period",
|
||||
name="uq_css_tenant_service_scope_fy_period",
|
||||
),
|
||||
)
|
||||
|
||||
@@ -440,6 +447,11 @@ class ClientServiceSubscription(CommonBase):
|
||||
branch_id: Mapped[int | None] = mapped_column(ForeignKey("branches.id"), nullable=True, index=True)
|
||||
service_plan_id: Mapped[int | None] = mapped_column(ForeignKey("client_service_plans.id", ondelete="SET NULL"), nullable=True, index=True)
|
||||
client_id: Mapped[int] = mapped_column(ForeignKey("clients.id", ondelete="CASCADE"), nullable=False, index=True)
|
||||
scope_type: Mapped[str] = mapped_column(String(30), nullable=False, default="client", server_default="client", index=True)
|
||||
scope_key: Mapped[str] = mapped_column(String(80), nullable=False, default="", server_default="", index=True)
|
||||
business_unit_id: Mapped[int | None] = mapped_column(ForeignKey("client_business_units.id", ondelete="SET NULL"), nullable=True, index=True)
|
||||
client_branch_id: Mapped[int | None] = mapped_column(ForeignKey("client_branches.id", ondelete="SET NULL"), nullable=True, index=True)
|
||||
registration_id: Mapped[int | None] = mapped_column(ForeignKey("client_registrations.id", ondelete="SET NULL"), nullable=True, index=True)
|
||||
service_catalogue_id: Mapped[int] = mapped_column(ForeignKey("service_catalogues.id", ondelete="CASCADE"), nullable=False, index=True)
|
||||
firm_service_selection_id: Mapped[int | None] = mapped_column(ForeignKey("firm_service_selections.id", ondelete="SET NULL"), nullable=True, index=True)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user