openapi: 3.0.0
info:
  title: Test WServices cimiteri-test.comune.padova.it
  version: 1.3.1
servers:
  - url: https://cimiteri-test.comune.padova.it

tags:

  - name: R1 Obitorio
  - name: R2 Crematorio
  - name: R3 Crematorio
  - name: R4 Crematorio
  - name: Auth
paths:
  /sync/obitorio/listaluoghipartenza:
    post:
      tags:
        - R1 Obitorio
      summary: listaLuoghiPartenza R1.A
      security:
        - oauth2Auth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                required:
                  - status
                  - message
                  - data
                properties:
                  status:
                    type: integer
                  message:
                    type: string
                  data:
                    type: array
                    items:
                      properties:
                        codice:
                          type: string
                          description: "Codice del luogo"
                        descrizione:
                          type: string
                          description: "Descrizione del luogo"
        '400':
          description: Bad request
          content:
            application/json: {}
        '401':
          description: Unauthorized
          content:
            application/json: {}
        '500':
          description: Internal Server Error
          content:
            application/json: {}
  /sync/obitorio/listapratichepartenza:
    post:
      tags:
        - R1 Obitorio
      summary: listaPratichePartenza R1.B
      requestBody:
        content:
          application/json:
            schema: 
              description: Parametri da passare per la richiesta
              type: object
              required:
                - da
              properties:
                da:
                  type: string
                a:
                  type: string
                luogo:
                  type: string
              example:
                da: '2020-01-01'
      security:
        - oauth2Auth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                required:
                  - status
                  - message
                  - data
                properties:
                  status:
                    type: integer
                  message:
                    type: string
                  data:
                    type: array
                    items:
                      $ref: "#/components/schemas/PraticaPartenza"
        '400':
          description: Bad request
          content:
            application/json: {}
        '401':
          description: Unauthorized
          content:
            application/json: {}
        '500':
          description: Internal Server Error
          content:
            application/json: {}

  /sync/crematorio/listaCremazioni:
    post:
      tags:
        - R2 Crematorio
      summary: listaCremazioni R2
      requestBody:
        content:
          application/json:
            schema: 
              description: Parametri da passare per la richiesta
              type: object
              required:
                - da
              properties:
                da:
                  type: string
                a:
                  type: string
              example:
                da: '2020-01-01'
      security:
        - oauth2Auth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                required:
                  - status
                  - message
                  - data
                properties:
                  status:
                    type: integer
                  message:
                    type: string
                  data:
                    type: array
                    items:
                      $ref: "#/components/schemas/CremazioneData"
        '400':
          description: Bad request
          content:
            application/json: {}
        '401':
          description: Unauthorized
          content:
            application/json: {}
        '500':
          description: Internal Server Error
          content:
            application/json: {}
  /sync/crematorio/dettaglioCremazione:
    post:
      tags:
        - R3 Crematorio
      summary: dettaglioCremazione R3
      requestBody:
        content:
          application/json:
            schema: 
              description: Parametri da passare per la richiesta
              type: object
              required:
                - id
              properties:
                id:
                  type: integer
              example:
                id: 458634
      security:
        - oauth2Auth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                required:
                  - status
                  - message
                  - data
                properties:
                  status:
                    type: integer
                  message:
                    type: string
                  data:
                    type: array
                    items:
                      $ref: "#/components/schemas/DettaglioCremazioneData"
        '400':
          description: Bad request
          content:
            application/json: {}
        '401':
          description: Unauthorized
          content:
            application/json: {}
        '500':
          description: Internal Server Error
          content:
            application/json: {}
  /sync/crematorio/eseguiOperazione:
    post:
      tags:
        - R4 Crematorio
      summary: eseguiOperazione R4
      requestBody:
        content:
          application/json:
            schema:
              description: Parametri da passare per l'aggiornamento dell'azione
              type: object
              required:
                - idcremazione
                - codiceinternoazione
                - dataoraesecuzione
              properties:
                idcremazione:
                  type: integer
                codiceinternoazione:
                  type: integer
                dataoraesecuzione:
                  type: string
                valore:
                  type: string
              example:
                idcremazione: 458634
                codiceinternoazione: 6050
                dataoraesecuzione: '2025-11-28 16:39:55'
                valore: '3'
      security:
        - oauth2Auth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
        '400':
          description: Bad request
          content:
            application/json: {}
        '401':
          description: Unauthorized
          content:
            application/json: {}
        '500':
          description: Internal Server Error
          content:
            application/json: {}
  /sync/crematorio/accesstoken:
    post:
      tags:
        - Auth
      summary: accesstoken
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example: ''
      security:
        - oauth2Auth: []
      parameters:
        - name: grant_type
          in: query
          schema:
            type: string
          description: client_credentials o authorization_code
          example: client_credentials
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                required:
                  - status
                  - message
                  - data
                properties:
                  status:
                    type: integer
                  message:
                    type: string
                  data:
                    type: object
