openapi: 3.0.3
info:
  title: Api til at hente aggregerede sager tværs af sagstyper.
  description: Api til at hente aggregerede sager på tværs af sagstyper.
  version: 2.5.6
servers:
  - url: 'http://localhost:8080'
paths:
  /sager:
    get:
      tags:
        - sagshylde
      parameters:
        - $ref: './imported/pagination/pagination.yaml#/components/parameters/page'
        - $ref: './imported/pagination/pagination.yaml#/components/parameters/size'
        - $ref: './imported/pagination/pagination.yaml#/components/parameters/sort'
        - $ref: './imported/pagination/pagination.yaml#/components/parameters/direction'
        - $ref: '#/components/parameters/lovomraadeEkstern'
      operationId: hentSager
      description: Henter alle sager som den indloggede bruger har en relation til.
      responses:
        '200':
          description: Sager hentet med succes.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/sagListItem'
          headers:
            'X-Total-Count':
              $ref: './imported/pagination/pagination.yaml#/components/headers/totalCount'
    post:
      tags:
        - sagshylde
      parameters:
        - $ref: './imported/pagination/pagination.yaml#/components/parameters/page'
        - $ref: './imported/pagination/pagination.yaml#/components/parameters/size'
        - $ref: './imported/pagination/pagination.yaml#/components/parameters/sort'
        - $ref: './imported/pagination/pagination.yaml#/components/parameters/direction'
        - $ref: '#/components/parameters/lovomraadeEkstern'
      operationId: soegSager
      description: Henter alle sager (ud fra søgekriterier). OBS Uden relation til en sag skal den fremsøges unikt for at blive returneret.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sagQueryEkstern'
      responses:
        '200':
          description: Sager fundet udfra fra søgekriterier.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/sagListItem'
          headers:
            'X-Total-Count':
              $ref: './imported/pagination/pagination.yaml#/components/headers/totalCount'

security:
  - bearerAuth: [ ]

components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  parameters:
    lovomraadeEkstern:
      name: lovomraade
      description: Lovområde for den eksterne portal (minskiftesag.dk eller straffesagsportalen.dk).
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/lovomraadeEksternEnum'
  schemas:
    sagQueryEkstern:
      properties:
        sagsnummer:
          description: Søgning på sagens sagsnummer.
          example: 'TV-1001-23/ROS'
          $ref: './imported/typer/typer.yaml#/components/schemas/sagsnummer'
        part:
          description: Søgning på den centrale part i sagen, fx selskabet under tvang eller den tiltalte person.
          $ref: '#/components/schemas/deltager'
        politietsJournalnummer:
          description: Søgning på politiets journalnummer (eksakt match).
          type: string
        loebenummer:
          description: Søgning på rettens løbenummer.
          type: string
          pattern: '^\d{1,6}$'
        aarstal:
          description: Søgning på årstal for rettens sagsnummer (4 cifre).
          type: string
          pattern: '^\d{4}$'
    sagListItem:
      required:
        - id
        - sagstype
        - embedskode
        - roller
      properties:
        id:
          description: Sagens tekniske id, som en reference til sagId ved fremsøgning af den specifikke sag.
          $ref: './imported/typer/typer.yaml#/components/schemas/id'
        sagstype:
          $ref: './imported/typer/typer.yaml#/components/schemas/sagstypeEnum'
        embedskode:
          $ref: './imported/typer/typer.yaml#/components/schemas/embedskode'
        embedsNavn:
          type: string
        roller:
          description: Rolle i/relation til en sag.
          example: Likvidator eller Kreditor i en tvangsopløsningssag.
          type: array
          items:
            type: string
        partId:
          description: Identifikation af centralt part under behandling, f.eks. cvr på selskab under tvangsopløsning eller cpr på tiltalte i en straffesag.
          type: string
        partNavn:
          description: Navn på central part under behandling, f.eks. navn på selskabet der er under tvangsopløsning elle den tiltalte i en straffesag.
          type: string
        sagsinformation:
          $ref: '#/components/schemas/tableElement'
        sagsnummer:
          $ref: '#/components/schemas/tableElement'
        datoer:
          $ref: '#/components/schemas/tableElement'
        sagsstatus:
          type: string
        loginRelation:
          type: string
    deltager:
      properties:
        navn:
          type: string
        foedselsdato:
          type: string
          format: date
        cpr:
          $ref: './imported/typer/typer.yaml#/components/schemas/cprNummer'
        cvr:
          $ref: './imported/typer/typer.yaml#/components/schemas/cvrNummer'
    tableElement:
      properties:
        linje1:
          type: string
        linje2:
          type: string
    lovomraadeEksternEnum:
      description: Angivelse af søgeområde (svarende til valg imellem eksterne portaler).
      type: string
      enum:
        - SKIFTERET
        - STRAFFERET
