984d88f91c0d_create_lawyer_contract_table.py 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. """create lawyer_contract table
  2. Revision ID: 984d88f91c0d
  3. Revises:
  4. Create Date: 2026-03-27 16:44:19.499604
  5. """
  6. from typing import Sequence, Union
  7. from alembic import op
  8. import sqlalchemy as sa
  9. from sqlalchemy.dialects import mysql
  10. revision: str = "984d88f91c0d"
  11. down_revision: Union[str, Sequence[str], None] = None
  12. branch_labels: Union[str, Sequence[str], None] = None
  13. depends_on: Union[str, Sequence[str], None] = None
  14. def upgrade() -> None:
  15. op.create_table(
  16. "lawyer_contract",
  17. sa.Column("id", sa.BigInteger(), autoincrement=True, nullable=False, comment="主键"),
  18. sa.Column("lawyer_id", sa.BigInteger(), nullable=False, comment="律所id"),
  19. sa.Column("law_firm_name", sa.String(length=100), nullable=False, comment="律所名称"),
  20. sa.Column("business_segment", sa.String(length=100), nullable=False, comment="业务板块"),
  21. sa.Column("contact_name", sa.String(length=100), nullable=False, comment="联系人姓名"),
  22. sa.Column("contact_phone", sa.String(length=20), nullable=False, comment="联系电话"),
  23. sa.Column("signing_status", sa.String(length=20), nullable=False, server_default="未签署", comment="签署状态"),
  24. sa.Column("contract_url", mysql.LONGTEXT(), nullable=False, comment="合同URL"),
  25. sa.Column("ord_id", mysql.LONGTEXT(), nullable=False, comment="统一社会信用代码"),
  26. sa.Column("signing_time", sa.DateTime(), nullable=True, comment="签署时间"),
  27. sa.Column("effective_time", sa.DateTime(), nullable=True, comment="生效时间"),
  28. sa.Column("expiry_time", sa.DateTime(), nullable=True, comment="到期时间"),
  29. sa.Column("created_time", sa.DateTime(), server_default=sa.text("now()"), nullable=False, comment="创建时间"),
  30. sa.Column("updated_time", sa.DateTime(), server_default=sa.text("now()"), nullable=False, comment="更新时间"),
  31. sa.Column("delete_flag", sa.Integer(), server_default="0", nullable=False, comment="逻辑删除(0未删, 1已删)"),
  32. sa.PrimaryKeyConstraint("id"),
  33. )
  34. op.create_index("idx_lawyer_contract_lawyer_id", "lawyer_contract", ["lawyer_id"], unique=False)
  35. op.create_index("idx_lawyer_contract_contact_phone", "lawyer_contract", ["contact_phone"], unique=False)
  36. op.create_index("idx_lawyer_contract_signing_status", "lawyer_contract", ["signing_status"], unique=False)
  37. def downgrade() -> None:
  38. op.drop_index("idx_lawyer_contract_signing_status", table_name="lawyer_contract")
  39. op.drop_index("idx_lawyer_contract_contact_phone", table_name="lawyer_contract")
  40. op.drop_index("idx_lawyer_contract_lawyer_id", table_name="lawyer_contract")
  41. op.drop_table("lawyer_contract")