| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- """SQLAlchemy mappings for governance domain templates."""
- from __future__ import annotations
- from sqlalchemy.dialects.postgresql import JSONB, UUID
- from app import db
- from app.core.common.identifiers import new_governance_uid
- class GovernanceDomainTemplate(db.Model):
- __tablename__ = "governance_domain_templates"
- __table_args__ = {"schema": "public"}
- uid = db.Column(UUID(as_uuid=False), primary_key=True, default=new_governance_uid)
- template_code = db.Column(db.String(64), unique=True, nullable=False)
- name = db.Column(db.String(200), nullable=False)
- lifecycle_status = db.Column(db.String(20), nullable=False)
- current_version = db.Column(db.Integer, nullable=False)
- content_hash = db.Column(db.String(64), nullable=False)
- definition = db.Column(JSONB, nullable=False)
- created_at = db.Column(db.DateTime(timezone=True), nullable=False)
- updated_at = db.Column(db.DateTime(timezone=True), nullable=False)
- class GovernanceDomainTemplateVersion(db.Model):
- __tablename__ = "governance_domain_template_versions"
- __table_args__ = (
- db.UniqueConstraint("template_uid", "version"),
- {"schema": "public"},
- )
- uid = db.Column(UUID(as_uuid=False), primary_key=True, default=new_governance_uid)
- template_uid = db.Column(
- UUID(as_uuid=False),
- db.ForeignKey("public.governance_domain_templates.uid"),
- nullable=False,
- )
- version = db.Column(db.Integer, nullable=False)
- content_hash = db.Column(db.String(64), nullable=False)
- definition = db.Column(JSONB, nullable=False)
- actor_uid = db.Column(UUID(as_uuid=False), nullable=False)
- created_at = db.Column(db.DateTime(timezone=True), nullable=False)
- class GovernanceObjectType(db.Model):
- __tablename__ = "governance_object_types"
- __table_args__ = (
- db.UniqueConstraint("template_uid", "type_code"),
- {"schema": "public"},
- )
- uid = db.Column(UUID(as_uuid=False), primary_key=True, default=new_governance_uid)
- template_uid = db.Column(
- UUID(as_uuid=False),
- db.ForeignKey("public.governance_domain_templates.uid"),
- nullable=False,
- )
- type_code = db.Column(db.String(64), nullable=False)
- name = db.Column(db.String(200), nullable=False)
- lifecycle_status = db.Column(db.String(20), nullable=False)
- current_version = db.Column(db.Integer, nullable=False)
- stable_uid_prefix = db.Column(db.String(16), nullable=False)
- source_identity_fields = db.Column(JSONB, nullable=False)
- definition = db.Column(JSONB, nullable=False)
- created_at = db.Column(db.DateTime(timezone=True), nullable=False)
- updated_at = db.Column(db.DateTime(timezone=True), nullable=False)
- class GovernanceDomainTemplateImport(db.Model):
- __tablename__ = "governance_domain_template_imports"
- __table_args__ = {"schema": "public"}
- uid = db.Column(UUID(as_uuid=False), primary_key=True, default=new_governance_uid)
- template_uid = db.Column(
- UUID(as_uuid=False),
- db.ForeignKey("public.governance_domain_templates.uid"),
- nullable=False,
- )
- operation = db.Column(db.String(20), nullable=False)
- status = db.Column(db.String(20), nullable=False)
- version = db.Column(db.Integer, nullable=False)
- target_version = db.Column(db.Integer)
- before_state = db.Column(JSONB)
- after_state = db.Column(JSONB, nullable=False)
- diff = db.Column(JSONB, nullable=False)
- actor_uid = db.Column(UUID(as_uuid=False), nullable=False)
- created_at = db.Column(db.DateTime(timezone=True), nullable=False)
|