{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://docs.sportops.it/formato/schema/adempimenti.schema.json",
  "title": "Adempimenti d'iscrizione",
  "description": "Per ogni requisito d'iscrizione (documento da caricare, consenso, firma): cosa ha fatto la famiglia e cosa ha verificato la segreteria.",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": [
          "integer",
          "null"
        ],
        "description": "Identificativo."
      },
      "atleta_id": {
        "type": [
          "integer",
          "null"
        ],
        "description": "→ atleti.id"
      },
      "stagione": {
        "type": [
          "string",
          "null"
        ],
        "description": "→ stagioni.nome"
      },
      "requisito": {
        "type": [
          "string",
          "null"
        ],
        "description": "Nome del requisito (es. «Certificato medico agonistico»)."
      },
      "modalita": {
        "type": [
          "string",
          "null"
        ],
        "description": "Come si adempie: caricamento, presa visione, consenso, firma."
      },
      "stato": {
        "type": [
          "string",
          "null"
        ],
        "description": "Stato dell'adempimento nella piattaforma."
      },
      "esito": {
        "type": [
          "string",
          "null"
        ],
        "description": "Per i consensi: la risposta data."
      },
      "scadenza": {
        "type": [
          "string",
          "null"
        ],
        "format": "date",
        "description": "Scadenza dichiarata."
      },
      "file": {
        "type": [
          "string",
          "null"
        ],
        "description": "Nome del file caricato, se c'è (storage/preregistrations/ o storage/documents/)."
      },
      "verifica": {
        "type": [
          "string",
          "null"
        ],
        "description": "Esito della verifica della segreteria."
      },
      "verificato_il": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time",
        "description": "Quando è stato verificato."
      },
      "confermato_il": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time",
        "description": "Quando la famiglia ha confermato o firmato."
      }
    },
    "required": [
      "id",
      "atleta_id",
      "stagione",
      "requisito",
      "modalita",
      "stato",
      "esito",
      "scadenza",
      "file",
      "verifica",
      "verificato_il",
      "confermato_il"
    ],
    "additionalProperties": false
  }
}