openapi: "3.0.0"
info:
  title: ERJK avaandmete dokumentatsioon
  description: "[ Base URL: https://erjk.ee ]"
  version: 1.0.0
tags:
  - name: Raportid
    description: Erakondade kvartaliaruanded
  - name: Valimissündmused
    description: Valimissündmused
  - name: Kategooriad
    description: Tulu- ja kulugrupid
paths:
  /api/quarterly-reports/parties:
    get:
      summary: Erakondade nimekiri
      tags:
        - Raportid
      responses:
        200:
          description: OK
  /api/quarterly-reports/persons:
    get:
      summary: Erakondade rahastajad
      tags:
        - Raportid
      parameters:
        - in: query
          name: party_id
          example: 159
          schema:
            type: integer
        - in: query
          name: report_id
          example: 422893
          schema:
            type: integer
      responses:
        200:
          description: OK
  /api/quarterly-reports/quarters/{party_id}:
    get:
      summary: Parteiga seotud kvartaliaruannete nimekiri. Parteide nimekirja saab pärida /api/quarterly-reports/organisations .
      tags:
        - Raportid
      parameters:
        - in: path
          name: party_id
          example: 159
          required: true
          schema:
            type: integer
      responses:
        200:
          description: OK
  /api/quarterly-reports/{report_id}:
    get:
      summary: Üksik kvartaliaruanne
      tags:
        - Raportid
      parameters:
        - in: path
          name: report_id
          example: 371706
          required: true
          schema:
            type: integer
        - in: query
          name: report_type
          required: true
          schema:
            type: string
            enum: [ receipts, expenses ]
      responses:
        200:
          description: OK
  /api/quarterly-reports/queries/receipts:
    get:
      summary: Kvartali tuluaruannete päringud
      tags:
        - Raportid
      parameters:
        - in: query
          name: party_id
          example: all
          schema:
            type: string
          description: >
            "party_id" või
            täiendavad parameetri väärtused:
             * `all` - Kõik parteid (eraldi)
             * `all_sum` - Kõik parteid koos
        - in: query
          name: category_id
          required: true
          schema:
            type: string
          description: >
            "category_id" või
            täiendav parameetri väärtus:
             * `all` - Kõik tululiigid
        - in: query
          name: period
          schema:
            type: string
            enum: [show_all, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 ]
        - in: query
          name: period_to
          schema:
            type: integer
            enum: [ 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 ]
        - in: query
          name: quarter
          schema:
            type: string
            enum: [ quarter, q1, q2, q3, q4 ]
          description: >
            Kvartalid. `quarter` - Kvartalite lõikes. "quarter_to" väärtust sellisel juhul ei arvestata. Saab kasutada juhul kui perioodiks on valitud aasta.
        - in: query
          name: quarter_to
          schema:
            type: string
            enum: [ q1, q2, q3, q4 ]
        - in: query
          name: person_id
          schema:
            type: string
      responses:
        200:
          description: OK
  /api/quarterly-reports/queries/expenses:
    get:
      summary: Kvartali kuluaruannete päringud
      tags:
        - Raportid
      parameters:
        - in: query
          name: party_id
          example: all
          schema:
            type: string
          description: >
            "party_id" või
            täiendavad parameetri väärtused:
             * `all` - Kõik parteid (eraldi)
             * `all_sum` - Kõik parteid koos
        - in: query
          name: category_id
          required: true
          schema:
            type: string
          description: >
            "category_id" (/api/categories/expenses) või
            täiendav parameetri väärtus:
             * `all_by_group` - Kõik kululiikide grupid
             * `all_sum` - Kõik kululiigid summeerituna
             * `134_sum` - Reklaamikulud summeerituna
        - in: query
          name: period
          description: Parameeter "show_all" - aastate lõikes
          schema:
            type: string
            enum: [show_all, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 ]
        - in: query
          name: period_to
          schema:
            type: integer
            enum: [ 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 ]
        - in: query
          name: quarter
          schema:
            type: string
            enum: [ quarter, q1, q2, q3, q4 ]
          description: >
            Kvartalid. `quarter` - Kvartalite lõikes. "quarter_to" väärtust sellisel juhul ei arvestata. Saab kasutada juhul kui perioodiks on valitud aasta.
        - in: query
          name: quarter_to
          schema:
            type: string
            enum: [ q1, q2, q3, q4 ]
      responses:
        200:
          description: OK
  /api/events:
    get:
      summary: Valimisündmuste nimekiri.
      tags:
        - Valimissündmused
      responses:
        200:
          description: OK
  /api/events/{event_id}/organisations:
    get:
      summary: Valimistel osalenud oragisatsioonide ja üksikkandidaatide nimekiri.
      tags:
        - Valimissündmused
      parameters:
        - in: path
          name: event_id
          example: 4416
          required: true
          schema:
            type: integer
      responses:
        200:
          description: OK
  /api/events/{event_id}/organisation-reports/{organisation_id}:
    get:
      summary: Organisatsiooni(või üksikkandidaadiga) seotud valimissündmused.
      tags:
        - Valimissündmused
      parameters:
        - in: path
          name: event_id
          example: 4416
          required: true
          schema:
            type: integer
        - in: path
          name: organisation_id
          example: 163
          required: true
          schema:
            type: integer
      responses:
        200:
          description: OK
  /api/events/reports/{report_id}:
    get:
      summary: Valimisündmuste raportid.
      tags:
        - Valimissündmused
      parameters:
        - in: path
          name: report_id
          example: 397990
          required: true
          schema:
            type: integer
        - in: query
          name: report_type
          required: true
          schema:
            type: string
            enum: [receipts, expenses]
      responses:
        200:
          description: OK
  /api/events/{event_id}/persons:
    get:
      summary: Valimissündmusega seotud rahastajad.
      tags:
        - Valimissündmused
      parameters:
        - in: path
          name: event_id
          example: 4416
          required: true
          schema:
            type: integer
        - in: query
          name: organisation_id
          example: 163
          schema:
            type: string
      responses:
        200:
          description: OK
  /api/events/{event_id}/suppliers:
    get:
      summary: Tarnijad, kes on seotud vastava valimissündmusega.
      tags:
        - Valimissündmused
      parameters:
        - in: path
          name: event_id
          example: 4416
          required: true
          schema:
            type: integer
        - in: query
          name: organisation_id
          example: 163
          schema:
            type: string
      responses:
        200:
          description: OK
  /api/categories/expenses:
    get:
      summary: Kulugrupid.
      tags:
        - Kategooriad
      parameters:
        - in: query
          name: pre_2014
          description: Enne 2014 aastat kasutusel olnud grupid.
          schema:
            type: boolean
      responses:
        200:
          description: OK
  /api/categories/receipts:
    get:
      summary: Tulugrupid.
      tags:
        - Kategooriad
      parameters:
        - in: query
          name: events
          description: Ainult valimisündmuste aruannetes kasutatavad grupid.
          schema:
            type: boolean
      responses:
        200:
          description: OK
  /api/events/{event_id}:
    get:
      summary: Valimissündmuste päringud.
      tags:
        - Valimissündmused
      parameters:
        - in: path
          name: event_id
          example: 4416
          required: true
          schema:
            type: integer
        - in: query
          name: organisation_id
          example: 163
          schema:
            type: string
        - in: query
          name: category_id
          example: all
          schema:
            type: string
          description: >
            Additional options:
             * `all` - Kõik kululiigid
             * `all_sum` - Kõik kululiigid summeerituna
             * `all_by_group` - Kululiigid grupeerituna
        - in: query
          name: person_id
          schema:
            type: integer
        - in: query
          name: supplier_id
          schema:
            type: string
      responses:
        200:
          description: OK
