{
  "openapi": "3.0.3",
  "info": {
    "title": "认证模块",
    "version": "1.0.0",
    "description": "认证模块相关接口文档"
  },
  "paths": {
    "/auth/register": {
      "post": {
        "summary": "用户注册",
        "description": "系统用户注册接口。如果 individualism=true，会为用户创建独立站点和独立数据库，并自动创建超级管理员角色。",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "string｜必填，用户名"
                  },
                  "phone": {
                    "type": "string",
                    "description": "string｜必填，手机号"
                  },
                  "password": {
                    "type": "string",
                    "description": "string｜必填，登录密码"
                  },
                  "email": {
                    "type": "string",
                    "description": "string｜可选，邮箱"
                  },
                  "individualism": {
                    "type": "boolean",
                    "description": "boolean｜可选，是否创建独立站点，默认 false"
                  }
                },
                "required": [
                  "name",
                  "phone",
                  "password"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "成功响应",
            "content": {
              "application/json": {
                "example": {
                  "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
                  }
                }
              }
            }
          }
        }
      }
    },
    "/auth/login": {
      "post": {
        "summary": "用户登录",
        "description": "系统用户登录接口。如果用户有多个可用站点，会返回站点列表供前端选择。",
        "parameters": [
          {
            "name": "system",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "系统编码，登录时自动分配系统默认管理员角色"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "phone": {
                    "type": "string",
                    "description": "string｜必填，手机号"
                  },
                  "password": {
                    "type": "string",
                    "description": "string｜必填，登录密码"
                  }
                },
                "required": [
                  "phone",
                  "password"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "成功响应",
            "content": {
              "application/json": {
                "example": {
                  "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
                  }
                }
              }
            }
          }
        }
      }
    },
    "/auth/client/register": {
      "post": {
        "summary": "客户端用户注册",
        "description": "客户端用户注册接口。如果 individualism=true，会为用户创建独立站点和独立数据库，并自动创建超级管理员角色。",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "string｜可选，客户端用户姓名，默认为'游客'"
                  },
                  "phone": {
                    "type": "string",
                    "description": "string｜必填，手机号"
                  },
                  "password": {
                    "type": "string",
                    "description": "string｜必填，登录密码"
                  },
                  "email": {
                    "type": "string",
                    "description": "string｜可选，邮箱"
                  },
                  "agreeTerms": {
                    "type": "boolean",
                    "description": "boolean｜必填，是否同意协议"
                  },
                  "individualism": {
                    "type": "boolean",
                    "description": "boolean｜可选，是否创建独立站点，默认 false"
                  }
                },
                "required": [
                  "phone",
                  "password",
                  "agreeTerms"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "成功响应",
            "content": {
              "application/json": {
                "example": {
                  "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
                  }
                }
              }
            }
          }
        }
      }
    },
    "/auth/client/login": {
      "post": {
        "summary": "客户端用户登录",
        "description": "客户端用户登录接口。如果用户有多个可用站点，会返回站点列表供前端选择。",
        "parameters": [
          {
            "name": "system",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "系统编码，登录时自动分配系统默认管理员角色"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "phone": {
                    "type": "string",
                    "description": "string｜必填，手机号"
                  },
                  "password": {
                    "type": "string",
                    "description": "string｜必填，登录密码"
                  },
                  "agreeTerms": {
                    "type": "boolean",
                    "description": "boolean｜必填，是否同意协议"
                  }
                },
                "required": [
                  "phone",
                  "password",
                  "agreeTerms"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "成功响应",
            "content": {
              "application/json": {
                "example": {
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}