feat(user): 用户认证状态/所属/账号类型 分类字段
- users 增: certification_status(uncertified|pending|certified|rejected)+certification_time, affiliation(independent|park)+park_id/park_name, account_type(opc_default|park_staff|platform_staff|provider|enterprise); alembic 0007
- repo: set_classification; _user_to_dict 含全部新字段; profile 返回认证/所属/账号类型
- admin: POST /admin/users/{id}/classification(认证/分类设置, action:user.manage) + UserClassificationRequest schema
- 迁移已应用, 导入通过
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
"""user classification/certification
|
||||
|
||||
Revision ID: 0007_user_classification
|
||||
Revises: 0006_user_source_fields
|
||||
Create Date: 2026-08-25
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
revision = "0007_user_classification"
|
||||
down_revision = "0006_user_source_fields"
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def _add(table, col):
|
||||
conn = op.get_bind()
|
||||
cols = {r[1] for r in conn.execute(sa.text(f"PRAGMA table_info({table})"))}
|
||||
if col.name not in cols:
|
||||
op.add_column(table, col)
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
_add("users", sa.Column("certification_status", sa.String, server_default="uncertified"))
|
||||
_add("users", sa.Column("certification_time", sa.String, server_default=""))
|
||||
_add("users", sa.Column("affiliation", sa.String, server_default="independent"))
|
||||
_add("users", sa.Column("park_id", sa.String, server_default=""))
|
||||
_add("users", sa.Column("park_name", sa.String, server_default=""))
|
||||
_add("users", sa.Column("account_type", sa.String, server_default="opc_default"))
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
pass
|
||||
Reference in New Issue
Block a user