{
  "module": "认证模块",
  "moduleKey": "auth",
  "apiCount": 4,
  "apis": [
    {
      "title": "用户注册",
      "method": "POST",
      "path": "/auth/register",
      "description": "系统用户注册接口。如果 individualism=true，会为用户创建独立站点和独立数据库，并自动创建超级管理员角色。",
      "requestParams": {
        "body": {
          "name": "string｜必填，用户名",
          "phone": "string｜必填，手机号",
          "password": "string｜必填，登录密码",
          "email": "string｜可选，邮箱",
          "individualism": "boolean｜可选，是否创建独立站点，默认 false"
        }
      },
      "responseExample": {
        "success": {
          "code": "0000",
          "message": "注册成功",
          "data": {
            "token": "jwt-token",
            "user": {
              "id": "USER0001",
              "code": "USER000001",
              "name": "张三",
              "phone": "13800138000",
              "email": "zhangsan@example.com",
              "individualism": true,
              "individualDbName": "user_1_1764407777204"
            },
            "clientKey": {
              "id": "key-id",
              "keyToken": "key-token",
              "individualDbName": "user_1_1764407777204"
            }
          }
        },
        "failure": {
          "code": "4000",
          "message": "注册失败",
          "data": null
        }
      },
      "notes": [
        "如果 individualism=true，系统会：1. 创建独立数据库 2. 在独立数据库中创建用户副本 3. 创建超级管理员角色并绑定用户",
        "注册成功后，用户记录在所属站点数据库创建，同时在独立数据库中创建副本用于角色绑定"
      ]
    },
    {
      "title": "用户登录",
      "method": "POST",
      "path": "/auth/login",
      "description": "系统用户登录接口。如果用户有多个可用站点，会返回站点列表供前端选择。",
      "requestParams": {
        "headers": [
          {
            "name": "system",
            "type": "string",
            "required": false,
            "description": "系统编码，登录时自动分配系统默认管理员角色"
          }
        ],
        "body": {
          "phone": "string｜必填，手机号",
          "password": "string｜必填，登录密码"
        }
      },
      "responseExample": {
        "success": {
          "code": "0000",
          "message": "登录成功",
          "data": {
            "token": "jwt-token",
            "user": {
              "id": "USER0001",
              "code": "USER000001",
              "username": "系统管理员",
              "phone": "13800138000",
              "email": "admin@example.com",
              "individualism": true,
              "individualDbName": "user_1_1764407777204",
              "status": 1,
              "createTime": "2025-01-21T10:00:00.000Z",
              "accountType": "user",
              "type": "普通用户"
            },
            "availableSites": [
              {
                "siteKey": "56B57A72-59C4-460B-82E5-22196205391B-A4608B6E9D4D6F599",
                "name": "所属站点",
                "type": "owner",
                "isDefault": true
              },
              {
                "siteKey": "A1B2C3D4-E5F6-7890-ABCD-EF1234567890-ABCDEF12",
                "name": "个人站点",
                "type": "personal",
                "isDefault": false
              }
            ]
          }
        },
        "failure": {
          "code": "4000",
          "message": "登录失败",
          "data": null
        }
      },
      "notes": [
        "如果用户有独立站点，availableSites 会包含两个站点：所属站点（type: owner）和个人站点（type: personal）",
        "前端可以通过 X-Site header 切换站点，切换后所有 API 请求将使用对应站点的数据库",
        "默认使用所属站点（isDefault: true），如需切换到个人站点，在后续请求中传递个人站点的 siteKey"
      ]
    },
    {
      "title": "客户端用户注册",
      "method": "POST",
      "path": "/auth/client/register",
      "description": "客户端用户注册接口。如果 individualism=true，会为用户创建独立站点和独立数据库，并自动创建超级管理员角色。",
      "requestParams": {
        "body": {
          "name": "string｜可选，客户端用户姓名，默认为'游客'",
          "phone": "string｜必填，手机号",
          "password": "string｜必填，登录密码",
          "email": "string｜可选，邮箱",
          "agreeTerms": "boolean｜必填，是否同意协议",
          "individualism": "boolean｜可选，是否创建独立站点，默认 false"
        }
      },
      "responseExample": {
        "success": {
          "code": "0000",
          "message": "注册成功",
          "data": {
            "token": "jwt-token",
            "user": {
              "id": "CU0001",
              "code": "CU000001",
              "username": "客户端用户",
              "phone": "13800138000",
              "email": "user@example.com",
              "individualism": true,
              "individualDbName": "client_user_1_1764407777204"
            },
            "clientKey": {
              "id": "key-id",
              "keyToken": "key-token",
              "individualDbName": "client_user_1_1764407777204"
            }
          }
        },
        "failure": {
          "code": "4000",
          "message": "注册失败",
          "data": null
        }
      },
      "notes": [
        "如果 individualism=true，系统会：1. 创建独立数据库 2. 在独立数据库中创建用户副本 3. 创建超级管理员角色并绑定用户",
        "注册成功后，用户记录在所属站点数据库创建，同时在独立数据库中创建副本用于角色绑定"
      ]
    },
    {
      "title": "客户端用户登录",
      "method": "POST",
      "path": "/auth/client/login",
      "description": "客户端用户登录接口。如果用户有多个可用站点，会返回站点列表供前端选择。",
      "requestParams": {
        "headers": [
          {
            "name": "system",
            "type": "string",
            "required": false,
            "description": "系统编码，登录时自动分配系统默认管理员角色"
          }
        ],
        "body": {
          "phone": "string｜必填，手机号",
          "password": "string｜必填，登录密码",
          "agreeTerms": "boolean｜必填，是否同意协议"
        }
      },
      "responseExample": {
        "success": {
          "code": "0000",
          "message": "登录成功",
          "data": {
            "token": "jwt-token",
            "user": {
              "id": "CU0001",
              "code": "CU000001",
              "username": "客户端管理员",
              "phone": "13800138000",
              "email": "client@example.com",
              "individualism": true,
              "individualDbName": "client_user_1_1764407777204",
              "status": 1,
              "createTime": "2025-01-21T10:00:00.000Z",
              "accountType": "clientUser",
              "type": "散客"
            },
            "availableSites": [
              {
                "siteKey": "56B57A72-59C4-460B-82E5-22196205391B-A4608B6E9D4D6F599",
                "name": "所属站点",
                "type": "owner",
                "isDefault": true
              },
              {
                "siteKey": "A1B2C3D4-E5F6-7890-ABCD-EF1234567890-ABCDEF12",
                "name": "个人站点",
                "type": "personal",
                "isDefault": false
              }
            ]
          }
        },
        "failure": {
          "code": "4000",
          "message": "登录失败",
          "data": null
        }
      },
      "notes": [
        "如果用户有独立站点，availableSites 会包含两个站点：所属站点（type: owner）和个人站点（type: personal）",
        "前端可以通过 X-Site header 切换站点，切换后所有 API 请求将使用对应站点的数据库",
        "默认使用所属站点（isDefault: true），如需切换到个人站点，在后续请求中传递个人站点的 siteKey"
      ]
    }
  ]
}