components:
  securitySchemes:
    oauth2Auth:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://cimiteri-test.comune.padova.it/sync/crematorio/accesstoken
          scopes: {}
  schemas:
    PraticaPartenza:
        type: object
        description: 'Singolo oggetto pratica partenza'
        properties:
          id:
            type: integer
            description: 'Id Pratica'
          idstatoinformazione:
            type: integer
            description: 'Id stato informazione'
          statoinformazione:
            type: string
            description: 'Descrizione stato informazione'
          tipofase:
            type: integer
            description: 'Id del tipofase'
          tipofasedescrizione:
            type: string
            description: 'Descrizione tipofase'
          statodefunto:
            type: string
            description: 'Stato del defunto'
          destinazione:
            type: string
            description: 'Destinazione'
          partenzacomune:
            type: string
            description: 'Comune di partenza'   
          partenzaluogo:
            type: string
            description: 'Luogo di partenza'   
          dataorapartenza:
            type: string
            description: 'Data ora partenza'
          dittaresponsabile:
            type: string
            description: 'Ditta responsabile'
          defunto:
            $ref: "#/components/schemas/Defunto"
    CremazioneData:
      type: object
      description: 'Singolo oggetto cremazione'
      properties:
        id:
          type: integer
          description: 'Id Cremazione'
        dataoraprevistaarrivo:
          type: string
          description: 'Data ora prevista arrivo'
        dataorainserimento:
          type: string
          description: 'Data ora inserimento'
        dataoraprogrammazione:
          type: string
          description: 'Data ora programmazione'
        numerorepertorio:
          type: string
          description: 'Numero repertorio'
        numerofascicolo:
          type: string
          description: 'Numero fascicolo'
        statodefunto:
          type: string
          description: 'Stato del defunto'
        tipofase:
          type: integer
          description: 'Id del tipofase'
        tipofasedescrizione:
          type: string
          description: 'Descrizione tipofase'
        defunto:
          $ref: "#/components/schemas/Defunto"
    DettaglioCremazioneData:
      type: object
      description: 'Singolo oggeto cremazione'
      properties:
        id:
          type: integer
          description: 'Id Cremazione'
        dataoraprevistaarrivo:
          type: string
          description: 'Data ora prevista arrivo'
        dataorainserimento:
          type: string
          description: 'Data ora inserimento'
        dataoraprogrammazione:
          type: string
          description: 'Data ora programmazione'
        numerorepertorio:
          type: string
          description: 'Numero repertorio'
        numerofascicolo:
          type: string
          description: 'Numero fascicolo'
        statodefunto:
          type: string
          description: 'Stato del defunto'
        tipofase:
          type: integer
          description: 'Id del tipofase'
        tipofasedescrizione:
          type: string
          description: 'Descrizione tipofase'
        defunto:
          $ref: "#/components/schemas/Defunto"
        operazioni:
          type: array
          description: 'Elenco azioni'
          items:
            $ref: "#/components/schemas/Operazione"
        soggetticoinvolti:
          type: array
          description: 'Array soggetti coinvolti'
          items:
            $ref: "#/components/schemas/SoggettoCoinvolto"
    Defunto:
      type: object
      description: 'Oggetto defunto'
      properties:
        id:
          type: integer
          description: 'Id'
        nominativo:
          type: string
          description: 'Nominativo'
        cognome:
          type: string
          description: 'Cognome'
        nome:
          type: string
          description: 'Nome'
        codicefiscale:
          type: string
          description: 'Codice fiscale'  
        sesso:
          type: string
          description: 'Sesso'
        datanascita:
          type: string
          description: 'Data nascita'
        datadecesso:
          type: string
          description: 'Data decesso'
        luogonascita:
          type: string
          description: 'Luogo nascita'
        luogonascitabelfiore:
          type: string
          description: 'Luogo nascita belfiore'  
        residenzainvita: 
          type: string
          description: 'Residenza in vita'
        comuneresidenza: 
          type: string
          description: 'Comune residenza'
        comuneresidenzabelfiore: 
          type: string
          description: 'Comune residenza belfiore'  
        indirizzodecesso:
          type: string
          description: 'Indirizzo decesso'  
        luogodecesso:
          type: string
          description: 'Luogo decesso'     
        luogodecessobelfiore:
          type: string
          description: 'Luogo decesso belfiore'   
        luogodecessodescrizione:
          type: string
          description: 'Luogo decesso descrizione'
    Operazione:
      type: object
      description: 'Dettaglio operazione'
      properties:
        id:
          type: integer
          description: 'Id Azione' 
        codiceinterno:
          type: string
          description: 'Codice interno tipo azione'
        descrizione:
          type: integer
          description: 'Descrizione tipo azione'     
        obbligatorio:
          type: boolean
          description: 'Flag obbligatorio'  
        fasechiusura:
          type: boolean
          description: 'Flag di chiusura fase' 
        ordinamento:
          type: integer
          description: 'Ordinamento' 
        idfase:
          type: integer
          description: 'Id fase collegata' 
        idtipoazione:
          type: integer
          description: 'Id tipo azione' 
        dataoraprevista:
          type: string
          description: 'Data ora prevista' 
        dataoraesecuzione:
          type: string
          description: 'Data ora esecuzione'
        comune:
          type: string
          description: 'Comune'
        provincia:
          type: string
          description: 'Provincia' 
        luogo:
          type: string
          description: 'Luogo'
        utente:
          type: string
          description: 'Utente' 
        progressivo:
          type: string
          description: 'Progressivo' 
        annotazioni:
          type: string
          description: 'Annotazioni' 
        dataoraprevistafine:
          type: string
          description: 'Data ora prevista fine'
        dataoraesecuzionefine:
          type: string
          description: 'Data ora esecuzione fine'  
        opzione:
          type: boolean
          description: 'Opzione'  
        azionedescrizione:
          type: string
          description: 'Azione descrizione'   
        indirizzo:
          type: string
          description: 'Indirizzo' 
        indirizzocivico:
          type: string
          description: 'Indirizzo civico'
        idcamerawfo:
          type: integer
          description: 'Id camera wfo'
        idazionedescrizione:
          type: integer
          description: 'Id azione descrizione'
        valore:
          type: integer
          description: 'Valore'
        idtipolavoro:
          type: integer
          description: 'Id del tipo lavoro'
        tipolavoromisura:
          type: number
          description: 'Quantita del tipo lavoro'
        latitudine:
          type: number
          description: 'Latitudine'
        longitudine:
          type: number
          description: 'Longitudine'
    SoggettoCoinvolto:
      type: object
      description: 'Soggetto coinvolto'
      properties:
        id:
          type: integer
          description: 'Id Soggetto'   
        codiceinterno:
          type: integer
          description: 'Codice interno'  
        tiposoggetto:
          type: string
          description: 'Tipo soggetto'  
        nominativo:
          type: string
          description: 'Nominativo'   
        cognome:
          type: string
          description: 'Cognome'  
        nome:
          type: string
          description: 'Nome'  
        partitaiva:
          type: string
          description: 'Partita iva'   
        codicefiscale:
          type: string
          description: 'Codice fiscale'  
        luogonascita:
          type: string
          description: 'Comune nascita' 
        luogonascitaprovincia:
          type: string
          description: 'Provincia nascita' 
        datanascita:
          type: string
          description: 'Data nascita'  
        sesso:
          type: string
          description: 'Sesso'  
        indirizzo:
          type: string
          description: 'Indirizzo'   
        indirizzocivico:
          type: string
          description: 'Civico'  
        cap:
          type: string
          description: 'Cap' 
        citta:
          type: string
          description: 'Città'
        cittaprovincia:
          type: string
          description: 'Provincia' 