> ## Documentation Index
> Fetch the complete documentation index at: https://docs.floral.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Godkend et referat

> Godkend et referat oprettet af kalderen, som venter på godkendelse. Det offentlige strukturerede indhold og mødetiden kan eventuelt erstattes.



## OpenAPI

````yaml /openapi/public-v1-da.json post /api/v1/workspaces/{workspaceSlug}/summaries/{id}/approve
openapi: 3.1.0
info:
  description: Stabilt eksternt API til relationsopslag og mødeviden.
  title: Florals offentlige API
  version: 1.0.0
servers:
  - description: Produktion
    url: https://app.floral.so
security: []
tags:
  - description: Søg på tværs af aktive virksomheder og personer.
    name: Søgning
  - description: Opret, hent, gennemgå, opdatér, arkivér og gendan virksomheder.
    name: Virksomheder
  - description: Opret, hent, gennemgå, opdatér, arkivér og gendan personer.
    name: Personer
  - description: Læs aktive offentlige definitioner af brugerdefinerede felter.
    name: Brugerdefinerede felter
  - description: Søg i normaliserede fakta fra det danske virksomhedsregister.
    name: Virksomhedsregister
  - description: Opret, hent og gennemgå mødebriefings.
    name: Briefings
  - description: Hent, gennemgå, kommentér og godkend mødereferater.
    name: Referater
