Fix Phase 4 service catalogue foreign key
This commit is contained in:
@@ -16,7 +16,7 @@ def upgrade():
|
|||||||
op.create_index("ix_registration_types_code","registration_types",["code"])
|
op.create_index("ix_registration_types_code","registration_types",["code"])
|
||||||
op.create_table("client_related_persons",sa.Column("id",sa.Integer(),primary_key=True),sa.Column("tenant_id",sa.Integer(),sa.ForeignKey("tenants.id",ondelete="CASCADE"),nullable=False),sa.Column("client_id",sa.Integer(),sa.ForeignKey("clients.id",ondelete="CASCADE"),nullable=False),sa.Column("person_type",sa.String(60),nullable=False),sa.Column("full_name",sa.String(200),nullable=False),sa.Column("designation",sa.String(120)),sa.Column("pan",sa.String(20)),sa.Column("din",sa.String(20)),sa.Column("date_of_birth",sa.Date()),sa.Column("appointment_date",sa.Date()),sa.Column("cessation_date",sa.Date()),sa.Column("mobile",sa.String(20)),sa.Column("email",sa.String(255)),sa.Column("authorised_signatory",sa.Boolean(),nullable=False,server_default=sa.false()),sa.Column("is_active",sa.Boolean(),nullable=False,server_default=sa.true()),sa.Column("notes",sa.Text()),sa.Column("created_by_user_id",sa.Integer(),sa.ForeignKey("users.id",ondelete="SET NULL")),sa.Column("created_at_utc",sa.DateTime(timezone=True),nullable=False),sa.Column("updated_at_utc",sa.DateTime(timezone=True),nullable=False))
|
op.create_table("client_related_persons",sa.Column("id",sa.Integer(),primary_key=True),sa.Column("tenant_id",sa.Integer(),sa.ForeignKey("tenants.id",ondelete="CASCADE"),nullable=False),sa.Column("client_id",sa.Integer(),sa.ForeignKey("clients.id",ondelete="CASCADE"),nullable=False),sa.Column("person_type",sa.String(60),nullable=False),sa.Column("full_name",sa.String(200),nullable=False),sa.Column("designation",sa.String(120)),sa.Column("pan",sa.String(20)),sa.Column("din",sa.String(20)),sa.Column("date_of_birth",sa.Date()),sa.Column("appointment_date",sa.Date()),sa.Column("cessation_date",sa.Date()),sa.Column("mobile",sa.String(20)),sa.Column("email",sa.String(255)),sa.Column("authorised_signatory",sa.Boolean(),nullable=False,server_default=sa.false()),sa.Column("is_active",sa.Boolean(),nullable=False,server_default=sa.true()),sa.Column("notes",sa.Text()),sa.Column("created_by_user_id",sa.Integer(),sa.ForeignKey("users.id",ondelete="SET NULL")),sa.Column("created_at_utc",sa.DateTime(timezone=True),nullable=False),sa.Column("updated_at_utc",sa.DateTime(timezone=True),nullable=False))
|
||||||
for c in ["tenant_id","client_id","person_type","pan","din"]: op.create_index(f"ix_client_related_persons_{c}","client_related_persons",[c])
|
for c in ["tenant_id","client_id","person_type","pan","din"]: op.create_index(f"ix_client_related_persons_{c}","client_related_persons",[c])
|
||||||
op.create_table("registration_lifecycle_rules",sa.Column("id",sa.Integer(),primary_key=True),sa.Column("tenant_id",sa.Integer(),sa.ForeignKey("tenants.id",ondelete="CASCADE")),sa.Column("registration_type_id",sa.Integer(),sa.ForeignKey("registration_types.id"),nullable=False),sa.Column("entity_type",sa.String(100)),sa.Column("jurisdiction",sa.String(160)),sa.Column("state_code",sa.String(10)),sa.Column("cycle_type",sa.String(40),nullable=False,server_default="expiry_renewal"),sa.Column("frequency_months",sa.Integer()),sa.Column("renewal_window_days",sa.Integer(),nullable=False,server_default="60"),sa.Column("reminder_days_csv",sa.String(100),nullable=False,server_default="90,60,30,15,7,0"),sa.Column("grace_period_days",sa.Integer(),nullable=False,server_default="0"),sa.Column("service_catalogue_id",sa.Integer(),sa.ForeignKey("service_catalogue.id",ondelete="SET NULL")),sa.Column("requires_client_approval",sa.Boolean(),nullable=False,server_default=sa.false()),sa.Column("requires_partner_review",sa.Boolean(),nullable=False,server_default=sa.false()),sa.Column("auto_create_task",sa.Boolean(),nullable=False,server_default=sa.true()),sa.Column("is_active",sa.Boolean(),nullable=False,server_default=sa.true()),sa.Column("effective_from",sa.Date()),sa.Column("effective_to",sa.Date()),sa.Column("created_by_user_id",sa.Integer(),sa.ForeignKey("users.id",ondelete="SET NULL")),sa.Column("created_at_utc",sa.DateTime(timezone=True),nullable=False),sa.Column("updated_at_utc",sa.DateTime(timezone=True),nullable=False))
|
op.create_table("registration_lifecycle_rules",sa.Column("id",sa.Integer(),primary_key=True),sa.Column("tenant_id",sa.Integer(),sa.ForeignKey("tenants.id",ondelete="CASCADE")),sa.Column("registration_type_id",sa.Integer(),sa.ForeignKey("registration_types.id"),nullable=False),sa.Column("entity_type",sa.String(100)),sa.Column("jurisdiction",sa.String(160)),sa.Column("state_code",sa.String(10)),sa.Column("cycle_type",sa.String(40),nullable=False,server_default="expiry_renewal"),sa.Column("frequency_months",sa.Integer()),sa.Column("renewal_window_days",sa.Integer(),nullable=False,server_default="60"),sa.Column("reminder_days_csv",sa.String(100),nullable=False,server_default="90,60,30,15,7,0"),sa.Column("grace_period_days",sa.Integer(),nullable=False,server_default="0"),sa.Column("service_catalogue_id",sa.Integer(),sa.ForeignKey("service_catalogues.id",ondelete="SET NULL")),sa.Column("requires_client_approval",sa.Boolean(),nullable=False,server_default=sa.false()),sa.Column("requires_partner_review",sa.Boolean(),nullable=False,server_default=sa.false()),sa.Column("auto_create_task",sa.Boolean(),nullable=False,server_default=sa.true()),sa.Column("is_active",sa.Boolean(),nullable=False,server_default=sa.true()),sa.Column("effective_from",sa.Date()),sa.Column("effective_to",sa.Date()),sa.Column("created_by_user_id",sa.Integer(),sa.ForeignKey("users.id",ondelete="SET NULL")),sa.Column("created_at_utc",sa.DateTime(timezone=True),nullable=False),sa.Column("updated_at_utc",sa.DateTime(timezone=True),nullable=False))
|
||||||
for c in ["tenant_id","registration_type_id","entity_type","service_catalogue_id"]: op.create_index(f"ix_registration_lifecycle_rules_{c}","registration_lifecycle_rules",[c])
|
for c in ["tenant_id","registration_type_id","entity_type","service_catalogue_id"]: op.create_index(f"ix_registration_lifecycle_rules_{c}","registration_lifecycle_rules",[c])
|
||||||
op.create_table("client_registrations",sa.Column("id",sa.Integer(),primary_key=True),sa.Column("tenant_id",sa.Integer(),sa.ForeignKey("tenants.id",ondelete="CASCADE"),nullable=False),sa.Column("branch_id",sa.Integer(),sa.ForeignKey("branches.id",ondelete="SET NULL")),sa.Column("client_id",sa.Integer(),sa.ForeignKey("clients.id",ondelete="CASCADE"),nullable=False),sa.Column("registration_type_id",sa.Integer(),sa.ForeignKey("registration_types.id"),nullable=False),sa.Column("related_person_id",sa.Integer(),sa.ForeignKey("client_related_persons.id",ondelete="SET NULL")),sa.Column("registration_number",sa.String(120),nullable=False),sa.Column("jurisdiction",sa.String(160)),sa.Column("state_code",sa.String(10)),sa.Column("issue_date",sa.Date()),sa.Column("effective_from",sa.Date()),sa.Column("valid_until",sa.Date()),sa.Column("next_action_date",sa.Date()),sa.Column("status",sa.String(40),nullable=False,server_default="active"),sa.Column("primary_registration",sa.Boolean(),nullable=False,server_default=sa.false()),sa.Column("lifecycle_rule_id",sa.Integer(),sa.ForeignKey("registration_lifecycle_rules.id")),sa.Column("responsible_party",sa.String(30),nullable=False,server_default="firm"),sa.Column("assigned_user_id",sa.Integer(),sa.ForeignKey("users.id",ondelete="SET NULL")),sa.Column("assigned_consultant_id",sa.Integer(),sa.ForeignKey("consultant_profiles.id",ondelete="SET NULL")),sa.Column("auto_create_task",sa.Boolean(),nullable=False,server_default=sa.true()),sa.Column("portal_url",sa.String(500)),sa.Column("notes",sa.Text()),sa.Column("metadata_json",sa.JSON()),sa.Column("created_by_user_id",sa.Integer(),sa.ForeignKey("users.id",ondelete="SET NULL")),sa.Column("created_at_utc",sa.DateTime(timezone=True),nullable=False),sa.Column("updated_at_utc",sa.DateTime(timezone=True),nullable=False),sa.UniqueConstraint("tenant_id","registration_type_id","registration_number",name="uq_client_registration_number"))
|
op.create_table("client_registrations",sa.Column("id",sa.Integer(),primary_key=True),sa.Column("tenant_id",sa.Integer(),sa.ForeignKey("tenants.id",ondelete="CASCADE"),nullable=False),sa.Column("branch_id",sa.Integer(),sa.ForeignKey("branches.id",ondelete="SET NULL")),sa.Column("client_id",sa.Integer(),sa.ForeignKey("clients.id",ondelete="CASCADE"),nullable=False),sa.Column("registration_type_id",sa.Integer(),sa.ForeignKey("registration_types.id"),nullable=False),sa.Column("related_person_id",sa.Integer(),sa.ForeignKey("client_related_persons.id",ondelete="SET NULL")),sa.Column("registration_number",sa.String(120),nullable=False),sa.Column("jurisdiction",sa.String(160)),sa.Column("state_code",sa.String(10)),sa.Column("issue_date",sa.Date()),sa.Column("effective_from",sa.Date()),sa.Column("valid_until",sa.Date()),sa.Column("next_action_date",sa.Date()),sa.Column("status",sa.String(40),nullable=False,server_default="active"),sa.Column("primary_registration",sa.Boolean(),nullable=False,server_default=sa.false()),sa.Column("lifecycle_rule_id",sa.Integer(),sa.ForeignKey("registration_lifecycle_rules.id")),sa.Column("responsible_party",sa.String(30),nullable=False,server_default="firm"),sa.Column("assigned_user_id",sa.Integer(),sa.ForeignKey("users.id",ondelete="SET NULL")),sa.Column("assigned_consultant_id",sa.Integer(),sa.ForeignKey("consultant_profiles.id",ondelete="SET NULL")),sa.Column("auto_create_task",sa.Boolean(),nullable=False,server_default=sa.true()),sa.Column("portal_url",sa.String(500)),sa.Column("notes",sa.Text()),sa.Column("metadata_json",sa.JSON()),sa.Column("created_by_user_id",sa.Integer(),sa.ForeignKey("users.id",ondelete="SET NULL")),sa.Column("created_at_utc",sa.DateTime(timezone=True),nullable=False),sa.Column("updated_at_utc",sa.DateTime(timezone=True),nullable=False),sa.UniqueConstraint("tenant_id","registration_type_id","registration_number",name="uq_client_registration_number"))
|
||||||
for c in ["tenant_id","branch_id","client_id","registration_type_id","related_person_id","registration_number","valid_until","next_action_date","status","lifecycle_rule_id","assigned_user_id","assigned_consultant_id"]: op.create_index(f"ix_client_registrations_{c}","client_registrations",[c])
|
for c in ["tenant_id","branch_id","client_id","registration_type_id","related_person_id","registration_number","valid_until","next_action_date","status","lifecycle_rule_id","assigned_user_id","assigned_consultant_id"]: op.create_index(f"ix_client_registrations_{c}","client_registrations",[c])
|
||||||
@@ -30,3 +30,4 @@ def upgrade():
|
|||||||
|
|
||||||
def downgrade():
|
def downgrade():
|
||||||
for table in ["client_registration_actions","registration_renewal_task_documents","registration_renewal_tasks","registration_document_templates","client_digital_signatures","client_registrations","registration_lifecycle_rules","client_related_persons","registration_types"]: op.drop_table(table)
|
for table in ["client_registration_actions","registration_renewal_task_documents","registration_renewal_tasks","registration_document_templates","client_digital_signatures","client_registrations","registration_lifecycle_rules","client_related_persons","registration_types"]: op.drop_table(table)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user