"""Add management tables Revision ID: 008_management Revises: 007_maintenance Create Date: 2026-04-03 """ from alembic import op import sqlalchemy as sa revision = "008_management" down_revision = "007_maintenance" branch_labels = None depends_on = None def upgrade() -> None: # --- regulations --- op.create_table( "regulations", sa.Column("id", sa.Integer, primary_key=True, autoincrement=True), sa.Column("title", sa.String(200), nullable=False), sa.Column("category", sa.String(50)), sa.Column("content", sa.Text), sa.Column("effective_date", sa.DateTime(timezone=True)), sa.Column("status", sa.String(20), default="active"), sa.Column("attachment_url", sa.String(500)), sa.Column("created_by", sa.Integer, sa.ForeignKey("users.id")), sa.Column("created_at", sa.DateTime(timezone=True), server_default=sa.func.now()), sa.Column("updated_at", sa.DateTime(timezone=True), server_default=sa.func.now()), ) # --- standards --- op.create_table( "standards", sa.Column("id", sa.Integer, primary_key=True, autoincrement=True), sa.Column("name", sa.String(200), nullable=False), sa.Column("code", sa.String(100)), sa.Column("type", sa.String(50)), sa.Column("description", sa.Text), sa.Column("compliance_status", sa.String(20), default="pending"), sa.Column("review_date", sa.DateTime(timezone=True)), sa.Column("created_at", sa.DateTime(timezone=True), server_default=sa.func.now()), sa.Column("updated_at", sa.DateTime(timezone=True), server_default=sa.func.now()), ) # --- process_docs --- op.create_table( "process_docs", sa.Column("id", sa.Integer, primary_key=True, autoincrement=True), sa.Column("title", sa.String(200), nullable=False), sa.Column("category", sa.String(50)), sa.Column("content", sa.Text), sa.Column("version", sa.String(20), default="1.0"), sa.Column("approved_by", sa.String(100)), sa.Column("effective_date", sa.DateTime(timezone=True)), sa.Column("created_at", sa.DateTime(timezone=True), server_default=sa.func.now()), sa.Column("updated_at", sa.DateTime(timezone=True), server_default=sa.func.now()), ) # --- emergency_plans --- op.create_table( "emergency_plans", sa.Column("id", sa.Integer, primary_key=True, autoincrement=True), sa.Column("title", sa.String(200), nullable=False), sa.Column("scenario", sa.String(100)), sa.Column("steps", sa.JSON), sa.Column("responsible_person", sa.String(100)), sa.Column("review_date", sa.DateTime(timezone=True)), sa.Column("is_active", sa.Boolean, default=True), sa.Column("created_at", sa.DateTime(timezone=True), server_default=sa.func.now()), sa.Column("updated_at", sa.DateTime(timezone=True), server_default=sa.func.now()), ) def downgrade() -> None: op.drop_table("emergency_plans") op.drop_table("process_docs") op.drop_table("standards") op.drop_table("regulations")