{
  "openapi": "3.1.0",
  "info": {
    "title": "HSystem Public API",
    "version": "1.0.0",
    "description": "託管登入頁與 REST／SDK 註冊登入、OAuth 授權碼 + PKCE、JWT 存取權杖。"
  },
  "paths": {
    "/oauth/authorize": {
      "get": {
        "summary": "授權端點",
        "parameters": [
          {
            "name": "client_id",
            "in": "query",
            "required": true
          },
          {
            "name": "redirect_uri",
            "in": "query",
            "required": true
          },
          {
            "name": "response_type",
            "in": "query",
            "required": true
          },
          {
            "name": "code_challenge",
            "in": "query"
          },
          {
            "name": "code_challenge_method",
            "in": "query"
          },
          {
            "name": "scope",
            "in": "query"
          },
          {
            "name": "state",
            "in": "query"
          }
        ]
      }
    },
    "/oauth/google/start": {
      "get": {
        "summary": "啟動 Google OAuth（平台統一）",
        "parameters": [
          {
            "name": "client_id",
            "in": "query",
            "required": true
          },
          {
            "name": "redirect_uri",
            "in": "query",
            "required": true
          },
          {
            "name": "state",
            "in": "query"
          },
          {
            "name": "code_challenge",
            "in": "query"
          },
          {
            "name": "code_challenge_method",
            "in": "query"
          },
          {
            "name": "response_mode",
            "in": "query",
            "description": "session（預設）或 code"
          }
        ]
      }
    },
    "/oauth/google/exchange": {
      "post": {
        "summary": "原生 SDK：以 id_token 或 google_code 換 session／OAuth code"
      }
    },
    "/oauth/google/resume": {
      "post": {
        "summary": "原生：WebView 完成 consent／補資料後續跑 authorize"
      }
    },
    "/oauth/google/callback": {
      "get": {
        "summary": "Google OAuth 回調（平台統一）"
      }
    },
    "/oauth/token": {
      "post": {
        "summary": "用授權碼或 refresh_token 換發 access token"
      }
    },
    "/v1/auth/register": {
      "post": {
        "summary": "終端用戶註冊"
      }
    },
    "/v1/auth/login": {
      "post": {
        "summary": "終端用戶登入"
      }
    },
    "/v1/auth/magic-link/request": {
      "post": {
        "summary": "請求 Magic Link 登入信"
      }
    },
    "/v1/auth/magic-link/verify": {
      "post": {
        "summary": "驗證 Magic Link 並登入"
      }
    },
    "/v1/auth/refresh": {
      "post": {
        "summary": "刷新 access token"
      }
    },
    "/v1/auth/logout": {
      "post": {
        "summary": "撤銷 refresh token"
      }
    },
    "/v1/auth/password/reset": {
      "post": {
        "summary": "以 reset_token 重設密碼"
      }
    },
    "/v1/auth/profile/complete": {
      "post": {
        "summary": "補齊必填個資（complete-profile）"
      }
    },
    "/v1/dev/apps/{id}/users": {
      "get": {
        "summary": "列出 App 用戶（開發者）",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true
          },
          {
            "name": "q",
            "in": "query"
          },
          {
            "name": "status",
            "in": "query"
          },
          {
            "name": "page",
            "in": "query"
          },
          {
            "name": "pageSize",
            "in": "query"
          }
        ]
      }
    },
    "/v1/profile/{userId}": {
      "get": {
        "summary": "讀取用戶資料快取"
      },
      "put": {
        "summary": "寫入用戶資料快取"
      },
      "delete": {
        "summary": "刪除用戶資料快取"
      }
    },
    "/v1/email_verify/request": {
      "post": {
        "summary": "請求 Email 驗證碼"
      }
    },
    "/v1/email_verify/confirm": {
      "post": {
        "summary": "確認 Email 驗證碼"
      }
    },
    "/v1/legal/platform/{docType}": {
      "get": {
        "summary": "平臺級條款/隱私權（公開）",
        "parameters": [
          {
            "name": "docType",
            "in": "path",
            "required": true
          }
        ]
      }
    },
    "/v1/legal/apps/{appId}": {
      "get": {
        "summary": "App 法律中心（公開）",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "required": true
          }
        ]
      }
    },
    "/v1/legal/apps/{appId}/{docType}": {
      "get": {
        "summary": "取得單份法律文件（公開）",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "required": true
          },
          {
            "name": "docType",
            "in": "path",
            "required": true
          },
          {
            "name": "lang",
            "in": "query",
            "required": false
          }
        ]
      }
    },
    "/v1/legal/apps/{appId}/view": {
      "post": {
        "summary": "記錄法律文件瀏覽（公開）",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "required": true
          }
        ]
      }
    }
  }
}
