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:
Pine
2026-08-25 16:24:19 +08:00
parent 879396b532
commit 0039a809ac
6 changed files with 96 additions and 1 deletions
@@ -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