openapi: 3.0.3
info:
  title: Quanon Customer Portal
  version: 1.0.0
  description: Org-scoped portal APIs (session header x-auth-session-id).
servers:
  - url: http://localhost:4040
paths:
  /api/portal/summary:
    get:
      summary: Portal dashboard counts for the session organization
      parameters:
        - $ref: "#/components/parameters/SessionHeader"
      responses:
        "200":
          description: Summary counters
  /api/portal/tickets:
    get:
      summary: List support tickets for the session organization
      parameters:
        - $ref: "#/components/parameters/SessionHeader"
      responses:
        "200":
          description: Ticket list
    post:
      summary: Create a support ticket bound to the session organization
      parameters:
        - $ref: "#/components/parameters/SessionHeader"
      responses:
        "201":
          description: Created
  /api/portal/tickets/comments:
    get:
      summary: List ticket comments
      parameters:
        - $ref: "#/components/parameters/SessionHeader"
        - name: ticketId
          in: query
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Comments
    post:
      summary: Add a ticket comment
      parameters:
        - $ref: "#/components/parameters/SessionHeader"
      responses:
        "201":
          description: Created
components:
  parameters:
    SessionHeader:
      name: x-auth-session-id
      in: header
      required: true
      schema:
        type: string