paths:
  /api/v1/workspaces/{workspaceSlug}/summaries/{id}/approve:
    post:
      tags:
        - Referater
      summary: Godkend et referat
      description: >-
        Godkend et referat oprettet af kalderen, som venter på godkendelse. Det
        offentlige strukturerede indhold og mødetiden kan eventuelt erstattes.
      operationId: approveSummaryV1
      parameters:
        - description: Slug for det arbejdsområde, adgangsoplysningen er bundet til.
          example: acme-nordic
          in: path
          name: workspaceSlug
          required: true
          schema:
            maxLength: 100
            minLength: 1
            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
            type: string
        - description: Stabilt numerisk ressource-id.
          example: 168
          in: path
          name: id
          required: true
          schema:
            minimum: 1
            type: integer
        - description: >-
            Valgfrit korrelations-id fra kalderen. Floral returnerer den
            anvendte værdi i X-Request-ID.
          example: 550e8400-e29b-41d4-a716-446655440000
          in: header
          name: X-Request-ID
          required: false
          schema:
            maxLength: 128
            minLength: 1
            type: string
        - description: >-
            Påkrævet idempotensnøgle. Identiske nye forsøg på samme kanoniske
            kald gentager oprindelig status, body, ETag, Location og request-id
            i 24 timer.
          example: approveSummaryV1-20260816-001
          in: header
          name: Idempotency-Key
          required: true
          schema:
            type: string
            minLength: 1
            maxLength: 255
        - description: >-
            Stærk ETag fra seneste detalje- eller ændringssvar. En forældet
            værdi giver 412 VERSION_CONFLICT.
          example: '"v1.c3VtbWFyeS0xNjgtMw"'
          in: header
          name: If-Match
          required: true
          schema:
            pattern: ^"(?:[^"\\]|\\.)*"$
            type: string
      requestBody:
        content:
          application/json:
            example:
              appointmentDate: '2026-08-18T09:00:00.000Z'
              content:
                hvadBlevAftalt:
                  aftaler:
                    - aftale: Bekræft lanceringsplanen på næste møde.
                      ansvarlig: Kundeteamet
                      deadline: Inden næste møde
                hvadBlevDroeftet:
                  emner:
                    - beskrivelse: >-
                        Teamene gennemgik leveringskapacitet og rækkefølgen i
                        lanceringen.
                      emne: Planlægning af lancering
                      rejstAf: fælles
                opsummering: Teamene afstemte milepæle og ansvar for lanceringen.
                titel: Kvartalsplanlægning
                todos:
                  opgaver:
                    - ansvarlig: Kundeteamet
                      deadline: Fredag
                      opgave: Bekræft den implementeringsansvarlige.
                      prioritet: høj
            schema:
              $ref: '#/components/schemas/SummaryApproveRequest'
        description: >-
          Valgfrit redigeret struktureret indhold og mødetid. Udelad body for at
          godkende de aktuelle værdier. Højst 65536 byte.
        required: false
      responses:
        '200':
          content:
            application/json:
              example:
                summary:
                  appointmentDate: '2026-08-18T09:00:00.000Z'
                  appointmentSubject: Kvartalsplanlægning
                  company:
                    id: 42
                    name: Acme Nordic
                    organizationNumber: '12345678'
                  content:
                    context: []
                    hvadBlevAftalt:
                      aftaler:
                        - aftale: Bekræft lanceringsplanen på næste møde.
                          ansvarlig: Kundeteamet
                          deadline: Inden næste møde
                    hvadBlevDroeftet:
                      emner:
                        - beskrivelse: >-
                            Teamene gennemgik leveringskapacitet og rækkefølgen
                            i lanceringen.
                          emne: Planlægning af lancering
                          rejstAf: fælles
                    opsummering: Teamene afstemte milepæle og ansvar for lanceringen.
                    titel: Kvartalsplanlægning
                    todos:
                      opgaver:
                        - ansvarlig: Kundeteamet
                          deadline: Fredag
                          opgave: Bekræft den implementeringsansvarlige.
                          prioritet: høj
                  createdAt: '2026-08-15T10:00:00.000Z'
                  durationSec: 2700
                  evidenceAudience: CUSTOMER
                  id: 168
                  internalNotes: null
                  name: Kvartalsplanlægning
                  status: APPROVED
                  updatedAt: '2026-08-15T10:30:00.000Z'
                  version: v1.c3VtbWFyeS0xNjgtMw
              schema:
                $ref: '#/components/schemas/SummaryDetailResponse'
          description: Referat godkendt
          headers:
            X-Content-Type-Options:
              description: Angiver altid nosniff ved JSON API-svar.
              schema:
                const: nosniff
                type: string
            X-RateLimit-Limit:
              description: Højeste antal kald i det aktuelle tidsvindue.
              schema:
                minimum: 1
                type: integer
            X-RateLimit-Remaining:
              description: Resterende kald i det aktuelle tidsvindue.
              schema:
                minimum: 0
                type: integer
            X-Request-ID:
              description: >-
                Stabilt korrelations-id for kaldet eller en idempotent
                gentagelse.
              schema:
                minLength: 1
                type: string
            ETag:
              description: Uigennemsigtig version til en efterfølgende If-Match.
              example: '"v1.c3VtbWFyeS0xNjgtMw"'
              schema:
                pattern: ^"(?:[^"\\]|\\.)*"$
                type: string
        '400':
          content:
            application/json:
              example:
                error:
                  code: INVALID_INPUT
                  message: Kaldet indeholder ugyldige værdier.
                  requestId: 550e8400-e29b-41d4-a716-446655440000
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiErrorResponse'
                properties:
                  error:
                    properties:
                      code:
                        enum:
                          - INVALID_INPUT
                        type: string
                    required:
                      - code
                    type: object
                type: object
          description: 'Stabile fejl: INVALID_INPUT'
          headers:
            X-Content-Type-Options:
              description: Angiver altid nosniff ved JSON API-svar.
              schema:
                const: nosniff
                type: string
            X-RateLimit-Limit:
              description: Højeste antal kald i det aktuelle tidsvindue.
              schema:
                minimum: 1
                type: integer
            X-RateLimit-Remaining:
              description: Resterende kald i det aktuelle tidsvindue.
              schema:
                minimum: 0
                type: integer
            X-Request-ID:
              description: >-
                Stabilt korrelations-id for kaldet eller en idempotent
                gentagelse.
              schema:
                minLength: 1
                type: string
        '401':
          content:
            application/json:
              example:
                error:
                  code: UNAUTHENTICATED
                  message: En gyldig bearer-adgangsoplysning er påkrævet.
                  requestId: 550e8400-e29b-41d4-a716-446655440000
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiErrorResponse'
                properties:
                  error:
                    properties:
                      code:
                        enum:
                          - UNAUTHENTICATED
                        type: string
                    required:
                      - code
                    type: object
                type: object
          description: 'Stabile fejl: UNAUTHENTICATED'
          headers:
            X-Content-Type-Options:
              description: Angiver altid nosniff ved JSON API-svar.
              schema:
                const: nosniff
                type: string
            X-RateLimit-Limit:
              description: Højeste antal kald i det aktuelle tidsvindue.
              schema:
                minimum: 1
                type: integer
            X-RateLimit-Remaining:
              description: Resterende kald i det aktuelle tidsvindue.
              schema:
                minimum: 0
                type: integer
            X-Request-ID:
              description: >-
                Stabilt korrelations-id for kaldet eller en idempotent
                gentagelse.
              schema:
                minLength: 1
                type: string
            WWW-Authenticate:
              description: Udfordring til bearer-godkendelse.
              example: Bearer realm="floral-api"
              schema:
                type: string
        '403':
          content:
            application/json:
              example:
                error:
                  code: FORBIDDEN
                  message: Adgangsoplysningen giver ikke adgang til denne handling.
                  requestId: 550e8400-e29b-41d4-a716-446655440000
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiErrorResponse'
                properties:
                  error:
                    properties:
                      code:
                        enum:
                          - FORBIDDEN
                        type: string
                    required:
                      - code
                    type: object
                type: object
          description: 'Stabile fejl: FORBIDDEN'
          headers:
            X-Content-Type-Options:
              description: Angiver altid nosniff ved JSON API-svar.
              schema:
                const: nosniff
                type: string
            X-RateLimit-Limit:
              description: Højeste antal kald i det aktuelle tidsvindue.
              schema:
                minimum: 1
                type: integer
            X-RateLimit-Remaining:
              description: Resterende kald i det aktuelle tidsvindue.
              schema:
                minimum: 0
                type: integer
            X-Request-ID:
              description: >-
                Stabilt korrelations-id for kaldet eller en idempotent
                gentagelse.
              schema:
                minLength: 1
                type: string
        '404':
          content:
            application/json:
              example:
                error:
                  code: NOT_FOUND
                  message: Ressourcen blev ikke fundet.
                  requestId: 550e8400-e29b-41d4-a716-446655440000
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiErrorResponse'
                properties:
                  error:
                    properties:
                      code:
                        enum:
                          - NOT_FOUND
                          - FEATURE_DISABLED
                        type: string
                    required:
                      - code
                    type: object
                type: object
          description: 'Stabile fejl: NOT_FOUND, FEATURE_DISABLED'
          headers:
            X-Content-Type-Options:
              description: Angiver altid nosniff ved JSON API-svar.
              schema:
                const: nosniff
                type: string
            X-RateLimit-Limit:
              description: Højeste antal kald i det aktuelle tidsvindue.
              schema:
                minimum: 1
                type: integer
            X-RateLimit-Remaining:
              description: Resterende kald i det aktuelle tidsvindue.
              schema:
                minimum: 0
                type: integer
            X-Request-ID:
              description: >-
                Stabilt korrelations-id for kaldet eller en idempotent
                gentagelse.
              schema:
                minLength: 1
                type: string
        '409':
          content:
            application/json:
              example:
                error:
                  code: CONFLICT
                  message: >-
                    Den ønskede ændring er i konflikt med ressourcens aktuelle
                    tilstand.
                  requestId: 550e8400-e29b-41d4-a716-446655440000
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiErrorResponse'
                properties:
                  error:
                    properties:
                      code:
                        enum:
                          - CONFLICT
                          - INVALID_STATE
                          - IDEMPOTENCY_CONFLICT
                        type: string
                    required:
                      - code
                    type: object
                type: object
          description: 'Stabile fejl: CONFLICT, INVALID_STATE, IDEMPOTENCY_CONFLICT'
          headers:
            X-Content-Type-Options:
              description: Angiver altid nosniff ved JSON API-svar.
              schema:
                const: nosniff
                type: string
            X-RateLimit-Limit:
              description: Højeste antal kald i det aktuelle tidsvindue.
              schema:
                minimum: 1
                type: integer
            X-RateLimit-Remaining:
              description: Resterende kald i det aktuelle tidsvindue.
              schema:
                minimum: 0
                type: integer
            X-Request-ID:
              description: >-
                Stabilt korrelations-id for kaldet eller en idempotent
                gentagelse.
              schema:
                minLength: 1
                type: string
        '412':
          content:
            application/json:
              example:
                error:
                  code: VERSION_CONFLICT
                  message: Ressourcen er ændret, siden den blev læst.
                  requestId: 550e8400-e29b-41d4-a716-446655440000
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiErrorResponse'
                properties:
                  error:
                    properties:
                      code:
                        enum:
                          - VERSION_CONFLICT
                        type: string
                    required:
                      - code
                    type: object
                type: object
          description: 'Stabile fejl: VERSION_CONFLICT'
          headers:
            X-Content-Type-Options:
              description: Angiver altid nosniff ved JSON API-svar.
              schema:
                const: nosniff
                type: string
            X-RateLimit-Limit:
              description: Højeste antal kald i det aktuelle tidsvindue.
              schema:
                minimum: 1
                type: integer
            X-RateLimit-Remaining:
              description: Resterende kald i det aktuelle tidsvindue.
              schema:
                minimum: 0
                type: integer
            X-Request-ID:
              description: >-
                Stabilt korrelations-id for kaldet eller en idempotent
                gentagelse.
              schema:
                minLength: 1
                type: string
        '428':
          content:
            application/json:
              example:
                error:
                  code: PRECONDITION_REQUIRED
                  message: If-Match er påkrævet til denne handling.
                  requestId: 550e8400-e29b-41d4-a716-446655440000
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiErrorResponse'
                properties:
                  error:
                    properties:
                      code:
                        enum:
                          - PRECONDITION_REQUIRED
                        type: string
                    required:
                      - code
                    type: object
                type: object
          description: 'Stabile fejl: PRECONDITION_REQUIRED'
          headers:
            X-Content-Type-Options:
              description: Angiver altid nosniff ved JSON API-svar.
              schema:
                const: nosniff
                type: string
            X-RateLimit-Limit:
              description: Højeste antal kald i det aktuelle tidsvindue.
              schema:
                minimum: 1
                type: integer
            X-RateLimit-Remaining:
              description: Resterende kald i det aktuelle tidsvindue.
              schema:
                minimum: 0
                type: integer
            X-Request-ID:
              description: >-
                Stabilt korrelations-id for kaldet eller en idempotent
                gentagelse.
              schema:
                minLength: 1
                type: string
        '429':
          content:
            application/json:
              example:
                error:
                  code: RATE_LIMITED
                  message: For mange kald. Prøv igen om lidt.
                  requestId: 550e8400-e29b-41d4-a716-446655440000
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiErrorResponse'
                properties:
                  error:
                    properties:
                      code:
                        enum:
                          - RATE_LIMITED
                        type: string
                    required:
                      - code
                    type: object
                type: object
          description: 'Stabile fejl: RATE_LIMITED'
          headers:
            X-Content-Type-Options:
              description: Angiver altid nosniff ved JSON API-svar.
              schema:
                const: nosniff
                type: string
            X-RateLimit-Limit:
              description: Højeste antal kald i det aktuelle tidsvindue.
              schema:
                minimum: 1
                type: integer
            X-RateLimit-Remaining:
              description: Resterende kald i det aktuelle tidsvindue.
              schema:
                minimum: 0
                type: integer
            X-Request-ID:
              description: >-
                Stabilt korrelations-id for kaldet eller en idempotent
                gentagelse.
              schema:
                minLength: 1
                type: string
            Retry-After:
              description: Sekunder til den aktuelle grænse nulstilles.
              schema:
                minimum: 1
                type: integer
        '500':
          content:
            application/json:
              example:
                error:
                  code: INTERNAL_ERROR
                  message: Der opstod en uventet fejl.
                  requestId: 550e8400-e29b-41d4-a716-446655440000
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiErrorResponse'
                properties:
                  error:
                    properties:
                      code:
                        enum:
                          - INTERNAL_ERROR
                        type: string
                    required:
                      - code
                    type: object
                type: object
          description: 'Stabile fejl: INTERNAL_ERROR'
          headers:
            X-Content-Type-Options:
              description: Angiver altid nosniff ved JSON API-svar.
              schema:
                const: nosniff
                type: string
            X-RateLimit-Limit:
              description: Højeste antal kald i det aktuelle tidsvindue.
              schema:
                minimum: 1
                type: integer
            X-RateLimit-Remaining:
              description: Resterende kald i det aktuelle tidsvindue.
              schema:
                minimum: 0
                type: integer
            X-Request-ID:
              description: >-
                Stabilt korrelations-id for kaldet eller en idempotent
                gentagelse.
              schema:
                minLength: 1
                type: string
      security:
        - bearerAuth: []
      x-codeSamples:
        - label: cURL
          lang: Shell
          source: |-
            curl --request POST \
              --url 'https://app.floral.so/api/v1/workspaces/acme-nordic/summaries/168/approve' \
              --header 'Authorization: Bearer $FLORAL_TOKEN' \
              --header 'Idempotency-Key: approveSummaryV1-20260816-001' \
              --header 'If-Match: "v1.c3VtbWFyeS0xNjgtMw"' \
              --header 'Content-Type: application/json' \
              --data '{
              "appointmentDate": "2026-08-18T09:00:00.000Z",
              "content": {
                "hvadBlevAftalt": {
                  "aftaler": [
                    {
                      "aftale": "Bekræft lanceringsplanen på næste møde.",
                      "ansvarlig": "Kundeteamet",
                      "deadline": "Inden næste møde"
                    }
                  ]
                },
                "hvadBlevDroeftet": {
                  "emner": [
                    {
                      "beskrivelse": "Teamene gennemgik leveringskapacitet og rækkefølgen i lanceringen.",
                      "emne": "Planlægning af lancering",
                      "rejstAf": "fælles"
                    }
                  ]
                },
                "opsummering": "Teamene afstemte milepæle og ansvar for lanceringen.",
                "titel": "Kvartalsplanlægning",
                "todos": {
                  "opgaver": [
                    {
                      "ansvarlig": "Kundeteamet",
                      "deadline": "Fredag",
                      "opgave": "Bekræft den implementeringsansvarlige.",
                      "prioritet": "høj"
                    }
                  ]
                }
              }
            }'
