{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/pagopa/main/json-schema/pagopa-citizen-consent-response-dto-schema.json",
  "title": "CitizenConsentResponseDTO",
  "description": "Schema di risposta che contiene lo stato e la data dei consensi",
  "x-generated": "2026-10-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/pagopa-mdc-citizen-consent-openapi.yml#/components/schemas/CitizenConsentResponseDTO",
  "type": "object",
  "properties": {
    "fiscalCode": {
      "type": "string",
      "description": "Codice fiscale del cittadino",
      "pattern": "^[A-Za-z0-9]{11,16}$",
      "minLength": 11,
      "maxLength": 16
    },
    "consents": {
      "type": "object",
      "description": "Oggetto contenente consensi con chiavi dinamiche basate su tppId (UUID concatenati con timestamp)",
      "additionalProperties": {
        "type": "object",
        "properties": {
          "tppState": {
            "type": "boolean",
            "description": "Stato del consenso TPP"
          },
          "tcDate": {
            "type": "string",
            "format": "date-time",
            "description": "Data e ora dell'ultimo aggiornamento del consenso",
            "maxLength": 30,
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
          }
        },
        "required": [
          "tppState",
          "tcDate"
        ]
      }
    }
  },
  "required": [
    "fiscalCode",
    "consents"
  ]
}