{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/arpi-ai/json-schema/arpi-ai-diag-available-response-schema.json",
  "title": "DiagAvailableResponse",
  "description": "Quota availability for the authenticated individual user.",
  "x-generated": "2026-11-01",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/arpi-ai-openapi.json#/components/schemas/DiagAvailableResponse",
  "type": "object",
  "properties": {
    "planName": {
      "type": "string",
      "description": "Active plan name (BASIC or PREMIUM)."
    },
    "dailyLimit": {
      "type": "integer",
      "format": "int32",
      "description": "Maximum analyses per day for this plan."
    },
    "dailyUsed": {
      "type": "integer",
      "format": "int32",
      "description": "Analyses already submitted today (Asia/Seoul)."
    },
    "dailyRemaining": {
      "type": "integer",
      "format": "int32",
      "description": "Remaining analyses today."
    },
    "monthlyLimit": {
      "type": "integer",
      "format": "int32",
      "description": "Maximum analyses per billing period for this plan."
    },
    "monthlyUsed": {
      "type": "integer",
      "format": "int32",
      "description": "Analyses already submitted within the current billing period."
    },
    "monthlyRemaining": {
      "type": "integer",
      "format": "int32",
      "description": "Remaining analyses within the current billing period."
    },
    "periodStart": {
      "type": "string",
      "format": "date-time",
      "description": "Start of the current billing period (UTC)."
    },
    "periodEnd": {
      "type": "string",
      "format": "date-time",
      "description": "End of the current billing period (UTC, exclusive)."
    },
    "canSubmit": {
      "type": "boolean",
      "description": "Whether the user can submit a new analysis right now."
    }
  },
  "required": [
    "canSubmit",
    "dailyLimit",
    "dailyRemaining",
    "dailyUsed",
    "monthlyLimit",
    "monthlyRemaining",
    "monthlyUsed",
    "periodEnd",
    "periodStart",
    "planName"
  ]
}