components:
  schemas:
    SummaryApproveRequest:
      $schema: https://json-schema.org/draft/2020-12/schema
      type: object
      properties:
        appointmentDate:
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        content:
          type: object
          properties:
            titel:
              description: >-
                Kort, beskrivende titel for mødereferatet der opsummerer mødets
                hovedformål (3-10 ord). Eksempel: 'Strategi for digital
                transformation' eller 'Opfølgning på eksportplaner'
              type: string
              maxLength: 200
            opsummering:
              description: >-
                Sammenhængende opsummering af hele mødet i 2-4 sætninger som
                flydende prosa. Skal give læseren et hurtigt overblik over
                mødets vigtigste pointer, beslutninger og næste skridt. Ingen
                punktopstillinger eller markdown.
              type: string
              maxLength: 1500
            hvadBlevDroeftet:
              default:
                emner: []
              description: >-
                Sektion 1: Hvad blev drøftet - de vigtigste emner,
                problemstillinger og muligheder fra mødet
              type: object
              properties:
                emner:
                  description: >-
                    Array af de vigtigste emner, problemstillinger og muligheder
                    der blev drøftet under mødet (3-7 emner anbefales)
                  default: []
                  maxItems: 10
                  type: array
                  items:
                    type: object
                    properties:
                      emne:
                        description: >-
                          Kort titel på emnet der blev drøftet (1 sætning, ca.
                          5-12 ord)
                        type: string
                        maxLength: 200
                      beskrivelse:
                        description: >-
                          Uddybende beskrivelse af hvad der blev diskuteret
                          omkring emnet, inkl. problemstillinger og muligheder
                          (2-4 sætninger)
                        type: string
                        maxLength: 2000
                      rejstAf:
                        description: >-
                          Hvem der primært rejste emnet: 'virksomhed',
                          'konsulent', eller 'fælles' dialog. Udelades hvis det
                          ikke fremgår tydeligt.
                        type: string
                        enum:
                          - virksomhed
                          - konsulent
                          - fælles
                    required:
                      - emne
                      - beskrivelse
                    additionalProperties: false
              required:
                - emner
              additionalProperties: false
            hvadBlevAftalt:
              default: {}
              description: >-
                Sektion 2: Hvad blev aftalt - centrale beslutninger og aftaler
                truffet under mødet
              type: object
              properties:
                aftaler:
                  description: >-
                    Array af centrale aftaler og beslutninger truffet under
                    mødet (4-10 aftaler hvis så mange findes). Kan være tomt
                    hvis ingen konkrete aftaler blev truffet.
                  maxItems: 12
                  type: array
                  items:
                    type: object
                    properties:
                      aftale:
                        description: >-
                          Kort beskrivelse af hvad der blev aftalt eller
                          besluttet (1-2 sætninger)
                        type: string
                        maxLength: 1500
                      ansvarlig:
                        description: >-
                          Hvem der er ansvarlig for aftalen: virksomhed,
                          konsulent, eller navngiven person/rolle. Udelades hvis
                          det ikke fremgår.
                        type: string
                        maxLength: 200
                      deadline:
                        description: >-
                          Tidshorisont eller deadline for aftalen, fx 'Inden
                          næste møde', '01.10.2025'. Udelades hvis det ikke
                          fremgår.
                        type: string
                        maxLength: 200
                    required:
                      - aftale
                    additionalProperties: false
                ingenAftaler:
                  description: >-
                    Hvis der ikke blev truffet konkrete aftaler, beskrives dette
                    her, inkl. eventuelle forventede næste skridt.
                  type: string
                  maxLength: 1500
              additionalProperties: false
            todos:
              default: {}
              description: >-
                Sektion 3: To-dos - konkret checkliste med opgaver til
                opfølgning
              type: object
              properties:
                opgaver:
                  description: >-
                    Array af konkrete opgaver der skal udføres som opfølgning på
                    mødet. Kun opgaver der tydeligt fremgår af mødet medtages.
                  maxItems: 15
                  type: array
                  items:
                    type: object
                    properties:
                      opgave:
                        description: >-
                          Beskrivelse af den konkrete opgave der skal udføres
                          (1-2 sætninger)
                        type: string
                        maxLength: 1500
                      ansvarlig:
                        description: >-
                          Hvem der er ansvarlig for opgaven: 'Virksomheden',
                          'Konsulent', eller navngiven person. Udelades hvis det
                          ikke fremgår.
                        type: string
                        maxLength: 200
                      deadline:
                        description: >-
                          Deadline for opgaven, fx '01.10.2025' eller 'Ikke
                          fastlagt'. Udelades hvis det ikke fremgår.
                        type: string
                        maxLength: 200
                      prioritet:
                        description: >-
                          Opgavens prioritet baseret på kontekst i mødet.
                          Udelades hvis det ikke kan vurderes.
                        type: string
                        enum:
                          - høj
                          - mellem
                          - lav
                    required:
                      - opgave
                    additionalProperties: false
              additionalProperties: false
          required:
            - hvadBlevDroeftet
            - hvadBlevAftalt
            - todos
          additionalProperties: false
      additionalProperties: false
    SummaryDetailResponse:
      $schema: https://json-schema.org/draft/2020-12/schema
      type: object
      properties:
        summary:
          type: object
          properties:
            id:
              type: integer
              exclusiveMinimum: 0
              maximum: 9007199254740991
            version:
              type: string
              minLength: 1
              maxLength: 512
              pattern: ^v1\.[A-Za-z0-9_-]+$
            name:
              type: string
            status:
              type: string
              enum:
                - WAITING
                - WAITING_APPROVAL
                - APPROVED
                - FAILED
            evidenceAudience:
              type: string
              enum:
                - CUSTOMER
                - INTERNAL
            createdAt:
              type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
            updatedAt:
              type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
            appointmentDate:
              anyOf:
                - type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                - type: 'null'
            appointmentSubject:
              anyOf:
                - type: string
                - type: 'null'
            durationSec:
              anyOf:
                - type: integer
                  minimum: 0
                  maximum: 9007199254740991
                - type: 'null'
            internalNotes:
              anyOf:
                - type: string
                - type: 'null'
            company:
              anyOf:
                - type: object
                  properties:
                    id:
                      type: integer
                      exclusiveMinimum: 0
                      maximum: 9007199254740991
                    name:
                      type: string
                    organizationNumber:
                      type: string
                  required:
                    - id
                    - name
                    - organizationNumber
                  additionalProperties: false
                - type: 'null'
            content:
              anyOf:
                - type: object
                  properties:
                    titel:
                      description: >-
                        Kort, beskrivende titel for mødereferatet der opsummerer
                        mødets hovedformål (3-10 ord). Eksempel: 'Strategi for
                        digital transformation' eller 'Opfølgning på
                        eksportplaner'
                      type: string
                      maxLength: 200
                    opsummering:
                      description: >-
                        Sammenhængende opsummering af hele mødet i 2-4 sætninger
                        som flydende prosa. Skal give læseren et hurtigt
                        overblik over mødets vigtigste pointer, beslutninger og
                        næste skridt. Ingen punktopstillinger eller markdown.
                      type: string
                      maxLength: 1500
                    hvadBlevDroeftet:
                      default:
                        emner: []
                      description: >-
                        Sektion 1: Hvad blev drøftet - de vigtigste emner,
                        problemstillinger og muligheder fra mødet
                      type: object
                      properties:
                        emner:
                          description: >-
                            Array af de vigtigste emner, problemstillinger og
                            muligheder der blev drøftet under mødet (3-7 emner
                            anbefales)
                          default: []
                          maxItems: 10
                          type: array
                          items:
                            type: object
                            properties:
                              emne:
                                description: >-
                                  Kort titel på emnet der blev drøftet (1
                                  sætning, ca. 5-12 ord)
                                type: string
                                maxLength: 200
                              beskrivelse:
                                description: >-
                                  Uddybende beskrivelse af hvad der blev
                                  diskuteret omkring emnet, inkl.
                                  problemstillinger og muligheder (2-4
                                  sætninger)
                                type: string
                                maxLength: 2000
                              rejstAf:
                                description: >-
                                  Hvem der primært rejste emnet: 'virksomhed',
                                  'konsulent', eller 'fælles' dialog. Udelades
                                  hvis det ikke fremgår tydeligt.
                                type: string
                                enum:
                                  - virksomhed
                                  - konsulent
                                  - fælles
                            required:
                              - emne
                              - beskrivelse
                            additionalProperties: false
                      required:
                        - emner
                      additionalProperties: false
                    hvadBlevAftalt:
                      default: {}
                      description: >-
                        Sektion 2: Hvad blev aftalt - centrale beslutninger og
                        aftaler truffet under mødet
                      type: object
                      properties:
                        aftaler:
                          description: >-
                            Array af centrale aftaler og beslutninger truffet
                            under mødet (4-10 aftaler hvis så mange findes). Kan
                            være tomt hvis ingen konkrete aftaler blev truffet.
                          maxItems: 12
                          type: array
                          items:
                            type: object
                            properties:
                              aftale:
                                description: >-
                                  Kort beskrivelse af hvad der blev aftalt eller
                                  besluttet (1-2 sætninger)
                                type: string
                                maxLength: 1500
                              ansvarlig:
                                description: >-
                                  Hvem der er ansvarlig for aftalen: virksomhed,
                                  konsulent, eller navngiven person/rolle.
                                  Udelades hvis det ikke fremgår.
                                type: string
                                maxLength: 200
                              deadline:
                                description: >-
                                  Tidshorisont eller deadline for aftalen, fx
                                  'Inden næste møde', '01.10.2025'. Udelades
                                  hvis det ikke fremgår.
                                type: string
                                maxLength: 200
                            required:
                              - aftale
                            additionalProperties: false
                        ingenAftaler:
                          description: >-
                            Hvis der ikke blev truffet konkrete aftaler,
                            beskrives dette her, inkl. eventuelle forventede
                            næste skridt.
                          type: string
                          maxLength: 1500
                      additionalProperties: false
                    todos:
                      default: {}
                      description: >-
                        Sektion 3: To-dos - konkret checkliste med opgaver til
                        opfølgning
                      type: object
                      properties:
                        opgaver:
                          description: >-
                            Array af konkrete opgaver der skal udføres som
                            opfølgning på mødet. Kun opgaver der tydeligt
                            fremgår af mødet medtages.
                          maxItems: 15
                          type: array
                          items:
                            type: object
                            properties:
                              opgave:
                                description: >-
                                  Beskrivelse af den konkrete opgave der skal
                                  udføres (1-2 sætninger)
                                type: string
                                maxLength: 1500
                              ansvarlig:
                                description: >-
                                  Hvem der er ansvarlig for opgaven:
                                  'Virksomheden', 'Konsulent', eller navngiven
                                  person. Udelades hvis det ikke fremgår.
                                type: string
                                maxLength: 200
                              deadline:
                                description: >-
                                  Deadline for opgaven, fx '01.10.2025' eller
                                  'Ikke fastlagt'. Udelades hvis det ikke
                                  fremgår.
                                type: string
                                maxLength: 200
                              prioritet:
                                description: >-
                                  Opgavens prioritet baseret på kontekst i
                                  mødet. Udelades hvis det ikke kan vurderes.
                                type: string
                                enum:
                                  - høj
                                  - mellem
                                  - lav
                            required:
                              - opgave
                            additionalProperties: false
                      additionalProperties: false
                    context:
                      description: >-
                        Tag-slugs der beskriver mødets hovedtemaer. Vælg KUN
                        slugs fra den medsendte taxonomy der tydeligt blev
                        diskuteret. Kan være tomt hvis ingen passer.
                      default: []
                      maxItems: 5
                      type: array
                      items:
                        type: string
                  required:
                    - hvadBlevDroeftet
                    - hvadBlevAftalt
                    - todos
                    - context
                  additionalProperties: false
                - type: 'null'
          required:
            - id
            - version
            - name
            - status
            - evidenceAudience
            - createdAt
            - updatedAt
            - appointmentDate
            - appointmentSubject
            - durationSec
            - internalNotes
            - company
            - content
          additionalProperties: false
      required:
        - summary
      additionalProperties: false
    ApiErrorResponse:
      additionalProperties: false
      properties:
        error:
          additionalProperties: false
          properties:
            code:
              enum:
                - CONFLICT
                - FEATURE_DISABLED
                - FORBIDDEN
                - IDEMPOTENCY_CONFLICT
                - INTERNAL_ERROR
                - INVALID_INPUT
                - INVALID_STATE
                - NOT_FOUND
                - PRECONDITION_REQUIRED
                - RATE_LIMITED
                - UNAUTHENTICATED
                - VERSION_CONFLICT
              type: string
            message:
              minLength: 1
              type: string
            requestId:
              maxLength: 128
              minLength: 1
              type: string
          required:
            - code
            - message
            - requestId
          type: object
      required:
        - error
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: Floral PAT
      description: >-
        Godkend med en personlig Floral-adgangsnøgle, der er bundet til ét
        arbejdsområde.
      scheme: bearer
      type: http

````