openapi: 3.1.0
info:
  title: Decoda API
  description: External API documentation for the Decoda Health platform.
  version: "1.0"
paths:
  /tenant/public:
    get:
      tags:
        - tenant
        - public
      summary: Detail
      operationId: detail_tenant_public_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublicTenant"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /tenant/private:
    get:
      tags:
        - tenant
      summary: Private Detail
      operationId: private_detail_tenant_private_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Tenant"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /tenant/logo:
    get:
      tags:
        - tenant
        - public
      summary: Logo
      operationId: logo_tenant_logo_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: string
                title: Response Logo Tenant Logo Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /tenant/update:
    put:
      tags:
        - tenant
      summary: Update Tenant
      operationId: update_tenant_tenant_update_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TenantUpdate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Tenant"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /tenant/upload-logo:
    post:
      tags:
        - tenant
      summary: Upload Logo
      operationId: upload_logo_tenant_upload_logo_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_upload_logo_tenant_upload_logo_post"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: string
                title: Response Upload Logo Tenant Upload Logo Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /tenant/upload-receipt-logo:
    post:
      tags:
        - tenant
      summary: Upload Receipt Logo
      operationId: upload_receipt_logo_tenant_upload_receipt_logo_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_upload_receipt_logo_tenant_upload_receipt_logo_post"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: string
                title: Response Upload Receipt Logo Tenant Upload Receipt Logo Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /tenant/webhook-config:
    get:
      tags:
        - tenant
      summary: Get Webhook Config
      description: Get webhook configuration for the tenant.
      operationId: get_webhook_config_tenant_webhook_config_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                title: Response Get Webhook Config Tenant Webhook Config Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
    put:
      tags:
        - tenant
      summary: Update Webhook Config
      description: Update webhook configuration for the tenant.
      operationId: update_webhook_config_tenant_webhook_config_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WebhookConfigUpdate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Tenant"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /analytics/dashboards:
    post:
      tags:
        - provider
        - analytics
        - analytics
      summary: Create Dashboard
      description: Create a new analytics dashboard.
      operationId: create_dashboard_analytics_dashboards_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateDashboardSchema"
      responses:
        "201":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsDashboardSchema"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: List Dashboards
      description: List analytics dashboards with optional filtering.
      operationId: list_dashboards_analytics_dashboards_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: name
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Filter by dashboard name
            title: Name
          description: Filter by dashboard name
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_AnalyticsDashboardSchema_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/dashboards/{dashboard_id}:
    put:
      tags:
        - provider
        - analytics
        - analytics
      summary: Update Dashboard
      description: Update an analytics dashboard.
      operationId: update_dashboard_analytics_dashboards__dashboard_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: dashboard_id
          in: path
          required: true
          schema:
            type: string
            title: Dashboard Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateDashboardSchema"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsDashboardSchema"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - analytics
        - analytics
      summary: Delete Dashboard
      description: Delete an analytics dashboard.
      operationId: delete_dashboard_analytics_dashboards__dashboard_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: dashboard_id
          in: path
          required: true
          schema:
            type: string
            title: Dashboard Id
      responses:
        "204":
          description: Successful Response
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/widgets:
    post:
      tags:
        - provider
        - analytics
        - analytics
      summary: Create Widget
      description: Create a new dashboard widget.
      operationId: create_widget_analytics_widgets_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateWidgetSchema"
      responses:
        "201":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DashboardWidgetSchema"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: List Widgets
      description: List dashboard widgets with optional filtering.
      operationId: list_widgets_analytics_widgets_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: dashboard_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Filter by dashboard ID
            title: Dashboard Id
          description: Filter by dashboard ID
        - name: chart_type
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Filter by chart type
            title: Chart Type
          description: Filter by chart type
        - name: is_archived
          in: query
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: "null"
            description: Filter by archived status
            title: Is Archived
          description: Filter by archived status
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/DashboardWidgetSchema"
                title: Response List Widgets Analytics Widgets Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/widgets/{widget_id}:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Widget
      description: Get a specific dashboard widget by ID.
      operationId: get_widget_analytics_widgets__widget_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: widget_id
          in: path
          required: true
          schema:
            type: string
            title: Widget Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DashboardWidgetSchema"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    put:
      tags:
        - provider
        - analytics
        - analytics
      summary: Update Widget
      description: Update a dashboard widget.
      operationId: update_widget_analytics_widgets__widget_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: widget_id
          in: path
          required: true
          schema:
            type: string
            title: Widget Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateWidgetSchema"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DashboardWidgetSchema"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - analytics
        - analytics
      summary: Delete Widget
      description: Delete a dashboard widget.
      operationId: delete_widget_analytics_widgets__widget_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: widget_id
          in: path
          required: true
          schema:
            type: string
            title: Widget Id
      responses:
        "204":
          description: Successful Response
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/widgets/execute-query:
    post:
      tags:
        - provider
        - analytics
        - analytics
      summary: Execute Query
      description: Execute a dynamic analytics query.
      operationId: execute_query_analytics_widgets_execute_query_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/QueryExecutionSchema"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/QueryResultSchema"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /analytics/dashboards/product-sales-breakdown/revenue-breakdown-groups:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Revenue Breakdown Groups
      description: |-
        Get revenue breakdown groups with totals for the GroupedTableOrchestrator.

        Returns distinct group keys with their total counts for efficient grouping.
      operationId: get_revenue_breakdown_groups_analytics_dashboards_product_sales_breakdown_revenue_breakdown_groups_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: group_by
          in: query
          required: true
          schema:
            enum:
              - location
              - provider
              - item_category
              - payment_medium
              - created_date
            type: string
            title: Group By
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
            title: Timezone
          description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: location_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Names
        - name: provider_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Provider Ids
        - name: provider_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Provider Names
        - name: patient_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Patient Ids
        - name: patient_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Patient Names
        - name: item_categories
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Item Categories
        - name: item_types
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Item Types
        - name: item_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Item Names
        - name: payment_mediums
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Mediums
        - name: min_net_amount
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: "null"
            title: Min Net Amount
        - name: max_net_amount
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: "null"
            title: Max Net Amount
        - name: comment
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Comment
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/decoda__apps__api__routes__analytics__dashboards__product_sales_breakdown__GroupItem"
                title:
                  Response Get Revenue Breakdown Groups Analytics Dashboards
                  Product Sales Breakdown Revenue Breakdown Groups Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/dashboards/product-sales-breakdown/revenue-breakdown:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Revenue Breakdown
      description: |-
        Get detailed revenue breakdown with filtering.

        Returns comprehensive revenue data including charge items and sold packages
        with detailed filtering capabilities.
      operationId: get_revenue_breakdown_analytics_dashboards_product_sales_breakdown_revenue_breakdown_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: group_by
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - location
                  - provider
                  - item_category
                  - payment_medium
                  - created_date
                type: string
              - type: "null"
            title: Group By
        - name: group_key
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Group Key
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
            title: Timezone
          description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
        - name: sort_by
          in: query
          required: false
          schema:
            type: string
            default: created_date
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            enum:
              - asc
              - desc
            type: string
            default: desc
            title: Sort Direction
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: location_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Names
        - name: provider_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Provider Ids
        - name: provider_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Provider Names
        - name: patient_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Patient Ids
        - name: patient_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Patient Names
        - name: item_categories
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Item Categories
        - name: item_types
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Item Types
        - name: item_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Item Names
        - name: payment_mediums
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Mediums
        - name: min_net_amount
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: "null"
            title: Min Net Amount
        - name: max_net_amount
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: "null"
            title: Max Net Amount
        - name: comment
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Comment
        - name: item_category
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Item Category
        - name: location
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location
        - name: provider
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Provider
        - name: payment_medium
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Payment Medium
        - name: created_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Created Date
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_RevenueBreakdownItem_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/dashboards/product-sales-breakdown/revenue-breakdown-group-summaries:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Revenue Breakdown Group Summaries
      description: Get summary statistics for each group in the revenue breakdown.
      operationId: get_revenue_breakdown_group_summaries_analytics_dashboards_product_sales_breakdown_revenue_breakdown_group_summaries_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: group_by
          in: query
          required: true
          schema:
            enum:
              - location
              - provider
              - item_category
              - payment_medium
              - created_date
            type: string
            title: Group By
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
            title: Timezone
          description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
        - name: sort_by
          in: query
          required: false
          schema:
            type: string
            default: created_date
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            enum:
              - asc
              - desc
            type: string
            default: desc
            title: Sort Direction
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: location_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Names
        - name: provider_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Provider Ids
        - name: provider_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Provider Names
        - name: patient_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Patient Ids
        - name: patient_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Patient Names
        - name: item_categories
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Item Categories
        - name: item_types
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Item Types
        - name: item_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Item Names
        - name: payment_mediums
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Mediums
        - name: min_net_amount
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Min Net Amount
        - name: max_net_amount
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Max Net Amount
        - name: comment
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Comment
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/decoda__apps__api__routes__analytics__dashboards__product_sales_breakdown__GroupSummary"
                title:
                  Response Get Revenue Breakdown Group Summaries Analytics Dashboards
                  Product Sales Breakdown Revenue Breakdown Group Summaries Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/dashboards/product-sales-breakdown/revenue-breakdown-summary:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Revenue Breakdown Summary
      description:
        Get summary statistics for ungrouped revenue breakdown (all filtered
        results).
      operationId: get_revenue_breakdown_summary_analytics_dashboards_product_sales_breakdown_revenue_breakdown_summary_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
            title: Timezone
          description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: location_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Names
        - name: provider_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Provider Ids
        - name: provider_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Provider Names
        - name: patient_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Patient Ids
        - name: patient_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Patient Names
        - name: item_categories
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Item Categories
        - name: item_types
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Item Types
        - name: item_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Item Names
        - name: payment_mediums
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Mediums
        - name: min_net_amount
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: "null"
            title: Min Net Amount
        - name: max_net_amount
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: "null"
            title: Max Net Amount
        - name: comment
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Comment
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/decoda__apps__api__routes__analytics__dashboards__product_sales_breakdown__GroupSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/dashboards/payment-breakdown/payment-breakdown-groups:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Payment Breakdown Groups
      description: |-
        Get payment breakdown groups with totals for the GroupedTableOrchestrator.

        Returns distinct group keys with their total counts for efficient grouping.
      operationId: get_payment_breakdown_groups_analytics_dashboards_payment_breakdown_payment_breakdown_groups_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: group_by
          in: query
          required: true
          schema:
            enum:
              - location
              - provider
              - payment_medium
              - created_date
              - week
              - month
            type: string
            title: Group By
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
            title: Timezone
          description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: location_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Names
        - name: payment_mediums
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Mediums
        - name: payment_statuses
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Statuses
        - name: min_amount
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: "null"
            title: Min Amount
        - name: max_amount
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: "null"
            title: Max Amount
        - name: comment
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Comment
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/decoda__apps__api__routes__analytics__dashboards__payment_breakdown__GroupItem"
                title:
                  Response Get Payment Breakdown Groups Analytics Dashboards
                  Payment Breakdown Payment Breakdown Groups Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/dashboards/payment-breakdown/payment-breakdown:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Payment Breakdown
      description: |-
        Get detailed payment breakdown with filtering.

        Returns comprehensive payment data with detailed filtering capabilities.
      operationId: get_payment_breakdown_analytics_dashboards_payment_breakdown_payment_breakdown_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: group_by
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - location
                  - provider
                  - payment_medium
                  - created_date
                  - week
                  - month
                type: string
              - type: "null"
            title: Group By
        - name: group_key
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Group Key
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
            title: Timezone
          description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
        - name: sort_by
          in: query
          required: false
          schema:
            type: string
            default: created_date
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            enum:
              - asc
              - desc
            type: string
            default: desc
            title: Sort Direction
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: location_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Names
        - name: payment_mediums
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Mediums
        - name: payment_statuses
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Statuses
        - name: min_amount
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: "null"
            title: Min Amount
        - name: max_amount
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: "null"
            title: Max Amount
        - name: comment
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Comment
        - name: location
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location
        - name: provider
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Provider
        - name: payment_medium
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Payment Medium
        - name: created_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Created Date
        - name: week
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Week
        - name: month
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Month
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_PaymentBreakdownItem_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/dashboards/payment-breakdown/payment-breakdown-group-summaries:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Payment Breakdown Group Summaries
      description: Get summary statistics for each group in the payment breakdown.
      operationId: get_payment_breakdown_group_summaries_analytics_dashboards_payment_breakdown_payment_breakdown_group_summaries_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: group_by
          in: query
          required: true
          schema:
            enum:
              - location
              - provider
              - payment_medium
              - created_date
              - week
              - month
            type: string
            title: Group By
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
            title: Timezone
          description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
        - name: sort_by
          in: query
          required: false
          schema:
            type: string
            default: created_date
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            enum:
              - asc
              - desc
            type: string
            default: desc
            title: Sort Direction
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: location_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Names
        - name: payment_mediums
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Mediums
        - name: payment_statuses
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Statuses
        - name: min_amount
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Min Amount
        - name: max_amount
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Max Amount
        - name: comment
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Comment
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/decoda__apps__api__routes__analytics__dashboards__payment_breakdown__GroupSummary"
                title:
                  Response Get Payment Breakdown Group Summaries Analytics Dashboards
                  Payment Breakdown Payment Breakdown Group Summaries Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/dashboards/payment-breakdown/payment-breakdown-summary:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Payment Breakdown Summary
      description:
        Get summary statistics for ungrouped payment breakdown (all filtered
        results).
      operationId: get_payment_breakdown_summary_analytics_dashboards_payment_breakdown_payment_breakdown_summary_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
            title: Timezone
          description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: location_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Names
        - name: payment_mediums
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Mediums
        - name: payment_statuses
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Statuses
        - name: min_amount
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: "null"
            title: Min Amount
        - name: max_amount
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: "null"
            title: Max Amount
        - name: comment
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Comment
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/decoda__apps__api__routes__analytics__dashboards__payment_breakdown__GroupSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/dashboards/provider-earnings/provider-earnings-groups:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Provider Earnings Groups
      description: Get available groups for provider earnings data
      operationId: get_provider_earnings_groups_analytics_dashboards_provider_earnings_provider_earnings_groups_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: group_by
          in: query
          required: true
          schema:
            enum:
              - location
              - date
            type: string
            title: Group By
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: provider_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Provider Ids
        - name: provider_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Provider Names
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            title: Timezone
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/decoda__apps__api__routes__analytics__dashboards__provider_earnings__GroupItem"
                title:
                  Response Get Provider Earnings Groups Analytics Dashboards
                  Provider Earnings Provider Earnings Groups Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/dashboards/provider-earnings/provider-earnings:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Provider Earnings
      description:
        Get provider earnings data with separate queries to avoid double
        counting
      operationId: get_provider_earnings_analytics_dashboards_provider_earnings_provider_earnings_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            default: 1
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
            default: 25
            title: Per Page
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: provider_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Provider Ids
        - name: provider_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Provider Names
        - name: min_earnings
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Min Earnings
        - name: max_earnings
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Max Earnings
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            title: Timezone
        - name: location
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location
        - name: date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Date
        - name: created_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Created Date
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_ProviderEarningsItem_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/dashboards/provider-earnings/provider-earnings-group-summaries:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Provider Earnings Group Summaries
      description: Get summary data for each group
      operationId: get_provider_earnings_group_summaries_analytics_dashboards_provider_earnings_provider_earnings_group_summaries_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: group_by
          in: query
          required: true
          schema:
            enum:
              - location
              - date
            type: string
            title: Group By
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            title: Timezone
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: provider_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Provider Ids
        - name: provider_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Provider Names
        - name: min_earnings
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Min Earnings
        - name: max_earnings
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Max Earnings
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/decoda__apps__api__routes__analytics__dashboards__provider_earnings__GroupSummary"
                title:
                  Response Get Provider Earnings Group Summaries Analytics Dashboards
                  Provider Earnings Provider Earnings Group Summaries Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/dashboards/provider-earnings/provider-payment-medium-breakdown:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Provider Payment Medium Breakdown
      description:
        Get payment medium breakdown for a specific provider with proportional
        attribution
      operationId: get_provider_payment_medium_breakdown_analytics_dashboards_provider_earnings_provider_payment_medium_breakdown_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: provider_id
          in: query
          required: true
          schema:
            type: string
            title: Provider Id
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            title: Timezone
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ProviderPaymentMediumBreakdown"
                title:
                  Response Get Provider Payment Medium Breakdown Analytics Dashboards
                  Provider Earnings Provider Payment Medium Breakdown Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/dashboards/provider-earnings/provider-item-category-breakdown:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Provider Item Category Breakdown
      description:
        Get item category breakdown for a specific provider with proportional
        attribution
      operationId: get_provider_item_category_breakdown_analytics_dashboards_provider_earnings_provider_item_category_breakdown_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: provider_id
          in: query
          required: true
          schema:
            type: string
            title: Provider Id
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            title: Timezone
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ProviderItemCategoryBreakdown"
                title:
                  Response Get Provider Item Category Breakdown Analytics Dashboards
                  Provider Earnings Provider Item Category Breakdown Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/dashboards/provider-earnings/provider-payment-medium-payments:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Provider Payment Medium Payments
      description:
        Get all payments for a specific payment medium for a provider with
        proportional attribution
      operationId: get_provider_payment_medium_payments_analytics_dashboards_provider_earnings_provider_payment_medium_payments_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: provider_id
          in: query
          required: true
          schema:
            type: string
            title: Provider Id
        - name: payment_medium
          in: query
          required: true
          schema:
            type: string
            title: Payment Medium
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            title: Timezone
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            default: 1
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
            default: 25
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            type: string
            default: created_date
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            enum:
              - asc
              - desc
            type: string
            default: desc
            title: Sort Direction
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_ProviderPaymentDetail_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/dashboards/memberships/list:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Membership Analytics List
      description: Get member analytics with filters.
      operationId: get_membership_analytics_list_analytics_dashboards_memberships_list_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: location_ids
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
            default: []
            title: Location Ids
        - name: membership_ids
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
            default: []
            title: Membership Ids
        - name: member_statuses
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
            default: []
            title: Member Statuses
        - name: sold_by_provider_ids
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
            default: []
            title: Sold By Provider Ids
        - name: location
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location
        - name: membership
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Membership
        - name: status
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Status
        - name: sold_by_provider
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sold By Provider
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: patient_name
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Patient Name
        - name: created_date_start
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            title: Created Date Start
        - name: created_date_end
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            title: Created Date End
        - name: start_date_start
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            title: Start Date Start
        - name: start_date_end
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            title: Start Date End
        - name: next_billing_date_start
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            title: Next Billing Date Start
        - name: next_billing_date_end
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            title: Next Billing Date End
        - name: timezone
          in: query
          required: false
          schema:
            type: string
            default: UTC
            title: Timezone
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_get_membership_analytics_list_analytics_dashboards_memberships_list_get"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_MemberAnalyticsSummary_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/dashboards/memberships/by-membership-status:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Membership Analytics By Membership Status
      description:
        Get member count grouped by membership and status for stacked bar
        chart.
      operationId: get_membership_analytics_by_membership_status_analytics_dashboards_memberships_by_membership_status_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /analytics/dashboards/memberships/by-location:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Membership Analytics By Location
      description:
        Get member count grouped by location and membership type for stacked
        bar chart.
      operationId: get_membership_analytics_by_location_analytics_dashboards_memberships_by_location_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /analytics/dashboards/memberships/groups/{group_by}:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Membership Analytics Groups
      description: Get groups for membership analytics based on groupBy parameter.
      operationId: get_membership_analytics_groups_analytics_dashboards_memberships_groups__group_by__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: group_by
          in: path
          required: true
          schema:
            type: string
            title: Group By
        - name: location_ids
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
            default: []
            title: Location Ids
        - name: membership_ids
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
            default: []
            title: Membership Ids
        - name: member_statuses
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
            default: []
            title: Member Statuses
        - name: sold_by_provider_ids
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
            default: []
            title: Sold By Provider Ids
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: patient_name
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Patient Name
        - name: created_date_start
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            title: Created Date Start
        - name: created_date_end
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            title: Created Date End
        - name: start_date_start
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            title: Start Date Start
        - name: start_date_end
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            title: Start Date End
        - name: next_billing_date_start
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            title: Next Billing Date Start
        - name: next_billing_date_end
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            title: Next Billing Date End
        - name: timezone
          in: query
          required: false
          schema:
            type: string
            default: UTC
            title: Timezone
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_get_membership_analytics_groups_analytics_dashboards_memberships_groups__group_by__get"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/dashboards/notes-breakdown/notes-breakdown-groups:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Notes Breakdown Groups
      description: |-
        Get notes breakdown groups with totals for the GroupedTableOrchestrator.

        Returns distinct group keys with their total counts for efficient grouping.
      operationId: get_notes_breakdown_groups_analytics_dashboards_notes_breakdown_notes_breakdown_groups_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: group_by
          in: query
          required: true
          schema:
            enum:
              - location
              - created_date
              - week
              - month
            type: string
            title: Group By
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
            title: Timezone
          description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: location_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Names
        - name: provider_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Provider Ids
        - name: provider_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Provider Names
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/NoteGroupItem"
                title:
                  Response Get Notes Breakdown Groups Analytics Dashboards Notes
                  Breakdown Notes Breakdown Groups Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/dashboards/notes-breakdown/notes-breakdown:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Notes Breakdown
      description: |-
        Get detailed notes breakdown with filtering.

        Returns provider note statistics aggregated by provider.
      operationId: get_notes_breakdown_analytics_dashboards_notes_breakdown_notes_breakdown_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: group_by
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - location
                  - created_date
                  - week
                  - month
                type: string
              - type: "null"
            title: Group By
        - name: group_key
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Group Key
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
            title: Timezone
          description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
        - name: sort_by
          in: query
          required: false
          schema:
            type: string
            default: total_notes
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            enum:
              - asc
              - desc
            type: string
            default: desc
            title: Sort Direction
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: location_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Names
        - name: provider_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Provider Ids
        - name: provider_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Provider Names
        - name: location
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location
        - name: created_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Created Date
        - name: week
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Week
        - name: month
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Month
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_NotesBreakdownItem_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/dashboards/notes-breakdown/notes-breakdown-group-summaries:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Notes Breakdown Group Summaries
      description: Get summary statistics for each group in the notes breakdown.
      operationId: get_notes_breakdown_group_summaries_analytics_dashboards_notes_breakdown_notes_breakdown_group_summaries_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: group_by
          in: query
          required: true
          schema:
            enum:
              - location
              - created_date
              - week
              - month
            type: string
            title: Group By
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
            title: Timezone
          description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: location_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Names
        - name: provider_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Provider Ids
        - name: provider_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Provider Names
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/NoteGroupSummary"
                title:
                  Response Get Notes Breakdown Group Summaries Analytics Dashboards
                  Notes Breakdown Notes Breakdown Group Summaries Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /analytics/dashboards/notes-breakdown/notes-breakdown-summary:
    get:
      tags:
        - provider
        - analytics
        - analytics
      summary: Get Notes Breakdown Summary
      description:
        Get summary statistics for ungrouped notes breakdown (all filtered
        results).
      operationId: get_notes_breakdown_summary_analytics_dashboards_notes_breakdown_notes_breakdown_summary_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
            title: Timezone
          description: Timezone for date grouping (e.g., 'America/New_York', 'UTC')
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: location_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Names
        - name: provider_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Provider Ids
        - name: provider_names
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Provider Names
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NoteGroupSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /comms/email/send:
    post:
      tags:
        - provider
        - comms
        - email
      summary: Send Email
      operationId: send_email_comms_email_send_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_send_email_comms_email_send_post"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /comms/email/send/bulk:
    post:
      tags:
        - provider
        - comms
        - email
      summary: Send Bulk Email
      operationId: send_bulk_email_comms_email_send_bulk_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_send_bulk_email_comms_email_send_bulk_post"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /comms/livekit/setup-call:
    post:
      tags:
        - provider
        - comms
        - livekit
      summary: Setup Call
      operationId: setup_call_comms_livekit_setup_call_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LivekitSetupCallParams"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LivekitSetupCallResponse"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /comms/call/ai:
    post:
      tags:
        - provider
        - comms
      summary: Ai Call
      description: Initiate an AI Collections call.
      operationId: ai_call_comms_call_ai_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MakeAICall"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CallSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /comms/call/list:
    get:
      tags:
        - provider
        - comms
      summary: List Calls
      operationId: list_calls_comms_call_list_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Id
        - name: patient_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Patient Id
        - name: user_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: User Id
        - name: user_name
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: User Name
        - name: created_date
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
                  format: date-time
              - type: "null"
            title: Created Date
        - name: duration
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Duration
        - name: direction
          in: query
          required: false
          schema:
            anyOf:
              - $ref: "#/components/schemas/CallDirection"
              - type: "null"
            title: Direction
        - name: status
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  $ref: "#/components/schemas/CallStatus"
              - type: "null"
            title: Status
        - name: transcript_contains
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Transcript Contains
        - name: tags
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Tags
        - name: phone_number
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Phone Number
        - name: tz
          in: query
          required: true
          schema:
            type: string
            title: Tz
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_CallTable_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /comms/call/{call_id}/transcript:
    get:
      tags:
        - provider
        - comms
      summary: Get Transcript
      operationId: get_transcript_comms_call__call_id__transcript_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: call_id
          in: path
          required: true
          schema:
            type: string
            title: Call Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CallTranscript"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /comms/call/tags:
    get:
      tags:
        - provider
        - comms
      summary: Get Tags
      operationId: get_tags_comms_call_tags_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/TagSummary"
                type: array
                title: Response Get Tags Comms Call Tags Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /comms/chat/unread-count:
    get:
      tags:
        - provider
        - comms
      summary: Get Unread Count
      operationId: get_unread_count_comms_chat_unread_count_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: integer
                title: Response Get Unread Count Comms Chat Unread Count Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /comms/chat/list:
    get:
      tags:
        - provider
        - comms
      summary: Get
      description: |-
        Returns a list of Chats and the latest message in the chat, ordered by the latest message date by a patient or

        Args:
            per_page (int, optional): Defaults to QueryParam(12).
            page (int, optional): Defaults to QueryParam(1).
            search_term (str, optional): a search param representing a patient name or phone number
            patient_id (str, optional): filter by specific patient ID
            query_param_chat_id (str, optional): prioritize specific chat ID in results
            unread_only (bool, optional): filter to only unread chats
            unresponded_only (bool, optional): filter to chats where last message was from patient
            location_id (str, optional): filter to patients at current user's location only
            human_only (bool, optional): filter to chats where latest message is from humans (not AI assistants)
      operationId: get_comms_chat_list_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: search_term
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Search Term
        - name: patient_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Patient Id
        - name: chat_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Chat Id
        - name: unread_only
          in: query
          required: false
          schema:
            type: boolean
            default: false
            title: Unread Only
        - name: unresponded_only
          in: query
          required: false
          schema:
            type: boolean
            default: false
            title: Unresponded Only
        - name: human_only
          in: query
          required: false
          schema:
            type: boolean
            default: false
            title: Human Only
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_ChatSummary_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /comms/chat/send-suggested-message/{suggested_message_id}:
    put:
      tags:
        - provider
        - comms
      summary: Send Suggested Message
      operationId: send_suggested_message_comms_chat_send_suggested_message__suggested_message_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: suggested_message_id
          in: path
          required: true
          schema:
            type: string
            title: Suggested Message Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Send Suggested Message Comms Chat Send Suggested Message  Suggested
                  Message Id  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /comms/chat/{chat_id}/opt-out:
    put:
      tags:
        - provider
        - comms
      summary: Opt Out From Texting
      operationId: opt_out_from_texting_comms_chat__chat_id__opt_out_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: chat_id
          in: path
          required: true
          schema:
            type: string
            title: Chat Id
        - name: status
          in: query
          required: false
          schema:
            type: boolean
            description: Clinic opt out status
            default: true
            title: Status
          description: Clinic opt out status
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Opt Out From Texting Comms Chat  Chat Id  Opt Out
                  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /comms/chat/{patient_id}/opt-out-from-automated-messages:
    put:
      tags:
        - provider
        - comms
      summary: Opt Out From Automated Messages
      operationId: opt_out_from_automated_messages_comms_chat__patient_id__opt_out_from_automated_messages_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Opt Out From Automated Messages Comms Chat  Patient
                  Id  Opt Out From Automated Messages Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    get:
      tags:
        - provider
        - comms
      summary: Get Opt Out From Automated Messages
      operationId: get_opt_out_from_automated_messages_comms_chat__patient_id__opt_out_from_automated_messages_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Get Opt Out From Automated Messages Comms Chat  Patient
                  Id  Opt Out From Automated Messages Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /comms/chat/{patient_id}/opt-in-from-automated-messages:
    put:
      tags:
        - provider
        - comms
      summary: Opt In From Automated Messages
      operationId: opt_in_from_automated_messages_comms_chat__patient_id__opt_in_from_automated_messages_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Opt In From Automated Messages Comms Chat  Patient
                  Id  Opt In From Automated Messages Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /comms/chat/{chat_id}/{status}:
    put:
      tags:
        - provider
        - comms
      summary: Update Chat Status
      operationId: update_chat_status_comms_chat__chat_id___status__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: chat_id
          in: path
          required: true
          schema:
            type: string
            title: Chat Id
        - name: status
          in: path
          required: true
          schema:
            $ref: "#/components/schemas/ChatStatus"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Update Chat Status Comms Chat  Chat Id   Status  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /comms/chat/create:
    post:
      tags:
        - provider
        - comms
      summary: Create Chat
      description: Creates a chat for a given Patient
      operationId: create_chat_comms_chat_create_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChatCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ChatSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /comms/chat/get:
    get:
      tags:
        - provider
        - comms
      summary: Get Chat
      description: |-
        Get chat messages by either chat ID or patient ID

        Args:
            chat_id: The ID of the chat
            patient_id: The ID of the patient

        Raises:
            HTTPException: If neither chat_id nor patient_id is provided
      operationId: get_chat_comms_chat_get_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: chat_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Chat Id
        - name: patient_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Patient Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ChatDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /comms/chat/send-message:
    post:
      tags:
        - provider
        - comms
      summary: Create Message
      description: Create a new message with optional file attachments
      operationId: create_message_comms_chat_send_message_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_create_message_comms_chat_send_message_post"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MessageSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /comms/chat/{chat_id}/primary-patient/{patient_id}:
    put:
      tags:
        - provider
        - comms
      summary: Update Primary Patient
      description: Updates the primary patient of a chat.
      operationId: update_primary_patient_comms_chat__chat_id__primary_patient__patient_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: chat_id
          in: path
          required: true
          schema:
            type: string
            title: Chat Id
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Update Primary Patient Comms Chat  Chat Id  Primary
                  Patient  Patient Id  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /comms/chat/regenerate-suggestion:
    post:
      tags:
        - provider
        - comms
      summary: Regenerate Ai Text
      operationId: regenerate_ai_text_comms_chat_regenerate_suggestion_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RegenerateAISuggestion"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: "#/components/schemas/SuggestedMessageSummary"
                  - $ref: "#/components/schemas/ToolCallSummary"
                title:
                  Response Regenerate Ai Text Comms Chat Regenerate Suggestion
                  Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/dashboard/over-time:
    get:
      tags:
        - provider
        - billing
        - dashboard
      summary: Get Payments Over Time
      description: |-
        Get charges over time grouped by charge status and week.
        Week label reflects the actual applicable week range (e.g., "2024-04-08 to 2024-04-14").
      operationId: get_payments_over_time_billing_dashboard_over_time_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 1
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 10
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: start_date
          in: query
          required: true
          schema:
            type: string
            title: Start Date
        - name: end_date
          in: query
          required: true
          schema:
            type: string
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: payment_mediums
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Mediums
        - name: tz
          in: query
          required: true
          schema:
            type: string
            title: Tz
        - name: limit
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 5
            title: Limit
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/PaymentOverTime"
                title:
                  Response Get Payments Over Time Billing Dashboard Over Time
                  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/dashboard/failed-attempts:
    get:
      tags:
        - provider
        - billing
        - dashboard
      summary: Get Failed Payments
      description: Get failed payment attempts with pagination and filtering options.
      operationId: get_failed_payments_billing_dashboard_failed_attempts_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 1
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 10
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: start_date
          in: query
          required: true
          schema:
            type: string
            title: Start Date
        - name: end_date
          in: query
          required: true
          schema:
            type: string
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: payment_mediums
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Mediums
        - name: tz
          in: query
          required: true
          schema:
            type: string
            title: Tz
        - name: limit
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 5
            title: Limit
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FailedPayment"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/dashboard/top-selling-items:
    get:
      tags:
        - provider
        - billing
        - dashboard
      summary: Get Top Selling Items
      description: |-
        Get top selling items based on the number of times they were purchased.
        Returns the top items sorted by purchase count.
      operationId: get_top_selling_items_billing_dashboard_top_selling_items_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 1
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 10
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: start_date
          in: query
          required: true
          schema:
            type: string
            title: Start Date
        - name: end_date
          in: query
          required: true
          schema:
            type: string
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: payment_mediums
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Mediums
        - name: tz
          in: query
          required: true
          schema:
            type: string
            title: Tz
        - name: limit
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 5
            title: Limit
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/TopSellingItem"
                title:
                  Response Get Top Selling Items Billing Dashboard Top Selling
                  Items Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/dashboard/revenue:
    get:
      tags:
        - provider
        - billing
        - dashboard
      summary: Get Revenue
      description:
        Get daily revenue from POS transactions over time, filtered by
        payment method.
      operationId: get_revenue_billing_dashboard_revenue_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 1
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 10
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: start_date
          in: query
          required: true
          schema:
            type: string
            title: Start Date
        - name: end_date
          in: query
          required: true
          schema:
            type: string
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: payment_mediums
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Mediums
        - name: tz
          in: query
          required: true
          schema:
            type: string
            title: Tz
        - name: limit
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 5
            title: Limit
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Revenue"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/dashboard/overview:
    get:
      tags:
        - provider
        - billing
        - dashboard
      summary: Get Payment Overview
      description:
        Get an overview of payments including total revenue from POS, top-selling
        items, and top customers by spending.
      operationId: get_payment_overview_billing_dashboard_overview_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 1
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 10
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: start_date
          in: query
          required: true
          schema:
            type: string
            title: Start Date
        - name: end_date
          in: query
          required: true
          schema:
            type: string
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: payment_mediums
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Mediums
        - name: tz
          in: query
          required: true
          schema:
            type: string
            title: Tz
        - name: limit
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 5
            title: Limit
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaymentOverview"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/adjustment/create:
    post:
      tags:
        - provider
        - billing
      summary: Create Adjustment
      operationId: create_adjustment_billing_adjustment_create_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AdjustmentCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AdjustmentSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/write-off/create:
    post:
      tags:
        - provider
        - billing
      summary: Create Write Off
      operationId: create_write_off_billing_write_off_create_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WriteOffCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AdjustmentSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/cart:
    post:
      tags:
        - provider
        - billing
      summary: Create Cart
      description: |-
        Create a new cart with items and packages.

        This endpoint creates a cart similar to how charges are created,
        handling items, packages, discounts, and pricing calculations.
      operationId: create_cart_billing_cart_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CartCreate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CartSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
    get:
      tags:
        - provider
        - billing
      summary: Get Carts
      description: Get carts with filtering and pagination.
      operationId: get_carts_billing_cart_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Filter by patient ID
            title: Patient Id
          description: Filter by patient ID
        - name: creator_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Filter by creator ID
            title: Creator Id
          description: Filter by creator ID
        - name: statuses
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  $ref: "#/components/schemas/CartStatus"
              - type: "null"
            description: Filter by cart statuses
            title: Statuses
          description: Filter by cart statuses
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            description: Page number
            default: 1
            title: Page
          description: Page number
        - name: size
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
            description: Page size
            default: 20
            title: Size
          description: Page size
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Sort by field
            title: Sort By
          description: Sort by field
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Sort direction (asc/desc)
            title: Sort Direction
          description: Sort direction (asc/desc)
        - name: search
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description:
              Search across patient name, cart ID, patient ID, creator name,
              status, and item names
            title: Search
          description:
            Search across patient name, cart ID, patient ID, creator name,
            status, and item names
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_CartSummary_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/cart/list:
    get:
      tags:
        - provider
        - billing
      summary: Get Carts List
      description: |-
        Get carts list with full details including items and packages.
        Similar to charge list endpoint structure.
      operationId: get_carts_list_billing_cart_list_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Filter by patient ID
            title: Patient Id
          description: Filter by patient ID
        - name: status
          in: query
          required: false
          schema:
            anyOf:
              - $ref: "#/components/schemas/CartStatus"
              - type: "null"
            description: Filter by cart status
            title: Status
          description: Filter by cart status
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/CartSummary"
                title: Response Get Carts List Billing Cart List Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/cart/{cart_id}:
    get:
      tags:
        - provider
        - billing
      summary: Get Cart By Id
      description: Get cart by ID with all details including items and packages.
      operationId: get_cart_by_id_billing_cart__cart_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: cart_id
          in: path
          required: true
          schema:
            type: string
            title: Cart Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CartSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    put:
      tags:
        - provider
        - billing
      summary: Update Cart Full
      description:
        Update entire cart with items. Replaces all cart items with the
        provided ones.
      operationId: update_cart_full_billing_cart__cart_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: cart_id
          in: path
          required: true
          schema:
            type: string
            title: Cart Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CartCreate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CartSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - billing
      summary: Delete Cart
      description: Delete a cart (mark as archived).
      operationId: delete_cart_billing_cart__cart_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: cart_id
          in: path
          required: true
          schema:
            type: string
            title: Cart Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Delete Cart Billing Cart  Cart Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/cart/{cart_id}/items:
    post:
      tags:
        - provider
        - billing
      summary: Add Item To Cart
      description: |-
        Add an item to cart with quantity, pricing, and discounts.
        Automatically recalculates cart totals.
      operationId: add_item_to_cart_billing_cart__cart_id__items_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: cart_id
          in: path
          required: true
          schema:
            type: string
            title: Cart Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CartItemCreate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CartSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/cart/{cart_id}/items/{item_id}:
    put:
      tags:
        - provider
        - billing
      summary: Update Cart Item
      description: |-
        Update cart item quantity, pricing, or discounts.
        Recalculates item total and cart totals.
      operationId: update_cart_item_billing_cart__cart_id__items__item_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: cart_id
          in: path
          required: true
          schema:
            type: string
            title: Cart Id
        - name: item_id
          in: path
          required: true
          schema:
            type: string
            title: Item Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CartItemUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CartSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - billing
      summary: Remove Cart Item
      description: |-
        Remove an item from cart.
        Recalculates cart totals automatically.
      operationId: remove_cart_item_billing_cart__cart_id__items__item_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: cart_id
          in: path
          required: true
          schema:
            type: string
            title: Cart Id
        - name: item_id
          in: path
          required: true
          schema:
            type: string
            title: Item Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CartSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/cart/{cart_id}/convert-to-charge:
    post:
      tags:
        - provider
        - billing
      summary: Convert Cart To Charge
      description: |-
        Convert a cart to a charge, similar to how billing creates charges.

        This creates a formal charge with all cart items and packages,
        applying the same pricing and discount logic.
      operationId: convert_cart_to_charge_billing_cart__cart_id__convert_to_charge_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: cart_id
          in: path
          required: true
          schema:
            type: string
            title: Cart Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ConvertCartToChargeRequest"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ChargeDetail-Output"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/cart/expire-old:
    post:
      tags:
        - provider
        - billing
      summary: Expire Old Carts
      description: |-
        Expire old carts that haven't been updated.
        Returns the number of carts that were expired.
      operationId: expire_old_carts_billing_cart_expire_old_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: days_old
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            description: Number of days old to consider for expiration
            default: 30
            title: Days Old
          description: Number of days old to consider for expiration
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: integer
                title: Response Expire Old Carts Billing Cart Expire Old Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/cash-balance:
    post:
      tags:
        - provider
        - billing
      summary: Create Cash Balance
      description: Create a new cash balance record for a location.
      operationId: create_cash_balance_billing_cash_balance_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CashBalanceCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CashBalanceSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/cash-balance/expected/{location_id}:
    get:
      tags:
        - provider
        - billing
      summary: Get Expected Cash Balance
      description:
        Get the expected cash balance for a location based on last close
        + payments - refunds.
      operationId: get_expected_cash_balance_billing_cash_balance_expected__location_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: location_id
          in: path
          required: true
          schema:
            type: string
            title: Location Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExpectedCashBalance"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/cash-balance/adjustments:
    post:
      tags:
        - provider
        - billing
      summary: Create Cash Balance Adjustment
      description: Create a new cash balance adjustment (pay-in/pay-out) for a location.
      operationId: create_cash_balance_adjustment_billing_cash_balance_adjustments_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CashBalanceAdjustmentCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CashBalanceAdjustmentSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/cash-balance/adjustments/{adjustment_id}:
    put:
      tags:
        - provider
        - billing
      summary: Update Cash Balance Adjustment
      description: Update a cash balance adjustment.
      operationId: update_cash_balance_adjustment_billing_cash_balance_adjustments__adjustment_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: adjustment_id
          in: path
          required: true
          schema:
            type: string
            title: Adjustment Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CashBalanceAdjustmentUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CashBalanceAdjustmentSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - billing
      summary: Void Cash Balance Adjustment
      description: Void (archive) a cash balance adjustment record.
      operationId: void_cash_balance_adjustment_billing_cash_balance_adjustments__adjustment_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: adjustment_id
          in: path
          required: true
          schema:
            type: string
            title: Adjustment Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
                title:
                  Response Void Cash Balance Adjustment Billing Cash Balance
                  Adjustments  Adjustment Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/cash-balance/{cash_balance_id}/acknowledge:
    put:
      tags:
        - provider
        - billing
      summary: Acknowledge Cash Balance Discrepancy
      description: Acknowledge a cash balance discrepancy. Admin access only.
      operationId: acknowledge_cash_balance_discrepancy_billing_cash_balance__cash_balance_id__acknowledge_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: cash_balance_id
          in: path
          required: true
          schema:
            type: string
            title: Cash Balance Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CashBalanceSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/cash-balance/{cash_balance_id}:
    put:
      tags:
        - provider
        - billing
      summary: Update Cash Balance
      description: Update a cash balance record.
      operationId: update_cash_balance_billing_cash_balance__cash_balance_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: cash_balance_id
          in: path
          required: true
          schema:
            type: string
            title: Cash Balance Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CashBalanceUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CashBalanceSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - billing
      summary: Void Cash Balance
      description: Void (archive) a cash balance record.
      operationId: void_cash_balance_billing_cash_balance__cash_balance_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: cash_balance_id
          in: path
          required: true
          schema:
            type: string
            title: Cash Balance Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
                title:
                  Response Void Cash Balance Billing Cash Balance  Cash Balance
                  Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/cash-balance/daily-transactions:
    get:
      tags:
        - provider
        - billing
      summary: Get Daily Cash Transactions
      description:
        Get daily cash transaction summaries for a location within a date
        range.
      operationId: get_daily_cash_transactions_billing_cash_balance_daily_transactions_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: location_id
          in: query
          required: true
          schema:
            type: string
            description: The location ID to fetch transactions for
            title: Location Id
          description: The location ID to fetch transactions for
        - name: start_date
          in: query
          required: true
          schema:
            type: string
            format: date-time
            description: Start date for the range (inclusive)
            title: Start Date
          description: Start date for the range (inclusive)
        - name: end_date
          in: query
          required: true
          schema:
            type: string
            format: date-time
            description: End date for the range (inclusive)
            title: End Date
          description: End date for the range (inclusive)
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/DailyCashTransactions"
                title:
                  Response Get Daily Cash Transactions Billing Cash Balance Daily
                  Transactions Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/cash-balance/timeline:
    get:
      tags:
        - provider
        - billing
      summary: Get Cash Balance Timeline
      description: |-
        Get complete cash balance timeline for a location with all events aggregated.

        By default (when no start_date is provided), returns the last 7 days of data for performance.
        The timeline will automatically include the most recent cash balance closure before the start date
        to ensure accurate running balance calculations.
      operationId: get_cash_balance_timeline_billing_cash_balance_timeline_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: location_id
          in: query
          required: true
          schema:
            type: string
            title: Location Id
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            title: End Date
        - name: include_calculated
          in: query
          required: false
          schema:
            type: boolean
            default: true
            title: Include Calculated
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CashBalanceTimelineResponse"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/cash-balance/daily-external-settlements:
    get:
      tags:
        - provider
        - billing
      summary: Get Daily External Settlements
      description: |-
        Get daily external settlement summaries by type for a location within a date range.

        External settlements are payments settled outside the system (e.g., CARE_CREDIT, CHECK).
        This excludes:
        - Payment processor mediums (POS, VIRTUAL_TERMINAL, PAYMENT_LINK, etc.)
        - Internal mediums (CASH, PATIENT_CREDIT)
      operationId: get_daily_external_settlements_billing_cash_balance_daily_external_settlements_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: location_id
          in: query
          required: true
          schema:
            type: string
            description: The location ID to fetch settlements for
            title: Location Id
          description: The location ID to fetch settlements for
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            description: Start date for the range (inclusive)
            title: Start Date
          description: Start date for the range (inclusive)
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            description: End date for the range (inclusive)
            title: End Date
          description: End date for the range (inclusive)
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/DailyExternalSettlements"
                title:
                  Response Get Daily External Settlements Billing Cash Balance
                  Daily External Settlements Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/cash-balance/external-settlement-details:
    get:
      tags:
        - provider
        - billing
      summary: Get External Settlement Details
      description:
        Get detailed transaction information for a specific external settlement
        type and date.
      operationId: get_external_settlement_details_billing_cash_balance_external_settlement_details_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: location_id
          in: query
          required: true
          schema:
            type: string
            description: The location ID to fetch settlement details for
            title: Location Id
          description: The location ID to fetch settlement details for
        - name: settlement_type
          in: query
          required: true
          schema:
            type: string
            description: The external settlement type to fetch details for
            title: Settlement Type
          description: The external settlement type to fetch details for
        - name: date
          in: query
          required: true
          schema:
            type: string
            description: The date to fetch details for (YYYY-MM-DD format)
            title: Date
          description: The date to fetch details for (YYYY-MM-DD format)
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ExternalSettlementDetail"
                title:
                  Response Get External Settlement Details Billing Cash Balance
                  External Settlement Details Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/charge/table:
    get:
      tags:
        - provider
        - billing
      summary: Get Charges Table
      operationId: get_charges_table_billing_charge_table_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            type: string
            default: created_date
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            type: string
            default: desc
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Id
        - name: patient_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Patient Id
        - name: name
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Name
        - name: total
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: integer
              - type: "null"
            title: Total
        - name: total_outstanding
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: integer
              - type: "null"
            title: Total Outstanding
        - name: description
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Description
        - name: status
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  $ref: "#/components/schemas/ChargeStatus"
              - type: "null"
            title: Status
        - name: external_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: External Id
        - name: created_date
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
                  format: date-time
              - type: string
              - type: "null"
            title: Created Date
        - name: payment_date
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
                  format: date-time
              - type: string
              - type: "null"
            title: Payment Date
        - name: tz
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Tz
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_ChargeTable_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/charge/timeline:
    get:
      tags:
        - provider
        - billing
      summary: Get Charge Timeline
      description: |-
        Get a timeline of events for a specific charge or payment.
        This will include all related charges, payments, adjustments, and refunds.
      operationId: get_charge_timeline_billing_charge_timeline_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: charge_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Charge Id
        - name: payment_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Payment Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ChargeTimeline"
                title: Response Get Charge Timeline Billing Charge Timeline Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/charge/list:
    get:
      tags:
        - provider
        - billing
      summary: Get Charges
      operationId: get_charges_billing_charge_list_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Patient Id
        - name: status
          in: query
          required: false
          schema:
            anyOf:
              - $ref: "#/components/schemas/ChargeStatus"
              - type: "null"
            title: Status
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ChargeDetailWithItems"
                title: Response Get Charges Billing Charge List Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/charge/get/{id}:
    get:
      tags:
        - provider
        - billing
      summary: Get Charge By Id
      operationId: get_charge_by_id_billing_charge_get__id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: id
          in: path
          required: true
          schema:
            type: string
            title: Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ChargeDetailWithItems"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/charge/{charge_id}:
    delete:
      tags:
        - provider
        - billing
      summary: Delete Charge Endpoint
      description: |-
        Delete a charge and all associated records (payments, items, adjustments, etc.).
        Only allowed for charges with no card payments. Requires billing:payments:refund permission.
      operationId: delete_charge_endpoint_billing_charge__charge_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: charge_id
          in: path
          required: true
          schema:
            type: string
            title: Charge Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Delete Charge Endpoint Billing Charge  Charge Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/charge/patients-by-ids:
    get:
      tags:
        - provider
        - billing
      summary: Get Patients By Charge Ids
      description: Get patient information for multiple charge IDs.
      operationId: get_patients_by_charge_ids_billing_charge_patients_by_ids_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: charge_ids
          in: query
          required: true
          schema:
            type: array
            items:
              type: string
            title: Charge Ids
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  $ref: "#/components/schemas/UserTiny"
                title:
                  Response Get Patients By Charge Ids Billing Charge Patients
                  By Ids Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/charge/update-comment/{id}:
    post:
      tags:
        - provider
        - billing
      summary: Update Charge Comment
      operationId: update_charge_comment_billing_charge_update_comment__id__post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: id
          in: path
          required: true
          schema:
            type: string
            title: Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EditChargeComment"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Update Charge Comment Billing Charge Update Comment  Id  Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/charge/update-details/{id}:
    post:
      tags:
        - provider
        - billing
      summary: Update Charge Details
      operationId: update_charge_details_billing_charge_update_details__id__post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: id
          in: path
          required: true
          schema:
            type: string
            title: Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EditChargeDetails"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Update Charge Details Billing Charge Update Details  Id  Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/charge/update-sold-by-provider:
    post:
      tags:
        - provider
        - billing
      summary: Update Sold By Provider
      description: Update the sold_by_provider_id for a charge item or sold package.
      operationId: update_sold_by_provider_billing_charge_update_sold_by_provider_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: item_id
          in: query
          required: true
          schema:
            type: string
            title: Item Id
        - name: item_type
          in: query
          required: true
          schema:
            type: string
            title: Item Type
        - name: provider_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Provider Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
                title:
                  Response Update Sold By Provider Billing Charge Update Sold
                  By Provider Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/deposits:
    get:
      tags:
        - provider
        - billing
      summary: List Deposits
      description: List deposits for a specific month. Month filter is required.
      operationId: list_deposits_billing_deposits_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: merchant_account_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Merchant Account Id
        - name: status
          in: query
          required: false
          schema:
            anyOf:
              - $ref: "#/components/schemas/DepositStatus"
              - type: "null"
            title: Status
        - name: rainforest_deposit_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Rainforest Deposit Id
        - name: month
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Month
        - name: tz
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Tz
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
                - type: array
                  items:
                    type: string
                    format: date-time
                - type: string
                - type: "null"
              title: Created Date
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_DepositDetails_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/deposits/available-months:
    get:
      tags:
        - provider
        - billing
      summary: Get Available Months
      description: Get list of months (YYYY-MM format) that have deposits
      operationId: get_available_months_billing_deposits_available_months_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
                title:
                  Response Get Available Months Billing Deposits Available Months
                  Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/insurance-payment/create:
    post:
      tags:
        - provider
        - billing
      summary: Create Insurance Payment
      operationId: create_insurance_payment_billing_insurance_payment_create_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InsurancePaymentCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/InsurancePaymentSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/insurance-payment/create-rainforest-payin-config:
    post:
      tags:
        - provider
        - billing
      summary: Create Rainforest Payin Config
      operationId: create_rainforest_payin_config_billing_insurance_payment_create_rainforest_payin_config_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InsurancePaymentCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PayinComponentSetupResponse"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/invoice/metrics:
    get:
      tags:
        - provider
        - billing
      summary: Get Invoicing Metrics
      operationId: get_invoicing_metrics_billing_invoice_metrics_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/InvoicingMetrics"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/invoice/select-all:
    get:
      tags:
        - provider
        - billing
      summary: Select All
      operationId: select_all_billing_invoice_select_all_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            default: send_time
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            default: desc
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: search_term
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Search Term
        - name: rule_set_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Rule Set Id
        - name: status
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  $ref: "#/components/schemas/InvoiceSetStatus"
              - type: "null"
            title: Status
        - name: amount
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: integer
              - type: "null"
            title: Amount
        - name: created_date
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
                  format: date-time
              - type: "null"
            title: Created Date
        - name: send_time
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
                  format: date-time
              - type: "null"
            title: Send Time
        - name: tz
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Tz
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/InvoiceSetForTable"
                title: Response Select All Billing Invoice Select All Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/invoice/table:
    get:
      tags:
        - provider
        - billing
      summary: Get Invoices
      operationId: get_invoices_billing_invoice_table_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            default: send_time
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            default: desc
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: search_term
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Search Term
        - name: rule_set_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Rule Set Id
        - name: status
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  $ref: "#/components/schemas/InvoiceSetStatus"
              - type: "null"
            title: Status
        - name: amount
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: integer
              - type: "null"
            title: Amount
        - name: created_date
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
                  format: date-time
              - type: "null"
            title: Created Date
        - name: send_time
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
                  format: date-time
              - type: "null"
            title: Send Time
        - name: tz
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Tz
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_InvoiceSetForTable_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/invoice/execute-action:
    put:
      tags:
        - provider
        - billing
      summary: Execute Action
      operationId: execute_action_billing_invoice_execute_action_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InvoiceAction"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/invoice/retry-method:
    put:
      tags:
        - provider
        - billing
      summary: Retry Method
      operationId: retry_method_billing_invoice_retry_method_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RetryInvoiceMethod"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/InvoiceForTable"
                type: array
                title: Response Retry Method Billing Invoice Retry Method Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/invoice/{invoice_id}:
    put:
      tags:
        - provider
        - billing
      summary: Update Invoice
      operationId: update_invoice_billing_invoice__invoice_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: invoice_id
          in: path
          required: true
          schema:
            type: string
            title: Invoice Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateInvoiceData"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Update Invoice Billing Invoice  Invoice Id  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/invoice/{invoice_id}/send-now:
    put:
      tags:
        - provider
        - billing
      summary: Send Now
      operationId: send_now_billing_invoice__invoice_id__send_now_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: invoice_id
          in: path
          required: true
          schema:
            type: string
            title: Invoice Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/InvoiceForTable"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/invoice/create-from-charge/:
    post:
      tags:
        - provider
        - billing
      summary: Send To Patient
      operationId: send_to_patient_billing_invoice_create_from_charge__post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: charge_id
          in: query
          required: true
          schema:
            type: string
            title: Charge Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/InvoiceForTable"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/invoice/create:
    post:
      tags:
        - provider
        - billing
      summary: Create Manual Invoice
      description: Create and send a manual one-off invoice to a patient.
      operationId: create_manual_invoice_billing_invoice_create_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ManualInvoiceCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/InvoiceForTable"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/invoice/{invoice_id}/retry-send:
    put:
      tags:
        - provider
        - billing
      summary: Retry Send
      operationId: retry_send_billing_invoice__invoice_id__retry_send_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: invoice_id
          in: path
          required: true
          schema:
            type: string
            title: Invoice Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/InvoiceForTable"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/merchant_accounts:
    get:
      tags:
        - provider
        - billing
      summary: List Merchant Accounts
      description: Get all merchant accounts for the tenant.
      operationId: list_merchant_accounts_billing_merchant_accounts_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/MerchantAccount"
                type: array
                title: Response List Merchant Accounts Billing Merchant Accounts Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/merchant_accounts/{merchant_account_id}:
    get:
      tags:
        - provider
        - billing
      summary: Get Merchant Account
      description: Get a specific merchant account by ID.
      operationId: get_merchant_account_billing_merchant_accounts__merchant_account_id__get
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MerchantAccountFilters"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MerchantAccount"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
    put:
      tags:
        - provider
        - billing
      summary: Update Merchant Account
      description: Update a merchant account.
      operationId: update_merchant_account_billing_merchant_accounts__merchant_account_id__put
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MerchantAccountUpdate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MerchantAccount"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/payment/refund:
    post:
      tags:
        - provider
        - billing
      summary: Refund Payment
      operationId: refund_payment_billing_payment_refund_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RefundCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RefundSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/payment/{payment_id}:
    delete:
      tags:
        - provider
        - billing
      summary: Delete Payment Endpoint
      description: |-
        Delete a payment. Only allowed for external settlements and patient credit payments.
        Requires billing:payments:refund permission.
      operationId: delete_payment_endpoint_billing_payment__payment_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: payment_id
          in: path
          required: true
          schema:
            type: string
            title: Payment Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Delete Payment Endpoint Billing Payment  Payment Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/payment/send-receipt:
    post:
      tags:
        - provider
        - billing
      summary: Send Receipt
      operationId: send_receipt_billing_payment_send_receipt_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SendReceipt"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: "#/components/schemas/MessageSummary"
                  - $ref: "#/components/schemas/MailgunSendResponse"
                title: Response Send Receipt Billing Payment Send Receipt Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/payment/cash/create:
    post:
      tags:
        - provider
        - billing
      summary: Create Cash Payment
      operationId: create_cash_payment_billing_payment_cash_create_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: payment_medium
          in: query
          required: false
          schema:
            type: string
            default: CASH
            title: Payment Medium
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChargeTable-Input"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaymentSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/payment/patient-credit/create:
    post:
      tags:
        - provider
        - billing
      summary: Create Patient Credit Payment
      operationId: create_patient_credit_payment_billing_payment_patient_credit_create_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChargeTable-Input"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaymentSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/payment/{payment_id}/receipt:
    get:
      tags:
        - provider
        - billing
        - public
      summary: Get Receipt
      operationId: get_receipt_billing_payment__payment_id__receipt_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: payment_id
          in: path
          required: true
          schema:
            type: string
            title: Payment Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaymentReceipt"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/payment/{payment_id}/receipt/items:
    get:
      tags:
        - provider
        - billing
        - mfa
      summary: Get Receipt Items
      operationId: get_receipt_items_billing_payment__payment_id__receipt_items_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: payment_id
          in: path
          required: true
          schema:
            type: string
            title: Payment Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ItemWithQuantity"
                title:
                  Response Get Receipt Items Billing Payment  Payment Id  Receipt
                  Items Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/payment/{payment_id}/items/authenticated:
    get:
      tags:
        - provider
        - billing
      summary: Get Payment Items Authenticated
      description: Get payment items for authenticated providers without MFA requirement
      operationId: get_payment_items_authenticated_billing_payment__payment_id__items_authenticated_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: payment_id
          in: path
          required: true
          schema:
            type: string
            title: Payment Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ItemWithQuantity"
                title:
                  Response Get Payment Items Authenticated Billing Payment  Payment
                  Id  Items Authenticated Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/payment/table:
    get:
      tags:
        - provider
        - billing
      summary: List Payments
      description: |-
        This endpoint aggregates patient payments and insurance payments into a single table,
        then filters them according to the PaymentFetchParams. Using DISTINCT on JSON requires
        either casting them to JSONB (with an equality operator) or removing DISTINCT. Here, we
        cast to JSONB so that Postgres can do equality checks on the JSON objects.
      operationId: list_payments_billing_payment_table_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Id
        - name: payer
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Payer
        - name: external_patient_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: External Patient Id
        - name: payer_type
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Payer Type
        - name: amount
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: integer
              - type: "null"
            title: Amount
        - name: last4
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Last4
        - name: comment
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Comment
        - name: payment_mediums
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Mediums
        - name: status
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  $ref: "#/components/schemas/PaymentStatus"
              - type: "null"
            title: Status
        - name: type
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Type
        - name: tags
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Tags
        - name: created_date
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
                  format: date-time
              - type: string
              - type: "null"
            title: Created Date
        - name: tz
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Tz
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: creator_name
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Creator Name
        - name: merchant_account_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Merchant Account Ids
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaymentTable"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/payment/methods:
    get:
      tags:
        - provider
        - billing
      summary: Get Payment Methods
      operationId: get_payment_methods_billing_payment_methods_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: query
          required: true
          schema:
            type: string
            title: Patient Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/PaymentMethodSummary"
                title: Response Get Payment Methods Billing Payment Methods Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/payment/move:
    post:
      tags:
        - provider
        - billing
      summary: Move Payment
      description: |-
        Move a payment and all related objects from one patient to another.

        This function updates:
        1. The payment itself (patient_id)
        2. Payment method used for the payment (patient_id) if it exists
        3. All charges associated with this payment (patient_id)
        4. All alerts related to the payment (patient_id)
        5. All alerts related to the charges (patient_id)
        6. All alerts related to adjustments of the charges (patient_id)
        7. All alerts related to refunds of the payment (patient_id)
      operationId: move_payment_billing_payment_move_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MovePaymentRequest"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaymentSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/payment/move-to-location:
    post:
      tags:
        - provider
        - billing
      summary: Move Payment To Location
      description: |-
        Move a payment and all related objects from one location to another.

        This function updates:
        1. The payment itself (location_id)
        2. All charges associated with this payment (location_id)
        3. All refunds associated with this payment (location_id)
        4. All adjustments associated with the charges (location_id)
        5. All alerts related to the payment, charges, adjustments, and refunds (location_id)
      operationId: move_payment_to_location_billing_payment_move_to_location_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MovePaymentToLocationRequest"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaymentSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/create-payin-config-booking-fee/{event_id}/{patient_id}:
    post:
      tags:
        - provider
        - billing
        - mfa
      summary: Create Payin Config Booking Fee
      operationId: create_payin_config_booking_fee_billing_create_payin_config_booking_fee__event_id___patient_id__post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: event_id
          in: path
          required: true
          schema:
            type: string
            title: Event Id
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
        - name: is_surcharged
          in: query
          required: true
          schema:
            type: boolean
            title: Is Surcharged
        - name: creator_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Creator Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BookingFeePayinResponse"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/create-payin-config-booking-fee-billing/{event_id}/{patient_id}:
    post:
      tags:
        - provider
        - billing
        - billing
      summary: Create Payin Config Booking Fee Billing
      operationId: create_payin_config_booking_fee_billing_billing_create_payin_config_booking_fee_billing__event_id___patient_id__post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: event_id
          in: path
          required: true
          schema:
            type: string
            title: Event Id
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
        - name: creator_id
          in: query
          required: true
          schema:
            type: string
            title: Creator Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: string
                title:
                  Response Create Payin Config Booking Fee Billing Billing Create
                  Payin Config Booking Fee Billing  Event Id   Patient Id  Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/payment-link/{patient_id}:
    get:
      tags:
        - provider
        - billing
        - public
      summary: Get Payment Link
      operationId: get_payment_link_billing_payment_link__patient_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
        - name: text_receipt
          in: query
          required: false
          schema:
            type: boolean
            default: false
            title: Text Receipt
        - name: save_payment_method
          in: query
          required: false
          schema:
            type: boolean
            default: false
            title: Save Payment Method
        - name: is_surcharged
          in: query
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: "null"
            title: Is Surcharged
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/PublicInvoice"
                title: Response Get Payment Link Billing Payment Link  Patient Id  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/payment-links:
    get:
      tags:
        - provider
        - billing
        - public
      summary: Get Invoice Payment Link With Phone Number
      operationId: get_invoice_payment_link_with_phone_number_billing_payment_links_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: phone_number
          in: query
          required: true
          schema:
            type: string
            title: Phone Number
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/PublicInvoiceSummary"
                title:
                  Response Get Invoice Payment Link With Phone Number Billing
                  Payment Links Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/payment-link/verify-patient:
    post:
      tags:
        - provider
        - billing
        - public
      summary: Verify Patient
      operationId: verify_patient_billing_payment_link_verify_patient_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/VerifyPatient"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaymentLinkDetails"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/payment-plan/payin-config:
    post:
      tags:
        - provider
        - billing
        - public
      summary: Create Payin Config
      operationId: create_payin_config_billing_payment_plan_payin_config_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PayinConfigCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PayinComponentSetupResponse"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/payment-plan/{charge_id}:
    delete:
      tags:
        - provider
        - billing
      summary: Cancel Payment Plan By Charge Id
      operationId: cancel_payment_plan_by_charge_id_billing_payment_plan__charge_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: charge_id
          in: path
          required: true
          schema:
            type: string
            title: Charge Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Cancel Payment Plan By Charge Id Billing Payment Plan  Charge
                  Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/payment-plan/create-with-charges:
    post:
      tags:
        - provider
        - billing
        - public
      summary: Create Payment Plan With Charges
      description: |-
        Create a payment plan with charges for $0 down payments.
        1. Creates charges using existing billing service
        2. Creates/stores payment method using existing billing service methods
        3. Creates payment plan with those charge IDs and payment method
      operationId: create_payment_plan_with_charges_billing_payment_plan_create_with_charges_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentPlanWithChargesRequest"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaymentPlanCreate"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/payment-terminal/payin-config:
    post:
      tags:
        - provider
        - billing
      summary: Setup Payin Component
      description: Sets up a payin component for completing a given Transaction.
      operationId: setup_payin_component_billing_payment_terminal_payin_config_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PayinConfigCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PayinComponentSetupResponse"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/payment-terminal/payin-config/{payin_config_id}/metadata:
    patch:
      tags:
        - provider
        - billing
      summary: Update Payin Config Metadata
      description: |-
        Update metadata for an existing payin config.
        Only updates payment_medium and save_payment_method fields.
      operationId: update_payin_config_metadata_billing_payment_terminal_payin_config__payin_config_id__metadata_patch
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: payin_config_id
          in: path
          required: true
          schema:
            type: string
            title: Payin Config Id
        - name: payment_medium
          in: query
          required: false
          schema:
            anyOf:
              - $ref: "#/components/schemas/PaymentMedium"
              - type: "null"
            description: Payment medium to update
            title: Payment Medium
          description: Payment medium to update
        - name: save_payment_method
          in: query
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: "null"
            description: Save payment method flag to update
            title: Save Payment Method
          description: Save payment method flag to update
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                title:
                  Response Update Payin Config Metadata Billing Payment Terminal
                  Payin Config  Payin Config Id  Metadata Patch
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/payment-terminal/charge-card/{payment_method_id}:
    post:
      tags:
        - provider
        - billing
      summary: Charge Payment Method
      operationId: charge_payment_method_billing_payment_terminal_charge_card__payment_method_id__post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: payment_method_id
          in: path
          required: true
          schema:
            type: string
            title: Payment Method Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChargePaymentMethod"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ChargePaymentMethodResponse"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/payment-terminal/send-receipt:
    post:
      tags:
        - provider
        - billing
      summary: Send Receipt
      operationId: send_receipt_billing_payment_terminal_send_receipt_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: charge_id
          in: query
          required: true
          schema:
            type: string
            title: Charge Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SendingSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/payment-terminal/charge/create:
    post:
      tags:
        - provider
        - billing
      summary: Create Charge
      description: Create a charge.
      operationId: create_charge_billing_payment_terminal_charge_create_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChargeDetail-Input"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ChargeSummary-Output"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/payment-terminal/setup-invoicing:
    post:
      tags:
        - provider
        - billing
      summary: Setup Invoicing
      operationId: setup_invoicing_billing_payment_terminal_setup_invoicing_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InvoiceCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: string
                title:
                  Response Setup Invoicing Billing Payment Terminal Setup Invoicing
                  Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/payment-terminal/charge/create-cash-settled:
    post:
      tags:
        - provider
        - billing
      summary: Create Cash Settled
      description: Create a cash/check/care credit payment for charges.
      operationId: create_cash_settled_billing_payment_terminal_charge_create_cash_settled_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: payment_medium
          in: query
          required: true
          schema:
            type: string
            title: Payment Medium
        - name: amount
          in: query
          required: true
          schema:
            type: integer
            title: Amount
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: "#/components/schemas/ChargeDetail-Input"
              title: Charge Creates
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaymentSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/payment-terminal/charge/create-patient-credit-settled:
    post:
      tags:
        - provider
        - billing
      summary: Create Patient Credit Settled
      description: Create a patient credit payment for charges.
      operationId: create_patient_credit_settled_billing_payment_terminal_charge_create_patient_credit_settled_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: amount
          in: query
          required: true
          schema:
            type: integer
            title: Amount
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: "#/components/schemas/ChargeDetail-Input"
              title: Charge Creates
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaymentSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/payment-terminal/list-devices:
    get:
      tags:
        - provider
        - billing
      summary: List Devices
      operationId: list_devices_billing_payment_terminal_list_devices_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/POSDevice"
                type: array
                title:
                  Response List Devices Billing Payment Terminal List Devices
                  Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/payment-terminal/send-to-pos:
    post:
      tags:
        - provider
        - billing
      summary: Send To Pos
      operationId: send_to_pos_billing_payment_terminal_send_to_pos_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChargePOS"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                title: Response Send To Pos Billing Payment Terminal Send To Pos Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/payment-terminal/mark-no-charge:
    post:
      tags:
        - provider
        - billing
      summary: Mark No Charge
      operationId: mark_no_charge_billing_payment_terminal_mark_no_charge_post
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: "#/components/schemas/ChargeDetail-Input"
              type: array
              title: Charges
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ChargeDetail-Output"
                type: array
                title:
                  Response Mark No Charge Billing Payment Terminal Mark No Charge
                  Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/payment-terminal/create-payment-method-config:
    post:
      tags:
        - provider
        - billing
        - public
      summary: Create Payment Method Config
      operationId: create_payment_method_config_billing_payment_terminal_create_payment_method_config_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Patient Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaymentMethodConfigCreate"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/quote:
    post:
      tags:
        - provider
        - billing
      summary: Create Quote
      description: |-
        Create a new quote with items and packages.

        This endpoint creates a quote for patient review,
        generating a unique quote number for sharing.
      operationId: create_quote_billing_quote_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/QuoteCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/QuoteDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/quote/list:
    get:
      tags:
        - provider
        - billing
      summary: Get Quotes
      description: Get quotes with filtering and pagination.
      operationId: get_quotes_billing_quote_list_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Filter by patient ID
            title: Patient Id
          description: Filter by patient ID
        - name: creator_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Filter by creator ID
            title: Creator Id
          description: Filter by creator ID
        - name: cart_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Filter by cart ID
            title: Cart Id
          description: Filter by cart ID
        - name: status
          in: query
          required: false
          schema:
            anyOf:
              - $ref: "#/components/schemas/QuoteStatus"
              - type: "null"
            description: Filter by quote status
            title: Status
          description: Filter by quote status
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            description: Page number
            default: 1
            title: Page
          description: Page number
        - name: size
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
            description: Page size
            default: 20
            title: Size
          description: Page size
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_QuoteSummary_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/quote/public/{quote_id}:
    get:
      tags:
        - provider
        - billing
        - public
      summary: Get Public Quote
      description: |-
        Get a public quote by ID for patient viewing.

        This endpoint allows patients to view quotes without authentication
        using the quote ID directly. The update_viewed_date parameter controls
        whether the quote's viewed_date is updated (for patient access) or not
        (for tenant preview access).
      operationId: get_public_quote_billing_quote_public__quote_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: quote_id
          in: path
          required: true
          schema:
            type: string
            title: Quote Id
        - name: update_viewed_date
          in: query
          required: false
          schema:
            type: boolean
            description: Whether to update the viewed date
            default: true
            title: Update Viewed Date
          description: Whether to update the viewed date
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublicQuoteView"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/quote/{quote_id}:
    get:
      tags:
        - provider
        - billing
      summary: Get Quote By Id
      operationId: get_quote_by_id_billing_quote__quote_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: quote_id
          in: path
          required: true
          schema:
            type: string
            title: Quote Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/QuoteDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    put:
      tags:
        - provider
        - billing
      summary: Update Quote
      description: |-
        Update quote details like status, discounts, terms, etc.
        Recalculates totals if discounts are modified.
      operationId: update_quote_billing_quote__quote_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: quote_id
          in: path
          required: true
          schema:
            type: string
            title: Quote Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/QuoteUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/QuoteDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/quote/{quote_id}/view:
    get:
      tags:
        - provider
        - billing
        - public
      summary: Get Quote View
      description: |-
        Get quote view for authenticated users (providers/staff).
        Does not update viewed_date as this is for internal viewing.
      operationId: get_quote_view_billing_quote__quote_id__view_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: quote_id
          in: path
          required: true
          schema:
            type: string
            title: Quote Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublicQuoteView"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/quote/{quote_id}/items/add:
    post:
      tags:
        - provider
        - billing
      summary: Add Item To Quote
      description: Add an item or package to a quote.
      operationId: add_item_to_quote_billing_quote__quote_id__items_add_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: quote_id
          in: path
          required: true
          schema:
            type: string
            title: Quote Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/QuoteItemCreate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/QuoteDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/quote/{quote_id}/items/{item_id}:
    put:
      tags:
        - provider
        - billing
      summary: Update Quote Item
      description: Update a quote item's quantity, price, or discount.
      operationId: update_quote_item_billing_quote__quote_id__items__item_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: quote_id
          in: path
          required: true
          schema:
            type: string
            title: Quote Id
        - name: item_id
          in: path
          required: true
          schema:
            type: string
            title: Item Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/QuoteItemUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/QuoteDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - billing
      summary: Remove Quote Item
      description: Remove an item from a quote.
      operationId: remove_quote_item_billing_quote__quote_id__items__item_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: quote_id
          in: path
          required: true
          schema:
            type: string
            title: Quote Id
        - name: item_id
          in: path
          required: true
          schema:
            type: string
            title: Item Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/QuoteDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/quote/send:
    post:
      tags:
        - provider
        - billing
      summary: Send Quote
      description: Send quote to patient via specified method (SMS, email, etc.).
      operationId: send_quote_billing_quote_send_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SendQuoteRequest"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/QuoteDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/quote/respond:
    post:
      tags:
        - provider
        - billing
        - public
      summary: Respond To Quote
      description: Handle patient response to quote (accept/decline).
      operationId: respond_to_quote_billing_quote_respond_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/QuoteResponse"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/QuoteDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/quote/convert-to-charge:
    post:
      tags:
        - provider
        - billing
      summary: Convert Quote To Charge
      description: Convert an accepted quote to a charge for billing.
      operationId: convert_quote_to_charge_billing_quote_convert_to_charge_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ConvertQuoteToChargeRequest"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ChargeDetail-Output"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/quote/expire-old:
    post:
      tags:
        - provider
        - billing
      summary: Expire Old Quotes
      description: Expire quotes that have passed their valid_until_date.
      operationId: expire_old_quotes_billing_quote_expire_old_post
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: integer
                title: Response Expire Old Quotes Billing Quote Expire Old Post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/rule/list:
    get:
      tags:
        - provider
        - billing
      summary: Get
      operationId: get_billing_rule_list_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/RuleSummary"
                type: array
                title: Response Get Billing Rule List Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/rule-set/list:
    get:
      tags:
        - provider
        - billing
      summary: Get
      operationId: get_billing_rule_set_list_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/RuleSetSummary"
                type: array
                title: Response Get Billing Rule Set List Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/rule-set/create:
    post:
      tags:
        - provider
        - billing
      summary: Create Rule Set
      operationId: create_rule_set_billing_rule_set_create_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RuleSetCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RuleSetSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/rule-set/edit/{rule_set_id}:
    put:
      tags:
        - provider
        - billing
      summary: Rule Set Edit
      description: Edit an existing `RuleSet` and its associated `Rule`s.
      operationId: rule_set_edit_billing_rule_set_edit__rule_set_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: rule_set_id
          in: path
          required: true
          schema:
            type: string
            title: Rule Set Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RuleSetUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RuleSetSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/rule-set/delete/{rule_set_id}:
    delete:
      tags:
        - provider
        - billing
      summary: Delete Rule Set
      description: Delete a RuleSet and all its associated Rules.
      operationId: delete_rule_set_billing_rule_set_delete__rule_set_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: rule_set_id
          in: path
          required: true
          schema:
            type: string
            title: Rule Set Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/rule/delete/{rule_id}:
    delete:
      tags:
        - provider
        - billing
      summary: Delete Rule
      description: Delete a specific Rule by its ID.
      operationId: delete_rule_billing_rule_delete__rule_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: rule_id
          in: path
          required: true
          schema:
            type: string
            title: Rule Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/tips/create:
    post:
      tags:
        - provider
        - billing
      summary: Create Tip
      description: Create a new tip for a charge.
      operationId: create_tip_billing_tips_create_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TipCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TipDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /billing/tips/export/detailed:
    get:
      tags:
        - provider
        - billing
      summary: Get Detailed Tip Export Data
      description:
        Get detailed tip export data showing individual tip transactions
        for each provider.
      operationId: get_detailed_tip_export_data_billing_tips_export_detailed_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: start_date
          in: query
          required: true
          schema:
            type: string
            format: date
            description: Start date for tip export (YYYY-MM-DD)
            title: Start Date
          description: Start date for tip export (YYYY-MM-DD)
        - name: end_date
          in: query
          required: true
          schema:
            type: string
            format: date
            description: End date for tip export (YYYY-MM-DD)
            title: End Date
          description: End date for tip export (YYYY-MM-DD)
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            description: Timezone for date range
            title: Timezone
          description: Timezone for date range
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            description: Optional location IDs to filter tips by
            title: Location Ids
          description: Optional location IDs to filter tips by
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/TipDetailedExportData"
                title:
                  Response Get Detailed Tip Export Data Billing Tips Export Detailed
                  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /billing/tips/{tip_id}:
    get:
      tags:
        - provider
        - billing
      summary: Get Tip
      description: Get a tip by ID.
      operationId: get_tip_billing_tips__tip_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: tip_id
          in: path
          required: true
          schema:
            type: string
            title: Tip Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TipDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    put:
      tags:
        - provider
        - billing
      summary: Update Tip
      description: Update a tip's provider or amount.
      operationId: update_tip_billing_tips__tip_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: tip_id
          in: path
          required: true
          schema:
            type: string
            title: Tip Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TipUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TipDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - billing
      summary: Delete Tip
      description: Delete a tip.
      operationId: delete_tip_billing_tips__tip_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: tip_id
          in: path
          required: true
          schema:
            type: string
            title: Tip Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Delete Tip Billing Tips  Tip Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/settings/notification-preferences:
    get:
      tags:
        - provider
        - admin
        - notification-preferences
      summary: Get Notification Preferences
      description: Get all notification preferences for the current user.
      operationId: get_notification_preferences_admin_settings_notification_preferences_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NotificationPreferencesResponse"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
    post:
      tags:
        - provider
        - admin
        - notification-preferences
      summary: Create Notification Preferences
      description: |-
        Create or update notification preferences for the current user.

        This will replace all existing preferences with the new ones provided.
      operationId: create_notification_preferences_admin_settings_notification_preferences_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/NotificationPreferencesRequest"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NotificationPreferencesResponse"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
    delete:
      tags:
        - provider
        - admin
        - notification-preferences
      summary: Delete Notification Preferences
      description: Delete all notification preferences for the current user.
      operationId: delete_notification_preferences_admin_settings_notification_preferences_delete
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Delete Notification Preferences Admin Settings Notification
                  Preferences Delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/settings/notification-preferences/bulk:
    delete:
      tags:
        - provider
        - admin
        - notification-preferences
      summary: Bulk Delete Notification Preferences
      description: Delete multiple notification preferences by their IDs.
      operationId: bulk_delete_notification_preferences_admin_settings_notification_preferences_bulk_delete
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BulkDeleteNotificationPreferencesRequest"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Bulk Delete Notification Preferences Admin Settings
                  Notification Preferences Bulk Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/settings/notification-preferences/{preference_id}:
    delete:
      tags:
        - provider
        - admin
        - notification-preferences
      summary: Delete Notification Preference
      description: Delete a specific notification preference.
      operationId: delete_notification_preference_admin_settings_notification_preferences__preference_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: preference_id
          in: path
          required: true
          schema:
            type: string
            title: Preference Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Delete Notification Preference Admin Settings Notification
                  Preferences  Preference Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/roles/list:
    get:
      tags:
        - provider
        - admin
        - roles
      summary: List Roles
      description: List all roles.
      operationId: list_roles_admin_roles_list_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/RoleDetail"
                type: array
                title: Response List Roles Admin Roles List Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/roles:
    post:
      tags:
        - provider
        - admin
        - roles
      summary: Create Role
      description: Create a new role.
      operationId: create_role_admin_roles_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RoleCreate"
        required: true
      responses:
        "201":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RoleDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/roles/{role_id}:
    put:
      tags:
        - provider
        - admin
        - roles
      summary: Update Role
      description: Update role details (name, description, user_type).
      operationId: update_role_admin_roles__role_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: role_id
          in: path
          required: true
          schema:
            type: string
            title: Role Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RoleUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RoleDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - admin
        - roles
      summary: Delete Role
      description: Delete a role.
      operationId: delete_role_admin_roles__role_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: role_id
          in: path
          required: true
          schema:
            type: string
            title: Role Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Delete Role Admin Roles  Role Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/roles/{role_id}/permissions:
    get:
      tags:
        - provider
        - admin
        - roles
      summary: Get Role Permissions
      description: Get permissions for a specific role.
      operationId: get_role_permissions_admin_roles__role_id__permissions_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: role_id
          in: path
          required: true
          schema:
            type: string
            title: Role Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                title:
                  Response Get Role Permissions Admin Roles  Role Id  Permissions
                  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    put:
      tags:
        - provider
        - admin
        - roles
      summary: Update Role Permissions
      description: Update permissions for a specific role.
      operationId: update_role_permissions_admin_roles__role_id__permissions_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: role_id
          in: path
          required: true
          schema:
            type: string
            title: Role Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
              title: Permissions
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                title:
                  Response Update Role Permissions Admin Roles  Role Id  Permissions
                  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/bookables/list:
    get:
      tags:
        - provider
        - admin
        - bookables
      summary: List Bookables
      operationId: list_bookables_admin_bookables_list_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/BookableDetail"
                type: array
                title: Response List Bookables Admin Bookables List Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/bookables/update-or-create:
    post:
      tags:
        - provider
        - admin
        - bookables
      summary: Update Or Create Bookable
      operationId: update_or_create_bookable_admin_bookables_update_or_create_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BookableEdit"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BookableDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/bookables/delete/{bookable_id}:
    delete:
      tags:
        - provider
        - admin
        - bookables
      summary: Delete Bookable
      operationId: delete_bookable_admin_bookables_delete__bookable_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: bookable_id
          in: path
          required: true
          schema:
            type: string
            title: Bookable Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Delete Bookable Admin Bookables Delete  Bookable Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/payment-mediums/list:
    get:
      tags:
        - provider
        - admin
        - payment-mediums
      summary: List Payment Mediums
      description: List all payment mediums (both system and custom).
      operationId: list_payment_mediums_admin_payment_mediums_list_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/PaymentMediumDetail"
                type: array
                title: Response List Payment Mediums Admin Payment Mediums List Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/payment-mediums/list-external:
    get:
      tags:
        - provider
        - admin
        - payment-mediums
      summary: List External Settlement Mediums
      description:
        List payment mediums for external settlement (custom mediums +
        CASH, CHECK, CARE_CREDIT).
      operationId: list_external_settlement_mediums_admin_payment_mediums_list_external_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/PaymentMediumDetail"
                type: array
                title:
                  Response List External Settlement Mediums Admin Payment Mediums
                  List External Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/payment-mediums/create:
    post:
      tags:
        - provider
        - admin
        - payment-mediums
      summary: Create Payment Medium
      description: Create a custom settlement type.
      operationId: create_payment_medium_admin_payment_mediums_create_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentMediumCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaymentMediumDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/payment-mediums/update/{name}:
    put:
      tags:
        - provider
        - admin
        - payment-mediums
      summary: Update Payment Medium
      description:
        Update a custom settlement type. Updating the name will cascade
        to all existing payments.
      operationId: update_payment_medium_admin_payment_mediums_update__name__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: name
          in: path
          required: true
          schema:
            type: string
            title: Name
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentMediumUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaymentMediumDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/payment-mediums/delete/{name}:
    delete:
      tags:
        - provider
        - admin
        - payment-mediums
      summary: Delete Payment Medium
      description:
        Archive a custom settlement type. Cannot delete system payment
        mediums.
      operationId: delete_payment_medium_admin_payment_mediums_delete__name__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: name
          in: path
          required: true
          schema:
            type: string
            title: Name
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Delete Payment Medium Admin Payment Mediums Delete  Name  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/categories:
    get:
      tags:
        - provider
        - admin
        - categories
      summary: Get Categories
      description: Get all categories
      operationId: get_categories_admin_categories_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Category"
                type: array
                title: Response Get Categories Admin Categories Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
    post:
      tags:
        - provider
        - admin
        - categories
      summary: Create Category
      description: Create a category
      operationId: create_category_admin_categories_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Category"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Category"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/categories/{category_name}:
    put:
      tags:
        - provider
        - admin
        - categories
      summary: Update Category
      description:
        Update a category - if renaming to an existing category, merges
        them
      operationId: update_category_admin_categories__category_name__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: category_name
          in: path
          required: true
          schema:
            type: string
            title: Category Name
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Category"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Category"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - admin
        - categories
      summary: Delete Category
      description: Archive a category
      operationId: delete_category_admin_categories__category_name__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: category_name
          in: path
          required: true
          schema:
            type: string
            title: Category Name
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/categories/table:
    get:
      tags:
        - provider
        - admin
        - categories
      summary: Get Categories Table
      description: Get all categories with detailed usage information for table display
      operationId: get_categories_table_admin_categories_table_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/CategoryTable"
                type: array
                title: Response Get Categories Table Admin Categories Table Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/appointment-style-mapping:
    get:
      tags:
        - provider
        - admin
      summary: Get Appointment Style Mapping
      operationId: get_appointment_style_mapping_admin_appointment_style_mapping_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AppointmentStyleMapping-Output"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
    put:
      tags:
        - provider
        - admin
      summary: Put Appointment Style Mapping
      operationId: put_appointment_style_mapping_admin_appointment_style_mapping_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AppointmentStyleMapping-Input"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AppointmentStyleMapping-Output"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/assistants/tools:
    get:
      tags:
        - provider
        - admin
      summary: Fetch Assistant Tools
      operationId: fetch_assistant_tools_admin_assistants_tools_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/AssistantToolSummary"
                type: array
                title: Response Fetch Assistant Tools Admin Assistants Tools Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/assistants/{assistant_id}:
    get:
      tags:
        - provider
        - admin
      summary: Fetch Assistant
      operationId: fetch_assistant_admin_assistants__assistant_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: assistant_id
          in: path
          required: true
          schema:
            type: string
            title: Assistant Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AssistantDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    put:
      tags:
        - provider
        - admin
      summary: Update Assistant
      operationId: update_assistant_admin_assistants__assistant_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: assistant_id
          in: path
          required: true
          schema:
            type: string
            title: Assistant Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssistantUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AssistantDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - admin
      summary: Archive Assistant
      operationId: archive_assistant_admin_assistants__assistant_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: assistant_id
          in: path
          required: true
          schema:
            type: string
            title: Assistant Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Archive Assistant Admin Assistants  Assistant Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/assistants:
    get:
      tags:
        - provider
        - admin
      summary: Fetch Assistants
      operationId: fetch_assistants_admin_assistants_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: assistant_types
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  $ref: "#/components/schemas/AssistantType"
              - type: "null"
            description: List of assistant types to fetch
            title: Assistant Types
          description: List of assistant types to fetch
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/AssistantDetail"
                title: Response Fetch Assistants Admin Assistants Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    post:
      tags:
        - provider
        - admin
      summary: Create Assistant
      operationId: create_assistant_admin_assistants_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssistantCreate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AssistantDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/assistants/{assistant_id}/inbound/disable:
    put:
      tags:
        - provider
        - admin
      summary: Disable Inbound Assistant
      operationId: disable_inbound_assistant_admin_assistants__assistant_id__inbound_disable_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: assistant_id
          in: path
          required: true
          schema:
            type: string
            title: Assistant Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Disable Inbound Assistant Admin Assistants  Assistant
                  Id  Inbound Disable Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/assistants/{assistant_id}/inbound/enable:
    put:
      tags:
        - provider
        - admin
      summary: Enable Inbound Assistant
      operationId: enable_inbound_assistant_admin_assistants__assistant_id__inbound_enable_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: assistant_id
          in: path
          required: true
          schema:
            type: string
            title: Assistant Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Enable Inbound Assistant Admin Assistants  Assistant
                  Id  Inbound Enable Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/assistants/{assistant_id}/inbound/status:
    get:
      tags:
        - provider
        - admin
      summary: Get Inbound Assistant Status
      operationId: get_inbound_assistant_status_admin_assistants__assistant_id__inbound_status_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: assistant_id
          in: path
          required: true
          schema:
            type: string
            title: Assistant Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SignalwireInboundAssistantStatus"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/assistants/{assistant_id}/set-to-default-forwarding-number:
    put:
      tags:
        - provider
        - admin
      summary: Set Assistant As Default Forwarding Number
      operationId: set_assistant_as_default_forwarding_number_admin_assistants__assistant_id__set_to_default_forwarding_number_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: assistant_id
          in: path
          required: true
          schema:
            type: string
            title: Assistant Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Set Assistant As Default Forwarding Number Admin Assistants  Assistant
                  Id  Set To Default Forwarding Number Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/assistants/{assistant_id}/is-default:
    get:
      tags:
        - provider
        - admin
      summary: Is Assistant Default
      operationId: is_assistant_default_admin_assistants__assistant_id__is_default_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: assistant_id
          in: path
          required: true
          schema:
            type: string
            title: Assistant Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Is Assistant Default Admin Assistants  Assistant Id  Is
                  Default Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/locations/list:
    get:
      tags:
        - provider
        - admin
      summary: List Locations
      operationId: list_locations_admin_locations_list_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: name
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Name
        - name: city
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: City
        - name: state
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: State
        - name: is_virtual
          in: query
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: "null"
            title: Is Virtual
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_LocationDetail_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/locations/public:
    get:
      tags:
        - provider
        - admin
        - public
      summary: Get Public Locations
      operationId: get_public_locations_admin_locations_public_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/PublicLocation"
                type: array
                title: Response Get Public Locations Admin Locations Public Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/locations/{location_id}:
    get:
      tags:
        - provider
        - admin
      summary: Get Location
      description: Get a single location with its taxes.
      operationId: get_location_admin_locations__location_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: location_id
          in: path
          required: true
          schema:
            type: string
            title: Location Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LocationDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/locations/delete/{id}:
    delete:
      tags:
        - provider
        - admin
      summary: Delete Location
      operationId: delete_location_admin_locations_delete__id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: id
          in: path
          required: true
          schema:
            type: string
            title: Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Delete Location Admin Locations Delete  Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/locations/update-or-create:
    post:
      tags:
        - provider
        - admin
      summary: Update Or Create Location
      operationId: update_or_create_location_admin_locations_update_or_create_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_update_or_create_location_admin_locations_update_or_create_post"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LocationDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/payment/register-pos-device:
    get:
      tags:
        - provider
        - admin
      summary: Register Pos Device
      operationId: register_pos_device_admin_payment_register_pos_device_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: device_id
          in: query
          required: true
          schema:
            type: string
            title: Device Id
        - name: device_name
          in: query
          required: true
          schema:
            type: string
            title: Device Name
        - name: location_id
          in: query
          required: true
          schema:
            type: string
            title: Location Id
        - name: merchant_account_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Merchant Account Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/POSDevice"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/payment/update-pos-device-location/{device_registration_id}:
    put:
      tags:
        - provider
        - admin
      summary: Update Pos Device Location
      operationId: update_pos_device_location_admin_payment_update_pos_device_location__device_registration_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: device_registration_id
          in: path
          required: true
          schema:
            type: string
            title: Device Registration Id
        - name: location_id
          in: query
          required: true
          schema:
            type: string
            title: Location Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: string
                title:
                  Response Update Pos Device Location Admin Payment Update Pos
                  Device Location  Device Registration Id  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/payment/unregister-pos-device:
    get:
      tags:
        - provider
        - admin
      summary: Unregister Pos Device
      operationId: unregister_pos_device_admin_payment_unregister_pos_device_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: device_registration_id
          in: query
          required: true
          schema:
            type: string
            title: Device Registration Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Unregister Pos Device Admin Payment Unregister Pos
                  Device Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/settings/show-ids/{show_ids}:
    put:
      tags:
        - provider
        - admin
      summary: Update Show Ids
      description: Update the selected locations for a provider
      operationId: update_show_ids_admin_settings_show_ids__show_ids__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: show_ids
          in: path
          required: true
          schema:
            type: boolean
            title: Show Ids
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Update Show Ids Admin Settings Show Ids  Show Ids  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/settings/show-weekends-on-calendar/{show_weekends}:
    put:
      tags:
        - provider
        - admin
      summary: Update Show Weekends On Calendar
      description: Update whether to show weekends on calendar for a provider
      operationId: update_show_weekends_on_calendar_admin_settings_show_weekends_on_calendar__show_weekends__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: show_weekends
          in: path
          required: true
          schema:
            type: boolean
            title: Show Weekends
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Update Show Weekends On Calendar Admin Settings Show
                  Weekends On Calendar  Show Weekends  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/settings/adjust-calendar-hours/{start_hour}/{end_hour}:
    put:
      tags:
        - provider
        - admin
      summary: Update Adjust Calendar Hours
      description: Update the adjust calendar hours for a provider
      operationId: update_adjust_calendar_hours_admin_settings_adjust_calendar_hours__start_hour___end_hour__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: start_hour
          in: path
          required: true
          schema:
            type: integer
            title: Start Hour
        - name: end_hour
          in: path
          required: true
          schema:
            type: integer
            title: End Hour
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Update Adjust Calendar Hours Admin Settings Adjust
                  Calendar Hours  Start Hour   End Hour  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/settings/show-messages-box/{show_messages_box}:
    put:
      tags:
        - provider
        - admin
      summary: Update Show Messages Box
      description: Update the show messages box for a provider
      operationId: update_show_messages_box_admin_settings_show_messages_box__show_messages_box__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: show_messages_box
          in: path
          required: true
          schema:
            type: boolean
            title: Show Messages Box
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Update Show Messages Box Admin Settings Show Messages
                  Box  Show Messages Box  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/settings/send-gcal-invites/{send_gcal_invites}:
    put:
      tags:
        - provider
        - admin
      summary: Update Send Gcal Invites
      description: Update the send Google Calendar invites setting for a provider
      operationId: update_send_gcal_invites_admin_settings_send_gcal_invites__send_gcal_invites__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: send_gcal_invites
          in: path
          required: true
          schema:
            type: boolean
            title: Send Gcal Invites
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Update Send Gcal Invites Admin Settings Send Gcal
                  Invites  Send Gcal Invites  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/settings/show-cancelled-appointments/{show_cancelled_appointments}:
    put:
      tags:
        - provider
        - admin
      summary: Update Show Cancelled Appointments
      description: Update the show cancelled appointments setting for a provider
      operationId: update_show_cancelled_appointments_admin_settings_show_cancelled_appointments__show_cancelled_appointments__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: show_cancelled_appointments
          in: path
          required: true
          schema:
            type: boolean
            title: Show Cancelled Appointments
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Update Show Cancelled Appointments Admin Settings
                  Show Cancelled Appointments  Show Cancelled Appointments  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/settings/calendar-grid-interval/{grid_interval}:
    put:
      tags:
        - provider
        - admin
      summary: Update Calendar Grid Interval
      description: Update the calendar grid interval in minutes for a provider
      operationId: update_calendar_grid_interval_admin_settings_calendar_grid_interval__grid_interval__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: grid_interval
          in: path
          required: true
          schema:
            type: integer
            title: Grid Interval
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Update Calendar Grid Interval Admin Settings Calendar
                  Grid Interval  Grid Interval  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/settings/appointment-time-step/{step_minutes}:
    put:
      tags:
        - provider
        - admin
      summary: Update Appointment Time Step
      description: Update the appointment time step interval in minutes for a provider
      operationId: update_appointment_time_step_admin_settings_appointment_time_step__step_minutes__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: step_minutes
          in: path
          required: true
          schema:
            type: string
            title: Step Minutes
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Update Appointment Time Step Admin Settings Appointment
                  Time Step  Step Minutes  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/settings/auto-sign-off-notes/{auto_sign_off}:
    put:
      tags:
        - provider
        - admin
      summary: Update Auto Sign Off Notes
      description: Update whether notes auto sign off for this provider
      operationId: update_auto_sign_off_notes_admin_settings_auto_sign_off_notes__auto_sign_off__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: auto_sign_off
          in: path
          required: true
          schema:
            type: boolean
            title: Auto Sign Off
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Update Auto Sign Off Notes Admin Settings Auto Sign
                  Off Notes  Auto Sign Off  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/settings/show-translucent-past-events/{show_translucent_past_events}:
    put:
      tags:
        - provider
        - admin
      summary: Update Show Translucent Past Events
      description: Update the show translucent past events setting for a provider
      operationId: update_show_translucent_past_events_admin_settings_show_translucent_past_events__show_translucent_past_events__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: show_translucent_past_events
          in: path
          required: true
          schema:
            type: boolean
            title: Show Translucent Past Events
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Update Show Translucent Past Events Admin Settings
                  Show Translucent Past Events  Show Translucent Past Events  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/settings/show-ghost-event/{show_ghost_event}:
    put:
      tags:
        - provider
        - admin
      summary: Update Show Ghost Event
      description: Update the show ghost event setting for a provider
      operationId: update_show_ghost_event_admin_settings_show_ghost_event__show_ghost_event__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: show_ghost_event
          in: path
          required: true
          schema:
            type: boolean
            title: Show Ghost Event
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Update Show Ghost Event Admin Settings Show Ghost
                  Event  Show Ghost Event  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/providers/role/list:
    get:
      tags:
        - provider
        - admin
      summary: List Roles
      description: Get a list of all available roles
      operationId: list_roles_admin_providers_role_list_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/RoleSummary"
                type: array
                title: Response List Roles Admin Providers Role List Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/providers/roles:
    get:
      tags:
        - provider
        - admin
      summary: Get Provider Roles
      description: Return a map of provider_id to list of roles.
      operationId: get_provider_roles_admin_providers_roles_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: provider_ids
          in: query
          required: true
          schema:
            type: array
            items:
              type: string
            title: Provider Ids
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: array
                  items:
                    $ref: "#/components/schemas/RoleSummary"
                title: Response Get Provider Roles Admin Providers Roles Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/providers/list:
    get:
      tags:
        - provider
        - admin
      summary: List Providers
      description: Get a list of all providers
      operationId: list_providers_admin_providers_list_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: include_decoda
          in: query
          required: false
          schema:
            type: boolean
            default: true
            title: Include Decoda
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/FirebaseProviderSummary"
                title: Response List Providers Admin Providers List Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/providers/invite:
    post:
      tags:
        - provider
        - admin
      summary: Invite Provider
      description:
        Create a new provider, create a user in Firebase with a generated
        password, and send them an invite email
      operationId: invite_provider_admin_providers_invite_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProviderInvite"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProviderSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/providers/{provider_id}:
    get:
      tags:
        - provider
        - admin
      summary: Get Provider
      description: Get a provider by ID
      operationId: get_provider_admin_providers__provider_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: provider_id
          in: path
          required: true
          schema:
            type: string
            title: Provider Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProviderSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    put:
      tags:
        - provider
        - admin
      summary: Update Provider
      description: Update a provider
      operationId: update_provider_admin_providers__provider_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: provider_id
          in: path
          required: true
          schema:
            type: string
            title: Provider Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProviderUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProviderSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/providers/{provider_id}/resend:
    post:
      tags:
        - provider
        - admin
      summary: Send
      description:
        Resend the invite email to an existing provider and reset their
        password
      operationId: send_admin_providers__provider_id__resend_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: provider_id
          in: path
          required: true
          schema:
            type: string
            title: Provider Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Send Admin Providers  Provider Id  Resend Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/providers/capacity/list:
    get:
      tags:
        - provider
        - admin
      summary: Get Provider Capacity
      description: Get the capacity of providers
      operationId: get_provider_capacity_admin_providers_capacity_list_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ProviderCapacity"
                type: array
                title:
                  Response Get Provider Capacity Admin Providers Capacity List
                  Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/providers/{provider_id}/capacity:
    put:
      tags:
        - provider
        - admin
      summary: Update Provider Capacity
      description: Update the capacity of a provider
      operationId: update_provider_capacity_admin_providers__provider_id__capacity_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: provider_id
          in: path
          required: true
          schema:
            type: string
            title: Provider Id
        - name: capacity
          in: query
          required: true
          schema:
            type: integer
            title: Capacity
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProviderCapacity"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/providers/{provider_id}/archive:
    put:
      tags:
        - provider
        - admin
      summary: Remove Provider From Tenant
      description: |-
        Remove a provider from a tenant by:
        1. Archiving them in the database
        2. Removing the tenant from their Firebase custom claims
      operationId: remove_provider_from_tenant_admin_providers__provider_id__archive_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: provider_id
          in: path
          required: true
          schema:
            type: string
            title: Provider Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Remove Provider From Tenant Admin Providers  Provider
                  Id  Archive Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/providers/{provider_id}/roles:
    put:
      tags:
        - provider
        - admin
      summary: Update Provider Roles
      description: Update the roles for a provider
      operationId: update_provider_roles_admin_providers__provider_id__roles_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProviderRolesUpdate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Update Provider Roles Admin Providers  Provider Id  Roles
                  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/roles/{role_id}/tags:
    get:
      tags:
        - provider
        - admin
      summary: Get Role Tags
      description: Get all tags for a role
      operationId: get_role_tags_admin_roles__role_id__tags_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: role_id
          in: path
          required: true
          schema:
            type: string
            title: Role Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/TagSummary"
                title: Response Get Role Tags Admin Roles  Role Id  Tags Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    put:
      tags:
        - provider
        - admin
      summary: Update Role Tags
      description: Update tags for a role
      operationId: update_role_tags_admin_roles__role_id__tags_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: role_id
          in: path
          required: true
          schema:
            type: string
            title: Role Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
              title: Tag Ids
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Update Role Tags Admin Roles  Role Id  Tags Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/providers/{provider_id}/location:
    put:
      tags:
        - provider
        - admin
      summary: Update Provider Primary Location
      description: Update the primary location for a provider
      operationId: update_provider_primary_location_admin_providers__provider_id__location_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: provider_id
          in: path
          required: true
          schema:
            type: string
            title: Provider Id
        - name: primary_location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Primary Location Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Update Provider Primary Location Admin Providers  Provider
                  Id  Location Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/tags:
    get:
      tags:
        - provider
        - admin
      summary: List Tags
      description: Get all tags that can be used for roles
      operationId: list_tags_admin_tags_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/TagSummary"
                type: array
                title: Response List Tags Admin Tags Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
    post:
      tags:
        - provider
        - admin
      summary: Create Tag
      description: Create a new tag
      operationId: create_tag_admin_tags_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TagCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TagSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/tags/{tag_id}:
    put:
      tags:
        - provider
        - admin
      summary: Update Tag
      description: Update an existing tag
      operationId: update_tag_admin_tags__tag_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: tag_id
          in: path
          required: true
          schema:
            type: string
            title: Tag Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TagCreate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TagSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - admin
      summary: Delete Tag
      description: Delete a tag if it's not in use
      operationId: delete_tag_admin_tags__tag_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: tag_id
          in: path
          required: true
          schema:
            type: string
            title: Tag Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Delete Tag Admin Tags  Tag Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/providers/{provider_id}/visible-locations:
    get:
      tags:
        - provider
        - admin
      summary: Get Provider Visible Locations
      description: Get the visible locations for a provider
      operationId: get_provider_visible_locations_admin_providers__provider_id__visible_locations_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: provider_id
          in: path
          required: true
          schema:
            type: string
            title: Provider Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                title:
                  Response Get Provider Visible Locations Admin Providers  Provider
                  Id  Visible Locations Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    put:
      tags:
        - provider
        - admin
      summary: Update Provider Visible Locations
      description: Update the visible locations for a provider
      operationId: update_provider_visible_locations_admin_providers__provider_id__visible_locations_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: provider_id
          in: path
          required: true
          schema:
            type: string
            title: Provider Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/VisibleLocationsUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Update Provider Visible Locations Admin Providers  Provider
                  Id  Visible Locations Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/services/list:
    get:
      tags:
        - provider
        - admin
      summary: List Services
      operationId: list_services_admin_services_list_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ServiceTable"
                type: array
                title: Response List Services Admin Services List Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/services/delete/{id}:
    delete:
      tags:
        - provider
        - admin
      summary: Delete Service
      operationId: delete_service_admin_services_delete__id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: id
          in: path
          required: true
          schema:
            type: string
            title: Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Delete Service Admin Services Delete  Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/services/update-or-create:
    post:
      tags:
        - provider
        - admin
      summary: Update Or Create Service
      operationId: update_or_create_service_admin_services_update_or_create_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ServiceEdit"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceEdit"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/locations/{location_id}/taxes:
    get:
      tags:
        - provider
        - admin
      summary: List Location Taxes
      description: List all taxes for a specific location.
      operationId: list_location_taxes_admin_locations__location_id__taxes_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: location_id
          in: path
          required: true
          schema:
            type: string
            title: Location Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/TaxSummary"
                title:
                  Response List Location Taxes Admin Locations  Location Id  Taxes
                  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /admin/taxes:
    post:
      tags:
        - provider
        - admin
      summary: Create Tax
      description: Create a new tax for a location.
      operationId: create_tax_admin_taxes_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TaxCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TaxDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /admin/taxes/{tax_id}:
    put:
      tags:
        - provider
        - admin
      summary: Update Tax
      description: Update an existing tax.
      operationId: update_tax_admin_taxes__tax_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: tax_id
          in: path
          required: true
          schema:
            type: string
            title: Tax Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TaxUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TaxDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - admin
      summary: Delete Tax
      description: Delete a tax.
      operationId: delete_tax_admin_taxes__tax_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: tax_id
          in: path
          required: true
          schema:
            type: string
            title: Tax Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Delete Tax Admin Taxes  Tax Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/uploads/column-mappings:
    get:
      tags:
        - provider
        - user
        - upload
        - column-mappings
      summary: List Column Mappings
      description: List all column mapping groups with their mappings.
      operationId: list_column_mappings_user_patient_uploads_column_mappings_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ColumnMappingGroupResponse"
                type: array
                title:
                  Response List Column Mappings User Patient Uploads Column Mappings
                  Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
    post:
      tags:
        - provider
        - user
        - upload
        - column-mappings
      summary: Create Column Mapping
      description: Create a new column mapping group with its associated mappings.
      operationId: create_column_mapping_user_patient_uploads_column_mappings_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ColumnMappingGroupCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ColumnMappingGroupResponse"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /user/patient/uploads/column-mappings/{mapping_id}:
    get:
      tags:
        - provider
        - user
        - upload
        - column-mappings
      summary: Get Column Mapping
      description: Get a specific column mapping group with all its mappings.
      operationId: get_column_mapping_user_patient_uploads_column_mappings__mapping_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: mapping_id
          in: path
          required: true
          schema:
            type: string
            title: Mapping Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ColumnMappingGroupResponse"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - user
        - upload
        - column-mappings
      summary: Delete Column Mapping
      description: Delete a column mapping group and all its associated mappings.
      operationId: delete_column_mapping_user_patient_uploads_column_mappings__mapping_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: mapping_id
          in: path
          required: true
          schema:
            type: string
            title: Mapping Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Delete Column Mapping User Patient Uploads Column
                  Mappings  Mapping Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/uploads/column-mappings/{mapping_id}/set-default:
    put:
      tags:
        - provider
        - user
        - upload
        - column-mappings
      summary: Set Default Column Mapping
      description: Set a column mapping group as the default.
      operationId: set_default_column_mapping_user_patient_uploads_column_mappings__mapping_id__set_default_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: mapping_id
          in: path
          required: true
          schema:
            type: string
            title: Mapping Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ColumnMappingGroupResponse"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/uploads/csv:
    post:
      tags:
        - provider
        - user
        - upload
      summary: Upload Patients
      operationId: upload_patients_user_patient_uploads_csv_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_upload_patients_user_patient_uploads_csv_post"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Upload Patients User Patient Uploads Csv Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /user/patient/uploads:
    get:
      tags:
        - provider
        - user
        - upload
      summary: Get Uploads
      operationId: get_uploads_user_patient_uploads_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_PatientUpload_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/uploads/{upload_id}:
    get:
      tags:
        - provider
        - user
        - upload
      summary: Get Upload Errors
      operationId: get_upload_errors_user_patient_uploads__upload_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: upload_id
          in: path
          required: true
          schema:
            type: string
            title: Upload Id
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_PatientUploadErrors_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/payment-methods/create:
    post:
      tags:
        - provider
        - user
        - mfa
      summary: Create Payment Method
      description: Adds a payment method to a patient.
      operationId: create_payment_method_user_patient_payment_methods_create_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: query
          required: true
          schema:
            type: string
            description: ID of the patient to add the payment method to
            title: Patient Id
          description: ID of the patient to add the payment method to
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RainforestPaymentMethod"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaymentMethodSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/payment-methods/{payment_method_id}:
    delete:
      tags:
        - provider
        - user
      summary: Archive Payment Method
      description: Archive a payment method by setting is_archived to true.
      operationId: archive_payment_method_user_patient_payment_methods__payment_method_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: payment_method_id
          in: path
          required: true
          schema:
            type: string
            title: Payment Method Id
        - name: patient_id
          in: query
          required: true
          schema:
            type: string
            description: ID of the patient who owns the payment method
            title: Patient Id
          description: ID of the patient who owns the payment method
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Archive Payment Method User Patient Payment Methods  Payment
                  Method Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/doses:
    post:
      tags:
        - provider
        - user
        - doses
      summary: Create Dose
      description: Create a new dose record (medication administration).
      operationId: create_dose_user_patient_doses_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MedicationWithDoseCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DoseSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /user/patient/doses/{dose_id}:
    put:
      tags:
        - provider
        - user
        - doses
      summary: Update Dose
      description:
        Update an existing dose record. Updating a dose will unsign it,
        requiring re-approval.
      operationId: update_dose_user_patient_doses__dose_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: dose_id
          in: path
          required: true
          schema:
            type: string
            title: Dose Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DoseUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DoseSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - user
        - doses
      summary: Delete Dose
      description: Archive a dose record (soft delete).
      operationId: delete_dose_user_patient_doses__dose_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: dose_id
          in: path
          required: true
          schema:
            type: string
            title: Dose Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Delete Dose User Patient Doses  Dose Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/doses/{dose_id}/sign-off:
    post:
      tags:
        - provider
        - user
        - doses
      summary: Sign Off Dose
      description: Sign off on a dose record.
      operationId: sign_off_dose_user_patient_doses__dose_id__sign_off_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: dose_id
          in: path
          required: true
          schema:
            type: string
            title: Dose Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DeprecatedMedicationSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/{patient_id}/credit:
    get:
      tags:
        - provider
        - user
      summary: Get Patient Credits
      description: Get all credits for a patient with pagination
      operationId: get_patient_credits_user_patient__patient_id__credit_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            default: 1
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
            default: 50
            title: Per Page
        - name: include_expired
          in: query
          required: false
          schema:
            type: boolean
            description: Include expired credits in results
            default: false
            title: Include Expired
          description: Include expired credits in results
        - name: include_used
          in: query
          required: false
          schema:
            type: boolean
            description: Include fully used credits in results
            default: true
            title: Include Used
          description: Include fully used credits in results
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_PatientCreditSummary_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    post:
      tags:
        - provider
        - user
      summary: Create Patient Credit
      description: Create a new credit for a patient
      operationId: create_patient_credit_user_patient__patient_id__credit_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PatientCreditCreate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PatientCreditSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/{patient_id}/credit/{credit_id}:
    patch:
      tags:
        - provider
        - user
      summary: Update Patient Credit
      description: Update a patient credit
      operationId: update_patient_credit_user_patient__patient_id__credit__credit_id__patch
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
        - name: credit_id
          in: path
          required: true
          schema:
            type: string
            title: Credit Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PatientCreditUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PatientCreditSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - user
      summary: Delete Patient Credit
      description: Delete a patient credit (only if unused)
      operationId: delete_patient_credit_user_patient__patient_id__credit__credit_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
        - name: credit_id
          in: path
          required: true
          schema:
            type: string
            title: Credit Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                title:
                  Response Delete Patient Credit User Patient  Patient Id  Credit  Credit
                  Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/{patient_id}/credit/available:
    get:
      tags:
        - provider
        - user
      summary: Get Available Credit
      description: |-
        Get total available (non-expired, not fully used) credit for a patient.

        This endpoint matches the logic used in BillingService.take_patient_credit_payment
        to ensure consistency between what's displayed and what can actually be used.
      operationId: get_available_credit_user_patient__patient_id__credit_available_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AvailableCreditResponse"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/{patient_id}/sidebar-counts:
    get:
      tags:
        - provider
        - user
      summary: Get Patient Sidebar Snapshot
      operationId: get_patient_sidebar_snapshot_user_patient__patient_id__sidebar_counts_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
        - name: include_cancelled
          in: query
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: "null"
            default: false
            title: Include Cancelled
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PatientSidebarSnapshot"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/{patient_id}/documents:
    get:
      tags:
        - provider
        - user
      summary: Get Patient Documents
      description: Get all documents for a patient.
      operationId: get_patient_documents_user_patient__patient_id__documents_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_DocumentSummary_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/document/upload:
    post:
      tags:
        - provider
        - user
      summary: Upload Document
      description: Upload a document for a patient.
      operationId: upload_document_user_patient_document_upload_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_upload_document_user_patient_document_upload_post"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DocumentSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /user/patient/document/{document_id}:
    delete:
      tags:
        - provider
        - user
      summary: Delete Document
      description: Delete a document.
      operationId: delete_document_user_patient_document__document_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: document_id
          in: path
          required: true
          schema:
            type: string
            title: Document Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Delete Document User Patient Document  Document Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/search:
    get:
      tags:
        - provider
        - user
      summary: Search
      description: Search for a patient by name, phone number, ID, or date of birth.
      operationId: search_user_patient_search_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: search_term
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description:
              Search query for patient, could be the phone number, first
              or last name, external id, or date of birth.
            title: Search Term
          description:
            Search query for patient, could be the phone number, first or
            last name, external id, or date of birth.
        - name: n
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            description: Number of results to return
            default: 10
            title: N
          description: Number of results to return
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/PatientSummaryWithMemberships"
                title: Response Search User Patient Search Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/create:
    post:
      tags:
        - provider
        - user
      summary: Patient Create
      operationId: patient_create_user_patient_create_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PatientCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PatientSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /user/patient/list:
    get:
      tags:
        - provider
        - user
      summary: List Patient By Ids
      operationId: list_patient_by_ids_user_patient_list_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_ids
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
            description: List of patient IDs to fetch
            title: Patient Ids
          description: List of patient IDs to fetch
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/PatientSummary"
                title: Response List Patient By Ids User Patient List Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/find-duplicates:
    get:
      tags:
        - provider
        - user
      summary: Find Duplicates
      operationId: find_duplicates_user_patient_find_duplicates_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: fields
          in: query
          required: false
          schema:
            type: string
            description: List of patient fields to check for duplicates
            title: Fields
          description: List of patient fields to check for duplicates
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/MergeSummary"
                title: Response Find Duplicates User Patient Find Duplicates Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/{patient_id}/duplicates:
    get:
      tags:
        - provider
        - user
      summary: Find Duplicates Of Patient
      description: |-
        Find duplicate patients for a specific patient based on matching field values.
        Uses the patient service find_duplicates_of_patient function.
      operationId: find_duplicates_of_patient_user_patient__patient_id__duplicates_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
        - name: fields
          in: query
          required: false
          schema:
            type: string
            description: Comma-separated list of patient fields to check for duplicates
            title: Fields
          description: Comma-separated list of patient fields to check for duplicates
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/PatientSummary"
                title:
                  Response Find Duplicates Of Patient User Patient  Patient Id  Duplicates
                  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/merge-duplicates:
    post:
      tags:
        - provider
        - user
      summary: Merge Duplicates
      operationId: merge_duplicates_user_patient_merge_duplicates_post
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: "#/components/schemas/MergePatient"
              type: array
              title: Merges
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/PatientSummary"
                type: array
                title: Response Merge Duplicates User Patient Merge Duplicates Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /user/patient/blacklist:
    get:
      tags:
        - provider
        - user
      summary: Get Blacklist
      operationId: get_blacklist_user_patient_blacklist_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/PatientSummary"
                type: array
                title: Response Get Blacklist User Patient Blacklist Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /user/patient/blacklist/{patient_id}:
    put:
      tags:
        - provider
        - user
      summary: Change Blacklist Status
      operationId: change_blacklist_status_user_patient_blacklist__patient_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
        - name: status
          in: query
          required: true
          schema:
            type: boolean
            description: Whether to add or remove the patient from the blacklist
            title: Status
          description: Whether to add or remove the patient from the blacklist
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Change Blacklist Status User Patient Blacklist  Patient
                  Id  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/table:
    get:
      tags:
        - provider
        - user
      summary: Get Patient Table
      operationId: get_patient_table_user_patient_table_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Id
        - name: external_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: External Id
        - name: name
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Name
        - name: email
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Email
        - name: phone_number
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Phone Number
        - name: date_of_birth
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  anyOf:
                    - type: string
                      format: date-time
                    - type: string
              - type: "null"
            title: Date Of Birth
        - name: created_date
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
                  format: date-time
              - type: "null"
            title: Created Date
        - name: tag_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            description: Filter by patient tag IDs
            title: Tag Ids
          description: Filter by patient tag IDs
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            description: Filter by primary location IDs
            title: Location Ids
          description: Filter by primary location IDs
        - name: tz
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Tz
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_PatientTable_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/ids:
    get:
      tags:
        - provider
        - user
      summary: Get Patient Ids
      description: Get all patient IDs based on current filters.
      operationId: get_patient_ids_user_patient_ids_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Id
        - name: external_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: External Id
        - name: name
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Name
        - name: email
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Email
        - name: phone_number
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Phone Number
        - name: date_of_birth
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  anyOf:
                    - type: string
                      format: date-time
                    - type: string
              - type: "null"
            title: Date Of Birth
        - name: created_date
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
                  format: date-time
              - type: "null"
            title: Created Date
        - name: tag_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            description: Filter by patient tag IDs
            title: Tag Ids
          description: Filter by patient tag IDs
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            description: Filter by primary location IDs
            title: Location Ids
          description: Filter by primary location IDs
        - name: tz
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Tz
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                title: Response Get Patient Ids User Patient Ids Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/{id}:
    put:
      tags:
        - provider
        - user
      summary: Update Patient
      operationId: update_patient_user_patient__id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: id
          in: path
          required: true
          schema:
            type: string
            title: Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PatientUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PatientSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/{patient_id}/profile-picture:
    post:
      tags:
        - provider
        - user
      summary: Upload Patient Profile Picture
      description: |-
        Upload or remove a profile picture for a patient.
        Pass no file or empty file to remove the profile picture.
      operationId: upload_patient_profile_picture_user_patient__patient_id__profile_picture_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_upload_patient_profile_picture_user_patient__patient_id__profile_picture_post"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: string
                title:
                  Response Upload Patient Profile Picture User Patient  Patient
                  Id  Profile Picture Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/{id}/dynamic-fields:
    put:
      tags:
        - provider
        - user
      summary: Update Patient Dynamic Fields
      description: |-
        Update patient's dynamic field data.

        Args:
            dynamic_fields: Dictionary mapping field IDs to lists of values.
                           e.g., {"pdf_abc123": ["peanuts", "shellfish"], "pdf_def456": ["diabetes"]}
      operationId: update_patient_dynamic_fields_user_patient__id__dynamic_fields_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: id
          in: path
          required: true
          schema:
            type: string
            title: Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties:
                type: array
                items:
                  type: string
              title: Dynamic Fields
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UpdatePatientDynamicFieldsResponse"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/{patient_id}:
    get:
      tags:
        - provider
        - user
      summary: Get Patient
      operationId: get_patient_user_patient__patient_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PatientChart"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/archive:
    post:
      tags:
        - provider
        - user
      summary: Change Patient Archived Status
      operationId: change_patient_archived_status_user_patient_archive_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdatePatientArchivedStatus"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Change Patient Archived Status User Patient Archive
                  Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /user/patient/external-id-exists/{external_id}:
    get:
      tags:
        - provider
        - user
      summary: External Id Exists
      operationId: external_id_exists_user_patient_external_id_exists__external_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: external_id
          in: path
          required: true
          schema:
            type: string
            title: External Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response External Id Exists User Patient External Id Exists  External
                  Id  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/{patient_id}/reviews:
    get:
      tags:
        - provider
        - user
      summary: Get Patient Reviews
      description: Get all reviews for a specific patient.
      operationId: get_patient_reviews_user_patient__patient_id__reviews_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ReviewSummary"
                title:
                  Response Get Patient Reviews User Patient  Patient Id  Reviews
                  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/measurement:
    post:
      tags:
        - provider
        - user
      summary: Add Measurement
      description: Add a new measurement for a patient.
      operationId: add_measurement_user_patient_measurement_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MeasurementBase"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MeasurementSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /user/patient/{patient_id}/add-credit:
    post:
      tags:
        - provider
        - user
      summary: Add Patient Credit
      description: Add credit to a patient's account.
      operationId: add_patient_credit_user_patient__patient_id__add_credit_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AddPatientCredit"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PatientSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/{patient_id}/preferred-provider:
    put:
      tags:
        - provider
        - user
      summary: Update Patient Preferred Provider
      description: Update the preferred provider for a patient.
      operationId: update_patient_preferred_provider_user_patient__patient_id__preferred_provider_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              title: Request
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Update Patient Preferred Provider User Patient  Patient
                  Id  Preferred Provider Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/tags/list:
    get:
      tags:
        - provider
        - user
      summary: Get Patient Tags
      description: Get all patient tags with optional filtering.
      operationId: get_patient_tags_user_patient_tags_list_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: name
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Filter by tag name (partial match)
            title: Name
          description: Filter by tag name (partial match)
        - name: is_active
          in: query
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: "null"
            description: Filter by active status
            title: Is Active
          description: Filter by active status
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_PatientTagSummary_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/tags:
    post:
      tags:
        - provider
        - user
      summary: Create Patient Tag
      description: Create a new patient tag.
      operationId: create_patient_tag_user_patient_tags_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PatientTagCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PatientTagSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /user/patient/tags/{tag_id}:
    get:
      tags:
        - provider
        - user
      summary: Get Patient Tag
      description: Get a specific patient tag with patient count.
      operationId: get_patient_tag_user_patient_tags__tag_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: tag_id
          in: path
          required: true
          schema:
            type: string
            title: Tag Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PatientTagDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    put:
      tags:
        - provider
        - user
      summary: Update Patient Tag
      description: Update a patient tag.
      operationId: update_patient_tag_user_patient_tags__tag_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: tag_id
          in: path
          required: true
          schema:
            type: string
            title: Tag Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PatientTagUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PatientTagSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - user
      summary: Delete Patient Tag
      description:
        Delete a patient tag. This will also remove all associations with
        patients.
      operationId: delete_patient_tag_user_patient_tags__tag_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: tag_id
          in: path
          required: true
          schema:
            type: string
            title: Tag Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
                title: Response Delete Patient Tag User Patient Tags  Tag Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/{patient_id}/tags:
    post:
      tags:
        - provider
        - user
      summary: Assign Patient Tags
      description:
        Assign tags to a patient. This replaces all existing tags with
        the provided ones.
      operationId: assign_patient_tags_user_patient__patient_id__tags_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PatientTagAssignment"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
                title:
                  Response Assign Patient Tags User Patient  Patient Id  Tags
                  Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    get:
      tags:
        - provider
        - user
      summary: Get Patient Tags For Patient
      description: Get all tags for a specific patient.
      operationId: get_patient_tags_for_patient_user_patient__patient_id__tags_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/PatientTagSummary"
                title:
                  Response Get Patient Tags For Patient User Patient  Patient
                  Id  Tags Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/quick-note/create:
    post:
      tags:
        - provider
        - user
      summary: Create Quick Note
      description: Create a new quick note for a patient.
      operationId: create_quick_note_user_patient_quick_note_create_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/QuickNoteCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/QuickNoteSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /user/patient/quick-note/list/{patient_id}:
    get:
      tags:
        - provider
        - user
      summary: List Quick Notes
      description: Get all quick notes for a patient.
      operationId: list_quick_notes_user_patient_quick_note_list__patient_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/QuickNoteSummary"
                title:
                  Response List Quick Notes User Patient Quick Note List  Patient
                  Id  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/quick-note/{note_id}:
    get:
      tags:
        - provider
        - user
      summary: Get Quick Note
      description: Get a specific quick note by its ID.
      operationId: get_quick_note_user_patient_quick_note__note_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: note_id
          in: path
          required: true
          schema:
            type: string
            title: Note Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/QuickNoteSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - user
      summary: Delete Quick Note
      description: Delete a quick note by its ID.
      operationId: delete_quick_note_user_patient_quick_note__note_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: note_id
          in: path
          required: true
          schema:
            type: string
            title: Note Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Delete Quick Note User Patient Quick Note  Note Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/patient/quick-note/update/{note_id}:
    put:
      tags:
        - provider
        - user
      summary: Update Quick Note
      description: Update an existing quick note.
      operationId: update_quick_note_user_patient_quick_note_update__note_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: note_id
          in: path
          required: true
          schema:
            type: string
            title: Note Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/QuickNoteUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/QuickNoteSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/update/{id}:
    put:
      tags:
        - provider
        - user
      summary: Update User
      operationId: update_user_user_update__id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: id
          in: path
          required: true
          schema:
            type: string
            title: Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/contact-us:
    post:
      tags:
        - provider
        - user
      summary: Contact Us
      operationId: contact_us_user_contact_us_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ContactUsRequest"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Contact Us User Contact Us Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /user/event-icons/list:
    get:
      tags:
        - provider
        - user
      summary: Get Event Icons
      description: Get all event icons with optional filtering.
      operationId: get_event_icons_user_event_icons_list_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: icon_type
          in: query
          required: false
          schema:
            anyOf:
              - $ref: "#/components/schemas/EventIcon"
              - type: "null"
            description: Filter by icon type
            title: Icon Type
          description: Filter by icon type
        - name: is_active
          in: query
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: "null"
            description: Filter by active status
            title: Is Active
          description: Filter by active status
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_EventIconSummary_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /user/event-icons:
    post:
      tags:
        - provider
        - user
      summary: Create Event Icon
      description: Create a new event icon.
      operationId: create_event_icon_user_event_icons_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EventIconCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventIconSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /user/event-icons/{icon_id}:
    get:
      tags:
        - provider
        - user
      summary: Get Event Icon
      description: Get a specific event icon.
      operationId: get_event_icon_user_event_icons__icon_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: icon_id
          in: path
          required: true
          schema:
            type: string
            title: Icon Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventIconDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    put:
      tags:
        - provider
        - user
      summary: Update Event Icon
      description: Update an event icon.
      operationId: update_event_icon_user_event_icons__icon_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: icon_id
          in: path
          required: true
          schema:
            type: string
            title: Icon Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EventIconUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventIconSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - user
      summary: Delete Event Icon
      description: Delete an event icon.
      operationId: delete_event_icon_user_event_icons__icon_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: icon_id
          in: path
          required: true
          schema:
            type: string
            title: Icon Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
                title: Response Delete Event Icon User Event Icons  Icon Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /dashboard/over-time:
    get:
      tags:
        - provider
        - dashboard
      summary: Get Payments Over Time
      description: |-
        Get charges over time grouped by charge status and week.
        Week label reflects the actual applicable week range (e.g., "2024-04-08 to 2024-04-14").
      operationId: get_payments_over_time_dashboard_over_time_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 1
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 10
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: start_date
          in: query
          required: true
          schema:
            type: string
            title: Start Date
        - name: end_date
          in: query
          required: true
          schema:
            type: string
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: payment_mediums
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Mediums
        - name: tz
          in: query
          required: true
          schema:
            type: string
            title: Tz
        - name: limit
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 5
            title: Limit
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/PaymentOverTime"
                title: Response Get Payments Over Time Dashboard Over Time Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /dashboard/failed-attempts:
    get:
      tags:
        - provider
        - dashboard
      summary: Get Failed Payments
      description: Get failed payment attempts with pagination and filtering options.
      operationId: get_failed_payments_dashboard_failed_attempts_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 1
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 10
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: start_date
          in: query
          required: true
          schema:
            type: string
            title: Start Date
        - name: end_date
          in: query
          required: true
          schema:
            type: string
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: payment_mediums
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Mediums
        - name: tz
          in: query
          required: true
          schema:
            type: string
            title: Tz
        - name: limit
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 5
            title: Limit
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FailedPayment"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /dashboard/top-selling-items:
    get:
      tags:
        - provider
        - dashboard
      summary: Get Top Selling Items
      description: |-
        Get top selling items based on the number of times they were purchased.
        Returns the top items sorted by purchase count.
      operationId: get_top_selling_items_dashboard_top_selling_items_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 1
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 10
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: start_date
          in: query
          required: true
          schema:
            type: string
            title: Start Date
        - name: end_date
          in: query
          required: true
          schema:
            type: string
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: payment_mediums
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Mediums
        - name: tz
          in: query
          required: true
          schema:
            type: string
            title: Tz
        - name: limit
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 5
            title: Limit
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/TopSellingItem"
                title:
                  Response Get Top Selling Items Dashboard Top Selling Items
                  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /dashboard/revenue:
    get:
      tags:
        - provider
        - dashboard
      summary: Get Revenue
      description:
        Get daily revenue from POS transactions over time, filtered by
        payment method.
      operationId: get_revenue_dashboard_revenue_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 1
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 10
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: start_date
          in: query
          required: true
          schema:
            type: string
            title: Start Date
        - name: end_date
          in: query
          required: true
          schema:
            type: string
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: payment_mediums
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Mediums
        - name: tz
          in: query
          required: true
          schema:
            type: string
            title: Tz
        - name: limit
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 5
            title: Limit
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Revenue"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /dashboard/overview:
    get:
      tags:
        - provider
        - dashboard
      summary: Get Payment Overview
      description:
        Get an overview of payments including total revenue from POS, top-selling
        items, and top customers by spending.
      operationId: get_payment_overview_dashboard_overview_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 1
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 10
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: start_date
          in: query
          required: true
          schema:
            type: string
            title: Start Date
        - name: end_date
          in: query
          required: true
          schema:
            type: string
            title: End Date
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
        - name: payment_mediums
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Payment Mediums
        - name: tz
          in: query
          required: true
          schema:
            type: string
            title: Tz
        - name: limit
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            default: 5
            title: Limit
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaymentOverview"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/self-schedule/front-page:
    get:
      tags:
        - provider
        - calendar
        - self-schedule
        - public
      summary: Get Front Page
      operationId: get_front_page_calendar_self_schedule_front_page_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FrontPage"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /patient/self-schedule/availability:
    post:
      tags:
        - provider
        - calendar
        - self-schedule
        - public
      summary: Get Availability
      operationId: get_availability_patient_self_schedule_availability_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AvailabilityRequest"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/GroupedAvailability"
                title:
                  Response Get Availability Patient Self Schedule Availability
                  Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/self-schedule/appointment:
    post:
      tags:
        - provider
        - calendar
        - self-schedule
        - mfa
      summary: Create Appointment
      operationId: create_appointment_calendar_self_schedule_appointment_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SelfScheduleAppointment"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: "#/components/schemas/EventDetail"
                  - type: "null"
                title:
                  Response Create Appointment Calendar Self Schedule Appointment
                  Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /calendar/self-schedule/cancel-appointment/{appointment_id}:
    post:
      tags:
        - provider
        - calendar
        - self-schedule
        - mfa
      summary: Cancel Appointment
      operationId: cancel_appointment_calendar_self_schedule_cancel_appointment__appointment_id__post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: appointment_id
          in: path
          required: true
          schema:
            type: string
            title: Appointment Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SelfScheduleCancellationRequest"
              default: {}
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Cancel Appointment Calendar Self Schedule Cancel Appointment  Appointment
                  Id  Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/self-schedule/appointment/{event_id}/forms:
    get:
      tags:
        - provider
        - calendar
        - self-schedule
        - mfa
      summary: Get Appointment Forms
      operationId: get_appointment_forms_calendar_self_schedule_appointment__event_id__forms_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: event_id
          in: path
          required: true
          schema:
            type: string
            title: Event Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/FormTiny"
                title:
                  Response Get Appointment Forms Calendar Self Schedule Appointment  Event
                  Id  Forms Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/self-schedule/appointment/{event_id}/forms/with-status:
    get:
      tags:
        - provider
        - calendar
        - self-schedule
        - public
      summary: Get Appointment Forms With Status
      operationId: get_appointment_forms_with_status_calendar_self_schedule_appointment__event_id__forms_with_status_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: event_id
          in: path
          required: true
          schema:
            type: string
            title: Event Id
        - name: patient_id
          in: query
          required: true
          schema:
            type: string
            title: Patient Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/FormTinyWithStatus"
                title:
                  Response Get Appointment Forms With Status Calendar Self Schedule
                  Appointment  Event Id  Forms With Status Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/self-schedule/check-if-patient-with-appointments/{patient_id}:
    get:
      tags:
        - provider
        - calendar
        - self-schedule
        - mfa
      summary: Check If Patient With Appointments
      operationId: check_if_patient_with_appointments_calendar_self_schedule_check_if_patient_with_appointments__patient_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Check If Patient With Appointments Calendar Self Schedule
                  Check If Patient With Appointments  Patient Id  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/self-schedule/blacklist/check-phone/{phone_number}:
    get:
      tags:
        - provider
        - calendar
        - self-schedule
        - public
      summary: Check Phone Blacklist Status
      description: Check if any patient with this phone number is blacklisted.
      operationId: check_phone_blacklist_status_calendar_self_schedule_blacklist_check_phone__phone_number__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: phone_number
          in: path
          required: true
          schema:
            type: string
            title: Phone Number
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Check Phone Blacklist Status Calendar Self Schedule
                  Blacklist Check Phone  Phone Number  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/providers:
    get:
      tags:
        - provider
        - calendar
      summary: Get Providers
      description: List providers with their appointments for scheduling an appointment
      operationId: get_providers_calendar_providers_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: search
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Search
        - name: include_assistants
          in: query
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: "null"
            default: false
            title: Include Assistants
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ProviderWithServices"
                title: Response Get Providers Calendar Providers Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/locations:
    get:
      tags:
        - provider
        - calendar
      summary: Get Locations
      operationId: get_locations_calendar_locations_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/LocationDetail"
                type: array
                title: Response Get Locations Calendar Locations Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /calendar/event/list:
    get:
      tags:
        - provider
        - calendar
      summary: List Events
      operationId: list_events_calendar_event_list_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: user_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: User Ids
        - name: types
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  $ref: "#/components/schemas/EventType"
              - type: "null"
            default:
              - APPOINTMENT
              - SHIFT
              - BLOCK
            title: Types
        - name: statuses
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  $ref: "#/components/schemas/EventStatus"
              - type: "null"
            title: Statuses
        - name: start
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            title: Start
        - name: end
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            title: End
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/EventTiny-Output"
                title: Response List Events Calendar Event List Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/detail/{id}:
    get:
      tags:
        - provider
        - calendar
      summary: Get Event Detail
      operationId: get_event_detail_calendar_detail__id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: id
          in: path
          required: true
          schema:
            type: string
            title: Id
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            title: Timezone
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/events-for-patient/{patient_id}:
    get:
      tags:
        - provider
        - calendar
      summary: Get Events For Patient
      operationId: get_events_for_patient_calendar_events_for_patient__patient_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
        - name: search
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Search
        - name: statuses
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  $ref: "#/components/schemas/EventStatus"
              - type: "null"
            title: Statuses
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/EventDetail"
                title:
                  Response Get Events For Patient Calendar Events For Patient  Patient
                  Id  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/bookable/usage:
    get:
      tags:
        - provider
        - calendar
      summary: Get Bookable Usage
      description: |-
        Return all EventServiceBookable slices for the given bookable IDs within [start, end].

        Excludes archived events.
      operationId: get_bookable_usage_calendar_bookable_usage_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: bookable_ids
          in: query
          required: true
          schema:
            type: array
            items:
              type: string
            title: Bookable Ids
        - name: start
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            title: Start
        - name: end
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            title: End
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/EventServiceBookable"
                title: Response Get Bookable Usage Calendar Bookable Usage Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/event/messages/types:
    get:
      tags:
        - provider
        - calendar
      summary: Get Event Message Types
      operationId: get_event_message_types_calendar_event_messages_types_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: event_ids
          in: query
          required: true
          schema:
            type: array
            items:
              type: string
            title: Event Ids
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: array
                  items:
                    $ref: "#/components/schemas/MessageType"
                title:
                  Response Get Event Message Types Calendar Event Messages Types
                  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/event/messages/{event_id}:
    get:
      tags:
        - provider
        - calendar
      summary: Get Event Messages
      description:
        Return all messages associated with a given event id across related
        chats.
      operationId: get_event_messages_calendar_event_messages__event_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: event_id
          in: path
          required: true
          schema:
            type: string
            title: Event Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/MessageSummary"
                title:
                  Response Get Event Messages Calendar Event Messages  Event
                  Id  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/appointment-checklist:
    get:
      tags:
        - provider
        - calendar
      summary: Get Event Appointment Checklist
      description:
        Return checklist items for the given event from AppointmentChecklistItem
        joined with ServiceChecklist.
      operationId: get_event_appointment_checklist_calendar_appointment_checklist_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: event_id
          in: query
          required: true
          schema:
            type: string
            title: Event Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/AppointmentChecklistItem"
                title:
                  Response Get Event Appointment Checklist Calendar Appointment
                  Checklist Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/appointment-checklist/update:
    post:
      tags:
        - provider
        - calendar
      summary: Update Appointment Checklist
      operationId: update_appointment_checklist_calendar_appointment_checklist_update_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AppointmentChecklistItemUpdate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Update Appointment Checklist Calendar Appointment
                  Checklist Update Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /calendar/delete/{event_id}:
    delete:
      tags:
        - provider
        - calendar
      summary: Delete Event
      operationId: delete_event_calendar_delete__event_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: event_id
          in: path
          required: true
          schema:
            type: string
            title: Event Id
        - name: recurrence_modification_mode
          in: query
          required: false
          schema:
            $ref: "#/components/schemas/RecurrenceModificationMode"
            default: this
        - name: cancellation_reason
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Cancellation Reason
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                title: Response Delete Event Calendar Delete  Event Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/create:
    post:
      tags:
        - provider
        - calendar
      summary: Create Event
      operationId: create_event_calendar_create_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            title: Timezone
        - name: send_notifications
          in: query
          required: false
          schema:
            type: boolean
            default: true
            title: Send Notifications
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EventCreate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/EventDetail"
                title: Response Create Event Calendar Create Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/update-status/{event_id}:
    put:
      tags:
        - provider
        - calendar
      summary: Update Event Status
      operationId: update_event_status_calendar_update_status__event_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: event_id
          in: path
          required: true
          schema:
            type: string
            title: Event Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EventStatusUpdateRequest"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/update:
    put:
      tags:
        - provider
        - calendar
      summary: Update Event
      operationId: update_event_calendar_update_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EventUpdate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/EventDetail"
                type: array
                title: Response Update Event Calendar Update Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /calendar/recurring-event/{event_id}:
    delete:
      tags:
        - provider
        - calendar
      summary: Delete Recurring Event
      operationId: delete_recurring_event_calendar_recurring_event__event_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: event_id
          in: path
          required: true
          schema:
            type: string
            title: Event Id
        - name: recurrence_modification_mode
          in: query
          required: true
          schema:
            $ref: "#/components/schemas/RecurrenceModificationMode"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                title:
                  Response Delete Recurring Event Calendar Recurring Event  Event
                  Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/{event_id}/logs:
    get:
      tags:
        - provider
        - calendar
      summary: Get Event Logs
      description: Get event logs for a specific event
      operationId: get_event_logs_calendar__event_id__logs_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: event_id
          in: path
          required: true
          schema:
            type: string
            title: Event Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/EventLogSummary"
                title: Response Get Event Logs Calendar  Event Id  Logs Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/extend-recurring/execute:
    post:
      tags:
        - provider
        - calendar
      summary: Execute Extend Recurring
      operationId: execute_extend_recurring_calendar_extend_recurring_execute_post
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /calendar/event/shift/conflicts:
    get:
      tags:
        - provider
        - calendar
      summary: Get Conflicted Shifts
      operationId: get_conflicted_shifts_calendar_event_shift_conflicts_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: start
          in: query
          required: true
          schema:
            type: string
            format: date-time
            title: Start
        - name: end
          in: query
          required: true
          schema:
            type: string
            format: date-time
            title: End
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/EventTiny-Output"
                title:
                  Response Get Conflicted Shifts Calendar Event Shift Conflicts
                  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/connect-record-to-event:
    put:
      tags:
        - provider
        - calendar
      summary: Connect Record To Event
      description: |-
        Connect any record that has a foreign key to Event to a specific event.

        This endpoint automatically finds which table contains the record_id and updates
        the appropriate foreign key column to link it to the specified event.
      operationId: connect_record_to_event_calendar_connect_record_to_event_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: event_id
          in: query
          required: true
          schema:
            type: string
            title: Event Id
        - name: record_id
          in: query
          required: true
          schema:
            type: string
            title: Record Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/shifts/by-date:
    get:
      tags:
        - provider
        - calendar
      summary: Get Shifts By Date
      description: Get all shifts for a specific date with provider information
      operationId: get_shifts_by_date_calendar_shifts_by_date_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: date
          in: query
          required: true
          schema:
            type: string
            description: Date in YYYY-MM-DD format
            title: Date
          description: Date in YYYY-MM-DD format
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ShiftsByDateResponse"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /calendar/shifts/delete-by-provider:
    delete:
      tags:
        - provider
        - calendar
      summary: Delete Shifts By Provider
      description: Delete shifts for specific providers on a specific date
      operationId: delete_shifts_by_provider_calendar_shifts_delete_by_provider_delete
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DeleteProviderShiftsRequest"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: integer
                title:
                  Response Delete Shifts By Provider Calendar Shifts Delete By
                  Provider Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /calendar/shifts/delete-by-dates:
    delete:
      tags:
        - provider
        - calendar
      summary: Delete Shifts By Dates
      description: Delete all shifts for the specified dates
      operationId: delete_shifts_by_dates_calendar_shifts_delete_by_dates_delete
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DeleteShiftsByDatesRequest"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: integer
                title:
                  Response Delete Shifts By Dates Calendar Shifts Delete By Dates
                  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /forms/table:
    get:
      tags:
        - provider
        - forms
      summary: List Forms
      operationId: list_forms_forms_table_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/FormTable"
                type: array
                title: Response List Forms Forms Table Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /forms/archive/{form_id}:
    delete:
      tags:
        - provider
        - forms
      summary: Archive Form
      operationId: archive_form_forms_archive__form_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: form_id
          in: path
          required: true
          schema:
            type: string
            title: Form Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Archive Form Forms Archive  Form Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /forms/{form_id}/structure:
    get:
      tags:
        - provider
        - forms
      summary: Get Form Structure
      operationId: get_form_structure_forms__form_id__structure_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: form_id
          in: path
          required: true
          schema:
            type: string
            title: Form Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FormStructure"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /forms/{form_id}/submissions:
    get:
      tags:
        - provider
        - forms
      summary: Get Form Submissions
      operationId: get_form_submissions_forms__form_id__submissions_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: form_id
          in: path
          required: true
          schema:
            type: string
            title: Form Id
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: patient_name
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Patient Name
        - name: submission_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Submission Date
        - name: patient_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Patient Id
        - name: index
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Index
        - name: show_archived
          in: query
          required: false
          schema:
            type: boolean
            default: false
            title: Show Archived
        - name: tz
          in: query
          required: true
          schema:
            type: string
            title: Tz
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_PatientSubmission_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /forms/submissions:
    get:
      tags:
        - provider
        - forms
      summary: Get Patient Submissions
      operationId: get_patient_submissions_forms_submissions_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: patient_name
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Patient Name
        - name: submission_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Submission Date
        - name: patient_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Patient Id
        - name: phone_number
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Phone Number
        - name: form_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Form Ids
        - name: had_upload_error
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Had Upload Error
        - name: is_completed
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Is Completed
        - name: tz
          in: query
          required: true
          schema:
            type: string
            title: Tz
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
                - type: array
                  items:
                    $ref: "#/components/schemas/BlockType"
                - type: "null"
              title: Blocks Completed
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PatientSubmissionsTable"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /forms/{form_id}/consent-info:
    get:
      tags:
        - provider
        - forms
      summary: Get Consent Info
      operationId: get_consent_info_forms__form_id__consent_info_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: form_id
          in: path
          required: true
          schema:
            type: string
            title: Form Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  anyOf:
                    - $ref: "#/components/schemas/ConsentText"
                    - $ref: "#/components/schemas/ConsentDocument"
                title: Response Get Consent Info Forms  Form Id  Consent Info Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /forms/{form_id}/default-text:
    put:
      tags:
        - provider
        - forms
      summary: Update Form Default Text
      operationId: update_form_default_text_forms__form_id__default_text_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FormDefaultTextEdit"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Update Form Default Text Forms  Form Id  Default Text
                  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /forms/list:
    get:
      tags:
        - provider
        - forms
      summary: List Forms
      operationId: list_forms_forms_list_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/FormDetail-Output"
                type: array
                title: Response List Forms Forms List Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /forms/{form_id}/details:
    get:
      tags:
        - provider
        - forms
      summary: Get Form Details
      operationId: get_form_details_forms__form_id__details_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: form_id
          in: path
          required: true
          schema:
            type: string
            title: Form Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FormDetail-Output"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /forms/{form_id}:
    put:
      tags:
        - provider
        - forms
      summary: Update Form
      operationId: update_form_forms__form_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: form_id
          in: path
          required: true
          schema:
            type: string
            title: Form Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FormDetail-Input"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FormDetail-Output"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /forms/form/block/{block_id}/archive:
    put:
      tags:
        - provider
        - forms
      summary: Archive Block
      operationId: archive_block_forms_form_block__block_id__archive_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: block_id
          in: path
          required: true
          schema:
            type: string
            title: Block Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /forms/form/{form_id}/insert-block:
    put:
      tags:
        - provider
        - forms
      summary: Insert Block
      operationId: insert_block_forms_form__form_id__insert_block_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: form_id
          in: path
          required: true
          schema:
            type: string
            title: Form Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BlockDetail-Input"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FormDetail-Output"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /forms/block/{block_id}/insert-question:
    put:
      tags:
        - provider
        - forms
      summary: Insert Question
      operationId: insert_question_forms_block__block_id__insert_question_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: block_id
          in: path
          required: true
          schema:
            type: string
            title: Block Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/QuestionDetail-Input"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BlockDetail-Output"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /forms:
    post:
      tags:
        - provider
        - forms
      summary: Create Form
      operationId: create_form_forms_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FormDetail-Input"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FormDetail-Output"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /forms/batch/exists:
    get:
      tags:
        - provider
        - forms
        - public
      summary: Forms Exist
      description:
        Check if at least one form in a comma-separated list exists and
        is not archived.
      operationId: forms_exist_forms_batch_exists_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: form_paths
          in: query
          required: true
          schema:
            type: string
            title: Form Paths
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Forms Exist Forms Batch Exists Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /forms/with-status:
    get:
      tags:
        - provider
        - forms
        - public
      summary: Get Forms With Status
      description: Get multiple forms with their completion status for a patient.
      operationId: get_forms_with_status_forms_with_status_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: form_paths
          in: query
          required: true
          schema:
            type: string
            title: Form Paths
        - name: patient_id
          in: query
          required: true
          schema:
            type: string
            title: Patient Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/FormTinyWithStatus"
                title: Response Get Forms With Status Forms With Status Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /forms/{form_path}/exists:
    get:
      tags:
        - provider
        - forms
        - public
      summary: Form Path Exists
      operationId: form_path_exists_forms__form_path__exists_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: form_path
          in: path
          required: true
          schema:
            type: string
            title: Form Path
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Form Path Exists Forms  Form Path  Exists Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /forms/appointment/{appointment_id}/exists:
    get:
      tags:
        - provider
        - forms
        - public
      summary: Service Forms Exist
      description: |-
        Check if a service has any forms associated with it.

        Accepts either a service ID directly or an event ID (resolved via EventService rows).
      operationId: service_forms_exist_forms_appointment__appointment_id__exists_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: appointment_id
          in: path
          required: true
          schema:
            type: string
            title: Appointment Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Service Forms Exist Forms Appointment  Appointment
                  Id  Exists Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /forms/{form_path}:
    get:
      tags:
        - provider
        - forms
        - public
      summary: Get Form
      operationId: get_form_forms__form_path__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: form_path
          in: path
          required: true
          schema:
            type: string
            title: Form Path
        - name: patient_id
          in: query
          required: true
          schema:
            type: string
            title: Patient Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnsweredFormDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /forms/{form_id}/submit:
    put:
      tags:
        - provider
        - forms
        - public
      summary: Patient Form Submission
      operationId: patient_form_submission_forms__form_id__submit_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: form_id
          in: path
          required: true
          schema:
            type: string
            title: Form Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FormSubmissionData"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Patient Form Submission Forms  Form Id  Submit Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /forms/file/upload:
    post:
      tags:
        - provider
        - forms
        - public
      summary: Upload File
      operationId: upload_file_forms_file_upload_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_upload_file_forms_file_upload_post"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /forms/estimate:
    post:
      tags:
        - provider
        - forms
      summary: Patient Responsibility
      operationId: patient_responsibility_forms_estimate_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: verbose
          in: query
          required: false
          schema:
            type: boolean
            default: false
            title: Verbose
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PatientResponsibilityRequest"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PatientResponsibilityResponse"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /forms/payers/list:
    get:
      tags:
        - provider
        - forms
        - public
      summary: Payers
      operationId: payers_forms_payers_list_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/PVerifyPayerListResponse"
                type: array
                title: Response Payers Forms Payers List Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /notes/list:
    get:
      tags:
        - provider
        - scribe
        - note
      summary: Get Notes
      operationId: get_notes_notes_list_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: provider_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Provider Id
        - name: patient_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Patient Id
        - name: note_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Note Id
        - name: patient_name
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Patient Name
        - name: created_date
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
                  format: date-time
              - type: "null"
            title: Created Date
        - name: tz
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Tz
        - name: template_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Template Id
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Location Ids
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_NoteListItem_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /notes/{note_id}/detail:
    get:
      tags:
        - provider
        - scribe
        - note
      summary: Get Note Detail
      operationId: get_note_detail_notes__note_id__detail_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: note_id
          in: path
          required: true
          schema:
            type: string
            title: Note Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NoteDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /notes/{note_transcript_id}/combine-audio:
    post:
      tags:
        - provider
        - scribe
        - note
      summary: Combine Audio Files Async
      operationId: combine_audio_files_async_notes__note_transcript_id__combine_audio_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: note_transcript_id
          in: path
          required: true
          schema:
            type: string
            title: Note Transcript Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Combine Audio Files Async Notes  Note Transcript Id  Combine
                  Audio Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /notes/create:
    post:
      tags:
        - provider
        - scribe
        - note
      summary: Create Note
      operationId: create_note_notes_create_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/NoteCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NoteDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /notes/upload:
    post:
      tags:
        - provider
        - scribe
        - note
      summary: Upload Note
      description: |-
        Upload images/PDFs and optionally create note with AI-generated content using Gemini.

        If skip_ai_generation is True, the note will be created with just the uploaded files
        attached, without AI processing.
      operationId: upload_note_notes_upload_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_upload_note_notes_upload_post"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NoteScribeResponse"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /notes/archive:
    post:
      tags:
        - provider
        - scribe
        - note
      summary: Archive Note
      operationId: archive_note_notes_archive_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: note_id
          in: query
          required: false
          schema:
            type: string
            title: Note Id
        - name: note_transcript_id
          in: query
          required: false
          schema:
            type: string
            title: Note Transcript Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Archive Note Notes Archive Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /notes/chat:
    post:
      tags:
        - provider
        - scribe
        - note
      summary: Chat With Ai Note
      operationId: chat_with_ai_note_notes_chat_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/NoteChatParams"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NoteScribeResponse"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /notes/{note_id}/attachment-from-url:
    post:
      tags:
        - provider
        - scribe
        - note
      summary: Add Note Attachment From Url
      description: Create a note attachment by downloading an image from a URL.
      operationId: add_note_attachment_from_url_notes__note_id__attachment_from_url_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: note_id
          in: path
          required: true
          schema:
            type: string
            title: Note Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/NoteAttachmentFromUrlRequest"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NoteAttachmentResponse"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /notes/{note_id}/attachments:
    get:
      tags:
        - provider
        - scribe
        - note
      summary: Get Note Attachments
      operationId: get_note_attachments_notes__note_id__attachments_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: note_id
          in: path
          required: true
          schema:
            type: string
            title: Note Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/NoteAttachmentResponse"
                title: Response Get Note Attachments Notes  Note Id  Attachments Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /notes/{parent_note_id}/revisions:
    get:
      tags:
        - provider
        - scribe
        - note
      summary: Get Note Versions
      description: |-
        Return minimal data required for NoteSummary for each note version.

        NoteSummary requires: id, patient_names, provider_names, version, created_date.
        We avoid loading heavy relationships and select only the columns needed.
      operationId: get_note_versions_notes__parent_note_id__revisions_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: parent_note_id
          in: path
          required: true
          schema:
            type: string
            title: Parent Note Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/NoteSummary"
                title:
                  Response Get Note Versions Notes  Parent Note Id  Revisions
                  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /notes/{parent_note_id}/{version}:
    get:
      tags:
        - provider
        - scribe
        - note
      summary: Get Note Revision
      operationId: get_note_revision_notes__parent_note_id___version__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: parent_note_id
          in: path
          required: true
          schema:
            type: string
            title: Parent Note Id
        - name: version
          in: path
          required: true
          schema:
            type: integer
            title: Version
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NoteDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /notes/lot-numbers:
    get:
      tags:
        - provider
        - scribe
        - note
      summary: Get Lot Numbers
      operationId: get_lot_numbers_notes_lot_numbers_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
                title: Response Get Lot Numbers Notes Lot Numbers Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /notes/patients-with-appointments-now:
    get:
      tags:
        - provider
        - scribe
        - note
      summary: Get Patients With Appointments Now
      description: |-
        Get patients who have appointments with a specific provider within a time window around the current time.

        This endpoint finds appointment events where:
        1. The appointment is scheduled within the specified time window (minutes_before to minutes_after from now)
        2. The specified provider is an attendee of the appointment
        3. Returns patient details combined with their appointment information

        Useful for finding patients who are currently in appointments or have upcoming/recent appointments
        with a provider (e.g., for creating notes during or after appointments).

        Args:
            provider_id: ID of the provider to find appointments for
            minutes_before: How many minutes before current time to include (default: 30)
            minutes_after: How many minutes after current time to include (default: 60)

        Returns:
            List of patients with their appointment details in the specified time window
      operationId: get_patients_with_appointments_now_notes_patients_with_appointments_now_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: provider_id
          in: query
          required: true
          schema:
            type: string
            title: Provider Id
        - name: minutes_before
          in: query
          required: false
          schema:
            type: integer
            default: 30
            title: Minutes Before
        - name: minutes_after
          in: query
          required: false
          schema:
            type: integer
            default: 60
            title: Minutes After
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/PatientWithAppointmentDetail"
                title:
                  Response Get Patients With Appointments Now Notes Patients
                  With Appointments Now Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /notes/{note_id}/sign-off:
    post:
      tags:
        - provider
        - scribe
        - note
      summary: Sign Off Note
      operationId: sign_off_note_notes__note_id__sign_off_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: note_id
          in: path
          required: true
          schema:
            type: string
            title: Note Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NoteDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /notes/templates:
    get:
      tags:
        - provider
        - scribe
        - note
        - templates
      summary: Get Note Templates
      operationId: get_note_templates_notes_templates_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/NoteTemplateTableItem"
                type: array
                title: Response Get Note Templates Notes Templates Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
    put:
      tags:
        - provider
        - scribe
        - note
        - templates
      summary: Update Note Template
      operationId: update_note_template_notes_templates_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/NoteTemplateUpdate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NoteTemplateTableItem"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
    post:
      tags:
        - provider
        - scribe
        - note
        - templates
      summary: Create Note Template
      operationId: create_note_template_notes_templates_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/NoteTemplateCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NoteTemplateTableItem"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /notes/templates/{note_template_id}:
    delete:
      tags:
        - provider
        - scribe
        - note
        - templates
      summary: Delete Note Template
      operationId: delete_note_template_notes_templates__note_template_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: note_template_id
          in: path
          required: true
          schema:
            type: string
            title: Note Template Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NoteTemplateTableItem"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /notes/templates/upload-attachment:
    post:
      tags:
        - provider
        - scribe
        - note
        - templates
      summary: Upload Template Attachment
      description: Upload a placeholder image for a template attachment.
      operationId: upload_template_attachment_notes_templates_upload_attachment_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_upload_template_attachment_notes_templates_upload_attachment_post"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemplateAttachmentUploadResponse"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /attachments:
    post:
      tags:
        - provider
        - scribe
        - attachments
      summary: Add Attachment
      operationId: add_attachment_attachments_post
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_add_attachment_attachments_post"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NoteAttachmentResponse"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
    get:
      tags:
        - provider
        - scribe
        - attachments
      summary: Get Attachments
      description: |-
        Return all attachments for a single local day, with optional patient filtering.

        If patient_id is provided, returns attachments for that patient only.
        Otherwise, returns all attachments.
        Returns attachments grouped by day with pagination support.
      operationId: get_attachments_attachments_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: tz
          in: query
          required: true
          schema:
            type: string
            title: Tz
        - name: date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: Date
        - name: patient_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Patient Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AttachmentDayPage"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /attachments/{attachment_id}/annotations:
    put:
      tags:
        - provider
        - scribe
        - attachments
      summary: Update Attachment Annotations
      operationId: update_attachment_annotations_attachments__attachment_id__annotations_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: attachment_id
          in: path
          required: true
          schema:
            type: string
            title: Attachment Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              title: Annotations
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Update Attachment Annotations Attachments  Attachment
                  Id  Annotations Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /attachments/{attachment_id}/name:
    put:
      tags:
        - provider
        - scribe
        - attachments
      summary: Update Attachment Name
      operationId: update_attachment_name_attachments__attachment_id__name_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: attachment_id
          in: path
          required: true
          schema:
            type: string
            title: Attachment Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/NoteAttachmentNameUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Update Attachment Name Attachments  Attachment Id  Name
                  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /attachments/{attachment_id}:
    delete:
      tags:
        - provider
        - scribe
        - attachments
      summary: Delete Note Attachment
      operationId: delete_note_attachment_attachments__attachment_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: attachment_id
          in: path
          required: true
          schema:
            type: string
            title: Attachment Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Delete Note Attachment Attachments  Attachment Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /alerts:
    get:
      tags:
        - provider
        - alert
      summary: Get Alerts
      operationId: get_alerts_alerts_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Id
        - name: last_n_days
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Last N Days
        - name: action_required
          in: query
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: "null"
            title: Action Required
        - name: alert_type
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  $ref: "#/components/schemas/AlertType"
              - type: "null"
            title: Alert Type
        - name: created_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Created Date
        - name: assigned_to_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Assigned To Id
        - name: patient_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Patient Id
        - name: tz
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Tz
        - name: tag_id
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            title: Tag Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_AlertSummary_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /alerts/count:
    get:
      tags:
        - provider
        - alert
      summary: Get Alert Count
      operationId: get_alert_count_alerts_count_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: integer
                title: Response Get Alert Count Alerts Count Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /alerts/kpis:
    get:
      tags:
        - provider
        - alert
      summary: Get Kpis
      operationId: get_kpis_alerts_kpis_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: last_n_days
          in: query
          required: false
          schema:
            type: integer
            title: Last N Days
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            title: Timezone
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AlertKPIs"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /alerts/{alert_id}:
    get:
      tags:
        - provider
        - alert
      summary: Get Alert
      operationId: get_alert_alerts__alert_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: alert_id
          in: path
          required: true
          schema:
            type: string
            title: Alert Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AlertSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /alerts/resolve-alerts:
    post:
      tags:
        - provider
        - alert
      summary: Resolve Alerts
      operationId: resolve_alerts_alerts_resolve_alerts_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ResolveAlertParams"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Resolve Alerts Alerts Resolve Alerts Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /alerts/assign-alerts:
    post:
      tags:
        - provider
        - alert
      summary: Assign Alerts
      operationId: assign_alerts_alerts_assign_alerts_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssignAlertParams"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Assign Alerts Alerts Assign Alerts Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /internal-billing/usage/statements:
    get:
      tags:
        - provider
        - internal-billing
        - usage
      summary: Get Statements
      operationId: get_statements_internal_billing_usage_statements_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ChargeDetailWithItems"
                type: array
                title: Response Get Statements Internal Billing Usage Statements Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /internal-billing/usage/daily:
    get:
      tags:
        - provider
        - internal-billing
        - usage
      summary: Get Daily Period Usage
      operationId: get_daily_period_usage_internal_billing_usage_daily_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: start_date
          in: query
          required: true
          schema:
            type: string
            format: date-time
            description: Start date for the pricing period
            title: Start Date
          description: Start date for the pricing period
        - name: end_date
          in: query
          required: true
          schema:
            type: string
            format: date-time
            description: End date for the pricing period
            title: End Date
          description: End date for the pricing period
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UsageResponse"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /internal-billing/usage/monthly:
    get:
      tags:
        - provider
        - internal-billing
        - usage
      summary: Get Monthly Period Usage
      operationId: get_monthly_period_usage_internal_billing_usage_monthly_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: start_date
          in: query
          required: true
          schema:
            type: string
            format: date-time
            description: Start date for the pricing period
            title: Start Date
          description: Start date for the pricing period
        - name: end_date
          in: query
          required: true
          schema:
            type: string
            format: date-time
            description: End date for the pricing period
            title: End Date
          description: End date for the pricing period
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/UsageItem"
                title:
                  Response Get Monthly Period Usage Internal Billing Usage Monthly
                  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /internal-billing/usage/execute:
    post:
      tags:
        - provider
        - internal-billing
        - usage
      summary: Execute Billing Period Usage
      description: |-
        Get the usage for the billing period that just ended.

        Intended to be run on the first of each month.
      operationId: execute_billing_period_usage_internal_billing_usage_execute_post
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /internal-billing/payment-methods:
    put:
      tags:
        - provider
        - internal-billing
        - payment-methods
      summary: Update Payment Method
      operationId: update_payment_method_internal_billing_payment_methods_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentMethodUpdate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaymentMethodSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /internal-billing/payment-methods/default:
    put:
      tags:
        - provider
        - internal-billing
        - payment-methods
      summary: Set Default Payment Method
      operationId: set_default_payment_method_internal_billing_payment_methods_default_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: payment_method_id
          in: query
          required: true
          schema:
            type: string
            title: Payment Method Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Set Default Payment Method Internal Billing Payment
                  Methods Default Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /internal-billing/payment-methods/config:
    post:
      tags:
        - provider
        - internal-billing
        - payment-methods
      summary: Create Payment Method Config
      operationId: create_payment_method_config_internal_billing_payment_methods_config_post
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaymentMethodConfigCreate"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /internal-billing/payment-methods/settle:
    post:
      tags:
        - provider
        - internal-billing
        - payment-methods
      summary: Settle Balance
      operationId: settle_balance_internal_billing_payment_methods_settle_post
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Settle Balance Internal Billing Payment Methods Settle
                  Post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /suggestions:
    post:
      tags:
        - provider
        - suggestions
      summary: Create Suggestion
      operationId: create_suggestion_suggestions_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SuggestionItemCreateAndUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuggestionItemCreateAndUpdate"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
    put:
      tags:
        - provider
        - suggestions
      summary: Update Suggestion
      operationId: update_suggestion_suggestions_put
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SuggestionItemCreateAndUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuggestionItemCreateAndUpdate"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
    delete:
      tags:
        - provider
        - suggestions
      summary: Delete Suggestion
      operationId: delete_suggestion_suggestions_delete
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SuggestionItemCreateAndUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuggestionItemCreateAndUpdate"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
    get:
      tags:
        - provider
        - suggestions
      summary: Get Suggestions
      operationId: get_suggestions_suggestions_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: suggestion_types
          in: query
          required: true
          schema:
            type: array
            items:
              $ref: "#/components/schemas/SuggestionType"
            title: Suggestion Types
        - name: patient_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Patient Id
        - name: event_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Event Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/SuggestionItem"
                title: Response Get Suggestions Suggestions Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /medical-codes/cpt/search:
    get:
      tags:
        - provider
        - medical-codes
      summary: Search Cpt Codes
      description: Search CPT codes by description, code, or categories.
      operationId: search_cpt_codes_medical_codes_cpt_search_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: query
          in: query
          required: true
          schema:
            type: string
            description: Search query for CPT codes
            title: Query
          description: Search query for CPT codes
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            description: Maximum number of results to return
            default: 20
            title: Limit
          description: Maximum number of results to return
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/CPTCode"
                title: Response Search Cpt Codes Medical Codes Cpt Search Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /medical-codes/icd-10/search:
    get:
      tags:
        - provider
        - medical-codes
      summary: Search Icd10 Codes
      description: Search ICD-10 codes by description, code, or categorical information.
      operationId: search_icd10_codes_medical_codes_icd_10_search_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: query
          in: query
          required: true
          schema:
            type: string
            description: Search query for ICD-10 codes
            title: Query
          description: Search query for ICD-10 codes
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            description: Maximum number of results to return
            default: 20
            title: Limit
          description: Maximum number of results to return
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ICDTenCode"
                title: Response Search Icd10 Codes Medical Codes Icd 10 Search Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /medical-codes/cpt/{code}:
    get:
      tags:
        - provider
        - medical-codes
      summary: Get Cpt Code
      description: Get a specific CPT code by its code value.
      operationId: get_cpt_code_medical_codes_cpt__code__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: code
          in: path
          required: true
          schema:
            type: string
            title: Code
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: "#/components/schemas/CPTCode"
                  - type: "null"
                title: Response Get Cpt Code Medical Codes Cpt  Code  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /medical-codes/icd-10/{code}:
    get:
      tags:
        - provider
        - medical-codes
      summary: Get Icd Ten Code
      description: Get a specific ICD-10 code by its code value.
      operationId: get_icd_ten_code_medical_codes_icd_10__code__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: code
          in: path
          required: true
          schema:
            type: string
            title: Code
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: "#/components/schemas/ICDTenCode"
                  - type: "null"
                title: Response Get Icd Ten Code Medical Codes Icd 10  Code  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /medications:
    get:
      tags:
        - provider
        - medications
      summary: Get Medications
      description:
        Get medications that either have no doses or have been administered
        by providers.
      operationId: get_medications_medications_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/MedicationSummary"
                type: array
                title: Response Get Medications Medications Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
    post:
      tags:
        - provider
        - medications
      summary: Create Medication
      description: Create a new medication with optional template.
      operationId: create_medication_medications_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MedicationCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MedicationSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /medications/{medication_id}:
    get:
      tags:
        - provider
        - medications
      summary: Get Medication
      description: Get a specific medication by ID.
      operationId: get_medication_medications__medication_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: medication_id
          in: path
          required: true
          schema:
            type: string
            title: Medication Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MedicationSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    put:
      tags:
        - provider
        - medications
      summary: Update Medication
      description: Update a medication and manage its template.
      operationId: update_medication_medications__medication_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: medication_id
          in: path
          required: true
          schema:
            type: string
            title: Medication Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MedicationUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MedicationSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - medications
      summary: Delete Medication
      description: Delete a medication (archives it) and archives its templates.
      operationId: delete_medication_medications__medication_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: medication_id
          in: path
          required: true
          schema:
            type: string
            title: Medication Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Delete Medication Medications  Medication Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/banked-items/patient/{patient_id}:
    get:
      tags:
        - provider
        - inventory
      summary: List Patient Banked Items
      description:
        List all banked items for a patient (including used ones, excluding
        archived).
      operationId: list_patient_banked_items_inventory_banked_items_patient__patient_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/PatientBankedItem"
                title:
                  Response List Patient Banked Items Inventory Banked Items Patient  Patient
                  Id  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/banked-items/{banked_item_id}:
    get:
      tags:
        - provider
        - inventory
      summary: Get Banked Item
      description: Get a specific banked item by ID.
      operationId: get_banked_item_inventory_banked_items__banked_item_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: banked_item_id
          in: path
          required: true
          schema:
            type: string
            title: Banked Item Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BankedItemDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/banked-items/create:
    post:
      tags:
        - provider
        - inventory
      summary: Create Banked Item
      description: Create a new banked item.
      operationId: create_banked_item_inventory_banked_items_create_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BankedItem-Input"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BankedItem-Output"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/banked-items/{banked_item_id}/charge-items:
    get:
      tags:
        - provider
        - inventory
      summary: Get Banked Item Charge Items
      description: Get all charge items associated with a specific banked item.
      operationId: get_banked_item_charge_items_inventory_banked_items__banked_item_id__charge_items_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: banked_item_id
          in: path
          required: true
          schema:
            type: string
            title: Banked Item Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ChargeItemDetailWithCharge"
                title:
                  Response Get Banked Item Charge Items Inventory Banked Items  Banked
                  Item Id  Charge Items Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/banked-items/archive/{banked_item_id}:
    post:
      tags:
        - provider
        - inventory
      summary: Archive Banked Item
      description: Archive a banked item.
      operationId: archive_banked_item_inventory_banked_items_archive__banked_item_id__post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: banked_item_id
          in: path
          required: true
          schema:
            type: string
            title: Banked Item Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Archive Banked Item Inventory Banked Items Archive  Banked
                  Item Id  Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/commission-structures/list:
    get:
      tags:
        - provider
        - inventory
      summary: List Commission Structures
      description: List commission groups with their commissions
      operationId: list_commission_structures_inventory_commission_structures_list_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_CommissionStructureDetail_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/commission-structures/providers-with-structures:
    get:
      tags:
        - provider
        - inventory
      summary: List Providers With Commission Structures
      description: Get a list of all providers with their commission structure information
      operationId: list_providers_with_commission_structures_inventory_commission_structures_providers_with_structures_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ProvidersCommissionStructure"
                title:
                  Response List Providers With Commission Structures Inventory
                  Commission Structures Providers With Structures Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/commission-structures/{commission_structure_id}:
    get:
      tags:
        - provider
        - inventory
      summary: Get Commission Structure
      description:
        Get a specific commission structure with all its commissions and
        providers
      operationId: get_commission_structure_inventory_commission_structures__commission_structure_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: commission_structure_id
          in: path
          required: true
          schema:
            type: string
            title: Commission Structure Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommissionStructureDetail-Output"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    put:
      tags:
        - provider
        - inventory
      summary: Update Commission Structure
      description: Update a commission structure and all its commissions
      operationId: update_commission_structure_inventory_commission_structures__commission_structure_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: commission_structure_id
          in: path
          required: true
          schema:
            type: string
            title: Commission Structure Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CommissionStructureDetail-Input"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommissionStructureDetail-Output"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - inventory
      summary: Delete Commission Structure
      description: Delete a commission group and all its commissions
      operationId: delete_commission_structure_inventory_commission_structures__commission_structure_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: commission_structure_id
          in: path
          required: true
          schema:
            type: string
            title: Commission Structure Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Delete Commission Structure Inventory Commission Structures  Commission
                  Structure Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/commission-structures/create:
    post:
      tags:
        - provider
        - inventory
      summary: Create Commission Structure
      description: Create a new commission structure with its commissions
      operationId: create_commission_structure_inventory_commission_structures_create_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CommissionStructureDetail-Input"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommissionStructureDetail-Output"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/commission-structures/{commission_structure_id}/duplicate:
    post:
      tags:
        - provider
        - inventory
      summary: Duplicate Commission Structure
      description:
        Duplicate a commission structure with its commissions but without
        providers
      operationId: duplicate_commission_structure_inventory_commission_structures__commission_structure_id__duplicate_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: commission_structure_id
          in: path
          required: true
          schema:
            type: string
            title: Commission Structure Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommissionStructureDetail-Output"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/commission-groups/{commission_structure_id}/providers/bulk-assign:
    post:
      tags:
        - provider
        - inventory
      summary: Bulk Assign Providers To Structure
      description: Assign multiple providers to a commission structure
      operationId: bulk_assign_providers_to_structure_inventory_commission_groups__commission_structure_id__providers_bulk_assign_post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: commission_structure_id
          in: path
          required: true
          schema:
            type: string
            title: Commission Structure Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BulkProviderAssignment"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: integer
                title:
                  Response Bulk Assign Providers To Structure Inventory Commission
                  Groups  Commission Structure Id  Providers Bulk Assign Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/commission-groups/{commission_structure_id}/providers/bulk-remove:
    delete:
      tags:
        - provider
        - inventory
      summary: Bulk Remove Providers From Structure
      description: Remove multiple providers from a commission structure
      operationId: bulk_remove_providers_from_structure_inventory_commission_groups__commission_structure_id__providers_bulk_remove_delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: commission_structure_id
          in: path
          required: true
          schema:
            type: string
            title: Commission Structure Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BulkProviderAssignment"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: integer
                title:
                  Response Bulk Remove Providers From Structure Inventory Commission
                  Groups  Commission Structure Id  Providers Bulk Remove Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/commission-groups/{commission_structure_id}/providers/{provider_id}:
    post:
      tags:
        - provider
        - inventory
      summary: Assign Provider To Structure
      description: Assign a provider to a commission group
      operationId: assign_provider_to_structure_inventory_commission_groups__commission_structure_id__providers__provider_id__post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: commission_structure_id
          in: path
          required: true
          schema:
            type: string
            title: Commission Structure Id
        - name: provider_id
          in: path
          required: true
          schema:
            type: string
            title: Provider Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Assign Provider To Structure Inventory Commission
                  Groups  Commission Structure Id  Providers  Provider Id  Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - inventory
      summary: Remove Provider From Structure
      description: Remove a provider from a commission group
      operationId: remove_provider_from_structure_inventory_commission_groups__commission_structure_id__providers__provider_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: commission_structure_id
          in: path
          required: true
          schema:
            type: string
            title: Commission Structure Id
        - name: provider_id
          in: path
          required: true
          schema:
            type: string
            title: Provider Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Remove Provider From Structure Inventory Commission
                  Groups  Commission Structure Id  Providers  Provider Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/providers/{provider_id}/commission-groups:
    get:
      tags:
        - provider
        - inventory
      summary: Get Provider Commission Structures
      description: Get all commission groups assigned to a provider
      operationId: get_provider_commission_structures_inventory_providers__provider_id__commission_groups_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: provider_id
          in: path
          required: true
          schema:
            type: string
            title: Provider Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/CommissionStructureDetail-Output"
                title:
                  Response Get Provider Commission Structures Inventory Providers  Provider
                  Id  Commission Groups Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/providers/{provider_id}/commissions:
    get:
      tags:
        - provider
        - inventory
      summary: Get Commissions For Provider
      description:
        Get all commissions applicable to a provider through their commission
        groups
      operationId: get_commissions_for_provider_inventory_providers__provider_id__commissions_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: provider_id
          in: path
          required: true
          schema:
            type: string
            title: Provider Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/CommissionDetail-Output"
                title:
                  Response Get Commissions For Provider Inventory Providers  Provider
                  Id  Commissions Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/commission-structures/generate-report:
    post:
      tags:
        - provider
        - inventory
      summary: Generate Commission Report
      description:
        Generate commission payouts for one or more structures based on
        charges in the date range
      operationId: generate_commission_report_inventory_commission_structures_generate_report_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CommissionReportRequest"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/CommissionReportDetail-Output"
                type: array
                title:
                  Response Generate Commission Report Inventory Commission Structures
                  Generate Report Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/commission-reports/save:
    post:
      tags:
        - provider
        - inventory
      summary: Save Commission Report
      description: Save a commission report to the database
      operationId: save_commission_report_inventory_commission_reports_save_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CommissionReportDetail-Input"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommissionReportDetail-Output"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/commission-reports/list:
    get:
      tags:
        - provider
        - inventory
      summary: List Commission Reports
      description: List commission reports with pagination
      operationId: list_commission_reports_inventory_commission_reports_list_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_CommissionReportSummary_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/commission-reports/{report_id}:
    get:
      tags:
        - provider
        - inventory
      summary: Get Commission Report
      description: Get a specific commission report by ID
      operationId: get_commission_report_inventory_commission_reports__report_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: report_id
          in: path
          required: true
          schema:
            type: string
            title: Report Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommissionReportDetail-Output"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/commission-reports/{report_id}/archive:
    put:
      tags:
        - provider
        - inventory
      summary: Archive Commission Report
      description: Archive a commission report
      operationId: archive_commission_report_inventory_commission_reports__report_id__archive_put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: report_id
          in: path
          required: true
          schema:
            type: string
            title: Report Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Archive Commission Report Inventory Commission Reports  Report
                  Id  Archive Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/logs/{stock_id}:
    get:
      tags:
        - provider
        - inventory
      summary: Get Inventory Logs
      operationId: get_inventory_logs_inventory_logs__stock_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: stock_id
          in: path
          required: true
          schema:
            type: string
            title: Stock Id
        - name: action_types
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  $ref: "#/components/schemas/InventoryAction"
              - type: "null"
            title: Action Types
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/InventoryLog"
                title: Response Get Inventory Logs Inventory Logs  Stock Id  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/items/list:
    get:
      tags:
        - provider
        - inventory
      summary: List Item
      operationId: list_item_inventory_items_list_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            description: List of item IDs to filter by
            title: Ids
          description: List of item IDs to filter by
        - name: name
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Name of the item
            title: Name
          description: Name of the item
        - name: category
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Category of the item
            title: Category
          description: Category of the item
        - name: price_range
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: integer
              - type: "null"
            description: Price range [min, max]
            title: Price Range
          description: Price range [min, max]
        - name: is_archived
          in: query
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: "null"
            description: Archived status of the item
            title: Is Archived
          description: Archived status of the item
        - name: is_physical
          in: query
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: "null"
            description: Physical status of the item
            title: Is Physical
          description: Physical status of the item
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_ItemDetail_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/items/delete/{id}:
    delete:
      tags:
        - provider
        - inventory
      summary: Delete Item
      operationId: delete_item_inventory_items_delete__id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: id
          in: path
          required: true
          schema:
            type: string
            title: Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Delete Item Inventory Items Delete  Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/items/brand-names:
    get:
      tags:
        - provider
        - inventory
      summary: Get Item Brand Names
      operationId: get_item_brand_names_inventory_items_brand_names_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
                title: Response Get Item Brand Names Inventory Items Brand Names Get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/items/create:
    post:
      tags:
        - provider
        - inventory
      summary: Create Item
      operationId: create_item_inventory_items_create_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Item"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ItemDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/items/update/{id}:
    put:
      tags:
        - provider
        - inventory
      summary: Update Item
      operationId: update_item_inventory_items_update__id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: id
          in: path
          required: true
          schema:
            type: string
            title: Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Item"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Item"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/members/bill-members:
    post:
      tags:
        - provider
        - inventory
      summary: Bill Members
      description: Bill all members.
      operationId: bill_members_inventory_members_bill_members_post
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/members/unfreeze-members:
    post:
      tags:
        - provider
        - inventory
      summary: Unfreeze Members
      description: Automatically unfreeze members with scheduled unfreeze dates.
      operationId: unfreeze_members_inventory_members_unfreeze_members_post
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/members/update-payment-method:
    post:
      tags:
        - provider
        - inventory
      summary: Update Payment Method
      description: Update a member's payment method.
      operationId: update_payment_method_inventory_members_update_payment_method_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberPaymentMethodUpdate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/members/update-billing-date:
    post:
      tags:
        - provider
        - inventory
      summary: Update Billing Date
      description: Update a member's next billing date.
      operationId: update_billing_date_inventory_members_update_billing_date_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberBillingDateUpdate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/members/update-status:
    post:
      tags:
        - provider
        - inventory
      summary: Update Status
      description: Update a member's status.
      operationId: update_status_inventory_members_update_status_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberStatusUpdate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/members/update-discount:
    post:
      tags:
        - provider
        - inventory
      summary: Update Discount
      description: Update a member's discount.
      operationId: update_discount_inventory_members_update_discount_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberDiscountUpdate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/IssuedDiscountDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/members/manual-payment:
    post:
      tags:
        - provider
        - inventory
      summary: Manual Payment
      description: Make a manual payment for a member.
      operationId: manual_payment_inventory_members_manual_payment_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberManualPayment"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/members/update-sold-by-provider:
    post:
      tags:
        - provider
        - inventory
      summary: Update Member Sold By Provider
      description: Update the sold_by_provider_id for a member.
      operationId: update_member_sold_by_provider_inventory_members_update_sold_by_provider_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberSoldByProviderUpdate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Update Member Sold By Provider Inventory Members Update
                  Sold By Provider Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/members/enroll-deferred:
    post:
      tags:
        - provider
        - inventory
      summary: Enroll Member Deferred Billing
      description:
        Enroll a new member with deferred billing - they get benefits immediately
        but aren't charged until the specified date.
      operationId: enroll_member_deferred_billing_inventory_members_enroll_deferred_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberDeferredEnrollment"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/members/{member_id}:
    get:
      tags:
        - provider
        - inventory
      summary: Get Member
      description: Get a member's details.
      operationId: get_member_inventory_members__member_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: member_id
          in: path
          required: true
          schema:
            type: string
            title: Member Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/members/{member_id}/logs:
    get:
      tags:
        - provider
        - inventory
      summary: Get Member Logs
      description: Get a member's logs.
      operationId: get_member_logs_inventory_members__member_id__logs_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: member_id
          in: path
          required: true
          schema:
            type: string
            title: Member Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/MemberLogDetail"
                title:
                  Response Get Member Logs Inventory Members  Member Id  Logs
                  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/members/{member_id}/issued-discounts:
    get:
      tags:
        - provider
        - inventory
      summary: Get Issued Discounts
      description: Get a member's issued discounts.
      operationId: get_issued_discounts_inventory_members__member_id__issued_discounts_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: member_id
          in: path
          required: true
          schema:
            type: string
            title: Member Id
        - name: itemName
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Itemname
        - name: quantityRemainingMin
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Quantityremainingmin
        - name: quantityRemainingMax
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Quantityremainingmax
        - name: createdDateStart
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            title: Createddatestart
        - name: createdDateEnd
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            title: Createddateend
        - name: expiryDateStart
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            title: Expirydatestart
        - name: expiryDateEnd
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            title: Expirydateend
        - name: includeExpired
          in: query
          required: false
          schema:
            type: boolean
            default: false
            title: Includeexpired
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/IssuedDiscountDetail"
                title:
                  Response Get Issued Discounts Inventory Members  Member Id  Issued
                  Discounts Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/memberships:
    get:
      tags:
        - provider
        - inventory
      summary: List Memberships
      description: List all memberships with optional filtering.
      operationId: list_memberships_inventory_memberships_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: name
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Filter by membership name
            title: Name
          description: Filter by membership name
        - name: price_min
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            description: Minimum price filter
            title: Price Min
          description: Minimum price filter
        - name: price_max
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            description: Maximum price filter
            title: Price Max
          description: Maximum price filter
        - name: is_archived
          in: query
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: "null"
            description: Filter by archived status
            title: Is Archived
          description: Filter by archived status
        - name: page
          in: query
          required: false
          schema:
            type: integer
            description: Page number
            default: 1
            title: Page
          description: Page number
        - name: per_page
          in: query
          required: false
          schema:
            type: integer
            description: Items per page
            default: 25
            title: Per Page
          description: Items per page
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_MembershipDetail_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    post:
      tags:
        - provider
        - inventory
      summary: Create Membership
      description: Create a new membership.
      operationId: create_membership_inventory_memberships_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MembershipDetail"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MembershipDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/memberships/{membership_id}:
    get:
      tags:
        - provider
        - inventory
      summary: Get Membership
      description: Get a specific membership by ID.
      operationId: get_membership_inventory_memberships__membership_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: membership_id
          in: path
          required: true
          schema:
            type: string
            title: Membership Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MembershipDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    put:
      tags:
        - provider
        - inventory
      summary: Update Membership
      description: Update an existing membership.
      operationId: update_membership_inventory_memberships__membership_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: membership_id
          in: path
          required: true
          schema:
            type: string
            title: Membership Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MembershipDetail"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MembershipDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - inventory
      summary: Archive Membership
      description: Archive a membership.
      operationId: archive_membership_inventory_memberships__membership_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: membership_id
          in: path
          required: true
          schema:
            type: string
            title: Membership Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Archive Membership Inventory Memberships  Membership
                  Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/memberships/{membership_id}/usage:
    get:
      tags:
        - provider
        - inventory
      summary: List Membership Usage
      description: List all members of a specific membership.
      operationId: list_membership_usage_inventory_memberships__membership_id__usage_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: membership_id
          in: path
          required: true
          schema:
            type: string
            title: Membership Id
        - name: status
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Filter by member status
            title: Status
          description: Filter by member status
        - name: name
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Filter by patient name
            title: Name
          description: Filter by patient name
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Filter by start date
            title: Start Date
          description: Filter by start date
        - name: page
          in: query
          required: false
          schema:
            type: integer
            description: Page number
            default: 1
            title: Page
          description: Page number
        - name: per_page
          in: query
          required: false
          schema:
            type: integer
            description: Items per page
            default: 25
            title: Per Page
          description: Items per page
        - name: sort_by
          in: query
          required: false
          schema:
            type: string
            description: Sort by field
            default: created_date
            title: Sort By
          description: Sort by field
        - name: sort_direction
          in: query
          required: false
          schema:
            type: string
            description: Sort direction (asc/desc)
            default: desc
            title: Sort Direction
          description: Sort direction (asc/desc)
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_MemberDetail_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/packages/list:
    get:
      tags:
        - provider
        - inventory
      summary: List Packages
      description: List packages with optional filtering and patient counts.
      operationId: list_packages_inventory_packages_list_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Id
        - name: ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            description: List of package IDs to filter by
            title: Ids
          description: List of package IDs to filter by
        - name: name
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Name of the package
            title: Name
          description: Name of the package
        - name: price
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: integer
              - type: "null"
            description: Price range [min, max] in cents
            title: Price
          description: Price range [min, max] in cents
        - name: contains_items
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            description: Filter by item names contained in package
            title: Contains Items
          description: Filter by item names contained in package
        - name: number_of_active_patients
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: integer
              - type: "null"
            description: Filter by range of number of active patients [min, max]
            title: Number Of Active Patients
          description: Filter by range of number of active patients [min, max]
        - name: category
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Filter by category name (references category.name)
            title: Category
          description: Filter by category name (references category.name)
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_PackageDetail_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/packages/{package_id}:
    get:
      tags:
        - provider
        - inventory
      summary: Get Package
      description: Get a specific package by ID.
      operationId: get_package_inventory_packages__package_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: package_id
          in: path
          required: true
          schema:
            type: string
            title: Package Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PackageDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/packages/create:
    post:
      tags:
        - provider
        - inventory
      summary: Create Package
      description: Create a new package.
      operationId: create_package_inventory_packages_create_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Package-Input"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PackageDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/packages/update/{package_id}:
    put:
      tags:
        - provider
        - inventory
      summary: Update Package
      description: Update an existing package.
      operationId: update_package_inventory_packages_update__package_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: package_id
          in: path
          required: true
          schema:
            type: string
            title: Package Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Package-Input"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PackageDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/packages/delete/{package_id}:
    delete:
      tags:
        - provider
        - inventory
      summary: Delete Package
      description: Delete a package.
      operationId: delete_package_inventory_packages_delete__package_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: package_id
          in: path
          required: true
          schema:
            type: string
            title: Package Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Delete Package Inventory Packages Delete  Package
                  Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/packages/sold/{patient_id}:
    get:
      tags:
        - provider
        - inventory
      summary: List Patient Packages
      description:
        List all sold packages for a patient (active and cancelled, excluding
        used packages).
      operationId: list_patient_packages_inventory_packages_sold__patient_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/PatientSoldPackage"
                title:
                  Response List Patient Packages Inventory Packages Sold  Patient
                  Id  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/packages/usage/{package_id}:
    get:
      tags:
        - provider
        - inventory
      summary: Get Package Usage
      description: Get the usage of a package with optional filtering and sorting.
      operationId: get_package_usage_inventory_packages_usage__package_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: package_id
          in: path
          required: true
          schema:
            type: string
            title: Package Id
        - name: patient_name
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Filter by patient name
            title: Patient Name
          description: Filter by patient name
        - name: last_activity_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Filter by last activity date
            title: Last Activity Date
          description: Filter by last activity date
        - name: purchased_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Filter by purchased date
            title: Purchased Date
          description: Filter by purchased date
        - name: status
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            description: Filter by package status
            title: Status
          description: Filter by package status
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Sort field
            default: created_date
            title: Sort By
          description: Sort field
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Sort direction (asc or desc)
            default: desc
            title: Sort Direction
          description: Sort direction (asc or desc)
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/SoldPackageDetail"
                title:
                  Response Get Package Usage Inventory Packages Usage  Package
                  Id  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/packages/cancel-sold-package/{sold_package_id}:
    put:
      tags:
        - provider
        - inventory
      summary: Cancel Sold Package
      description: Revoke a sold package by setting its status to REVOKED.
      operationId: cancel_sold_package_inventory_packages_cancel_sold_package__sold_package_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: sold_package_id
          in: path
          required: true
          schema:
            type: string
            title: Sold Package Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Cancel Sold Package Inventory Packages Cancel Sold
                  Package  Sold Package Id  Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/packages/sold-package/{sold_package_id}/charge-items:
    get:
      tags:
        - provider
        - inventory
      summary: Get Sold Package Charge Items
      description: Get all charge items associated with a specific sold package.
      operationId: get_sold_package_charge_items_inventory_packages_sold_package__sold_package_id__charge_items_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: sold_package_id
          in: path
          required: true
          schema:
            type: string
            title: Sold Package Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ChargeItemDetailWithCharge"
                title:
                  Response Get Sold Package Charge Items Inventory Packages Sold
                  Package  Sold Package Id  Charge Items Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/shipments/list:
    get:
      tags:
        - provider
        - inventory
      summary: List Shipments
      description: List shipments with optional filtering.
      operationId: list_shipments_inventory_shipments_list_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Optional ID of the location
            title: Location Id
          description: Optional ID of the location
        - name: ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            description: Optional list of IDs of the shipments
            title: Ids
          description: Optional list of IDs of the shipments
        - name: stock_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Optional ID of the stock
            title: Stock Id
          description: Optional ID of the stock
        - name: supplier_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Optional ID of the supplier
            title: Supplier Id
          description: Optional ID of the supplier
        - name: sku
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Optional SKU (Stock Keeping Unit)
            title: Sku
          description: Optional SKU (Stock Keeping Unit)
        - name: lot_number
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Optional lot number of the shipment
            title: Lot Number
          description: Optional lot number of the shipment
        - name: remaining_quantity
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: number
              - type: "null"
            description: Optional remaining quantity of the shipment
            title: Remaining Quantity
          description: Optional remaining quantity of the shipment
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Shipment-Output"
                title: Response List Shipments Inventory Shipments List Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/shipments/{id}:
    get:
      tags:
        - provider
        - inventory
      summary: Get Shipment
      description: Get a shipment by ID.
      operationId: get_shipment_inventory_shipments__id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: id
          in: path
          required: true
          schema:
            type: string
            title: Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Shipment-Output"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
    delete:
      tags:
        - provider
        - inventory
      summary: Delete Shipment
      description: Delete a shipment by ID.
      operationId: delete_shipment_inventory_shipments__id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: id
          in: path
          required: true
          schema:
            type: string
            title: Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Shipment-Output"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/shipments/create:
    post:
      tags:
        - provider
        - inventory
      summary: Create Shipments
      description: Create new shipments.
      operationId: create_shipments_inventory_shipments_create_post
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: "#/components/schemas/Shipment-Input"
              type: array
              title: Shipments
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Shipment-Output"
                type: array
                title: Response Create Shipments Inventory Shipments Create Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/shipments/update:
    put:
      tags:
        - provider
        - inventory
      summary: Update Shipments
      description: Update multiple shipments.
      operationId: update_shipments_inventory_shipments_update_put
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: "#/components/schemas/Shipment-Input"
              type: array
              title: Shipment Updates
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Shipment-Output"
                type: array
                title: Response Update Shipments Inventory Shipments Update Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/stocks/list:
    get:
      tags:
        - provider
        - inventory
      summary: List Stocks
      operationId: list_stocks_inventory_stocks_list_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Sort By
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            title: Sort Direction
        - name: location_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Optional ID of the location to filter shipments by
            title: Location Id
          description: Optional ID of the location to filter shipments by
        - name: name
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Optional name of the stock
            title: Name
          description: Optional name of the stock
        - name: ids
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: "null"
            description: Optional IDs of the stock
            title: Ids
          description: Optional IDs of the stock
        - name: item_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Optional ID of the item
            title: Item Id
          description: Optional ID of the item
        - name: category
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Optional category name to filter by (references category.name)
            title: Category
          description: Optional category name to filter by (references category.name)
        - name: remaining_quantity
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: number
              - type: "null"
            description: Optional remaining quantity of the stock
            title: Remaining Quantity
          description: Optional remaining quantity of the stock
        - name: unit
          in: query
          required: false
          schema:
            anyOf:
              - $ref: "#/components/schemas/Unit"
              - type: "null"
            description: Optional unit of measurement
            title: Unit
          description: Optional unit of measurement
        - name: is_archived
          in: query
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: "null"
            description: Optional filter for archived status
            title: Is Archived
          description: Optional filter for archived status
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_StockDetail_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/stocks/search:
    get:
      tags:
        - provider
        - inventory
      summary: Search Stocks
      description: Search for stock items by name, SKU, or description.
      operationId: search_stocks_inventory_stocks_search_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: item_ids
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
            description: Filter by item IDs
            title: Item Ids
          description: Filter by item IDs
        - name: search_term
          in: query
          required: true
          schema:
            type: string
            description: Search term to find matching stocks
            title: Search Term
          description: Search term to find matching stocks
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Stock"
                title: Response Search Stocks Inventory Stocks Search Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/stocks/{id}:
    get:
      tags:
        - provider
        - inventory
      summary: Get Stock
      operationId: get_stock_inventory_stocks__id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: id
          in: path
          required: true
          schema:
            type: string
            title: Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Stock"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/stocks/link-stock:
    post:
      tags:
        - provider
        - inventory
      summary: Link Stock To Item
      operationId: link_stock_to_item_inventory_stocks_link_stock_post
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: "#/components/schemas/ItemStock"
              type: array
              title: Stock Links
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ItemStock"
                type: array
                title: Response Link Stock To Item Inventory Stocks Link Stock Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/stocks/unlink-stock:
    post:
      tags:
        - provider
        - inventory
      summary: Unlink Stock From Item
      operationId: unlink_stock_from_item_inventory_stocks_unlink_stock_post
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: "#/components/schemas/ItemStock"
              type: array
              title: Stock Links
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/stocks/create:
    post:
      tags:
        - provider
        - inventory
      summary: Create Stock
      operationId: create_stock_inventory_stocks_create_post
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: "#/components/schemas/StockDetail-Input"
              type: array
              title: Stocks
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Stock"
                type: array
                title: Response Create Stock Inventory Stocks Create Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/stocks/create-from-image:
    post:
      tags:
        - provider
        - inventory
      summary: Create Stock From Image
      description: Create a new stock item by analyzing an uploaded image.
      operationId: create_stock_from_image_inventory_stocks_create_from_image_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_create_stock_from_image_inventory_stocks_create_from_image_post"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Stock"
                type: array
                title:
                  Response Create Stock From Image Inventory Stocks Create From
                  Image Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/stocks/create-from-csv:
    post:
      tags:
        - provider
        - inventory
      summary: Create Stock From Csv
      description: Create stock items by analyzing an uploaded CSV file.
      operationId: create_stock_from_csv_inventory_stocks_create_from_csv_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_create_stock_from_csv_inventory_stocks_create_from_csv_post"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Stock"
                type: array
                title:
                  Response Create Stock From Csv Inventory Stocks Create From
                  Csv Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/stocks/update:
    put:
      tags:
        - provider
        - inventory
      summary: Update Stock
      operationId: update_stock_inventory_stocks_update_put
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: "#/components/schemas/StockDetail-Input"
              type: array
              title: Stock Updates
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/StockDetail-Output"
                type: array
                title: Response Update Stock Inventory Stocks Update Put
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/stocks/drawdown:
    post:
      tags:
        - provider
        - inventory
      summary: Drawdown Stock
      operationId: drawdown_stock_inventory_stocks_drawdown_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DrawdownStock"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Stock"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/stocks/archive/{id}:
    delete:
      tags:
        - provider
        - inventory
      summary: Archive Stock
      description: Mark a stock as archived/removed.
      operationId: archive_stock_inventory_stocks_archive__id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: id
          in: path
          required: true
          schema:
            type: string
            title: Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/suppliers/list:
    get:
      tags:
        - provider
        - inventory
      summary: List Suppliers
      operationId: list_suppliers_inventory_suppliers_list_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: name
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Name of the supplier
            title: Name
          description: Name of the supplier
        - name: is_archived
          in: query
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: "null"
            description: Archived status of the supplier
            default: false
            title: Is Archived
          description: Archived status of the supplier
        - name: city
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: City of the supplier
            title: City
          description: City of the supplier
        - name: state
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: State of the supplier
            title: State
          description: State of the supplier
        - name: per_page
          in: query
          required: false
          schema:
            type: integer
            description: Number of suppliers per page
            title: Per Page
          description: Number of suppliers per page
        - name: page
          in: query
          required: false
          schema:
            type: integer
            description: Page number to retrieve
            default: 1
            title: Page
          description: Page number to retrieve
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_Supplier_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/suppliers/{id}:
    get:
      tags:
        - provider
        - inventory
      summary: Get Supplier
      operationId: get_supplier_inventory_suppliers__id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: id
          in: path
          required: true
          schema:
            type: string
            title: Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Supplier"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/suppliers/create:
    post:
      tags:
        - provider
        - inventory
      summary: Create Suppliers
      description: Create new suppliers.
      operationId: create_suppliers_inventory_suppliers_create_post
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: "#/components/schemas/Supplier"
              type: array
              title: Suppliers
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Supplier"
                type: array
                title: Response Create Suppliers Inventory Suppliers Create Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /inventory/suppliers/update/{id}:
    put:
      tags:
        - provider
        - inventory
      summary: Update Supplier
      description: Update a supplier.
      operationId: update_supplier_inventory_suppliers_update__id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: id
          in: path
          required: true
          schema:
            type: string
            title: Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Supplier"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Supplier"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /inventory/suppliers/archive/{id}:
    delete:
      tags:
        - provider
        - inventory
      summary: Archive Supplier
      description: Archive a supplier.
      operationId: archive_supplier_inventory_suppliers_archive__id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: id
          in: path
          required: true
          schema:
            type: string
            title: Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Archive Supplier Inventory Suppliers Archive  Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /appointment-dashboard/trend:
    get:
      tags:
        - provider
        - appointment-dashboard
      summary: Get Appointment Trend
      description: Get appointment count trend over the specified time period
      operationId: get_appointment_trend_appointment_dashboard_trend_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: End Date
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            title: Timezone
        - name: provider_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Provider Ids
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Ids
        - name: group_by
          in: query
          required: false
          schema:
            type: string
            description: "Group by: day, week, or month"
            default: day
            title: Group By
          description: "Group by: day, week, or month"
        - name: breakdown
          in: query
          required: false
          schema:
            type: string
            description: appointment_volume | new_appointments_percentage
            default: appointment_volume
            title: Breakdown
          description: appointment_volume | new_appointments_percentage
        - name: by_location
          in: query
          required: false
          schema:
            type: boolean
            description: Break down series by location
            default: false
            title: By Location
          description: Break down series by location
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/AppointmentTrendByDate"
                title:
                  Response Get Appointment Trend Appointment Dashboard Trend
                  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /appointment-dashboard/by-status:
    get:
      tags:
        - provider
        - appointment-dashboard
      summary: Get Appointments By Status
      description: Get count of appointments grouped by status
      operationId: get_appointments_by_status_appointment_dashboard_by_status_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: End Date
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            title: Timezone
        - name: provider_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Provider Ids
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Ids
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/AppointmentsByStatus"
                title:
                  Response Get Appointments By Status Appointment Dashboard By
                  Status Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /appointment-dashboard/by-type:
    get:
      tags:
        - provider
        - appointment-dashboard
      summary: Get Appointments By Type
      description: Get count of appointments grouped by appointment type
      operationId: get_appointments_by_type_appointment_dashboard_by_type_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: End Date
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            title: Timezone
        - name: provider_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Provider Ids
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Ids
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/AppointmentsByType"
                title:
                  Response Get Appointments By Type Appointment Dashboard By
                  Type Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /appointment-dashboard/by-provider:
    get:
      tags:
        - provider
        - appointment-dashboard
      summary: Get Appointments By Provider
      description: Get count of appointments grouped by provider
      operationId: get_appointments_by_provider_appointment_dashboard_by_provider_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: End Date
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            title: Timezone
        - name: provider_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Provider Ids
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Ids
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/AppointmentsByProvider"
                title:
                  Response Get Appointments By Provider Appointment Dashboard
                  By Provider Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /appointment-dashboard/provider-utilization:
    get:
      tags:
        - provider
        - appointment-dashboard
      summary: Get Provider Utilization
      description: Get provider utilization rates
      operationId: get_provider_utilization_appointment_dashboard_provider_utilization_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: End Date
        - name: timezone
          in: query
          required: true
          schema:
            type: string
            title: Timezone
        - name: provider_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Provider Ids
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Ids
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ProviderUtilization"
                title:
                  Response Get Provider Utilization Appointment Dashboard Provider
                  Utilization Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /appointment-dashboard/patient-pending-intake:
    get:
      tags:
        - provider
        - appointment-dashboard
      summary: Get Patient Pending Intake
      description: Get patients with pending intake forms
      operationId: get_patient_pending_intake_appointment_dashboard_patient_pending_intake_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: tz
          in: query
          required: true
          schema:
            type: string
            title: Tz
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: "null"
            title: End Date
        - name: provider_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Provider Ids
        - name: location_ids
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            title: Location Ids
        - name: page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Page
        - name: per_page
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            title: Per Page
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Page_PatientPendingIntake_"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /appointment-dashboard/send-intake-forms/{event_id}:
    post:
      tags:
        - provider
        - appointment-dashboard
      summary: Send Intake Forms To Patient
      description: Send intake forms to a specific patient for their appointment
      operationId: send_intake_forms_to_patient_appointment_dashboard_send_intake_forms__event_id__post
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: event_id
          in: path
          required: true
          schema:
            type: string
            title: Event Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title:
                  Response Send Intake Forms To Patient Appointment Dashboard
                  Send Intake Forms  Event Id  Post
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /spakinect/treatments:
    get:
      tags:
        - provider
        - spakinect
      summary: Get Available Treatments
      description: |-
        Get all available treatments from SpaKinect.

        These treatment names can be used when creating Good Faith Exam requests.
      operationId: get_available_treatments_spakinect_treatments_get
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TreatmentsResponse"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /spakinect/gfe/patient/{patient_id}:
    get:
      tags:
        - provider
        - spakinect
      summary: Get Patient Gfes
      description: |-
        Get all Good Faith Exam records for a patient.

        Fetches GFE records from the database and enriches them with current status
        information from SpaKinect API.
      operationId: get_patient_gfes_spakinect_gfe_patient__patient_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: patient_id
          in: path
          required: true
          schema:
            type: string
            title: Patient Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/GFEDetail"
                title: Response Get Patient Gfes Spakinect Gfe Patient  Patient Id  Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /spakinect/gfe:
    post:
      tags:
        - provider
        - spakinect
      summary: Create Gfe Request
      description: |-
        Create a new Good Faith Exam request.

        Creates an appointment with SpaKinect and stores the GFE record in the database.
        The patient will receive notifications at their email/phone to complete the virtual exam.
      operationId: create_gfe_request_spakinect_gfe_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GFECreateRequest"
        required: true
      responses:
        "201":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GFEDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /spakinect/gfe/{gfe_id}/cancel:
    patch:
      tags:
        - provider
        - spakinect
      summary: Cancel Gfe
      description: |-
        Cancel a Good Faith Exam appointment.

        Only visits with status "Processing" or "Pending Review" can be cancelled.
        The visit status will be updated to "Cancelled by client".
      operationId: cancel_gfe_spakinect_gfe__gfe_id__cancel_patch
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: gfe_id
          in: path
          required: true
          schema:
            type: string
            title: Gfe Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GFEDetail"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /webhook/decoda/create:
    post:
      tags:
        - webhook
      summary: Webhook Create
      description: Create a new `Webhook` for the `Tenant`
      operationId: webhook_create_webhook_decoda_create_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WebhookCreate"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebhookSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
  /webhook/decoda/delete/{webhook_id}:
    delete:
      tags:
        - webhook
      summary: Webhook Delete
      description: Archive a `Webhook`
      operationId: webhook_delete_webhook_decoda_delete__webhook_id__delete
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: webhook_id
          in: path
          required: true
          schema:
            type: string
            title: Webhook Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: boolean
                title: Response Webhook Delete Webhook Decoda Delete  Webhook Id  Delete
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /webhook/decoda/list:
    get:
      tags:
        - webhook
      summary: Webhook List
      description: Get a list of all webhooks connected to the tenant
      operationId: webhook_list_webhook_decoda_list_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: include_archived
          in: query
          required: false
          schema:
            type: boolean
            description: Include archived webhooks in the list
            default: false
            title: Include Archived
          description: Include archived webhooks in the list
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/WebhookSummary"
                title: Response Webhook List Webhook Decoda List Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /webhook/decoda/get/{webhook_id}:
    get:
      tags:
        - webhook
      summary: Webhook Get
      description: Get a `Webhook`
      operationId: webhook_get_webhook_decoda_get__webhook_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: webhook_id
          in: path
          required: true
          schema:
            type: string
            title: Webhook Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebhookSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /webhook/decoda/update/{webhook_id}:
    put:
      tags:
        - webhook
      summary: Webhook Update
      description: Update a `Webhook`
      operationId: webhook_update_webhook_decoda_update__webhook_id__put
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: webhook_id
          in: path
          required: true
          schema:
            type: string
            title: Webhook Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WebhookUpdate"
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebhookSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /webhook/decoda/{webhook_id}/delivery-attempts/list:
    get:
      tags:
        - webhook
      summary: Webhook Events List
      description:
        List and search for attempts to *deliver* `Events` for a particular
        `Webhook` (i.e. `WebhookDeliveryAttempts`).
      operationId: webhook_events_list_webhook_decoda__webhook_id__delivery_attempts_list_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: webhook_id
          in: path
          required: true
          schema:
            type: string
            title: Webhook Id
        - name: event_type
          in: query
          required: false
          schema:
            anyOf:
              - $ref: "#/components/schemas/WebhookEventType"
              - type: "null"
            description: The type of event to filter by
            title: Event Type
          description: The type of event to filter by
        - name: is_delivered
          in: query
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: "null"
            description:
              Filter by if the event has not been delivered (i.e. we have
              not recieved a 200 from you for this event.)
            title: Is Delivered
          description:
            Filter by if the event has not been delivered (i.e. we have not
            recieved a 200 from you for this event.)
        - name: created_before
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            description: Get Events created before this date
            title: Created Before
          description: Get Events created before this date
        - name: created_after
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            description: Get Events created after this date
            title: Created After
          description: Get Events created after this date
        - name: last_delivery_attempt_status
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description:
              Filter by the HTTP status of the most recent delivery attempt
              (i.e. 200, 404, 500, etc.)
            title: Last Delivery Attempt Status
          description:
            Filter by the HTTP status of the most recent delivery attempt
            (i.e. 200, 404, 500, etc.)
        - name: last_delivery_attempt_error
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: Filter by the error message of the most recent delivery attempt
            title: Last Delivery Attempt Error
          description: Filter by the error message of the most recent delivery attempt
        - name: delivery_date_before
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            description: Get Events with a delivery date before this date
            title: Delivery Date Before
          description: Get Events with a delivery date before this date
        - name: delivery_date_after
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: "null"
            description: Get Events with a delivery date after this date
            title: Delivery Date After
          description: Get Events with a delivery date after this date
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: "null"
            description: The field to sort by
            default: created_date
            title: Sort By
          description: The field to sort by
        - name: sort_direction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - asc
                  - desc
                type: string
              - type: "null"
            description: The direction to sort by
            default: desc
            title: Sort Direction
          description: The direction to sort by
        - name: limit
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            description: The maximum number of results to return
            default: 10
            title: Limit
          description: The maximum number of results to return
        - name: offset
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: "null"
            description: The number of results to skip at the beginning
            default: 0
            title: Offset
          description: The number of results to skip at the beginning
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/WebhookDeliveryAttemptSummary"
                title:
                  Response Webhook Events List Webhook Decoda  Webhook Id  Delivery
                  Attempts List Get
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /webhook/decoda/events/{webhook_delivery_attempt_id}:
    get:
      tags:
        - webhook
      summary: Webhook Event Get
      description: Get a single `WebhookDeliveryAttempt`
      operationId: webhook_event_get_webhook_decoda_events__webhook_delivery_attempt_id__get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: webhook_delivery_attempt_id
          in: path
          required: true
          schema:
            type: string
            title: Webhook Delivery Attempt Id
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebhookDeliveryAttemptSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
  /webhook/decoda/events/{webhook_delivery_attempt_id}/send:
    get:
      tags:
        - webhook
      summary: Webhook Event Send
      description:
        Send a `WebhookDeliveryAttempt` event to the `Webhook`. This is
        useful if you want to manually retry a webhook event that failed to deliver.
      operationId: webhook_event_send_webhook_decoda_events__webhook_delivery_attempt_id__send_get
      parameters:
        - name: TENANT
          in: header
          required: true
          schema:
            type: string
            title: Tenant
          description: The tenant you are making this request on behalf of
        - name: API-KEY
          in: header
          required: true
          schema:
            type: string
            title: Api-Key
          description: Your api key
        - name: webhook_delivery_attempt_id
          in: path
          required: true
          schema:
            type: string
            title: Webhook Delivery Attempt Id
        - name: notify_failure
          in: query
          required: false
          schema:
            type: boolean
            description: Notify the webhook owner via email if the event fails to deliver
            default: true
            title: Notify Failure
          description: Notify the webhook owner via email if the event fails to deliver
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebhookDeliveryAttemptSummary"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
components:
  schemas:
    AddPatientCredit:
      properties:
        amount:
          type: integer
          title: Amount
          description: Amount to add to patient's credit balance in cents.
      type: object
      required:
        - amount
      title: AddPatientCredit
      description: Schema for adding credit to a patient's account.
    Address:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
      type: object
      required:
        - name
      title: Address
    AddressAnswer:
      properties:
        address:
          type: string
          title: Address
        addressLineTwo:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslinetwo
        city:
          anyOf:
            - type: string
            - type: "null"
          title: City
        state:
          anyOf:
            - type: string
            - type: "null"
          title: State
        zipCode:
          anyOf:
            - type: string
            - type: "null"
          title: Zipcode
        country:
          anyOf:
            - type: string
            - type: "null"
          title: Country
      type: object
      required:
        - address
      title: AddressAnswer
    AdjustmentCreate:
      properties:
        chargeId:
          type: string
          title: Chargeid
        providerId:
          anyOf:
            - type: string
            - type: "null"
          title: Providerid
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
        amount:
          type: integer
          title: Amount
        reason:
          type: string
          title: Reason
      type: object
      required:
        - chargeId
        - amount
        - reason
      title: AdjustmentCreate
    AdjustmentSummary:
      properties:
        chargeId:
          type: string
          title: Chargeid
        providerId:
          anyOf:
            - type: string
            - type: "null"
          title: Providerid
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
        id:
          type: string
          title: Id
          description: Unique identifier for the adjustment
        amount:
          type: integer
          title: Amount
          description: Amount of the adjustment
        reason:
          anyOf:
            - type: string
            - type: "null"
          title: Reason
          description: Reason for the adjustment
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: Date when the adjustment was created
        adjustmentType:
          $ref: "#/components/schemas/AdjustmentType"
          description: Type of the adjustment
      type: object
      required:
        - chargeId
        - id
        - amount
        - createdDate
        - adjustmentType
      title: AdjustmentSummary
    AdjustmentType:
      type: string
      enum:
        - WRITE_OFF
        - ADJUSTMENT
        - EXTERNAL_SETTLEMENT
      title: AdjustmentType
    AiLanguageSupport:
      type: string
      enum:
        - multi
        - en-US
        - ar-SA
      title: AiLanguageSupport
    AlertKPIs:
      properties:
        calls:
          $ref: "#/components/schemas/CallKPI"
        scheduling:
          $ref: "#/components/schemas/SchedulingKPI"
        intake:
          $ref: "#/components/schemas/IntakeKPI"
      type: object
      required:
        - calls
        - scheduling
        - intake
      title: AlertKPIs
    AlertSummary:
      properties:
        id:
          type: string
          title: Id
        type:
          $ref: "#/components/schemas/AlertType"
        data:
          anyOf:
            - $ref: "#/components/schemas/PaymentSummary"
            - $ref: "#/components/schemas/RefundSummary"
            - $ref: "#/components/schemas/AdjustmentSummary"
            - $ref: "#/components/schemas/ChargeSummary-Output"
            - $ref: "#/components/schemas/ServiceDetail"
            - $ref: "#/components/schemas/MessageSummary"
            - $ref: "#/components/schemas/PaymentWithCharges"
            - $ref: "#/components/schemas/PatientSummary"
            - $ref: "#/components/schemas/InvoiceUpdate"
            - $ref: "#/components/schemas/LowPatientReviewData"
            - $ref: "#/components/schemas/InvoiceSetUpdate"
            - $ref: "#/components/schemas/Notification"
            - $ref: "#/components/schemas/CallSummary"
            - $ref: "#/components/schemas/EventDetail"
            - $ref: "#/components/schemas/UpdatedAppointment"
            - $ref: "#/components/schemas/AnsweredFormTiny"
            - $ref: "#/components/schemas/PlannedPaymentSummary"
            - $ref: "#/components/schemas/PayinEvent"
            - $ref: "#/components/schemas/ChatUpdate"
            - $ref: "#/components/schemas/InventoryLog"
            - $ref: "#/components/schemas/ChargePaymentUpdate"
            - $ref: "#/components/schemas/AppointmentChecklistUpdatedData"
            - $ref: "#/components/schemas/DepositEvent"
          title: Data
        actionRequired:
          type: boolean
          title: Actionrequired
          default: false
        createdDate:
          type: string
          format: date-time
          title: Createddate
        resolvedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Resolveddate
        tags:
          items:
            $ref: "#/components/schemas/TagTiny"
          type: array
          title: Tags
          default: []
        assignedProvider:
          anyOf:
            - $ref: "#/components/schemas/ProviderTiny"
            - type: "null"
        resolvingProvider:
          anyOf:
            - $ref: "#/components/schemas/ProviderTiny"
            - type: "null"
        patient:
          anyOf:
            - $ref: "#/components/schemas/UserTiny"
            - type: "null"
        callId:
          anyOf:
            - type: string
            - type: "null"
          title: Callid
        messageId:
          anyOf:
            - type: string
            - type: "null"
          title: Messageid
        emailId:
          anyOf:
            - type: string
            - type: "null"
          title: Emailid
        mailId:
          anyOf:
            - type: string
            - type: "null"
          title: Mailid
        eventId:
          anyOf:
            - type: string
            - type: "null"
          title: Eventid
        formId:
          anyOf:
            - type: string
            - type: "null"
          title: Formid
        invoiceId:
          anyOf:
            - type: string
            - type: "null"
          title: Invoiceid
        paymentId:
          anyOf:
            - type: string
            - type: "null"
          title: Paymentid
        paymentMethodId:
          anyOf:
            - type: string
            - type: "null"
          title: Paymentmethodid
        chargeId:
          anyOf:
            - type: string
            - type: "null"
          title: Chargeid
        adjustmentId:
          anyOf:
            - type: string
            - type: "null"
          title: Adjustmentid
        refundId:
          anyOf:
            - type: string
            - type: "null"
          title: Refundid
        depositId:
          anyOf:
            - type: string
            - type: "null"
          title: Depositid
        occurances:
          type: integer
          title: Occurances
      type: object
      required:
        - id
        - type
        - data
        - createdDate
        - occurances
      title: AlertSummary
    AlertType:
      type: string
      enum:
        - PATIENT_CREATED
        - PATIENT_UPDATED
        - APPOINTMENT_CANCELLED
        - APPOINTMENT_UPDATED
        - APPOINTMENT_REQUEST
        - APPOINTMENT_SCHEDULED
        - SELF_SCHEDULED_APPOINTMENT
        - SELF_SCHEDULED_APPOINTMENT_CANCELLED
        - SELF_SCHEDULED_APPOINTMENT_UPDATED
        - BLOCK_CREATED
        - BLOCK_CANCELLED
        - BLOCK_UPDATED
        - SHIFT_CREATED
        - SHIFT_CANCELLED
        - SHIFT_UPDATED
        - PAYMENT_CREATED
        - PAYMENT_FAILED
        - PAYMENT_SUCCEEDED
        - PLANNED_PAYMENT_FAILED
        - PLANNED_PAYMENT_SUCCEEDED
        - CHARGE_CREATED
        - REFUND_CREATED
        - REFUND_FAILED
        - REFUND_SUCCEEDED
        - ADJUSTMENT_CREATED
        - ADJUSTMENT_FAILED
        - ADJUSTMENT_SUCCEEDED
        - INVOICE_UPDATED
        - INVOICE_STATUS_UPDATE
        - INVOICE_SET_UPDATED
        - CHARGE_PAYMENT_CREATED
        - CALL_RECEIVED
        - CALL_MADE
        - CALL_ONGOING
        - MESSAGE_RECEIVED
        - MESSAGE_SENT
        - MESSAGE_DELIVERED
        - MESSAGE_FAILED
        - EMAIL_RECEIVED
        - EMAIL_SENT
        - MAIL_SENT
        - MAIL_DELIVERY_FAILED
        - FORM_SUBMITTED
        - APPOINTMENT_CHECKLIST_FILLED_FORM
        - APPOINTMENT_CHECKLIST_CHECKED_IN
        - APPOINTMENT_CHECKLIST_WITH_MA
        - APPOINTMENT_CHECKLIST_MEASUREMENT_TAKEN
        - APPOINTMENT_CHECKLIST_DOSE_TAKEN
        - APPOINTMENT_CHECKLIST_WITH_PROVIDER
        - APPOINTMENT_CHECKLIST_NOTE_TAKEN
        - APPOINTMENT_CHECKLIST_PAYMENT_MADE
        - APPOINTMENT_CHECKLIST_REQUEST_GFE
        - APPOINTMENT_CHECKLIST_PICTURE_TAKEN
        - APPOINTMENT_CHECKLIST_CARE_PLAN
        - NOTIFICATION
        - LOW_PATIENT_REVIEW
        - CHAT_UPDATE
        - RAINFOREST_PAYIN_FAILED
        - RAINFOREST_PAYIN_PROCESSING
        - RAINFOREST_POS_PAYIN_CANCELLED
        - RAINFOREST_DEPOSIT_IN_REVIEW
        - RAINFOREST_DEPOSIT_SUCCEEDED
        - RAINFOREST_DEPOSIT_FAILED
        - STOCK_LOW
        - STOCK_ADDED
        - STOCK_ARCHIVED
        - STOCK_LINKED_TO_ITEM
        - STOCK_UNLINKED_FROM_ITEM
        - STOCK_UPDATED
        - STOCK_DRAWDOWN
        - SHIPMENT_RECEIVED
        - SHIPMENT_UPDATED
        - SHIPMENT_ARCHIVED
        - ITEM_CREATED
        - ITEM_UPDATED
        - ITEM_ARCHIVED
        - INVENTORY_ACTION
      title: AlertType
    AnalyticsDashboardSchema:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the dashboard
        name:
          type: string
          title: Name
          description: Name of the dashboard
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Description of the dashboard
        layoutConfig:
          anyOf:
            - type: object
            - type: "null"
          title: Layoutconfig
          description: Grid layout configuration
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the dashboard is archived
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: When the dashboard was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: When the dashboard was last updated
      type: object
      required:
        - id
        - name
        - isArchived
        - createdDate
      title: AnalyticsDashboardSchema
      description: Schema for analytics dashboard response.
    AnswerDetail:
      properties:
        question:
          anyOf:
            - $ref: "#/components/schemas/QuestionDetail-Output"
            - type: "null"
        data:
          anyOf:
            - type: string
            - type: boolean
            - items:
                type: string
              type: array
            - additionalProperties:
                anyOf:
                  - type: string
                  - type: "null"
              type: object
            - type: number
            - type: "null"
          title: Data
      type: object
      title: AnswerDetail
    AnsweredBlockDetail:
      properties:
        blockType:
          $ref: "#/components/schemas/BlockType"
        name:
          type: string
          title: Name
        position:
          type: integer
          title: Position
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        id:
          type: string
          title: Id
        answers:
          items:
            $ref: "#/components/schemas/AnswerDetail"
          type: array
          title: Answers
      type: object
      required:
        - blockType
        - name
        - position
        - id
        - answers
      title: AnsweredBlockDetail
    AnsweredFormDetail:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        patientId:
          anyOf:
            - type: string
            - type: "null"
          title: Patientid
        blocks:
          items:
            $ref: "#/components/schemas/AnsweredBlockDetail"
          type: array
          title: Blocks
        completed:
          anyOf:
            - type: boolean
            - type: "null"
          title: Completed
        isCompleted:
          type: boolean
          title: Iscompleted
          default: false
      type: object
      required:
        - id
        - name
        - patientId
        - blocks
      title: AnsweredFormDetail
    AnsweredFormTiny:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        patient:
          $ref: "#/components/schemas/UserTiny"
        submissionDate:
          type: string
          format: date-time
          title: Submissiondate
      type: object
      required:
        - id
        - name
        - patient
        - submissionDate
      title: AnsweredFormTiny
    ApplePay:
      properties:
        type:
          type: string
          title: Type
        brand:
          type: string
          title: Brand
        brandDesc:
          type: string
          title: Branddesc
        description:
          type: string
          title: Description
      type: object
      required:
        - type
        - brand
        - brandDesc
        - description
      title: ApplePay
    AppointmentChecklistItem:
      properties:
        id:
          type: string
          title: Id
        eventId:
          type: string
          title: Eventid
        serviceId:
          anyOf:
            - type: string
            - type: "null"
          title: Serviceid
        name:
          type: string
          title: Name
        type:
          anyOf:
            - $ref: "#/components/schemas/AppointmentChecklistType"
            - type: "null"
        optional:
          type: boolean
          title: Optional
        position:
          type: integer
          title: Position
        completedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Completeddate
        completedByUser:
          anyOf:
            - $ref: "#/components/schemas/UserTiny"
            - type: "null"
      type: object
      required:
        - id
        - eventId
        - name
        - optional
        - position
      title: AppointmentChecklistItem
    AppointmentChecklistItemUpdate:
      properties:
        appointmentChecklistId:
          type: string
          title: Appointmentchecklistid
        eventId:
          type: string
          title: Eventid
        completedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Completeddate
      type: object
      required:
        - appointmentChecklistId
        - eventId
      title: AppointmentChecklistItemUpdate
    AppointmentChecklistType:
      type: string
      enum:
        - FILLED_FORM
        - CHECKED_IN
        - WITH_MA
        - MEASUREMENT_TAKEN
        - DOSE_TAKEN
        - WITH_PROVIDER
        - NOTE_TAKEN
        - PAYMENT_MADE
        - REQUEST_GFE
      title: AppointmentChecklistType
    AppointmentChecklistUpdatedData:
      properties:
        appointmentChecklistItem:
          $ref: "#/components/schemas/AppointmentChecklistItem"
        eventId:
          type: string
          title: Eventid
        completedByProviderId:
          type: string
          title: Completedbyproviderid
      type: object
      required:
        - appointmentChecklistItem
        - eventId
        - completedByProviderId
      title: AppointmentChecklistUpdatedData
    AppointmentStyleItem:
      properties:
        eventStatus:
          $ref: "#/components/schemas/EventStatus"
        serviceStyleVariant:
          type: string
          title: Servicestylevariant
      type: object
      required:
        - eventStatus
        - serviceStyleVariant
      title: AppointmentStyleItem
    AppointmentStyleMapping-Input:
      properties:
        items:
          items:
            $ref: "#/components/schemas/AppointmentStyleItem"
          type: array
          title: Items
      type: object
      required:
        - items
      title: AppointmentStyleMapping
    AppointmentStyleMapping-Output:
      properties:
        items:
          items:
            $ref: "#/components/schemas/AppointmentStyleItem"
          type: array
          title: Items
      type: object
      required:
        - items
      title: AppointmentStyleMapping
    AppointmentTrendByDate:
      properties:
        date:
          type: string
          title: Date
        series:
          items:
            $ref: "#/components/schemas/AppointmentTrendSeries"
          type: array
          title: Series
      type: object
      required:
        - date
        - series
      title: AppointmentTrendByDate
      description:
        Date-first response with nested series entries (per location or
        aggregate).
    AppointmentTrendSeries:
      properties:
        mode:
          type: string
          enum:
            - appointment_volume
            - new_appointments_percentage
          title: Mode
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
        locationName:
          anyOf:
            - type: string
            - type: "null"
          title: Locationname
        scheduledCount:
          anyOf:
            - type: integer
            - type: "null"
          title: Scheduledcount
        bookedCount:
          anyOf:
            - type: integer
            - type: "null"
          title: Bookedcount
        cancelledNoShowCount:
          anyOf:
            - type: integer
            - type: "null"
          title: Cancellednoshowcount
        newServicesCount:
          anyOf:
            - type: integer
            - type: "null"
          title: Newservicescount
        existingServicesCount:
          anyOf:
            - type: integer
            - type: "null"
          title: Existingservicescount
        percentageOfNewServices:
          anyOf:
            - type: number
            - type: "null"
          title: Percentageofnewservices
      type: object
      required:
        - mode
      title: AppointmentTrendSeries
      description: |-
        Series entry for a given date, optionally scoped to a location.

        Supports two modes via `mode`:
        - appointment_volume: scheduled/booked/cancelled_no_show counts
        - new_appointments_percentage: counts of services by visibility and ratio
    AppointmentsByProvider:
      properties:
        provider:
          $ref: "#/components/schemas/UserTiny"
        count:
          type: integer
          title: Count
      type: object
      required:
        - provider
        - count
      title: AppointmentsByProvider
      description: Count of appointments grouped by provider
    AppointmentsByStatus:
      properties:
        status:
          $ref: "#/components/schemas/EventStatus"
        count:
          type: integer
          title: Count
      type: object
      required:
        - status
        - count
      title: AppointmentsByStatus
      description: Count of appointments grouped by status
    AppointmentsByType:
      properties:
        appointmentType:
          type: string
          title: Appointmenttype
        count:
          type: integer
          title: Count
      type: object
      required:
        - appointmentType
        - count
      title: AppointmentsByType
      description: Count of appointments grouped by appointment type
    AssignAlertParams:
      properties:
        alertIds:
          items:
            type: string
          type: array
          title: Alertids
        providerId:
          type: string
          title: Providerid
      type: object
      required:
        - alertIds
        - providerId
      title: AssignAlertParams
    AssistantCreate:
      properties:
        firstName:
          type: string
          title: Firstname
        customPrompt:
          anyOf:
            - type: string
            - type: "null"
          title: Customprompt
        beginSentenceTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Beginsentencetemplate
        model:
          anyOf:
            - $ref: "#/components/schemas/LlmModelType"
            - type: "null"
        tools:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Tools
        timezone:
          type: string
          title: Timezone
        fallbackPhoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Fallbackphonenumber
        recurringEvents:
          items:
            $ref: "#/components/schemas/RecurringEventUpdate"
          type: array
          title: Recurringevents
          default: []
        primaryLocationId:
          anyOf:
            - type: string
            - type: "null"
          title: Primarylocationid
        assistantType:
          $ref: "#/components/schemas/AssistantType"
        modality:
          $ref: "#/components/schemas/AssistantModality"
        phoneNumber:
          type: string
          title: Phonenumber
      type: object
      required:
        - firstName
        - timezone
        - assistantType
        - modality
        - phoneNumber
      title: AssistantCreate
    AssistantDetail:
      properties:
        id:
          type: string
          title: Id
        firstName:
          type: string
          title: Firstname
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        assistantType:
          $ref: "#/components/schemas/AssistantType"
        customPrompt:
          anyOf:
            - type: string
            - type: "null"
          title: Customprompt
        modality:
          anyOf:
            - $ref: "#/components/schemas/AssistantModality"
            - type: "null"
        beginSentenceTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Beginsentencetemplate
        model:
          anyOf:
            - $ref: "#/components/schemas/LlmModelType"
            - type: "null"
        tools:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Tools
        timezone:
          type: string
          title: Timezone
        enabled:
          anyOf:
            - type: boolean
            - type: "null"
          title: Enabled
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
        fallbackPhoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Fallbackphonenumber
        isArchived:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isarchived
        isDefault:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isdefault
        primaryLocationId:
          anyOf:
            - type: string
            - type: "null"
          title: Primarylocationid
        recurringEvents:
          items:
            $ref: "#/components/schemas/RecurringEventDetail"
          type: array
          title: Recurringevents
          default: []
      type: object
      required:
        - id
        - firstName
        - assistantType
        - timezone
      title: AssistantDetail
    AssistantModality:
      type: string
      enum:
        - VOICE
        - TEXT
      title: AssistantModality
    AssistantToolSummary:
      properties:
        name:
          type: string
          title: Name
        toolPrompt:
          type: string
          title: Toolprompt
      type: object
      required:
        - name
        - toolPrompt
      title: AssistantToolSummary
    AssistantType:
      type: string
      enum:
        - SCHEDULER
        - BILLER
        - NOTE_TAKER
        - NOTE_UPLOADER
        - CALL_SUMMARIZER
        - FORM_ASSISTANT
        - INBOUND_CALL
        - CALL_REMINDER
        - CALL_FOLLOW_UP
        - CALL_LAB_TECHNICIAN
        - INBOUND_TEXT
      title: AssistantType
    AssistantUpdate:
      properties:
        firstName:
          type: string
          title: Firstname
        customPrompt:
          anyOf:
            - type: string
            - type: "null"
          title: Customprompt
        beginSentenceTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Beginsentencetemplate
        model:
          anyOf:
            - $ref: "#/components/schemas/LlmModelType"
            - type: "null"
        tools:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Tools
        timezone:
          type: string
          title: Timezone
        fallbackPhoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Fallbackphonenumber
        recurringEvents:
          items:
            $ref: "#/components/schemas/RecurringEventUpdate"
          type: array
          title: Recurringevents
          default: []
        primaryLocationId:
          anyOf:
            - type: string
            - type: "null"
          title: Primarylocationid
      type: object
      required:
        - firstName
        - timezone
      title: AssistantUpdate
    AttachmentDayPage:
      properties:
        date:
          type: string
          format: date
          title: Date
        data:
          items:
            $ref: "#/components/schemas/NoteAttachmentResponse"
          type: array
          title: Data
        nextDate:
          anyOf:
            - type: string
              format: date
            - type: "null"
          title: Nextdate
      type: object
      required:
        - date
        - data
      title: AttachmentDayPage
      description: |-
        Represents a single day page of attachments for infinite scrolling by date.

        - date: The local day these attachments belong to (based on provided tz)
        - data: All attachments created on that day
        - next_date: The previous day (if any) that contains at least one attachment under the
          same inclusion rules, to be used as the cursor for the next page.
    AttendeeDetail-Input:
      properties:
        user:
          $ref: "#/components/schemas/UserTiny"
        inviteStatus:
          $ref: "#/components/schemas/InviteStatus"
      type: object
      required:
        - user
        - inviteStatus
      title: AttendeeDetail
    AttendeeDetail-Output:
      properties:
        user:
          $ref: "#/components/schemas/UserTiny"
        inviteStatus:
          $ref: "#/components/schemas/InviteStatus"
      type: object
      required:
        - user
        - inviteStatus
      title: AttendeeDetail
    AvailabilityRequestAssignment:
      properties:
        serviceId:
          type: string
          minLength: 1
          title: Serviceid
        providerId:
          anyOf:
            - type: string
              minLength: 1
            - type: "null"
          title: Providerid
        preferredProviderAssignmentIndex:
          anyOf:
            - type: integer
              minimum: 0
            - type: "null"
          title: Preferredproviderassignmentindex
      type: object
      required:
        - serviceId
      additionalProperties: false
      title: AvailabilityRequestAssignment
    AvailabilityRequest:
      properties:
        assignments:
          items:
            $ref: "#/components/schemas/AvailabilityRequestAssignment"
          type: array
          minItems: 1
          title: Assignments
        locationId:
          type: string
          minLength: 1
          title: Locationid
        start:
          type: string
          format: date-time
          title: Start
        end:
          type: string
          format: date-time
          title: End
        addonSelections:
          anyOf:
            - additionalProperties:
                items:
                  type: string
                type: array
              type: object
            - type: "null"
          title: Addonselections
      type: object
      required:
        - assignments
        - locationId
        - start
        - end
      additionalProperties: false
      title: AvailabilityRequest
    AvailabilityAssignment:
      properties:
        serviceId:
          type: string
          minLength: 1
          title: Serviceid
        providerId:
          type: string
          minLength: 1
          title: Providerid
      type: object
      required:
        - serviceId
        - providerId
      additionalProperties: false
      title: AvailabilityAssignment
    Availability:
      properties:
        start:
          type: string
          format: date-time
          title: Start
        end:
          type: string
          format: date-time
          title: End
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
        assignments:
          items:
            $ref: "#/components/schemas/AvailabilityAssignment"
          type: array
          minItems: 1
          title: Assignments
      type: object
      required:
        - start
        - end
        - assignments
      title: Availability
    AvailableCredit:
      properties:
        creditId:
          type: string
          title: Creditid
        remainingAmount:
          type: integer
          title: Remainingamount
        totalAmount:
          type: integer
          title: Totalamount
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
        expiryDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Expirydate
        createdDate:
          type: string
          format: date-time
          title: Createddate
      type: object
      required:
        - creditId
        - remainingAmount
        - totalAmount
        - createdDate
      title: AvailableCredit
      description: Individual available credit details
    AvailableCreditResponse:
      properties:
        totalAvailable:
          type: integer
          title: Totalavailable
        credits:
          items:
            $ref: "#/components/schemas/AvailableCredit"
          type: array
          title: Credits
        count:
          type: integer
          title: Count
      type: object
      required:
        - totalAvailable
        - credits
        - count
      title: AvailableCreditResponse
      description: Response for available credit endpoint
    BankedItem-Input:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the banked item
        itemId:
          type: string
          title: Itemid
          description: Item ID that was banked
        patientId:
          type: string
          title: Patientid
          description: Patient ID who purchased the item
        createdByChargeItemId:
          type: string
          title: Createdbychargeitemid
          description: Charge item ID that created this banked item
        quantity:
          type: integer
          title: Quantity
          description: Total quantity banked
        quantityRemaining:
          type: integer
          title: Quantityremaining
          description: Quantity still available
        item:
          anyOf:
            - $ref: "#/components/schemas/ItemTiny"
            - type: "null"
          description: Details of the item
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: Date the item was banked (auto-set if not provided)
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: Date the item was updated
      type: object
      required:
        - itemId
        - patientId
        - createdByChargeItemId
        - quantity
        - quantityRemaining
      title: BankedItem
    BankedItem-Output:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the banked item
        itemId:
          type: string
          title: Itemid
          description: Item ID that was banked
        patientId:
          type: string
          title: Patientid
          description: Patient ID who purchased the item
        createdByChargeItemId:
          type: string
          title: Createdbychargeitemid
          description: Charge item ID that created this banked item
        quantity:
          type: integer
          title: Quantity
          description: Total quantity banked
        quantityRemaining:
          type: integer
          title: Quantityremaining
          description: Quantity still available
        item:
          anyOf:
            - $ref: "#/components/schemas/ItemTiny"
            - type: "null"
          description: Details of the item
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: Date the item was banked (auto-set if not provided)
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: Date the item was updated
      type: object
      required:
        - itemId
        - patientId
        - createdByChargeItemId
        - quantity
        - quantityRemaining
      title: BankedItem
    BankedItemDetail:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the banked item
        itemId:
          type: string
          title: Itemid
          description: Item ID that was banked
        patientId:
          type: string
          title: Patientid
          description: Patient ID who purchased the item
        createdByChargeItemId:
          type: string
          title: Createdbychargeitemid
          description: Charge item ID that created this banked item
        quantity:
          type: integer
          title: Quantity
          description: Total quantity banked
        quantityRemaining:
          type: integer
          title: Quantityremaining
          description: Quantity still available
        item:
          $ref: "#/components/schemas/ItemTiny"
          description: Details of the item
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: Date the item was banked (auto-set if not provided)
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: Date the item was updated
        items:
          items:
            $ref: "#/components/schemas/ChargeItemDetailWithCharge"
          type: array
          title: Items
          description: Charge items that used this banked item
        patient:
          $ref: "#/components/schemas/PatientSummary"
          description: Details of the patient
        createdByChargeItem:
          $ref: "#/components/schemas/ChargeItem"
          description: Details of the charge item that created this banked item
      type: object
      required:
        - itemId
        - patientId
        - createdByChargeItemId
        - quantity
        - quantityRemaining
        - item
        - patient
        - createdByChargeItem
      title: BankedItemDetail
    BankedItemUsage:
      properties:
        chargeId:
          type: string
          title: Chargeid
          description: ID of the charge that used this banked item
        chargeDate:
          type: string
          format: date-time
          title: Chargedate
          description: Date when the charge was created
        quantityUsed:
          type: integer
          title: Quantityused
          description: Quantity used in this charge
        chargeTotal:
          type: integer
          title: Chargetotal
          description: Total amount of the charge
      type: object
      required:
        - chargeId
        - chargeDate
        - quantityUsed
        - chargeTotal
      title: BankedItemUsage
      description: Information about how a banked item was used.
    BillingContact:
      properties:
        name:
          anyOf:
            - type: string
            - type: "null"
          title: Name
        addressLine1:
          anyOf:
            - type: string
            - type: "null"
          title: Addressline1
        addressLine2:
          anyOf:
            - type: string
            - type: "null"
          title: Addressline2
        city:
          anyOf:
            - type: string
            - type: "null"
          title: City
        state:
          anyOf:
            - type: string
            - type: "null"
          title: State
        postalCode:
          anyOf:
            - type: string
            - type: "null"
          title: Postalcode
        country:
          anyOf:
            - type: string
            - type: "null"
          title: Country
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
        phone:
          anyOf:
            - type: string
            - type: "null"
          title: Phone
      type: object
      required:
        - name
        - addressLine1
        - addressLine2
        - city
        - state
        - postalCode
        - country
        - email
        - phone
      title: BillingContact
    BlockDetail-Input:
      properties:
        id:
          type: string
          title: Id
        formId:
          type: string
          title: Formid
        position:
          type: integer
          title: Position
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        blockType:
          $ref: "#/components/schemas/BlockType"
        name:
          type: string
          title: Name
        questions:
          items:
            $ref: "#/components/schemas/QuestionDetail_Union_Address__Date__Text__SingleSelect__MultiSelect__Toggle__Signature__FileUpload__PaymentMethod__Tag__Disclaimer__Statement__Document__Number__CalculatedScore__-Input"
          type: array
          title: Questions
          default: []
        isArchived:
          type: boolean
          title: Isarchived
          default: false
      type: object
      required:
        - id
        - formId
        - position
        - blockType
        - name
      title: BlockDetail
    BlockDetail-Output:
      properties:
        id:
          type: string
          title: Id
        formId:
          type: string
          title: Formid
        position:
          type: integer
          title: Position
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        blockType:
          $ref: "#/components/schemas/BlockType"
        name:
          type: string
          title: Name
        questions:
          items:
            $ref: "#/components/schemas/QuestionDetail_Union_Address__Date__Text__SingleSelect__MultiSelect__Toggle__Signature__FileUpload__PaymentMethod__Tag__Disclaimer__Statement__Document__Number__CalculatedScore__-Output"
          type: array
          title: Questions
          default: []
        isArchived:
          type: boolean
          title: Isarchived
          default: false
      type: object
      required:
        - id
        - formId
        - position
        - blockType
        - name
      title: BlockDetail
    BlockStructure:
      properties:
        name:
          type: string
          title: Name
        questions:
          items:
            $ref: "#/components/schemas/QuestionSummary"
          type: array
          title: Questions
        isArchived:
          type: boolean
          title: Isarchived
        position:
          type: integer
          title: Position
      type: object
      required:
        - name
        - questions
        - isArchived
        - position
      title: BlockStructure
    BlockType:
      type: string
      enum:
        - DYNAMIC
        - DEMOGRAPHICS
        - INSURANCE
        - PAYMENT_METHODS
        - MEDICAL_HISTORY
      title: BlockType
    Body_add_attachment_attachments_post:
      properties:
        attachment:
          type: string
          format: binary
          title: Attachment
        patient_id:
          type: string
          title: Patient Id
        note_id:
          anyOf:
            - type: string
            - type: "null"
          title: Note Id
        name:
          anyOf:
            - type: string
            - type: "null"
          title: Name
      type: object
      required:
        - attachment
        - patient_id
      title: Body_add_attachment_attachments_post
    Body_create_message_comms_chat_send_message_post:
      properties:
        content:
          anyOf:
            - type: string
            - type: "null"
          title: Content
        sender_id:
          type: string
          title: Sender Id
        chat_id:
          type: string
          title: Chat Id
        message_uid:
          anyOf:
            - type: string
            - type: "null"
          title: Message Uid
        quote_id:
          anyOf:
            - type: string
            - type: "null"
          title: Quote Id
        files:
          anyOf:
            - items:
                type: string
                format: binary
              type: array
            - type: "null"
          title: Files
        event_id:
          anyOf:
            - type: string
            - type: "null"
          title: Event Id
        message_type:
          anyOf:
            - $ref: "#/components/schemas/MessageType"
            - type: "null"
      type: object
      required:
        - sender_id
        - chat_id
      title: Body_create_message_comms_chat_send_message_post
    Body_create_stock_from_csv_inventory_stocks_create_from_csv_post:
      properties:
        csv_file:
          type: string
          format: binary
          title: Csv File
        supplier_id:
          type: string
          title: Supplier Id
        location_id:
          type: string
          title: Location Id
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
      type: object
      required:
        - csv_file
        - supplier_id
        - location_id
      title: Body_create_stock_from_csv_inventory_stocks_create_from_csv_post
    Body_create_stock_from_image_inventory_stocks_create_from_image_post:
      properties:
        image:
          type: string
          format: binary
          title: Image
        supplier_id:
          type: string
          title: Supplier Id
        location_id:
          type: string
          title: Location Id
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
      type: object
      required:
        - image
        - supplier_id
        - location_id
      title: Body_create_stock_from_image_inventory_stocks_create_from_image_post
    Body_get_membership_analytics_groups_analytics_dashboards_memberships_groups__group_by__get:
      properties:
        membership_ids:
          items:
            type: string
          type: array
          title: Membership Ids
          default: []
        member_statuses:
          items:
            $ref: "#/components/schemas/MemberStatus"
          type: array
          title: Member Statuses
          default: []
        location_ids:
          items:
            type: string
          type: array
          title: Location Ids
          default: []
        sold_by_provider_ids:
          items:
            type: string
          type: array
          title: Sold By Provider Ids
          default: []
      type: object
      title: Body_get_membership_analytics_groups_analytics_dashboards_memberships_groups__group_by__get
    Body_get_membership_analytics_list_analytics_dashboards_memberships_list_get:
      properties:
        membership_ids:
          items:
            type: string
          type: array
          title: Membership Ids
          default: []
        member_statuses:
          items:
            $ref: "#/components/schemas/MemberStatus"
          type: array
          title: Member Statuses
          default: []
        location_ids:
          items:
            type: string
          type: array
          title: Location Ids
          default: []
        sold_by_provider_ids:
          items:
            type: string
          type: array
          title: Sold By Provider Ids
          default: []
      type: object
      title: Body_get_membership_analytics_list_analytics_dashboards_memberships_list_get
    Body_send_bulk_email_comms_email_send_bulk_post:
      properties:
        patient_ids:
          items:
            type: string
          type: array
          title: Patient Ids
        body:
          type: string
          title: Body
        subject:
          type: string
          title: Subject
        html:
          type: boolean
          title: Html
          default: false
        attachments:
          anyOf:
            - items:
                type: string
                format: binary
              type: array
            - type: "null"
          title: Attachments
      type: object
      required:
        - patient_ids
        - body
        - subject
      title: Body_send_bulk_email_comms_email_send_bulk_post
    Body_send_email_comms_email_send_post:
      properties:
        patient_id:
          type: string
          title: Patient Id
        body:
          type: string
          title: Body
        subject:
          type: string
          title: Subject
        html:
          type: boolean
          title: Html
          default: false
        attachments:
          anyOf:
            - items:
                type: string
                format: binary
              type: array
            - type: "null"
          title: Attachments
      type: object
      required:
        - patient_id
        - body
        - subject
      title: Body_send_email_comms_email_send_post
    Body_update_or_create_location_admin_locations_update_or_create_post:
      properties:
        photo:
          anyOf:
            - type: string
              format: binary
            - type: "null"
          title: Photo
        id:
          anyOf:
            - type: string
            - type: "null"
          title: Id
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        isVirtual:
          type: boolean
          title: Isvirtual
        addressLineOne:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslineone
        addressLineTwo:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslinetwo
        city:
          anyOf:
            - type: string
            - type: "null"
          title: City
        state:
          anyOf:
            - type: string
            - type: "null"
          title: State
        zipCode:
          anyOf:
            - type: string
            - type: "null"
          title: Zipcode
        country:
          anyOf:
            - type: string
            - type: "null"
          title: Country
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
        reviewLink:
          anyOf:
            - type: string
            - type: "null"
          title: Reviewlink
        timezone:
          type: string
          title: Timezone
        latitude:
          anyOf:
            - type: number
            - type: "null"
          title: Latitude
        longitude:
          anyOf:
            - type: number
            - type: "null"
          title: Longitude
        spakinectLocationId:
          anyOf:
            - type: string
            - type: "null"
          title: Spakinectlocationid
      type: object
      required:
        - name
        - isVirtual
        - timezone
      title: Body_update_or_create_location_admin_locations_update_or_create_post
    Body_upload_document_user_patient_document_upload_post:
      properties:
        patient_id:
          type: string
          title: Patient Id
        title:
          type: string
          title: Title
        doc_type:
          $ref: "#/components/schemas/DocumentType"
        file:
          type: string
          format: binary
          title: File
        parse_with_ai:
          type: boolean
          title: Parse With Ai
          default: false
      type: object
      required:
        - patient_id
        - title
        - doc_type
        - file
      title: Body_upload_document_user_patient_document_upload_post
    Body_upload_file_forms_file_upload_post:
      properties:
        file:
          type: string
          format: binary
          title: File
      type: object
      required:
        - file
      title: Body_upload_file_forms_file_upload_post
    Body_upload_logo_tenant_upload_logo_post:
      properties:
        file:
          type: string
          format: binary
          title: File
      type: object
      required:
        - file
      title: Body_upload_logo_tenant_upload_logo_post
    Body_upload_note_notes_upload_post:
      properties:
        patient_id:
          type: string
          title: Patient Id
        provider_id:
          type: string
          title: Provider Id
        template_id:
          anyOf:
            - type: string
            - type: "null"
          title: Template Id
        location_id:
          anyOf:
            - type: string
            - type: "null"
          title: Location Id
        skip_ai_generation:
          type: boolean
          title: Skip Ai Generation
          default: false
        files:
          items:
            type: string
            format: binary
          type: array
          title: Files
      type: object
      required:
        - patient_id
        - provider_id
        - files
      title: Body_upload_note_notes_upload_post
    Body_upload_patient_profile_picture_user_patient__patient_id__profile_picture_post:
      properties:
        file:
          type: string
          format: binary
          title: File
      type: object
      title: Body_upload_patient_profile_picture_user_patient__patient_id__profile_picture_post
    Body_upload_patients_user_patient_uploads_csv_post:
      properties:
        file:
          type: string
          format: binary
          title: File
        uploader_id:
          type: string
          title: Uploader Id
        rule_set_id:
          anyOf:
            - type: string
            - type: "null"
          title: Rule Set Id
        void_existing_charges:
          type: boolean
          title: Void Existing Charges
          default: false
        update_existing_patient_charges:
          type: boolean
          title: Update Existing Patient Charges
          default: false
        patient_identifiers:
          items:
            type: string
          type: array
          title: Patient Identifiers
          default: []
      type: object
      required:
        - file
        - uploader_id
      title: Body_upload_patients_user_patient_uploads_csv_post
    Body_upload_receipt_logo_tenant_upload_receipt_logo_post:
      properties:
        file:
          type: string
          format: binary
          title: File
      type: object
      required:
        - file
      title: Body_upload_receipt_logo_tenant_upload_receipt_logo_post
    Body_upload_template_attachment_notes_templates_upload_attachment_post:
      properties:
        attachment:
          type: string
          format: binary
          title: Attachment
      type: object
      required:
        - attachment
      title: Body_upload_template_attachment_notes_templates_upload_attachment_post
    BookableDetail:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        locationIds:
          items:
            type: string
          type: array
          title: Locationids
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
      type: object
      required:
        - id
        - name
        - locationIds
      title: BookableDetail
    BookableEdit:
      properties:
        id:
          anyOf:
            - type: string
            - type: "null"
          title: Id
        name:
          anyOf:
            - type: string
            - type: "null"
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        locationIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Locationids
      type: object
      title: BookableEdit
    BookingFeePayinResponse:
      properties:
        sessionKey:
          type: string
          title: Sessionkey
        payinConfigId:
          type: string
          title: Payinconfigid
        sandbox:
          type: boolean
          title: Sandbox
      type: object
      required:
        - sessionKey
        - payinConfigId
        - sandbox
      title: BookingFeePayinResponse
    BulkDeleteNotificationPreferencesRequest:
      properties:
        preferenceIds:
          items:
            type: string
          type: array
          title: Preferenceids
          description: List of preference IDs to delete.
      type: object
      required:
        - preferenceIds
      title: BulkDeleteNotificationPreferencesRequest
      description: Schema for bulk deleting notification preferences.
    BulkProviderAssignment:
      properties:
        provider_ids:
          items:
            type: string
          type: array
          title: Provider Ids
      type: object
      required:
        - provider_ids
      title: BulkProviderAssignment
    CPTCode:
      properties:
        code:
          type: string
          title: Code
        category1:
          anyOf:
            - type: string
            - type: "null"
          title: Category1
        category2:
          anyOf:
            - type: string
            - type: "null"
          title: Category2
        category3:
          anyOf:
            - type: string
            - type: "null"
          title: Category3
        category4:
          anyOf:
            - type: string
            - type: "null"
          title: Category4
        category5:
          anyOf:
            - type: string
            - type: "null"
          title: Category5
        category6:
          anyOf:
            - type: string
            - type: "null"
          title: Category6
        description:
          type: string
          title: Description
        notes:
          anyOf:
            - type: string
            - type: "null"
          title: Notes
      type: object
      required:
        - code
        - category1
        - category2
        - category3
        - category4
        - category5
        - category6
        - description
        - notes
      title: CPTCode
    CalculatedDailyBalance:
      properties:
        date:
          type: string
          format: date-time
          title: Date
          description: The date for this calculated balance
        endingBalance:
          type: integer
          title: Endingbalance
          description: Ending balance in cents
        startingBalance:
          type: integer
          title: Startingbalance
          description: Starting balance in cents
        cashPayments:
          type: integer
          title: Cashpayments
          description: Total cash payments in cents
        cashRefunds:
          type: integer
          title: Cashrefunds
          description: Total cash refunds in cents
        adjustments:
          type: integer
          title: Adjustments
          description: Total adjustments in cents
        locationId:
          type: string
          title: Locationid
          description: The location ID
        locationName:
          anyOf:
            - type: string
            - type: "null"
          title: Locationname
          description: The location name
      type: object
      required:
        - date
        - endingBalance
        - startingBalance
        - cashPayments
        - cashRefunds
        - adjustments
        - locationId
      title: CalculatedDailyBalance
      description: Daily calculated balance summary.
    CalculatedScore:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        displayFormat:
          type: string
          title: Displayformat
          default: "Score: {value}"
        calculationType:
          type: string
          title: Calculationtype
          default: SUM
      type: object
      required:
        - name
      title: CalculatedScore
    CallDirection:
      type: string
      enum:
        - INBOUND
        - OUTBOUND
      title: CallDirection
    CallKPI:
      properties:
        numberOutgoing:
          anyOf:
            - type: integer
            - type: "null"
          title: Numberoutgoing
        numberIncoming:
          anyOf:
            - type: integer
            - type: "null"
          title: Numberincoming
        numberHandled:
          anyOf:
            - type: integer
            - type: "null"
          title: Numberhandled
        numberNotifications:
          anyOf:
            - type: integer
            - type: "null"
          title: Numbernotifications
        percentGrowth:
          anyOf:
            - type: number
            - type: "null"
          title: Percentgrowth
      type: object
      title: CallKPI
    CallStatus:
      type: string
      enum:
        - CREATED
        - ONGOING
        - TRANSFERRED
        - DISCONNECTED
        - FAILED
        - FINISHED
        - VOICEMAIL
      title: CallStatus
    CallSummary:
      properties:
        id:
          type: string
          title: Id
        sender:
          anyOf:
            - $ref: "#/components/schemas/UserTiny"
            - type: "null"
        receiver:
          anyOf:
            - $ref: "#/components/schemas/UserTiny"
            - type: "null"
        chatId:
          type: string
          title: Chatid
        direction:
          $ref: "#/components/schemas/CallDirection"
        status:
          $ref: "#/components/schemas/CallStatus"
        completedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Completeddate
        retellCallId:
          anyOf:
            - type: string
            - type: "null"
          title: Retellcallid
        disconnectionReason:
          anyOf:
            - type: string
            - type: "null"
          title: Disconnectionreason
        pathToAudio:
          anyOf:
            - type: string
            - type: "null"
          title: Pathtoaudio
        summary:
          anyOf:
            - type: string
            - type: "null"
          title: Summary
        context:
          anyOf:
            - type: object
            - type: "null"
          title: Context
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
        toolCalls:
          items:
            $ref: "#/components/schemas/ToolCall"
          type: array
          title: Toolcalls
          default: []
        tags:
          items:
            $ref: "#/components/schemas/TagSummary"
          type: array
          title: Tags
          default: []
        invoiceId:
          anyOf:
            - type: string
            - type: "null"
          title: Invoiceid
        type:
          $ref: "#/components/schemas/CallType"
          default: MANUAL
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
      type: object
      required:
        - id
        - chatId
        - direction
        - status
      title: CallSummary
    CallTable:
      properties:
        id:
          type: string
          title: Id
        sender:
          anyOf:
            - $ref: "#/components/schemas/UserTiny"
            - type: "null"
        receiver:
          $ref: "#/components/schemas/UserTiny"
        chatId:
          type: string
          title: Chatid
        direction:
          $ref: "#/components/schemas/CallDirection"
        status:
          $ref: "#/components/schemas/CallStatus"
        completedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Completeddate
        retellCallId:
          anyOf:
            - type: string
            - type: "null"
          title: Retellcallid
        disconnectionReason:
          anyOf:
            - type: string
            - type: "null"
          title: Disconnectionreason
        pathToAudio:
          anyOf:
            - type: string
            - type: "null"
          title: Pathtoaudio
        summary:
          anyOf:
            - type: string
            - type: "null"
          title: Summary
        context:
          anyOf:
            - type: object
            - type: "null"
          title: Context
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
        toolCalls:
          items:
            $ref: "#/components/schemas/ToolCallSummary"
          type: array
          title: Toolcalls
          default: []
        tags:
          items:
            $ref: "#/components/schemas/TagSummary"
          type: array
          title: Tags
          default: []
        invoiceId:
          anyOf:
            - type: string
            - type: "null"
          title: Invoiceid
        type:
          $ref: "#/components/schemas/CallType"
          default: MANUAL
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
      type: object
      required:
        - id
        - receiver
        - chatId
        - direction
        - status
      title: CallTable
    CallTranscript:
      properties:
        speakers:
          items:
            $ref: "#/components/schemas/UserTiny"
          type: array
          title: Speakers
        transcripts:
          items:
            $ref: "#/components/schemas/TranscriptDetail"
          type: array
          title: Transcripts
      type: object
      required:
        - speakers
        - transcripts
      title: CallTranscript
    CallType:
      type: string
      enum:
        - MANUAL
        - AI
      title: CallType
    CartCreate:
      properties:
        id:
          anyOf:
            - type: string
            - type: "null"
          title: Id
          description: Cart ID (auto-generated if not provided)
        patientId:
          type: string
          title: Patientid
          description: ID of the patient
        creatorId:
          anyOf:
            - type: string
            - type: "null"
          title: Creatorid
          description: ID of the user creating the cart
        status:
          anyOf:
            - $ref: "#/components/schemas/CartStatus"
            - type: "null"
          description: Cart status
        notes:
          anyOf:
            - type: string
            - type: "null"
          title: Notes
          description: Notes about the cart
        expiresDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Expiresdate
          description: When the cart expires
        discountAmount:
          type: integer
          title: Discountamount
          description: Overall cart discount in cents
          default: 0
        discountPercentage:
          type: number
          title: Discountpercentage
          description: Overall cart discount percentage
          default: 0.0
        items:
          items:
            $ref: "#/components/schemas/CartItemCreate"
          type: array
          title: Items
          description: Items and packages to add to the cart
          default: []
      type: object
      required:
        - patientId
      title: CartCreate
      description: Schema for creating a new cart.
    CartItem:
      properties:
        id:
          type: string
          title: Id
          description: Cart item ID
        cartId:
          type: string
          title: Cartid
          description: ID of the cart
        itemId:
          anyOf:
            - type: string
            - type: "null"
          title: Itemid
          description: ID of the item
        packageId:
          anyOf:
            - type: string
            - type: "null"
          title: Packageid
          description: ID of the package
        quantity:
          type: number
          title: Quantity
          description: Quantity of the item/package
        unitPrice:
          type: integer
          title: Unitprice
          description: Unit price in cents
        discountAmount:
          type: integer
          title: Discountamount
          description: Discount amount in cents
        discountPercentage:
          type: number
          title: Discountpercentage
          description: Discount percentage
        taxAmount:
          type: integer
          title: Taxamount
          description: Tax amount in cents
        totalPrice:
          type: integer
          title: Totalprice
          description: Total price for this quantity in cents
        notes:
          anyOf:
            - type: string
            - type: "null"
          title: Notes
          description: Notes about this item/package
        item:
          anyOf:
            - $ref: "#/components/schemas/ItemTiny"
            - type: "null"
          description: Item details
        package:
          anyOf:
            - $ref: "#/components/schemas/PackageTiny"
            - type: "null"
          description: Package details
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: Date the item was added
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: Date the item was last updated
      type: object
      required:
        - id
        - cartId
        - quantity
        - unitPrice
        - discountAmount
        - discountPercentage
        - taxAmount
        - totalPrice
      title: CartItem
      description:
        Schema for cart items with full details (can be either items or
        packages).
    CartItemCreate:
      properties:
        itemId:
          anyOf:
            - type: string
            - type: "null"
          title: Itemid
          description: ID of the item to add to cart
        packageId:
          anyOf:
            - type: string
            - type: "null"
          title: Packageid
          description: ID of the package to add to cart
        quantity:
          type: number
          title: Quantity
          description: Quantity of the item/package
          default: 1.0
        unitPrice:
          anyOf:
            - type: integer
            - type: "null"
          title: Unitprice
          description:
            Custom unit price in cents (if different from item/package
            price)
        discountAmount:
          type: integer
          title: Discountamount
          description: Discount amount in cents
          default: 0
        discountPercentage:
          type: number
          title: Discountpercentage
          description: Discount percentage (0-100)
          default: 0.0
        notes:
          anyOf:
            - type: string
            - type: "null"
          title: Notes
          description: Notes about this item/package
      type: object
      title: CartItemCreate
      description: Schema for creating cart items (can be either items or packages).
    CartItemUpdate:
      properties:
        quantity:
          anyOf:
            - type: number
            - type: "null"
          title: Quantity
          description: New quantity
        unitPrice:
          anyOf:
            - type: integer
            - type: "null"
          title: Unitprice
          description: New unit price in cents
        discountAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Discountamount
          description: New discount amount in cents
        discountPercentage:
          anyOf:
            - type: number
            - type: "null"
          title: Discountpercentage
          description: New discount percentage
        notes:
          anyOf:
            - type: string
            - type: "null"
          title: Notes
          description: New notes
      type: object
      title: CartItemUpdate
      description: Schema for updating cart items.
    CartStatus:
      type: string
      enum:
        - DRAFT
        - ABANDONED
        - ACCEPTED
        - REJECTED
        - CONVERTED
        - EXPIRED
      title: CartStatus
      description: Status of a patient cart.
    CartSummary:
      properties:
        id:
          type: string
          title: Id
          description: Cart ID
        patient:
          $ref: "#/components/schemas/PatientSummary"
          description: Patient details
        creator:
          anyOf:
            - $ref: "#/components/schemas/ProviderTiny"
            - type: "null"
          description: Creator details
        status:
          $ref: "#/components/schemas/CartStatus"
          description: Cart status
        discountAmount:
          type: integer
          title: Discountamount
          description: Total discount in cents
        discountPercentage:
          type: number
          title: Discountpercentage
          description: Overall discount percentage
        taxAmount:
          type: integer
          title: Taxamount
          description: Total tax in cents
        total:
          type: integer
          title: Total
          description: Final total in cents
        items:
          items:
            $ref: "#/components/schemas/CartItem"
          type: array
          title: Items
          description: Items and packages in the cart
          default: []
        quotes:
          items:
            $ref: "#/components/schemas/QuoteSummary"
          type: array
          title: Quotes
          description: Quotes created from this cart
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: Date the cart was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: Date the cart was last updated
        expiresDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Expiresdate
          description: When the cart expires
        notes:
          anyOf:
            - type: string
            - type: "null"
          title: Notes
          description: Notes about the cart
        convertedChargeId:
          anyOf:
            - type: string
            - type: "null"
          title: Convertedchargeid
          description: ID of charge if cart was converted
        subtotal:
          type: integer
          title: Subtotal
          description: Calculate subtotal from items after item-level discounts.
          readOnly: true
      type: object
      required:
        - id
        - patient
        - status
        - discountAmount
        - discountPercentage
        - taxAmount
        - total
        - subtotal
      title: CartSummary
      description: Summary schema for cart with basic details.
    CashBalanceAdjustmentCreate:
      properties:
        locationId:
          type: string
          title: Locationid
          description: The ID of the location for this adjustment
        amount:
          type: integer
          title: Amount
          description:
            The adjustment amount in cents (positive for pay-in, negative
            for pay-out)
        reason:
          type: string
          title: Reason
          description: The reason for the adjustment
        creatorId:
          type: string
          title: Creatorid
          description: The ID of the creator
      type: object
      required:
        - locationId
        - amount
        - reason
        - creatorId
      title: CashBalanceAdjustmentCreate
      description: Create a cash balance adjustment (pay-in/pay-out).
    CashBalanceAdjustmentDetail:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the adjustment
        locationId:
          type: string
          title: Locationid
          description: The ID of the location
        amount:
          type: integer
          title: Amount
          description: The adjustment amount in cents
        reason:
          type: string
          title: Reason
          description: The reason for the adjustment
        creatorId:
          type: string
          title: Creatorid
          description: The ID of the creator
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time the adjustment was created
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the adjustment has been voided
          default: false
        creatorName:
          anyOf:
            - type: string
            - type: "null"
          title: Creatorname
          description: The name of the creator
      type: object
      required:
        - id
        - locationId
        - amount
        - reason
        - creatorId
        - createdDate
      title: CashBalanceAdjustmentDetail
      description:
        Detailed cash balance adjustment information including creator
        details.
    CashBalanceAdjustmentSummary:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the adjustment
        locationId:
          type: string
          title: Locationid
          description: The ID of the location
        amount:
          type: integer
          title: Amount
          description: The adjustment amount in cents
        reason:
          type: string
          title: Reason
          description: The reason for the adjustment
        creatorId:
          type: string
          title: Creatorid
          description: The ID of the creator
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time the adjustment was created
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the adjustment has been voided
          default: false
      type: object
      required:
        - id
        - locationId
        - amount
        - reason
        - creatorId
        - createdDate
      title: CashBalanceAdjustmentSummary
      description: Summary of a cash balance adjustment.
    CashBalanceAdjustmentUpdate:
      properties:
        amount:
          anyOf:
            - type: integer
            - type: "null"
          title: Amount
          description: The adjustment amount in cents
        reason:
          anyOf:
            - type: string
            - type: "null"
          title: Reason
          description: The reason for the adjustment
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: The date and time the adjustment was created
      type: object
      title: CashBalanceAdjustmentUpdate
      description: Update a cash balance adjustment.
    CashBalanceCreate:
      properties:
        locationId:
          type: string
          title: Locationid
          description: The ID of the location
        closingBalance:
          type: integer
          title: Closingbalance
          description: The closing balance amount in cents
        balanceDiscrepancy:
          type: integer
          title: Balancediscrepancy
          description: The balance discrepancy amount in cents
          default: 0
        discrepancyAcknowledged:
          type: boolean
          title: Discrepancyacknowledged
          description: Whether the discrepancy has been acknowledged
          default: false
        creatorId:
          type: string
          title: Creatorid
          description: The ID of the creator
      type: object
      required:
        - locationId
        - closingBalance
        - creatorId
      title: CashBalanceCreate
      description: Create a cash balance record for a location.
    CashBalanceDetail:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the cash balance
        creatorId:
          type: string
          title: Creatorid
          description: The ID of the creator
        locationId:
          type: string
          title: Locationid
          description: The ID of the location
        closingBalance:
          type: integer
          title: Closingbalance
          description: The closing balance amount in cents
        balanceDiscrepancy:
          type: integer
          title: Balancediscrepancy
          description: The balance discrepancy amount in cents
        discrepancyAcknowledged:
          type: boolean
          title: Discrepancyacknowledged
          description: Whether the discrepancy has been acknowledged
          default: false
        acknowledgedById:
          anyOf:
            - type: string
            - type: "null"
          title: Acknowledgedbyid
          description: The ID of the user who acknowledged the discrepancy
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time the cash balance was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: The date and time the cash balance was last updated
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the cash balance record is archived/voided
          default: false
        locationName:
          anyOf:
            - type: string
            - type: "null"
          title: Locationname
          description: The name of the location
        creatorName:
          anyOf:
            - type: string
            - type: "null"
          title: Creatorname
          description: The name of the creator
        acknowledgedByName:
          anyOf:
            - type: string
            - type: "null"
          title: Acknowledgedbyname
          description: The name of the user who acknowledged the discrepancy
      type: object
      required:
        - id
        - creatorId
        - locationId
        - closingBalance
        - balanceDiscrepancy
        - createdDate
      title: CashBalanceDetail
      description:
        Detailed cash balance record including location name and creator
        name.
    CashBalanceSummary:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the cash balance
        creatorId:
          type: string
          title: Creatorid
          description: The ID of the creator
        locationId:
          type: string
          title: Locationid
          description: The ID of the location
        closingBalance:
          type: integer
          title: Closingbalance
          description: The closing balance amount in cents
        balanceDiscrepancy:
          type: integer
          title: Balancediscrepancy
          description: The balance discrepancy amount in cents
        discrepancyAcknowledged:
          type: boolean
          title: Discrepancyacknowledged
          description: Whether the discrepancy has been acknowledged
          default: false
        acknowledgedById:
          anyOf:
            - type: string
            - type: "null"
          title: Acknowledgedbyid
          description: The ID of the user who acknowledged the discrepancy
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time the cash balance was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: The date and time the cash balance was last updated
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the cash balance record is archived/voided
          default: false
      type: object
      required:
        - id
        - creatorId
        - locationId
        - closingBalance
        - balanceDiscrepancy
        - createdDate
      title: CashBalanceSummary
      description: Summary of a cash balance record.
    CashBalanceTimelineResponse:
      properties:
        events:
          items:
            $ref: "#/components/schemas/TimelineEvent"
          type: array
          title: Events
          description: List of timeline events
        stats:
          $ref: "#/components/schemas/TimelineStats"
          description: Summary statistics
      type: object
      required:
        - events
        - stats
      title: CashBalanceTimelineResponse
      description: Complete timeline response including events and stats.
    CashBalanceUpdate:
      properties:
        closingBalance:
          anyOf:
            - type: integer
            - type: "null"
          title: Closingbalance
          description: The closing balance amount in cents
        balanceDiscrepancy:
          anyOf:
            - type: integer
            - type: "null"
          title: Balancediscrepancy
          description: The balance discrepancy amount in cents
        discrepancyAcknowledged:
          anyOf:
            - type: boolean
            - type: "null"
          title: Discrepancyacknowledged
          description: Whether the discrepancy has been acknowledged
        acknowledgedById:
          anyOf:
            - type: string
            - type: "null"
          title: Acknowledgedbyid
          description: The ID of the user who acknowledged the discrepancy
        creatorId:
          anyOf:
            - type: string
            - type: "null"
          title: Creatorid
          description: The ID of the creator
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: The date and time the cash balance was created
      type: object
      title: CashBalanceUpdate
      description: Update a cash balance record.
    Category:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
      type: object
      required:
        - name
      title: Category
    CategoryTable:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        usage:
          $ref: "#/components/schemas/CategoryUsageDetail"
      type: object
      required:
        - name
        - usage
      title: CategoryTable
      description: Category with usage details for table display
    CategoryUsageDetail:
      properties:
        items:
          items:
            $ref: "#/components/schemas/CategoryUsageItem"
          type: array
          title: Items
          description: Items and stock items using this category
        commissionStructures:
          items:
            $ref: "#/components/schemas/CategoryUsageItem"
          type: array
          title: Commissionstructures
          description: Commission structures that have rules targeting this category
        memberships:
          items:
            $ref: "#/components/schemas/CategoryUsageItem"
          type: array
          title: Memberships
          description: Memberships that have discount rules targeting this category
      type: object
      required:
        - items
        - commissionStructures
        - memberships
      title: CategoryUsageDetail
      description:
        Detailed usage information showing actual items/rules using this
        category
    CategoryUsageItem:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
      type: object
      required:
        - id
        - name
      title: CategoryUsageItem
      description: A simplified item reference
    ChargeDetail-Input:
      properties:
        id:
          anyOf:
            - type: string
            - type: "null"
          title: Id
          description: A unique identifier for the charge. Auto-generated if not provided.
        patientId:
          type: string
          title: Patientid
          description: Identifier of the patient being charged.
        patient:
          anyOf:
            - $ref: "#/components/schemas/PatientSummary"
            - type: "null"
          description: Summary details of the patient being charged.
        total:
          type: integer
          title: Total
          description: Total amount of the charge.
          default: 0
        totalOutstanding:
          type: integer
          title: Totaloutstanding
          description: Total outstanding amount that is yet to be paid.
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Description of the charge.
        status:
          $ref: "#/components/schemas/ChargeStatus"
          description: Current status of the charge.
          default: OUTSTANDING
        discountAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Discountamount
          description: Any discount applied to the total outstanding.
          default: 0
        discountPercentage:
          anyOf:
            - type: number
            - type: "null"
          title: Discountpercentage
          description: Percentage of discount applied to the charge.
          default: 0.0
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
          description: External identifier for the charge, if applicable.
        externalCreatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Externalcreateddate
          description:
            The creation date of the charge in your external system, if
            applicable.
        ruleSetId:
          anyOf:
            - type: string
            - type: "null"
          title: Rulesetid
          description: Identifier for the `RuleSet` applied to this `Charge`, if any.
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: The date when the charge was created.
        creatorId:
          anyOf:
            - type: string
            - type: "null"
          title: Creatorid
          description:
            Identifier of the `Provider` who created the charge (i.e. the
            Clinician, or relevant Biller).
        items:
          items:
            $ref: "#/components/schemas/ChargeItem"
          type: array
          title: Items
          description: List of `Items` in the `Charge`.
          default: []
        tips:
          items:
            $ref: "#/components/schemas/TipDetail"
          type: array
          title: Tips
          description: List of `Tips` in the `Charge`.
          default: []
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: Identifier of the `Location` where the charge was created.
        eventId:
          anyOf:
            - type: string
            - type: "null"
          title: Eventid
          description:
            Identifier of the `Event` this charge is associated with, if
            any.
        memberId:
          anyOf:
            - type: string
            - type: "null"
          title: Memberid
          description:
            Identifier of the `Member` this charge is associated with,
            if any.
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
          description: Any additional comments about the charge.
        meta:
          anyOf:
            - type: object
            - type: "null"
          title: Meta
          description: Any additional metadata about the charge relevant to your system.
        merchantAccountId:
          anyOf:
            - type: string
            - type: "null"
          title: Merchantaccountid
          description:
            Identifier of the `MerchantAccount` this charge is associated
            with.
        payments:
          items:
            $ref: "#/components/schemas/ChargePaymentDetail-Input"
          type: array
          title: Payments
          description: List of `Payments` in the `Charge`.
          default: []
        adjustments:
          items:
            $ref: "#/components/schemas/AdjustmentSummary"
          type: array
          title: Adjustments
          description: List of `Adjustments` in the `Charge`.
          default: []
      type: object
      required:
        - patientId
        - totalOutstanding
      title: ChargeDetail
      description: Unified Charge model for both creation and representation.
    ChargeDetail-Output:
      properties:
        id:
          anyOf:
            - type: string
            - type: "null"
          title: Id
          description: A unique identifier for the charge. Auto-generated if not provided.
        patientId:
          type: string
          title: Patientid
          description: Identifier of the patient being charged.
        patient:
          anyOf:
            - $ref: "#/components/schemas/PatientSummary"
            - type: "null"
          description: Summary details of the patient being charged.
        total:
          type: integer
          title: Total
          description: Total amount of the charge.
          default: 0
        totalOutstanding:
          type: integer
          title: Totaloutstanding
          description: Total outstanding amount that is yet to be paid.
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Description of the charge.
        status:
          $ref: "#/components/schemas/ChargeStatus"
          description: Current status of the charge.
          default: OUTSTANDING
        discountAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Discountamount
          description: Any discount applied to the total outstanding.
          default: 0
        discountPercentage:
          anyOf:
            - type: number
            - type: "null"
          title: Discountpercentage
          description: Percentage of discount applied to the charge.
          default: 0.0
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
          description: External identifier for the charge, if applicable.
        externalCreatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Externalcreateddate
          description:
            The creation date of the charge in your external system, if
            applicable.
        ruleSetId:
          anyOf:
            - type: string
            - type: "null"
          title: Rulesetid
          description: Identifier for the `RuleSet` applied to this `Charge`, if any.
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: The date when the charge was created.
        creatorId:
          anyOf:
            - type: string
            - type: "null"
          title: Creatorid
          description:
            Identifier of the `Provider` who created the charge (i.e. the
            Clinician, or relevant Biller).
        items:
          items:
            $ref: "#/components/schemas/ChargeItem"
          type: array
          title: Items
          description: List of `Items` in the `Charge`.
          default: []
        tips:
          items:
            $ref: "#/components/schemas/TipDetail"
          type: array
          title: Tips
          description: List of `Tips` in the `Charge`.
          default: []
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: Identifier of the `Location` where the charge was created.
        eventId:
          anyOf:
            - type: string
            - type: "null"
          title: Eventid
          description:
            Identifier of the `Event` this charge is associated with, if
            any.
        memberId:
          anyOf:
            - type: string
            - type: "null"
          title: Memberid
          description:
            Identifier of the `Member` this charge is associated with,
            if any.
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
          description: Any additional comments about the charge.
        meta:
          anyOf:
            - type: object
            - type: "null"
          title: Meta
          description: Any additional metadata about the charge relevant to your system.
        merchantAccountId:
          anyOf:
            - type: string
            - type: "null"
          title: Merchantaccountid
          description:
            Identifier of the `MerchantAccount` this charge is associated
            with.
        payments:
          items:
            $ref: "#/components/schemas/ChargePaymentDetail-Output"
          type: array
          title: Payments
          description: List of `Payments` in the `Charge`.
          default: []
        adjustments:
          items:
            $ref: "#/components/schemas/AdjustmentSummary"
          type: array
          title: Adjustments
          description: List of `Adjustments` in the `Charge`.
          default: []
      type: object
      required:
        - patientId
        - totalOutstanding
      title: ChargeDetail
      description: Unified Charge model for both creation and representation.
    ChargeDetailWithItems:
      properties:
        id:
          anyOf:
            - type: string
            - type: "null"
          title: Id
          description: A unique identifier for the charge. Auto-generated if not provided.
        patientId:
          type: string
          title: Patientid
          description: Identifier of the patient being charged.
        patient:
          anyOf:
            - $ref: "#/components/schemas/PatientSummary"
            - type: "null"
          description: Summary details of the patient being charged.
        total:
          type: integer
          title: Total
          description: Total amount of the charge.
          default: 0
        totalOutstanding:
          type: integer
          title: Totaloutstanding
          description: Total outstanding amount that is yet to be paid.
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Description of the charge.
        status:
          $ref: "#/components/schemas/ChargeStatus"
          description: Current status of the charge.
          default: OUTSTANDING
        discountAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Discountamount
          description: Any discount applied to the total outstanding.
          default: 0
        discountPercentage:
          anyOf:
            - type: number
            - type: "null"
          title: Discountpercentage
          description: Percentage of discount applied to the charge.
          default: 0.0
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
          description: External identifier for the charge, if applicable.
        externalCreatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Externalcreateddate
          description:
            The creation date of the charge in your external system, if
            applicable.
        ruleSetId:
          anyOf:
            - type: string
            - type: "null"
          title: Rulesetid
          description: Identifier for the `RuleSet` applied to this `Charge`, if any.
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: The date when the charge was created.
        creatorId:
          anyOf:
            - type: string
            - type: "null"
          title: Creatorid
          description:
            Identifier of the `Provider` who created the charge (i.e. the
            Clinician, or relevant Biller).
        items:
          items:
            $ref: "#/components/schemas/ChargeItemDetail-Output"
          type: array
          title: Items
        tips:
          items:
            $ref: "#/components/schemas/TipDetail"
          type: array
          title: Tips
          description: List of `Tips` in the `Charge`.
          default: []
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: Identifier of the `Location` where the charge was created.
        eventId:
          anyOf:
            - type: string
            - type: "null"
          title: Eventid
          description:
            Identifier of the `Event` this charge is associated with, if
            any.
        memberId:
          anyOf:
            - type: string
            - type: "null"
          title: Memberid
          description:
            Identifier of the `Member` this charge is associated with,
            if any.
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
          description: Any additional comments about the charge.
        meta:
          anyOf:
            - type: object
            - type: "null"
          title: Meta
          description: Any additional metadata about the charge relevant to your system.
        merchantAccountId:
          anyOf:
            - type: string
            - type: "null"
          title: Merchantaccountid
          description:
            Identifier of the `MerchantAccount` this charge is associated
            with.
        adjustments:
          items:
            $ref: "#/components/schemas/AdjustmentSummary"
          type: array
          title: Adjustments
        payments:
          items:
            $ref: "#/components/schemas/ChargePaymentDetail-Output"
          type: array
          title: Payments
      type: object
      required:
        - patientId
        - totalOutstanding
        - items
        - adjustments
        - payments
      title: ChargeDetailWithItems
    ChargeInvoicingDetails:
      properties:
        id:
          type: string
          title: Id
        createdDate:
          type: string
          format: date-time
          title: Createddate
        totalOutstanding:
          type: integer
          title: Totaloutstanding
        total:
          type: integer
          title: Total
        externalCreatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Externalcreateddate
      type: object
      required:
        - id
        - createdDate
        - totalOutstanding
        - total
      title: ChargeInvoicingDetails
    ChargeItem:
      properties:
        id:
          anyOf:
            - type: string
            - type: "null"
          title: Id
          description: Unique identifier for the charge item
        itemId:
          anyOf:
            - type: string
            - type: "null"
          title: Itemid
          description: Optional unique identifier for the item
        chargeId:
          type: string
          title: Chargeid
          description: Identifier of the charge this item is associated with
        name:
          anyOf:
            - type: string
            - type: "null"
          title: Name
          description:
            Name of the item (None for items with associated inventory
            item)
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Description of the item
        quantity:
          type: integer
          title: Quantity
          description: Quantity of the item being charged
        discountAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Discountamount
          description: Discount amount for the item
        discountPercentage:
          anyOf:
            - type: number
            - type: "null"
          title: Discountpercentage
          description: Discount percentage for the item
        discountReason:
          anyOf:
            - type: string
            - type: "null"
          title: Discountreason
          description: Reason for discount
        price:
          type: integer
          title: Price
          description: Price of the item in cents
        soldPackageId:
          anyOf:
            - type: string
            - type: "null"
          title: Soldpackageid
          description: Unique identifier for the sold package usage
        bankedQuantity:
          anyOf:
            - type: integer
            - type: "null"
          title: Bankedquantity
          description: Quantity to bank for later use
        bankedItemId:
          anyOf:
            - type: string
            - type: "null"
          title: Bankeditemid
          description: ID of banked item being used (for tracking usage)
        issuedDiscountId:
          anyOf:
            - type: string
            - type: "null"
          title: Issueddiscountid
          description:
            Unique identifier for the specific issued discount instance
            used
        soldByProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Soldbyproviderid
          description: Unique identifier for the provider who sold the item
        taxAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Taxamount
          description: Tax amount for the item in cents
        pricingId:
          anyOf:
            - type: string
            - type: "null"
          title: Pricingid
          description: Unique identifier for the pricing for the item
        shipmentIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Shipmentids
          description:
            Optional list of shipment IDs to reduce the stock quantity
            of
      type: object
      required:
        - chargeId
        - quantity
        - price
      title: ChargeItem
    ChargeItemDetail-Input:
      properties:
        id:
          anyOf:
            - type: string
            - type: "null"
          title: Id
          description: Unique identifier for the charge item
        itemId:
          anyOf:
            - type: string
            - type: "null"
          title: Itemid
          description: Optional unique identifier for the item
        chargeId:
          type: string
          title: Chargeid
          description: Identifier of the charge this item is associated with
        name:
          anyOf:
            - type: string
            - type: "null"
          title: Name
          description:
            Name of the item (None for items with associated inventory
            item)
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Description of the item
        quantity:
          type: integer
          title: Quantity
          description: Quantity of the item being charged
        discountAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Discountamount
          description: Discount amount for the item
        discountPercentage:
          anyOf:
            - type: number
            - type: "null"
          title: Discountpercentage
          description: Discount percentage for the item
        discountReason:
          anyOf:
            - type: string
            - type: "null"
          title: Discountreason
          description: Reason for discount
        price:
          type: integer
          title: Price
          description: Price of the item in cents
        soldPackageId:
          anyOf:
            - type: string
            - type: "null"
          title: Soldpackageid
          description: Unique identifier for the sold package usage
        bankedQuantity:
          anyOf:
            - type: integer
            - type: "null"
          title: Bankedquantity
          description: Quantity to bank for later use
        bankedItemId:
          anyOf:
            - type: string
            - type: "null"
          title: Bankeditemid
          description: ID of banked item being used (for tracking usage)
        issuedDiscountId:
          anyOf:
            - type: string
            - type: "null"
          title: Issueddiscountid
          description:
            Unique identifier for the specific issued discount instance
            used
        soldByProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Soldbyproviderid
          description: Unique identifier for the provider who sold the item
        taxAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Taxamount
          description: Tax amount for the item in cents
        pricingId:
          anyOf:
            - type: string
            - type: "null"
          title: Pricingid
          description: Unique identifier for the pricing for the item
        shipmentIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Shipmentids
          description:
            Optional list of shipment IDs to reduce the stock quantity
            of
        item:
          anyOf:
            - $ref: "#/components/schemas/ItemTiny"
            - type: "null"
          description: Details of the item (None for custom charge items)
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: Location ID where the sale occurred
        locationName:
          anyOf:
            - type: string
            - type: "null"
          title: Locationname
          description: Location name where the sale occurred
        saleDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Saledate
          description: Date when the sale occurred
      type: object
      required:
        - chargeId
        - quantity
        - price
      title: ChargeItemDetail
    ChargeItemDetail-Output:
      properties:
        id:
          anyOf:
            - type: string
            - type: "null"
          title: Id
          description: Unique identifier for the charge item
        itemId:
          anyOf:
            - type: string
            - type: "null"
          title: Itemid
          description: Optional unique identifier for the item
        chargeId:
          type: string
          title: Chargeid
          description: Identifier of the charge this item is associated with
        name:
          anyOf:
            - type: string
            - type: "null"
          title: Name
          description:
            Name of the item (None for items with associated inventory
            item)
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Description of the item
        quantity:
          type: integer
          title: Quantity
          description: Quantity of the item being charged
        discountAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Discountamount
          description: Discount amount for the item
        discountPercentage:
          anyOf:
            - type: number
            - type: "null"
          title: Discountpercentage
          description: Discount percentage for the item
        discountReason:
          anyOf:
            - type: string
            - type: "null"
          title: Discountreason
          description: Reason for discount
        price:
          type: integer
          title: Price
          description: Price of the item in cents
        soldPackageId:
          anyOf:
            - type: string
            - type: "null"
          title: Soldpackageid
          description: Unique identifier for the sold package usage
        bankedQuantity:
          anyOf:
            - type: integer
            - type: "null"
          title: Bankedquantity
          description: Quantity to bank for later use
        bankedItemId:
          anyOf:
            - type: string
            - type: "null"
          title: Bankeditemid
          description: ID of banked item being used (for tracking usage)
        issuedDiscountId:
          anyOf:
            - type: string
            - type: "null"
          title: Issueddiscountid
          description:
            Unique identifier for the specific issued discount instance
            used
        soldByProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Soldbyproviderid
          description: Unique identifier for the provider who sold the item
        taxAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Taxamount
          description: Tax amount for the item in cents
        pricingId:
          anyOf:
            - type: string
            - type: "null"
          title: Pricingid
          description: Unique identifier for the pricing for the item
        shipmentIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Shipmentids
          description:
            Optional list of shipment IDs to reduce the stock quantity
            of
        item:
          anyOf:
            - $ref: "#/components/schemas/ItemTiny"
            - type: "null"
          description: Details of the item (None for custom charge items)
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: Location ID where the sale occurred
        locationName:
          anyOf:
            - type: string
            - type: "null"
          title: Locationname
          description: Location name where the sale occurred
        saleDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Saledate
          description: Date when the sale occurred
      type: object
      required:
        - chargeId
        - quantity
        - price
      title: ChargeItemDetail
    ChargeItemDetailWithCharge:
      properties:
        id:
          anyOf:
            - type: string
            - type: "null"
          title: Id
          description: Unique identifier for the charge item
        itemId:
          anyOf:
            - type: string
            - type: "null"
          title: Itemid
          description: Optional unique identifier for the item
        chargeId:
          type: string
          title: Chargeid
          description: Identifier of the charge this item is associated with
        name:
          anyOf:
            - type: string
            - type: "null"
          title: Name
          description:
            Name of the item (None for items with associated inventory
            item)
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Description of the item
        quantity:
          type: integer
          title: Quantity
          description: Quantity of the item being charged
        discountAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Discountamount
          description: Discount amount for the item
        discountPercentage:
          anyOf:
            - type: number
            - type: "null"
          title: Discountpercentage
          description: Discount percentage for the item
        discountReason:
          anyOf:
            - type: string
            - type: "null"
          title: Discountreason
          description: Reason for discount
        price:
          type: integer
          title: Price
          description: Price of the item in cents
        soldPackageId:
          anyOf:
            - type: string
            - type: "null"
          title: Soldpackageid
          description: Unique identifier for the sold package usage
        bankedQuantity:
          anyOf:
            - type: integer
            - type: "null"
          title: Bankedquantity
          description: Quantity to bank for later use
        bankedItemId:
          anyOf:
            - type: string
            - type: "null"
          title: Bankeditemid
          description: ID of banked item being used (for tracking usage)
        issuedDiscountId:
          anyOf:
            - type: string
            - type: "null"
          title: Issueddiscountid
          description:
            Unique identifier for the specific issued discount instance
            used
        soldByProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Soldbyproviderid
          description: Unique identifier for the provider who sold the item
        taxAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Taxamount
          description: Tax amount for the item in cents
        pricingId:
          anyOf:
            - type: string
            - type: "null"
          title: Pricingid
          description: Unique identifier for the pricing for the item
        shipmentIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Shipmentids
          description:
            Optional list of shipment IDs to reduce the stock quantity
            of
        item:
          anyOf:
            - $ref: "#/components/schemas/ItemTiny"
            - type: "null"
          description: Details of the item (None for custom charge items)
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: Location ID where the sale occurred
        locationName:
          anyOf:
            - type: string
            - type: "null"
          title: Locationname
          description: Location name where the sale occurred
        saleDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Saledate
          description: Date when the sale occurred
        charge:
          $ref: "#/components/schemas/ChargeSummaryForItem"
          description: Details of the charge
      type: object
      required:
        - chargeId
        - quantity
        - price
        - charge
      title: ChargeItemDetailWithCharge
    ChargePOS:
      properties:
        deviceRegistrationId:
          type: string
          title: Deviceregistrationid
        payinConfigId:
          type: string
          title: Payinconfigid
      type: object
      required:
        - deviceRegistrationId
        - payinConfigId
      title: ChargePOS
    ChargePaymentDetail-Input:
      properties:
        paymentId:
          type: string
          title: Paymentid
          description: The unique identifier for the payment.
        amount:
          type: integer
          title: Amount
          description: The amount of the payment.
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: The date and time the payment was created.
        chargeId:
          type: string
          title: Chargeid
          description: The unique identifier for the charge.
        payment:
          $ref: "#/components/schemas/Payment-Input"
          description: Detailed information about the payment.
      type: object
      required:
        - paymentId
        - amount
        - chargeId
        - payment
      title: ChargePaymentDetail
    ChargePaymentDetail-Output:
      properties:
        paymentId:
          type: string
          title: Paymentid
          description: The unique identifier for the payment.
        amount:
          type: integer
          title: Amount
          description: The amount of the payment.
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: The date and time the payment was created.
        chargeId:
          type: string
          title: Chargeid
          description: The unique identifier for the charge.
        payment:
          $ref: "#/components/schemas/Payment-Output"
          description: Detailed information about the payment.
      type: object
      required:
        - paymentId
        - amount
        - chargeId
        - payment
      title: ChargePaymentDetail
    ChargePaymentMethod:
      properties:
        payinConfigId:
          type: string
          title: Payinconfigid
          description: From POST /billing/payment-terminal/payin-config (not the Decoda charge id).
      type: object
      required:
        - payinConfigId
      title: ChargePaymentMethod
    ChargePaymentMethodResponse:
      properties:
        payinId:
          type: string
          title: Payinid
        amount:
          type: integer
          title: Amount
        status:
          type: string
          title: Status
        authCode:
          anyOf:
            - type: string
            - type: "null"
          title: Authcode
      type: object
      required:
        - payinId
        - amount
        - status
      title: ChargePaymentMethodResponse
    ChargePaymentSummary:
      properties:
        paymentId:
          type: string
          title: Paymentid
          description: The unique identifier for the payment.
        amount:
          type: integer
          title: Amount
          description: The amount of the payment.
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: The date and time the payment was created.
        chargeId:
          type: string
          title: Chargeid
          description: The unique identifier for the charge.
      type: object
      required:
        - paymentId
        - amount
        - chargeId
      title: ChargePaymentSummary
    ChargePaymentUpdate:
      properties:
        paymentId:
          type: string
          title: Paymentid
        chargeId:
          type: string
          title: Chargeid
        amount:
          type: integer
          title: Amount
        payinConfigId:
          anyOf:
            - type: string
            - type: "null"
          title: Payinconfigid
        paymentMedium:
          type: string
          title: Paymentmedium
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
        payment:
          $ref: "#/components/schemas/Payment-Output"
      type: object
      required:
        - paymentId
        - chargeId
        - amount
        - paymentMedium
        - payment
      title: ChargePaymentUpdate
    ChargeStatus:
      type: string
      enum:
        - OUTSTANDING
        - PAID
        - EXTERNAL_SETTLEMENT
        - VOID
        - WRITE_OFF
        - REFUNDED
        - CHARGEBACK
        - PAYMENT_PLAN
        - COLLECTIONS
      title: ChargeStatus
    ChargeSummary-Input:
      properties:
        id:
          anyOf:
            - type: string
            - type: "null"
          title: Id
          description: A unique identifier for the charge. Auto-generated if not provided.
        patientId:
          type: string
          title: Patientid
          description: Identifier of the patient being charged.
        patient:
          anyOf:
            - $ref: "#/components/schemas/PatientSummary"
            - type: "null"
          description: Summary details of the patient being charged.
        total:
          type: integer
          title: Total
          description: Total amount of the charge.
          default: 0
        totalOutstanding:
          type: integer
          title: Totaloutstanding
          description: Total outstanding amount that is yet to be paid.
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Description of the charge.
        status:
          $ref: "#/components/schemas/ChargeStatus"
          description: Current status of the charge.
          default: OUTSTANDING
        discountAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Discountamount
          description: Any discount applied to the total outstanding.
          default: 0
        discountPercentage:
          anyOf:
            - type: number
            - type: "null"
          title: Discountpercentage
          description: Percentage of discount applied to the charge.
          default: 0.0
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
          description: External identifier for the charge, if applicable.
        externalCreatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Externalcreateddate
          description:
            The creation date of the charge in your external system, if
            applicable.
        ruleSetId:
          anyOf:
            - type: string
            - type: "null"
          title: Rulesetid
          description: Identifier for the `RuleSet` applied to this `Charge`, if any.
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: The date when the charge was created.
        creatorId:
          anyOf:
            - type: string
            - type: "null"
          title: Creatorid
          description:
            Identifier of the `Provider` who created the charge (i.e. the
            Clinician, or relevant Biller).
        items:
          items:
            $ref: "#/components/schemas/ChargeItem"
          type: array
          title: Items
          description: List of `Items` in the `Charge`.
          default: []
        tips:
          items:
            $ref: "#/components/schemas/TipDetail"
          type: array
          title: Tips
          description: List of `Tips` in the `Charge`.
          default: []
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: Identifier of the `Location` where the charge was created.
        eventId:
          anyOf:
            - type: string
            - type: "null"
          title: Eventid
          description:
            Identifier of the `Event` this charge is associated with, if
            any.
        memberId:
          anyOf:
            - type: string
            - type: "null"
          title: Memberid
          description:
            Identifier of the `Member` this charge is associated with,
            if any.
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
          description: Any additional comments about the charge.
        meta:
          anyOf:
            - type: object
            - type: "null"
          title: Meta
          description: Any additional metadata about the charge relevant to your system.
        merchantAccountId:
          anyOf:
            - type: string
            - type: "null"
          title: Merchantaccountid
          description:
            Identifier of the `MerchantAccount` this charge is associated
            with.
      type: object
      required:
        - patientId
        - totalOutstanding
      title: ChargeSummary
    ChargeSummary-Output:
      properties:
        id:
          anyOf:
            - type: string
            - type: "null"
          title: Id
          description: A unique identifier for the charge. Auto-generated if not provided.
        patientId:
          type: string
          title: Patientid
          description: Identifier of the patient being charged.
        patient:
          anyOf:
            - $ref: "#/components/schemas/PatientSummary"
            - type: "null"
          description: Summary details of the patient being charged.
        total:
          type: integer
          title: Total
          description: Total amount of the charge.
          default: 0
        totalOutstanding:
          type: integer
          title: Totaloutstanding
          description: Total outstanding amount that is yet to be paid.
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Description of the charge.
        status:
          $ref: "#/components/schemas/ChargeStatus"
          description: Current status of the charge.
          default: OUTSTANDING
        discountAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Discountamount
          description: Any discount applied to the total outstanding.
          default: 0
        discountPercentage:
          anyOf:
            - type: number
            - type: "null"
          title: Discountpercentage
          description: Percentage of discount applied to the charge.
          default: 0.0
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
          description: External identifier for the charge, if applicable.
        externalCreatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Externalcreateddate
          description:
            The creation date of the charge in your external system, if
            applicable.
        ruleSetId:
          anyOf:
            - type: string
            - type: "null"
          title: Rulesetid
          description: Identifier for the `RuleSet` applied to this `Charge`, if any.
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: The date when the charge was created.
        creatorId:
          anyOf:
            - type: string
            - type: "null"
          title: Creatorid
          description:
            Identifier of the `Provider` who created the charge (i.e. the
            Clinician, or relevant Biller).
        items:
          items:
            $ref: "#/components/schemas/ChargeItem"
          type: array
          title: Items
          description: List of `Items` in the `Charge`.
          default: []
        tips:
          items:
            $ref: "#/components/schemas/TipDetail"
          type: array
          title: Tips
          description: List of `Tips` in the `Charge`.
          default: []
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: Identifier of the `Location` where the charge was created.
        eventId:
          anyOf:
            - type: string
            - type: "null"
          title: Eventid
          description:
            Identifier of the `Event` this charge is associated with, if
            any.
        memberId:
          anyOf:
            - type: string
            - type: "null"
          title: Memberid
          description:
            Identifier of the `Member` this charge is associated with,
            if any.
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
          description: Any additional comments about the charge.
        meta:
          anyOf:
            - type: object
            - type: "null"
          title: Meta
          description: Any additional metadata about the charge relevant to your system.
        merchantAccountId:
          anyOf:
            - type: string
            - type: "null"
          title: Merchantaccountid
          description:
            Identifier of the `MerchantAccount` this charge is associated
            with.
      type: object
      required:
        - patientId
        - totalOutstanding
      title: ChargeSummary
    ChargeSummaryForItem:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the charge
        patientId:
          type: string
          title: Patientid
          description: Identifier of the patient being charged
        total:
          type: integer
          title: Total
          description: Total amount of the charge.
        totalOutstanding:
          type: integer
          title: Totaloutstanding
          description: Total outstanding amount that is yet to be paid.
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Description of the charge.
        status:
          $ref: "#/components/schemas/ChargeStatus"
          description: Current status of the charge.
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: The date when the charge was created.
      type: object
      required:
        - id
        - patientId
        - total
        - totalOutstanding
        - status
      title: ChargeSummaryForItem
    ChargeTable-Input:
      properties:
        id:
          type: string
          title: Id
        total:
          type: integer
          title: Total
        totalOutstanding:
          type: integer
          title: Totaloutstanding
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        status:
          $ref: "#/components/schemas/ChargeStatus"
        patient:
          $ref: "#/components/schemas/PatientSummary"
        ruleSetId:
          anyOf:
            - type: string
            - type: "null"
          title: Rulesetid
        externalCreatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Externalcreateddate
        createdDate:
          type: string
          format: date-time
          title: Createddate
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
        creator:
          anyOf:
            - $ref: "#/components/schemas/UserTiny"
            - type: "null"
        adjustments:
          items:
            $ref: "#/components/schemas/AdjustmentSummary"
          type: array
          title: Adjustments
        payments:
          items:
            $ref: "#/components/schemas/ChargeTablePayment-Input"
          type: array
          title: Payments
        plannedPayments:
          items:
            $ref: "#/components/schemas/ChargeTablePlannedPayment"
          type: array
          title: Plannedpayments
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
        items:
          items:
            $ref: "#/components/schemas/ChargeItem"
          type: array
          title: Items
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
        tips:
          items:
            $ref: "#/components/schemas/TipDetail"
          type: array
          title: Tips
          description: List of `Tips` in the `Charge`.
          default: []
      type: object
      required:
        - id
        - total
        - totalOutstanding
        - status
        - patient
        - createdDate
        - adjustments
        - payments
        - plannedPayments
        - items
      title: ChargeTable
    ChargeTable-Output:
      properties:
        id:
          type: string
          title: Id
        total:
          type: integer
          title: Total
        totalOutstanding:
          type: integer
          title: Totaloutstanding
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        status:
          $ref: "#/components/schemas/ChargeStatus"
        patient:
          $ref: "#/components/schemas/PatientSummary"
        ruleSetId:
          anyOf:
            - type: string
            - type: "null"
          title: Rulesetid
        externalCreatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Externalcreateddate
        createdDate:
          type: string
          format: date-time
          title: Createddate
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
        creator:
          anyOf:
            - $ref: "#/components/schemas/UserTiny"
            - type: "null"
        adjustments:
          items:
            $ref: "#/components/schemas/AdjustmentSummary"
          type: array
          title: Adjustments
        payments:
          items:
            $ref: "#/components/schemas/ChargeTablePayment-Output"
          type: array
          title: Payments
        plannedPayments:
          items:
            $ref: "#/components/schemas/ChargeTablePlannedPayment"
          type: array
          title: Plannedpayments
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
        items:
          items:
            $ref: "#/components/schemas/ChargeItem"
          type: array
          title: Items
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
        tips:
          items:
            $ref: "#/components/schemas/TipDetail"
          type: array
          title: Tips
          description: List of `Tips` in the `Charge`.
          default: []
      type: object
      required:
        - id
        - total
        - totalOutstanding
        - status
        - patient
        - createdDate
        - adjustments
        - payments
        - plannedPayments
        - items
      title: ChargeTable
    ChargeTablePayment-Input:
      properties:
        id:
          type: string
          title: Id
        amount:
          type: integer
          title: Amount
        status:
          $ref: "#/components/schemas/PaymentStatus"
        createdDate:
          type: string
          format: date-time
          title: Createddate
        paymentMedium:
          type: string
          title: Paymentmedium
        paymentMethod:
          anyOf:
            - $ref: "#/components/schemas/PaymentMethodSummary"
            - type: "null"
        refunds:
          items:
            $ref: "#/components/schemas/TableRefund-Input"
          type: array
          title: Refunds
      type: object
      required:
        - id
        - amount
        - status
        - createdDate
        - paymentMedium
        - refunds
      title: ChargeTablePayment
    ChargeTablePayment-Output:
      properties:
        id:
          type: string
          title: Id
        amount:
          type: integer
          title: Amount
        status:
          $ref: "#/components/schemas/PaymentStatus"
        createdDate:
          type: string
          format: date-time
          title: Createddate
        paymentMedium:
          type: string
          title: Paymentmedium
        paymentMethod:
          anyOf:
            - $ref: "#/components/schemas/PaymentMethodSummary"
            - type: "null"
        refunds:
          items:
            $ref: "#/components/schemas/TableRefund-Output"
          type: array
          title: Refunds
      type: object
      required:
        - id
        - amount
        - status
        - createdDate
        - paymentMedium
        - refunds
      title: ChargeTablePayment
    ChargeTablePlannedPayment:
      properties:
        id:
          type: string
          title: Id
        amount:
          type: integer
          title: Amount
        status:
          $ref: "#/components/schemas/PlannedPaymentStatus"
        paymentDate:
          type: string
          format: date-time
          title: Paymentdate
      type: object
      required:
        - id
        - amount
        - status
        - paymentDate
      title: ChargeTablePlannedPayment
    ChargeTimeline:
      properties:
        id:
          type: string
          title: Id
        type:
          $ref: "#/components/schemas/ChargeTimelineType"
        amount:
          type: integer
          title: Amount
        date:
          type: string
          format: date-time
          title: Date
        paymentMethod:
          anyOf:
            - $ref: "#/components/schemas/PaymentMethodSummary"
            - type: "null"
        paymentMedium:
          anyOf:
            - type: string
            - type: "null"
          title: Paymentmedium
        status:
          anyOf:
            - $ref: "#/components/schemas/ChargeStatus"
            - $ref: "#/components/schemas/PaymentStatus"
            - $ref: "#/components/schemas/PlannedPaymentStatus"
            - type: "null"
          title: Status
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        refundReason:
          anyOf:
            - type: string
            - type: "null"
          title: Refundreason
        items:
          anyOf:
            - items:
                $ref: "#/components/schemas/ChargeItemDetail-Output"
              type: array
            - type: "null"
          title: Items
        discountAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Discountamount
        creator:
          anyOf:
            - $ref: "#/components/schemas/UserTiny"
            - type: "null"
        feeToPatient:
          anyOf:
            - type: integer
            - type: "null"
          title: Feetopatient
        tips:
          anyOf:
            - items:
                $ref: "#/components/schemas/TipDetail"
              type: array
            - type: "null"
          title: Tips
      type: object
      required:
        - id
        - type
        - amount
        - date
      title: ChargeTimeline
    ChargeTimelineType:
      type: string
      enum:
        - CHARGE
        - PAYMENT
        - REFUND
        - VOID
        - ADJUSTMENT
        - EXTERNAL_SETTLEMENT
        - WRITE_OFF
        - SCHEDULED_PAYMENT
        - FAILED_PAYMENT
      title: ChargeTimelineType
    ChargeTiny:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the charge.
        patientId:
          type: string
          title: Patientid
          description: Identifier of the patient being charged.
      type: object
      required:
        - id
        - patientId
      title: ChargeTiny
      description:
        An extremely lightweight version of the Charge model, used for
        payment link Rainforest webhooks.
    ChatCreate:
      properties:
        primaryPatientId:
          type: string
          title: Primarypatientid
        phoneNumber:
          type: string
          title: Phonenumber
        status:
          $ref: "#/components/schemas/ChatStatus"
          default: READ
      type: object
      required:
        - primaryPatientId
        - phoneNumber
      title: ChatCreate
    ChatDetail:
      properties:
        id:
          anyOf:
            - type: string
            - type: "null"
          title: Id
        patients:
          items:
            $ref: "#/components/schemas/ChatPatient"
          type: array
          title: Patients
          default: []
        status:
          anyOf:
            - $ref: "#/components/schemas/ChatStatus"
            - type: "null"
        optedOutOfSms:
          anyOf:
            - type: boolean
            - type: "null"
          title: Optedoutofsms
        messages:
          items:
            anyOf:
              - $ref: "#/components/schemas/MessageSummary"
              - $ref: "#/components/schemas/CallSummary"
          type: array
          title: Messages
          default: []
      type: object
      title: ChatDetail
    ChatPatient:
      properties:
        id:
          type: string
          title: Id
        firstName:
          anyOf:
            - type: string
            - type: "null"
          title: Firstname
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
        primaryLocationId:
          anyOf:
            - type: string
            - type: "null"
          title: Primarylocationid
      type: object
      required:
        - id
        - firstName
        - lastName
        - primaryLocationId
      title: ChatPatient
    ChatSnapshot:
      properties:
        id:
          type: string
          title: Id
        primaryPatientId:
          anyOf:
            - type: string
            - type: "null"
          title: Primarypatientid
        status:
          anyOf:
            - $ref: "#/components/schemas/ChatStatus"
            - type: "null"
        patients:
          anyOf:
            - items:
                $ref: "#/components/schemas/ChatPatient"
              type: array
            - type: "null"
          title: Patients
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
        latestMessageContent:
          anyOf:
            - type: string
            - type: "null"
          title: Latestmessagecontent
        latestMessageDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Latestmessagedate
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
        optedOutOfSms:
          anyOf:
            - type: boolean
            - type: "null"
          title: Optedoutofsms
      type: object
      required:
        - id
      title: ChatSnapshot
      description: Represents a snapshot of chat state for change tracking
    ChatStatus:
      type: string
      enum:
        - READ
        - UNREAD
      title: ChatStatus
    ChatSummary:
      properties:
        id:
          type: string
          title: Id
        primaryPatientId:
          anyOf:
            - type: string
            - type: "null"
          title: Primarypatientid
        status:
          $ref: "#/components/schemas/ChatStatus"
        patients:
          items:
            $ref: "#/components/schemas/ChatPatient"
          type: array
          title: Patients
        phoneNumber:
          type: string
          title: Phonenumber
        latestMessageContent:
          anyOf:
            - type: string
            - type: "null"
          title: Latestmessagecontent
        latestMessageDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Latestmessagedate
        createdDate:
          type: string
          format: date-time
          title: Createddate
        optedOutOfSms:
          type: boolean
          title: Optedoutofsms
      type: object
      required:
        - id
        - primaryPatientId
        - status
        - patients
        - phoneNumber
        - createdDate
        - optedOutOfSms
      title: ChatSummary
    ChatUpdate:
      properties:
        id:
          type: string
          title: Id
        updatedFrom:
          $ref: "#/components/schemas/ChatSnapshot"
        updatedTo:
          $ref: "#/components/schemas/ChatSnapshot"
      type: object
      required:
        - id
        - updatedFrom
        - updatedTo
      title: ChatUpdate
      description: Represents changes to a chat with before/after snapshots
    ClinicType:
      type: string
      enum:
        - DEFAULT
        - WEIGHT_LOSS
        - MED_SPA
      title: ClinicType
    ColumnMappingGroupCreate:
      properties:
        name:
          type: string
          title: Name
        isDefault:
          type: boolean
          title: Isdefault
          default: false
        mappings:
          items:
            $ref: "#/components/schemas/ColumnMappingItemCreate"
          type: array
          title: Mappings
      type: object
      required:
        - name
        - mappings
      title: ColumnMappingGroupCreate
    ColumnMappingGroupResponse:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        isDefault:
          type: boolean
          title: Isdefault
        mappings:
          items:
            $ref: "#/components/schemas/ColumnMappingItemResponse"
          type: array
          title: Mappings
      type: object
      required:
        - id
        - name
        - isDefault
        - mappings
      title: ColumnMappingGroupResponse
    ColumnMappingItemCreate:
      properties:
        csvHeader:
          type: string
          title: Csvheader
        mappedField:
          type: string
          title: Mappedfield
      type: object
      required:
        - csvHeader
        - mappedField
      title: ColumnMappingItemCreate
    ColumnMappingItemResponse:
      properties:
        id:
          type: string
          title: Id
        groupId:
          type: string
          title: Groupid
        csvHeader:
          type: string
          title: Csvheader
        mappedField:
          type: string
          title: Mappedfield
      type: object
      required:
        - id
        - groupId
        - csvHeader
        - mappedField
      title: ColumnMappingItemResponse
    CommissionDetail-Input:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the commission
        itemId:
          anyOf:
            - type: string
            - type: "null"
          title: Itemid
          description:
            Optional item this commission applies to (includes services
            and packages)
        itemCategory:
          anyOf:
            - type: string
            - type: "null"
          title: Itemcategory
          description:
            Optional category name this commission applies to (references
            category.name)
        itemIsPhysical:
          anyOf:
            - type: boolean
            - type: "null"
          title: Itemisphysical
          description: Optional filter by whether item is physical
        totalSalesAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Totalsalesamount
          description: Optional minimum total sales amount threshold in cents
        commissionStructureId:
          type: string
          title: Commissionstructureid
          description: Commission structure this commission belongs to
        percentage:
          anyOf:
            - type: number
            - type: "null"
          title: Percentage
          description: Commission percentage (0.0 to 1.0)
        amount:
          anyOf:
            - type: integer
            - type: "null"
          title: Amount
          description: Fixed commission amount in cents
        deductCost:
          type: boolean
          title: Deductcost
          description:
            Whether to deduct item cost before calculating commission
            (services only)
          default: false
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the commission is archived
          default: false
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: When the commission was last updated
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: When the commission was created
        item:
          anyOf:
            - $ref: "#/components/schemas/ItemTiny"
            - type: "null"
          description: Associated item (includes services and packages)
      type: object
      required:
        - commissionStructureId
      title: CommissionDetail
    CommissionDetail-Output:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the commission
        itemId:
          anyOf:
            - type: string
            - type: "null"
          title: Itemid
          description:
            Optional item this commission applies to (includes services
            and packages)
        itemCategory:
          anyOf:
            - type: string
            - type: "null"
          title: Itemcategory
          description:
            Optional category name this commission applies to (references
            category.name)
        itemIsPhysical:
          anyOf:
            - type: boolean
            - type: "null"
          title: Itemisphysical
          description: Optional filter by whether item is physical
        totalSalesAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Totalsalesamount
          description: Optional minimum total sales amount threshold in cents
        commissionStructureId:
          type: string
          title: Commissionstructureid
          description: Commission structure this commission belongs to
        percentage:
          anyOf:
            - type: number
            - type: "null"
          title: Percentage
          description: Commission percentage (0.0 to 1.0)
        amount:
          anyOf:
            - type: integer
            - type: "null"
          title: Amount
          description: Fixed commission amount in cents
        deductCost:
          type: boolean
          title: Deductcost
          description:
            Whether to deduct item cost before calculating commission
            (services only)
          default: false
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the commission is archived
          default: false
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: When the commission was last updated
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: When the commission was created
        item:
          anyOf:
            - $ref: "#/components/schemas/ItemTiny"
            - type: "null"
          description: Associated item (includes services and packages)
      type: object
      required:
        - commissionStructureId
      title: CommissionDetail
    CommissionPayoutDetail-Input:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the commission payout
        commissionReportId:
          type: string
          title: Commissionreportid
          description: Commission report this payout belongs to
        commissionId:
          type: string
          title: Commissionid
          description: Commission this payout belongs to
        providerId:
          type: string
          title: Providerid
          description: Provider this payout belongs to
        amount:
          type: integer
          title: Amount
          description: Amount of the payout
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: When the payout was created
        provider:
          $ref: "#/components/schemas/ProviderTiny"
          description: Provider this payout belongs to
        commission:
          $ref: "#/components/schemas/CommissionDetail-Input"
          description: Commission rule that generated this payout
        chargeItems:
          items:
            $ref: "#/components/schemas/ChargeItemDetail-Input"
          type: array
          title: Chargeitems
          description: Charges this payout is from
        events:
          items:
            $ref: "#/components/schemas/EventTiny-Input"
          type: array
          title: Events
          description: Events this payout is from
        soldPackages:
          items:
            $ref: "#/components/schemas/SoldPackage-Input"
          type: array
          title: Soldpackages
          description: Sold packages this payout is from
      type: object
      required:
        - commissionReportId
        - commissionId
        - providerId
        - amount
        - provider
        - commission
        - chargeItems
        - events
        - soldPackages
      title: CommissionPayoutDetail
    CommissionPayoutDetail-Output:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the commission payout
        commissionReportId:
          type: string
          title: Commissionreportid
          description: Commission report this payout belongs to
        commissionId:
          type: string
          title: Commissionid
          description: Commission this payout belongs to
        providerId:
          type: string
          title: Providerid
          description: Provider this payout belongs to
        amount:
          type: integer
          title: Amount
          description: Amount of the payout
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: When the payout was created
        provider:
          $ref: "#/components/schemas/ProviderTiny"
          description: Provider this payout belongs to
        commission:
          $ref: "#/components/schemas/CommissionDetail-Output"
          description: Commission rule that generated this payout
        chargeItems:
          items:
            $ref: "#/components/schemas/ChargeItemDetail-Output"
          type: array
          title: Chargeitems
          description: Charges this payout is from
        events:
          items:
            $ref: "#/components/schemas/EventTiny-Output"
          type: array
          title: Events
          description: Events this payout is from
        soldPackages:
          items:
            $ref: "#/components/schemas/SoldPackage-Output"
          type: array
          title: Soldpackages
          description: Sold packages this payout is from
      type: object
      required:
        - commissionReportId
        - commissionId
        - providerId
        - amount
        - provider
        - commission
        - chargeItems
        - events
        - soldPackages
      title: CommissionPayoutDetail
    CommissionPayoutTiny:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the commission payout
        commissionReportId:
          type: string
          title: Commissionreportid
          description: Commission report this payout belongs to
        commissionId:
          type: string
          title: Commissionid
          description: Commission this payout belongs to
        providerId:
          type: string
          title: Providerid
          description: Provider this payout belongs to
        amount:
          type: integer
          title: Amount
          description: Amount of the payout
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: When the payout was created
      type: object
      required:
        - commissionReportId
        - commissionId
        - providerId
        - amount
      title: CommissionPayoutTiny
    CommissionReportDetail-Input:
      properties:
        commissionStructure:
          $ref: "#/components/schemas/CommissionStructureDetail-Input"
          description: Commission structure this report belongs to
        startDate:
          type: string
          format: date
          title: Startdate
          description: Start date of the report
        endDate:
          type: string
          format: date
          title: Enddate
          description: End date of the report
        payouts:
          items:
            $ref: "#/components/schemas/CommissionPayoutDetail-Input"
          type: array
          title: Payouts
          description: Payouts for this commission structure
        totalPayout:
          type: integer
          title: Totalpayout
          description: Total payout for this commission structure
        commissionStructureId:
          type: string
          title: Commissionstructureid
          description: Commission structure this report belongs to
        creatorId:
          type: string
          title: Creatorid
          description: Creator of the report
        id:
          type: string
          title: Id
          description: Unique identifier for the commission report
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: When the report was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: When the report was last updated
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the report is archived
          default: false
      type: object
      required:
        - commissionStructure
        - startDate
        - endDate
        - payouts
        - totalPayout
        - commissionStructureId
        - creatorId
        - id
      title: CommissionReportDetail
    CommissionReportDetail-Output:
      properties:
        commissionStructure:
          $ref: "#/components/schemas/CommissionStructureDetail-Output"
          description: Commission structure this report belongs to
        startDate:
          type: string
          format: date
          title: Startdate
          description: Start date of the report
        endDate:
          type: string
          format: date
          title: Enddate
          description: End date of the report
        payouts:
          items:
            $ref: "#/components/schemas/CommissionPayoutDetail-Output"
          type: array
          title: Payouts
          description: Payouts for this commission structure
        totalPayout:
          type: integer
          title: Totalpayout
          description: Total payout for this commission structure
        commissionStructureId:
          type: string
          title: Commissionstructureid
          description: Commission structure this report belongs to
        creatorId:
          type: string
          title: Creatorid
          description: Creator of the report
        id:
          type: string
          title: Id
          description: Unique identifier for the commission report
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: When the report was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: When the report was last updated
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the report is archived
          default: false
      type: object
      required:
        - commissionStructure
        - startDate
        - endDate
        - payouts
        - totalPayout
        - commissionStructureId
        - creatorId
        - id
      title: CommissionReportDetail
    CommissionReportRequest:
      properties:
        structure_ids:
          items:
            type: string
          type: array
          title: Structure Ids
        start_date:
          type: string
          format: date
          title: Start Date
        end_date:
          type: string
          format: date
          title: End Date
      type: object
      required:
        - structure_ids
        - start_date
        - end_date
      title: CommissionReportRequest
    CommissionReportSummary:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the commission report
        startDate:
          type: string
          format: date
          title: Startdate
          description: Start date of the report
        endDate:
          type: string
          format: date
          title: Enddate
          description: End date of the report
        totalPayout:
          type: integer
          title: Totalpayout
          description: Total payout for this commission structure
        commissionStructureId:
          type: string
          title: Commissionstructureid
          description: Commission structure this report belongs to
        creatorId:
          type: string
          title: Creatorid
          description: Creator of the report
        creator:
          $ref: "#/components/schemas/ProviderTiny"
          description: Creator of the report
        commissionStructure:
          $ref: "#/components/schemas/CommissionStructureTiny"
          description: Commission structure this report belongs to
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: When the report was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: When the report was last updated
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the report is archived
          default: false
        payouts:
          items:
            $ref: "#/components/schemas/CommissionPayoutTiny"
          type: array
          title: Payouts
          description: Payouts for this commission structure
      type: object
      required:
        - id
        - startDate
        - endDate
        - totalPayout
        - commissionStructureId
        - creatorId
        - creator
        - commissionStructure
        - payouts
      title: CommissionReportSummary
    CommissionStructureDetail-Input:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the commission group
        name:
          type: string
          title: Name
          description: Name of the commission group
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Optional description of the commission group
        commissions:
          anyOf:
            - items:
                $ref: "#/components/schemas/CommissionDetail-Input"
              type: array
            - type: "null"
          title: Commissions
          description: Commissions in this group
        providers:
          anyOf:
            - items:
                $ref: "#/components/schemas/ProviderTiny"
              type: array
            - type: "null"
          title: Providers
          description: Providers in this group
      type: object
      required:
        - name
      title: CommissionStructureDetail
    CommissionStructureDetail-Output:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the commission group
        name:
          type: string
          title: Name
          description: Name of the commission group
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Optional description of the commission group
        commissions:
          anyOf:
            - items:
                $ref: "#/components/schemas/CommissionDetail-Output"
              type: array
            - type: "null"
          title: Commissions
          description: Commissions in this group
        providers:
          anyOf:
            - items:
                $ref: "#/components/schemas/ProviderTiny"
              type: array
            - type: "null"
          title: Providers
          description: Providers in this group
      type: object
      required:
        - name
      title: CommissionStructureDetail
    CommissionStructureTiny:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the commission group
        name:
          type: string
          title: Name
          description: Name of the commission group
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Optional description of the commission group
      type: object
      required:
        - name
      title: CommissionStructureTiny
    CommunicationMethod:
      type: string
      enum:
        - SMS
        - MAIL
        - CALL
        - COLLECTIONS
        - EMAIL
        - SMS_AND_EMAIL
      title: CommunicationMethod
    ConditionOperator:
      type: string
      enum:
        - EQUALS
        - NOT_EQUALS
        - CONTAINS
        - YEARS_AGO_MINIMUM
        - YEARS_AGO_MAXIMUM
        - SUM
      title: ConditionOperator
    ConsentDocument:
      properties:
        questionId:
          type: string
          title: Questionid
        documentImage:
          type: string
          title: Documentimage
        name:
          type: string
          title: Name
      type: object
      required:
        - questionId
        - documentImage
        - name
      title: ConsentDocument
    ConsentText:
      properties:
        questionId:
          type: string
          title: Questionid
        text:
          type: string
          title: Text
      type: object
      required:
        - questionId
        - text
      title: ConsentText
    ContactUsRequest:
      properties:
        firstName:
          anyOf:
            - type: string
            - type: "null"
          title: Firstname
          description: The user's first name.
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
          description: The user's last name.
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
          description: The user's phone number.
        message:
          anyOf:
            - type: string
            - type: "null"
          title: Message
          description: The user's message.
      type: object
      title: ContactUsRequest
    ConvertCartToChargeRequest:
      properties:
        cartId:
          type: string
          title: Cartid
          description: ID of the cart to convert
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Description for the charge
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
          description: External ID for the charge
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: Location ID for the charge
        eventId:
          anyOf:
            - type: string
            - type: "null"
          title: Eventid
          description: Event ID if related to an appointment
      type: object
      required:
        - cartId
      title: ConvertCartToChargeRequest
      description: Request schema for converting cart to charge.
    ConvertQuoteToChargeRequest:
      properties:
        quoteId:
          type: string
          title: Quoteid
          description: ID of the quote to convert
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Description for the charge
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
          description: External ID for the charge
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: Location ID for the charge
        eventId:
          anyOf:
            - type: string
            - type: "null"
          title: Eventid
          description: Event ID if related to an appointment
      type: object
      required:
        - quoteId
      title: ConvertQuoteToChargeRequest
      description: Request schema for converting quote to charge.
    CreateDashboardSchema:
      properties:
        name:
          type: string
          maxLength: 255
          title: Name
          description: Name of the dashboard
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Optional description of the dashboard
        layoutConfig:
          anyOf:
            - type: object
            - type: "null"
          title: Layoutconfig
          description: Grid layout configuration
      type: object
      required:
        - name
      title: CreateDashboardSchema
      description: Schema for creating a new analytics dashboard.
    CreateWidgetSchema:
      properties:
        dashboardId:
          type: string
          title: Dashboardid
          description: ID of the dashboard this widget belongs to
        title:
          type: string
          maxLength: 255
          title: Title
          description: Title of the widget
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Optional description of the widget
        chartType:
          type: string
          maxLength: 50
          title: Charttype
          description: Type of chart (bar, area, donut, progress, etc.)
        queryConfig:
          $ref: "#/components/schemas/QueryConfigSchema"
          description: Query builder configuration
        chartConfig:
          anyOf:
            - type: object
            - type: "null"
          title: Chartconfig
          description: Chart-specific configuration
        layoutPosition:
          type: object
          title: Layoutposition
          description: Grid position and size {x, y, w, h}
        orderIndex:
          type: integer
          title: Orderindex
          description: Order index for widget positioning
          default: 0
      type: object
      required:
        - dashboardId
        - title
        - chartType
        - queryConfig
        - layoutPosition
      title: CreateWidgetSchema
      description: Schema for creating a new dashboard widget.
    CreationData:
      properties:
        serviceTitle:
          anyOf:
            - type: string
            - type: "null"
          title: Servicetitle
        locationName:
          anyOf:
            - type: string
            - type: "null"
          title: Locationname
      type: object
      title: CreationData
      description: Data structure for event creation
    DailyCashTransactions:
      properties:
        date:
          type: string
          format: date-time
          title: Date
          description: The date for these transactions
        locationId:
          type: string
          title: Locationid
          description: The location ID
        cashPayments:
          type: integer
          title: Cashpayments
          description: Total cash payments received in cents
        cashRefunds:
          type: integer
          title: Cashrefunds
          description: Total cash refunds given in cents
        adjustments:
          type: integer
          title: Adjustments
          description: Total cash balance adjustments in cents
      type: object
      required:
        - date
        - locationId
        - cashPayments
        - cashRefunds
        - adjustments
      title: DailyCashTransactions
      description: Daily cash transaction summary for a specific date and location.
    DailyExternalSettlements:
      properties:
        date:
          type: string
          format: date-time
          title: Date
          description: The date of the settlements
        settlements:
          items:
            $ref: "#/components/schemas/ExternalSettlementSummary"
          type: array
          title: Settlements
          description: List of settlement summaries by type
        totalSettlements:
          type: integer
          title: Totalsettlements
          description: Total number of different settlement types
        totalAmount:
          type: integer
          title: Totalamount
          description: Total amount across all settlement types in cents
        tipCount:
          type: integer
          title: Tipcount
          description: Total number of tips received on this day
          default: 0
        totalTipAmount:
          type: integer
          title: Totaltipamount
          description: Total tip amount in cents
          default: 0
      type: object
      required:
        - date
        - settlements
        - totalSettlements
        - totalAmount
      title: DailyExternalSettlements
      description: External settlement summaries for a specific day.
    DashboardWidgetSchema:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the widget
        dashboardId:
          type: string
          title: Dashboardid
          description: ID of the dashboard this widget belongs to
        title:
          type: string
          title: Title
          description: Title of the widget
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Description of the widget
        chartType:
          type: string
          title: Charttype
          description: Type of chart
        queryConfig:
          $ref: "#/components/schemas/QueryConfigSchema"
          description: Query builder configuration
        chartConfig:
          anyOf:
            - type: object
            - type: "null"
          title: Chartconfig
          description: Chart-specific configuration
        layoutPosition:
          type: object
          title: Layoutposition
          description: Grid position and size
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the widget is archived
        orderIndex:
          type: integer
          title: Orderindex
          description: Order index for widget positioning
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: When the widget was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: When the widget was last updated
      type: object
      required:
        - id
        - dashboardId
        - title
        - chartType
        - queryConfig
        - layoutPosition
        - isArchived
        - orderIndex
        - createdDate
      title: DashboardWidgetSchema
      description: Schema for dashboard widget response.
    Date-Input:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        minDate:
          anyOf:
            - type: string
              format: date
            - type: "null"
          title: Mindate
        maxDate:
          anyOf:
            - type: string
              format: date
            - type: "null"
          title: Maxdate
        minTimeAgo:
          anyOf:
            - $ref: "#/components/schemas/RelativeDate"
            - type: "null"
      type: object
      required:
        - name
      title: Date
    Date-Output:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        minDate:
          anyOf:
            - type: string
            - type: "null"
          title: Mindate
        maxDate:
          anyOf:
            - type: string
            - type: "null"
          title: Maxdate
        minTimeAgo:
          anyOf:
            - $ref: "#/components/schemas/RelativeDate"
            - type: "null"
      type: object
      required:
        - name
      title: Date
    DefaultNoteContent:
      properties:
        noteContent:
          type: string
          title: Notecontent
          description:
            The content of the note to be created. Please follow the template
            exactly to fill the contents of the note.
      type: object
      required:
        - noteContent
      title: DefaultNoteContent
    DeleteProviderShiftsRequest:
      properties:
        date:
          type: string
          title: Date
        providerIds:
          items:
            type: string
          type: array
          title: Providerids
      type: object
      required:
        - date
        - providerIds
      title: DeleteProviderShiftsRequest
    DeleteShiftsByDatesRequest:
      properties:
        dates:
          items:
            type: string
          type: array
          title: Dates
      type: object
      required:
        - dates
      title: DeleteShiftsByDatesRequest
    DepositDetails:
      properties:
        rainforestDepositId:
          type: string
          title: Rainforestdepositid
          description: Unique identifier from Rainforest
        merchantAccountId:
          type: string
          title: Merchantaccountid
          description: Associated merchant account ID
        amount:
          type: integer
          title: Amount
          description: Deposit amount in cents
        currency:
          type: string
          title: Currency
          description: Currency code
          default: USD
        fee:
          type: integer
          title: Fee
          description: Processing fee in cents
          default: 0
        netAmount:
          type: integer
          title: Netamount
          description: Net amount after fees in cents
        status:
          $ref: "#/components/schemas/DepositStatus"
          description: Deposit status
          default: PROCESSING
        rainforestCreatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Rainforestcreateddate
          description: Creation date from Rainforest
        rainforestUpdatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Rainforestupdateddate
          description: Last update date from Rainforest
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Deposit description
        externalReference:
          anyOf:
            - type: string
            - type: "null"
          title: Externalreference
          description: External reference identifier
        id:
          type: string
          title: Id
        createdDate:
          type: string
          format: date-time
          title: Createddate
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
        subtotal:
          anyOf:
            - type: integer
            - type: "null"
          title: Subtotal
          description: Subtotal (sum of payments - sum of refunds) in cents
        totalFees:
          anyOf:
            - type: integer
            - type: "null"
          title: Totalfees
          description: Total fees (payment fees + refund fees + deposit fee) in cents
        amountDeposited:
          anyOf:
            - type: integer
            - type: "null"
          title: Amountdeposited
          description: Amount deposited (net amount) in cents
        payments:
          items:
            $ref: "#/components/schemas/PaymentWithPatient"
          type: array
          title: Payments
          description: Payments in this deposit
        refunds:
          items:
            $ref: "#/components/schemas/RefundWithPatient"
          type: array
          title: Refunds
          description: Refunds in this deposit
      type: object
      required:
        - rainforestDepositId
        - merchantAccountId
        - amount
        - netAmount
        - id
        - createdDate
      title: DepositDetails
      description: Comprehensive deposit information including payments and refunds
    DepositEvent:
      properties:
        merchantId:
          anyOf:
            - type: string
            - type: "null"
          title: Merchantid
        depositId:
          type: string
          title: Depositid
        platformId:
          anyOf:
            - type: string
            - type: "null"
          title: Platformid
        status:
          type: string
          title: Status
        amount:
          type: integer
          title: Amount
        currencyCode:
          type: string
          title: Currencycode
          default: USD
        billingType:
          anyOf:
            - type: string
            - type: "null"
          title: Billingtype
        depositFeeAmount:
          anyOf:
            - type: object
            - type: "null"
          title: Depositfeeamount
        depositType:
          anyOf:
            - type: string
            - type: "null"
          title: Deposittype
        methodType:
          anyOf:
            - type: string
            - type: "null"
          title: Methodtype
        ach:
          anyOf:
            - type: object
            - type: "null"
          title: Ach
        plaidAch:
          anyOf:
            - type: object
            - type: "null"
          title: Plaidach
        metadata:
          anyOf:
            - type: object
            - type: "null"
          title: Metadata
        createdAt:
          type: string
          format: date-time
          title: Createdat
        updatedAt:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updatedat
      type: object
      required:
        - depositId
        - status
        - amount
        - createdAt
      title: DepositEvent
      description: Deposit event from Rainforest webhooks
    DepositStatus:
      type: string
      enum:
        - PROCESSING
        - IN_REVIEW
        - SUCCEEDED
        - FAILED
      title: DepositStatus
    DeprecatedMedicationSummary:
      properties:
        id:
          type: string
          title: Id
        createdDate:
          type: string
          format: date-time
          title: Createddate
        patientId:
          type: string
          title: Patientid
        providerId:
          anyOf:
            - type: string
            - type: "null"
          title: Providerid
        name:
          type: string
          title: Name
        sideEffects:
          anyOf:
            - type: string
            - type: "null"
          title: Sideeffects
        administrationLocation:
          anyOf:
            - type: string
            - type: "null"
          title: Administrationlocation
        amount:
          anyOf:
            - type: number
            - type: "null"
          title: Amount
        unit:
          anyOf:
            - $ref: "#/components/schemas/Unit"
            - type: "null"
        lotNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Lotnumber
        stockId:
          anyOf:
            - type: string
            - type: "null"
          title: Stockid
        noteId:
          anyOf:
            - type: string
            - type: "null"
          title: Noteid
        doseDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Dosedate
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
        frequency:
          anyOf:
            - type: string
            - type: "null"
          title: Frequency
        quantity:
          anyOf:
            - type: number
            - type: "null"
          title: Quantity
        isUsedAsTemplate:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isusedastemplate
        signedOffProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Signedoffproviderid
        signedOffDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Signedoffdate
        provider:
          anyOf:
            - $ref: "#/components/schemas/UserTiny"
            - type: "null"
      type: object
      required:
        - id
        - createdDate
        - patientId
        - name
      title: DeprecatedMedicationSummary
      description: |-
        DEPRECATED: Use DoseSummary for administration records.
        This schema is kept for backward compatibility.
    Disclaimer:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        content:
          type: string
          title: Content
      type: object
      required:
        - name
        - content
      title: Disclaimer
    Document:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        docs:
          items:
            $ref: "#/components/schemas/DocumentDetails"
          type: array
          title: Docs
      type: object
      required:
        - name
        - docs
      title: Document
    DocumentDetails:
      properties:
        name:
          type: string
          title: Name
        path:
          type: string
          title: Path
      type: object
      required:
        - name
        - path
      title: DocumentDetails
    DocumentSummary:
      properties:
        id:
          type: string
          title: Id
        patientId:
          type: string
          title: Patientid
        filePath:
          type: string
          title: Filepath
        fileType:
          type: string
          title: Filetype
        title:
          type: string
          title: Title
        summary:
          anyOf:
            - type: string
            - type: "null"
          title: Summary
        docType:
          $ref: "#/components/schemas/DocumentType"
        signatureUrl:
          anyOf:
            - type: string
            - type: "null"
          title: Signatureurl
      type: object
      required:
        - id
        - patientId
        - filePath
        - fileType
        - title
        - summary
        - docType
        - signatureUrl
      title: DocumentSummary
    DocumentType:
      type: string
      enum:
        - LAB
        - PHARMACY
        - IMAGE
        - REPORT
        - OTHER
        - CONSENT
        - NOTE_UPLOAD
      title: DocumentType
    DoseSummary:
      properties:
        medicationId:
          type: string
          title: Medicationid
        patientId:
          type: string
          title: Patientid
        providerId:
          anyOf:
            - type: string
            - type: "null"
          title: Providerid
        doseDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Dosedate
        name:
          anyOf:
            - type: string
            - type: "null"
          title: Name
        unit:
          anyOf:
            - type: string
            - type: "null"
          title: Unit
        sideEffects:
          anyOf:
            - type: string
            - type: "null"
          title: Sideeffects
        administrationLocation:
          anyOf:
            - type: string
            - type: "null"
          title: Administrationlocation
        amount:
          anyOf:
            - type: number
            - type: "null"
          title: Amount
        quantity:
          type: number
          title: Quantity
          default: 1.0
        frequency:
          anyOf:
            - type: string
            - type: "null"
          title: Frequency
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
        lotNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Lotnumber
        stockId:
          anyOf:
            - type: string
            - type: "null"
          title: Stockid
        noteId:
          anyOf:
            - type: string
            - type: "null"
          title: Noteid
        signedOffProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Signedoffproviderid
        signedOffDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Signedoffdate
        isArchived:
          type: boolean
          title: Isarchived
          default: false
        id:
          type: string
          title: Id
        createdDate:
          type: string
          format: date-time
          title: Createddate
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
        provider:
          anyOf:
            - $ref: "#/components/schemas/UserTiny"
            - type: "null"
        signedOffProvider:
          anyOf:
            - $ref: "#/components/schemas/UserTiny"
            - type: "null"
      type: object
      required:
        - medicationId
        - patientId
        - id
        - createdDate
      title: DoseSummary
      description: Schema for returning dose information with computed fields.
    DoseUpdate:
      properties:
        doseDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Dosedate
        name:
          anyOf:
            - type: string
            - type: "null"
          title: Name
        unit:
          anyOf:
            - type: string
            - type: "null"
          title: Unit
        sideEffects:
          anyOf:
            - type: string
            - type: "null"
          title: Sideeffects
        administrationLocation:
          anyOf:
            - type: string
            - type: "null"
          title: Administrationlocation
        amount:
          anyOf:
            - type: number
            - type: "null"
          title: Amount
        quantity:
          anyOf:
            - type: number
            - type: "null"
          title: Quantity
        frequency:
          anyOf:
            - type: string
            - type: "null"
          title: Frequency
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
        lotNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Lotnumber
        stockId:
          anyOf:
            - type: string
            - type: "null"
          title: Stockid
        noteId:
          anyOf:
            - type: string
            - type: "null"
          title: Noteid
        signedOffProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Signedoffproviderid
        signedOffDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Signedoffdate
      type: object
      title: DoseUpdate
      description: Schema for updating an existing dose record.
    DrawdownStock:
      properties:
        quantity:
          type: number
          title: Quantity
          description: Quantity to drawdown
        stockId:
          type: string
          title: Stockid
          description: ID of the stock
        shipmentIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Shipmentids
          description: Optional IDs of the shipments
        note:
          anyOf:
            - type: string
            - type: "null"
          title: Note
          description: Optional note about the drawdown
      type: object
      required:
        - quantity
        - stockId
      title: DrawdownStock
    DynamicHealthField:
      properties:
        fieldId:
          type: string
          title: Fieldid
          description: Unique identifier for the dynamic field
        values:
          items:
            type: string
          type: array
          title: Values
          description: List of values for this field
        type:
          anyOf:
            - type: string
            - type: "null"
          title: Type
          description: Type of the dynamic field (e.g., ALLERGIES, FAMILY_HISTORY)
      type: object
      required:
        - fieldId
      title: DynamicHealthField
      description: Schema for dynamic health field data structure.
    EditChargeComment:
      properties:
        comment:
          type: string
          title: Comment
      type: object
      required:
        - comment
      title: EditChargeComment
    EditChargeDetails:
      properties:
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Description of the charge.
        externalCreatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Externalcreateddate
          description:
            The creation date of the charge in your external system, if
            applicable.
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
          description: Any additional comments about the charge.
      type: object
      title: EditChargeDetails
      description:
        Schema for editing charge details including description, external_created_date,
        and comment
    EventCreate:
      properties:
        title:
          type: string
          title: Title
        organizerId:
          type: string
          title: Organizerid
        start:
          type: string
          format: date-time
          title: Start
        end:
          type: string
          format: date-time
          title: End
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
        type:
          $ref: "#/components/schemas/EventType"
        attendeeIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Attendeeids
        serviceIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Serviceids
        eventServices:
          anyOf:
            - items:
                $ref: "#/components/schemas/EventServiceCreate"
              type: array
            - type: "null"
          title: Eventservices
        recurringEvent:
          anyOf:
            - $ref: "#/components/schemas/RecurringEventRequest"
            - type: "null"
        confirmationText:
          anyOf:
            - type: string
            - type: "null"
          title: Confirmationtext
        capacity:
          anyOf:
            - type: integer
            - type: "null"
          title: Capacity
      type: object
      required:
        - title
        - organizerId
        - start
        - end
        - type
      title: EventCreate
    EventDetail:
      properties:
        id:
          type: string
          title: Id
        title:
          type: string
          title: Title
        start:
          type: string
          format: date-time
          title: Start
        end:
          type: string
          format: date-time
          title: End
        type:
          $ref: "#/components/schemas/EventType"
        location:
          anyOf:
            - $ref: "#/components/schemas/LocationSummary"
            - type: "null"
        attendees:
          items:
            $ref: "#/components/schemas/AttendeeDetail-Output"
          type: array
          title: Attendees
          default: []
        status:
          $ref: "#/components/schemas/EventStatus"
        recurringEventId:
          anyOf:
            - type: string
            - type: "null"
          title: Recurringeventid
        recurringEvent:
          anyOf:
            - $ref: "#/components/schemas/RecurringEventDetail"
            - type: "null"
        eventServices:
          items:
            $ref: "#/components/schemas/EventServiceDetail"
          type: array
          title: Eventservices
          default: []
        icons:
          items:
            $ref: "#/components/schemas/EventIcon"
          type: array
          title: Icons
          default: []
        capacity:
          anyOf:
            - type: integer
            - type: "null"
          title: Capacity
        organizer:
          $ref: "#/components/schemas/UserTiny"
        meetingLink:
          anyOf:
            - type: string
            - type: "null"
          title: Meetinglink
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
        formCompleted:
          anyOf:
            - type: boolean
            - type: "null"
          title: Formcompleted
        reminders:
          items:
            type: string
            format: date-time
          type: array
          title: Reminders
          default: []
        recurrenceModificationMode:
          anyOf:
            - $ref: "#/components/schemas/RecurrenceModificationMode"
            - type: "null"
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
        quickNotes:
          anyOf:
            - items:
                $ref: "#/components/schemas/QuickNoteSummary"
              type: array
            - type: "null"
          title: Quicknotes
      type: object
      required:
        - id
        - title
        - start
        - end
        - type
        - status
        - organizer
      title: EventDetail
    EventIcon:
      type: string
      enum:
        - BOOKING_FEE_PAID
        - NEW_PATIENT
        - SCHEDULED_BY_AI
        - FORM_COMPLETED
        - CHECKED_IN
      title: EventIcon
    EventIconCreate:
      properties:
        iconType:
          $ref: "#/components/schemas/EventIcon"
          description: Type of event icon
        emoji:
          type: string
          maxLength: 10
          title: Emoji
          description: Emoji for the icon
        color:
          type: string
          maxLength: 7
          title: Color
          description: Color code for the icon (hex format)
        isActive:
          type: boolean
          title: Isactive
          description: Whether the icon is active
          default: true
      type: object
      required:
        - iconType
        - emoji
        - color
      title: EventIconCreate
    EventIconDetail:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the event icon
        iconType:
          $ref: "#/components/schemas/EventIcon"
          description: Type of event icon
        emoji:
          type: string
          title: Emoji
          description: Emoji for the icon
        color:
          type: string
          title: Color
          description: Color code for the icon (hex format)
        isActive:
          type: boolean
          title: Isactive
          description: Whether the icon is active
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: Date and time when the icon was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: Date and time when the icon was last updated
      type: object
      required:
        - id
        - iconType
        - emoji
        - color
        - isActive
        - createdDate
      title: EventIconDetail
    EventIconSummary:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the event icon
        iconType:
          $ref: "#/components/schemas/EventIcon"
          description: Type of event icon
        emoji:
          type: string
          title: Emoji
          description: Emoji for the icon
        color:
          type: string
          title: Color
          description: Color code for the icon (hex format)
        isActive:
          type: boolean
          title: Isactive
          description: Whether the icon is active
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: Date and time when the icon was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: Date and time when the icon was last updated
      type: object
      required:
        - id
        - iconType
        - emoji
        - color
        - isActive
        - createdDate
      title: EventIconSummary
    EventIconUpdate:
      properties:
        emoji:
          anyOf:
            - type: string
              maxLength: 10
            - type: "null"
          title: Emoji
          description: Emoji for the icon
        color:
          anyOf:
            - type: string
              maxLength: 7
            - type: "null"
          title: Color
          description: Color code for the icon (hex format)
        isActive:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isactive
          description: Whether the icon is active
      type: object
      title: EventIconUpdate
    EventLogAction:
      type: string
      enum:
        - CREATED
        - CANCELLED
        - RESCHEDULED
        - STATUS_CHANGED
        - CHECKED_IN
        - NO_SHOW_MARKED
        - COMPLETED
        - PATIENT_CHANGED
        - PROVIDER_CHANGED
      title: EventLogAction
      description: Actions that can be logged for events in the audit trail
    EventLogSummary:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the event log entry
        eventId:
          type: string
          title: Eventid
          description: The ID of the event this log entry is for
        actionType:
          $ref: "#/components/schemas/EventLogAction"
          description: The type of action that was performed
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: User-provided description or reason for the action
        createdBy:
          $ref: "#/components/schemas/UserTiny"
          description: The user who performed the action
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: When this action was performed
        data:
          anyOf:
            - $ref: "#/components/schemas/StatusTransitionData"
            - $ref: "#/components/schemas/StatusChangeData"
            - $ref: "#/components/schemas/RescheduleData"
            - $ref: "#/components/schemas/CreationData"
            - type: object
            - type: "null"
          title: Data
          description: Additional context about the action
      type: object
      required:
        - id
        - eventId
        - actionType
        - createdBy
        - createdDate
      title: EventLogSummary
      description: Summary schema for event log entries
    EventServiceBookable:
      properties:
        eventId:
          type: string
          title: Eventid
        serviceId:
          type: string
          title: Serviceid
        bookableId:
          type: string
          title: Bookableid
        start:
          type: string
          format: date-time
          title: Start
        end:
          type: string
          format: date-time
          title: End
      type: object
      required:
        - eventId
        - serviceId
        - bookableId
        - start
        - end
      title: EventServiceBookable
    EventServiceCreate:
      properties:
        serviceId:
          type: string
          title: Serviceid
        providerId:
          anyOf:
            - type: string
            - type: "null"
          title: Providerid
        start:
          type: string
          format: date-time
          title: Start
        end:
          type: string
          format: date-time
          title: End
        bookableIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Bookableids
      type: object
      required:
        - serviceId
        - start
        - end
      title: EventServiceCreate
    EventServiceDetail:
      properties:
        service:
          $ref: "#/components/schemas/ServiceDetail"
        providerId:
          anyOf:
            - type: string
            - type: "null"
          title: Providerid
        bookables:
          anyOf:
            - items:
                $ref: "#/components/schemas/EventServiceBookable"
              type: array
            - type: "null"
          title: Bookables
        start:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Start
        end:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: End
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
        isArchived:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isarchived
      type: object
      required:
        - service
      title: EventServiceDetail
    EventServiceTiny:
      properties:
        service:
          $ref: "#/components/schemas/ServiceTiny"
        providerId:
          anyOf:
            - type: string
            - type: "null"
          title: Providerid
        bookables:
          anyOf:
            - items:
                $ref: "#/components/schemas/EventServiceBookable"
              type: array
            - type: "null"
          title: Bookables
        start:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Start
        end:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: End
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
        isArchived:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isarchived
      type: object
      required:
        - service
      title: EventServiceTiny
    EventStatus:
      type: string
      enum:
        - PENDING
        - RESERVED
        - CONFIRMED
        - CANCELLED
        - COMPLETED
        - OVERRIDABLE
        - NO_SHOW
      title: EventStatus
    EventStatusUpdateRequest:
      properties:
        status:
          $ref: "#/components/schemas/EventStatus"
          description: The new status for the event
        cancellationReason:
          anyOf:
            - type: string
            - type: "null"
          title: Cancellationreason
          description: Required reason when cancelling an appointment
      type: object
      required:
        - status
      title: EventStatusUpdateRequest
      description:
        Request schema for updating event status with optional cancellation
        reason
    EventTiny-Input:
      properties:
        id:
          type: string
          title: Id
        title:
          type: string
          title: Title
        start:
          type: string
          format: date-time
          title: Start
        end:
          type: string
          format: date-time
          title: End
        type:
          $ref: "#/components/schemas/EventType"
        location:
          anyOf:
            - $ref: "#/components/schemas/LocationTiny"
            - type: "null"
        attendees:
          items:
            $ref: "#/components/schemas/AttendeeDetail-Input"
          type: array
          title: Attendees
          default: []
        status:
          $ref: "#/components/schemas/EventStatus"
        recurringEventId:
          anyOf:
            - type: string
            - type: "null"
          title: Recurringeventid
        recurringEvent:
          anyOf:
            - $ref: "#/components/schemas/RecurringEventDetail"
            - type: "null"
        eventServices:
          items:
            $ref: "#/components/schemas/EventServiceTiny"
          type: array
          title: Eventservices
          default: []
        icons:
          items:
            $ref: "#/components/schemas/EventIcon"
          type: array
          title: Icons
          default: []
        capacity:
          anyOf:
            - type: integer
            - type: "null"
          title: Capacity
      type: object
      required:
        - id
        - title
        - start
        - end
        - type
        - status
      title: EventTiny
    EventTiny-Output:
      properties:
        id:
          type: string
          title: Id
        title:
          type: string
          title: Title
        start:
          type: string
          format: date-time
          title: Start
        end:
          type: string
          format: date-time
          title: End
        type:
          $ref: "#/components/schemas/EventType"
        location:
          anyOf:
            - $ref: "#/components/schemas/LocationTiny"
            - type: "null"
        attendees:
          items:
            $ref: "#/components/schemas/AttendeeDetail-Output"
          type: array
          title: Attendees
          default: []
        status:
          $ref: "#/components/schemas/EventStatus"
        recurringEventId:
          anyOf:
            - type: string
            - type: "null"
          title: Recurringeventid
        recurringEvent:
          anyOf:
            - $ref: "#/components/schemas/RecurringEventDetail"
            - type: "null"
        eventServices:
          items:
            $ref: "#/components/schemas/EventServiceTiny"
          type: array
          title: Eventservices
          default: []
        icons:
          items:
            $ref: "#/components/schemas/EventIcon"
          type: array
          title: Icons
          default: []
        capacity:
          anyOf:
            - type: integer
            - type: "null"
          title: Capacity
      type: object
      required:
        - id
        - title
        - start
        - end
        - type
        - status
      title: EventTiny
    EventType:
      type: string
      enum:
        - APPOINTMENT
        - SHIFT
        - BLOCK
      title: EventType
    EventUpdate:
      properties:
        id:
          type: string
          title: Id
        status:
          anyOf:
            - $ref: "#/components/schemas/EventStatus"
            - type: "null"
        title:
          anyOf:
            - type: string
            - type: "null"
          title: Title
        organizerId:
          anyOf:
            - type: string
            - type: "null"
          title: Organizerid
        start:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Start
        end:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: End
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
        type:
          anyOf:
            - $ref: "#/components/schemas/EventType"
            - type: "null"
        attendeeIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Attendeeids
        serviceIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Serviceids
        eventServices:
          anyOf:
            - items:
                $ref: "#/components/schemas/EventServiceCreate"
              type: array
            - type: "null"
          title: Eventservices
        recurringEvent:
          anyOf:
            - $ref: "#/components/schemas/RecurringEventRequest"
            - type: "null"
        recurrenceModificationMode:
          anyOf:
            - $ref: "#/components/schemas/RecurrenceModificationMode"
            - type: "null"
        confirmationText:
          anyOf:
            - type: string
            - type: "null"
          title: Confirmationtext
        tz:
          anyOf:
            - type: string
            - type: "null"
          title: Tz
        capacity:
          anyOf:
            - type: integer
            - type: "null"
          title: Capacity
      type: object
      required:
        - id
      title: EventUpdate
    ExpectedCashBalance:
      properties:
        expectedCash:
          type: integer
          title: Expectedcash
          description: Expected cash balance in cents
        lastClosingBalance:
          type: integer
          title: Lastclosingbalance
          description: Last closing balance in cents
        paymentsSinceClose:
          type: integer
          title: Paymentssinceclose
          description: Cash payments since last close in cents
        refundsSinceClose:
          type: integer
          title: Refundssinceclose
          description: Cash refunds since last close in cents
        adjustmentsSinceClose:
          type: integer
          title: Adjustmentssinceclose
          description: Cash balance adjustments since last close in cents
        lastCloseDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Lastclosedate
          description: Date of last close
      type: object
      required:
        - expectedCash
        - lastClosingBalance
        - paymentsSinceClose
        - refundsSinceClose
        - adjustmentsSinceClose
      title: ExpectedCashBalance
      description: Expected cash balance calculation for a location.
    ExternalSettlementDetail:
      properties:
        type:
          type: string
          title: Type
          description: "Type of settlement detail: 'payment' or 'tip'"
        payment:
          anyOf:
            - $ref: "#/components/schemas/ExternalSettlementPayment"
            - type: "null"
          description: Payment details if type is 'payment'
        tip:
          anyOf:
            - $ref: "#/components/schemas/ExternalSettlementTip"
            - type: "null"
          description: Tip details if type is 'tip'
      type: object
      required:
        - type
      title: ExternalSettlementDetail
      description: Detailed information for a specific external settlement item.
    ExternalSettlementPayment:
      properties:
        id:
          type: string
          title: Id
          description: Payment ID
        amount:
          type: integer
          title: Amount
          description: Payment amount in cents
        patientName:
          type: string
          title: Patientname
          description: Name of the patient who made the payment
        creatorName:
          type: string
          title: Creatorname
          description: Name of the user who created the payment
        paymentMedium:
          anyOf:
            - type: string
            - type: "null"
          title: Paymentmedium
          description: Payment medium (e.g., CARD, CASH)
        paymentMethodSummary:
          anyOf:
            - type: string
            - type: "null"
          title: Paymentmethodsummary
          description: Payment method summary (e.g., last4 digits)
        chargeIds:
          items:
            type: string
          type: array
          title: Chargeids
          description: List of charge IDs associated with this payment
          default: []
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: When the payment was created
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
          description: Payment comment
      type: object
      required:
        - id
        - amount
        - patientName
        - creatorName
        - createdDate
      title: ExternalSettlementPayment
      description: Detailed payment information for external settlements.
    ExternalSettlementSummary:
      properties:
        settlementType:
          type: string
          title: Settlementtype
          description: The settlement type (e.g., 'Check', 'Venmo', 'Zelle')
        totalAmount:
          type: integer
          title: Totalamount
          description: Total amount for this settlement type in cents
        transactionCount:
          type: integer
          title: Transactioncount
          description: Number of transactions for this settlement type
      type: object
      required:
        - settlementType
        - totalAmount
        - transactionCount
      title: ExternalSettlementSummary
      description:
        Summary of external settlements for a specific type on a given
        day.
    ExternalSettlementTip:
      properties:
        id:
          type: string
          title: Id
          description: Tip ID
        amount:
          type: integer
          title: Amount
          description: Tip amount in cents
        providerName:
          type: string
          title: Providername
          description: Name of the provider who received the tip
        patientName:
          type: string
          title: Patientname
          description: Name of the patient who gave the tip
        chargeId:
          type: string
          title: Chargeid
          description: Charge ID associated with this tip
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: When the tip was created
      type: object
      required:
        - id
        - amount
        - providerName
        - patientName
        - chargeId
        - createdDate
      title: ExternalSettlementTip
      description: Detailed tip information for external settlements.
    FailedPayment:
      properties:
        data:
          items:
            $ref: "#/components/schemas/FailedPaymentItem"
          type: array
          title: Data
        total:
          type: integer
          title: Total
        page:
          type: integer
          title: Page
        perPage:
          type: integer
          title: Perpage
      type: object
      required:
        - data
        - total
        - page
        - perPage
      title: FailedPayment
    FailedPaymentItem:
      properties:
        id:
          type: string
          title: Id
        alertId:
          type: string
          title: Alertid
        actionRequired:
          type: boolean
          title: Actionrequired
        patientName:
          type: string
          title: Patientname
        patientId:
          type: string
          title: Patientid
        failedReason:
          type: string
          title: Failedreason
        paymentMethod:
          type: string
          title: Paymentmethod
        paymentMedium:
          type: string
          title: Paymentmedium
        amount:
          type: number
          title: Amount
        dateOfAttempt:
          type: string
          title: Dateofattempt
      type: object
      required:
        - id
        - alertId
        - actionRequired
        - patientName
        - patientId
        - failedReason
        - paymentMethod
        - paymentMedium
        - amount
        - dateOfAttempt
      title: FailedPaymentItem
    FileUpload:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        allowedFileTypes:
          type: string
          title: Allowedfiletypes
        maxFileSize:
          type: integer
          title: Maxfilesize
        maxFileCount:
          type: integer
          title: Maxfilecount
      type: object
      required:
        - name
        - allowedFileTypes
        - maxFileSize
        - maxFileCount
      title: FileUpload
    FirebaseProviderSummary:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the user.
        firstName:
          anyOf:
            - type: string
            - type: "null"
          title: Firstname
          description: The user's first name.
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
          description: The user's last name.
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
          description: The user's phone number.
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
          description: The user's email address.
        type:
          type: string
          title: Type
          description: Type of the user, fixed as 'provider'.
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: The location of the user.
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
          description: The user's external identifier if available.
        address:
          anyOf:
            - type: string
            - type: "null"
          title: Address
          description: The user's primary address.
        addressLineTwo:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslinetwo
          description: Additional address information.
        city:
          anyOf:
            - type: string
            - type: "null"
          title: City
          description: The city of the user's address.
        state:
          anyOf:
            - type: string
            - type: "null"
          title: State
          description: The state of the user's address.
        zipCode:
          anyOf:
            - type: string
            - type: "null"
          title: Zipcode
          description: The postal code of the user's address.
        country:
          anyOf:
            - type: string
            - type: "null"
          title: Country
          description: The country of the user's address.
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time when the user was created.
        addressValid:
          anyOf:
            - type: boolean
            - type: "null"
          title: Addressvalid
          description: Whether the user's address is valid.
        meta:
          anyOf:
            - type: object
            - type: "null"
          title: Meta
          description: Any additional metadata about the user relevant to your system.
        isArchived:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isarchived
          description: Whether the user is archived.
        primaryLocationId:
          anyOf:
            - type: string
            - type: "null"
          title: Primarylocationid
          description: Primary location id of the provider.
        roles:
          items:
            $ref: "#/components/schemas/RoleSummary"
          type: array
          title: Roles
          description: List of roles associated with the provider.
        lastActive:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Lastactive
          description: Last active date of the provider.
        bio:
          anyOf:
            - type: string
            - type: "null"
          title: Bio
          description: Bio of the provider.
        profileImage:
          anyOf:
            - type: string
            - type: "null"
          title: Profileimage
          description: Profile image of the provider.
        hasGoogleCalendar:
          type: boolean
          title: Hasgooglecalendar
          description: Whether the provider has a Google Calendar.
          default: false
        nationalProviderIdentifier:
          anyOf:
            - type: string
            - type: "null"
          title: Nationalprovideridentifier
          description: National provider identifier of the provider.
        bookingCapacity:
          anyOf:
            - type: integer
            - type: "null"
          title: Bookingcapacity
          description: Booking capacity of the provider.
        showIds:
          type: boolean
          title: Showids
          description: Whether to show IDs in the UI for this provider.
          default: false
        showWeekendsOnCalendar:
          type: boolean
          title: Showweekendsoncalendar
          description: Whether to show weekends on the calendar for this provider.
          default: true
        showCancelledAppointments:
          type: boolean
          title: Showcancelledappointments
          description:
            Whether to show cancelled appointments in the calendar for
            this provider.
          default: false
        showMessagesBox:
          type: boolean
          title: Showmessagesbox
          description: Whether to show the messages box in the UI for this provider.
          default: true
        startCalendarHour:
          anyOf:
            - type: integer
            - type: "null"
          title: Startcalendarhour
          description: The start hour of the calendar for this provider.
        endCalendarHour:
          anyOf:
            - type: integer
            - type: "null"
          title: Endcalendarhour
          description: The end hour of the calendar for this provider.
        sendGcalInvites:
          type: boolean
          title: Sendgcalinvites
          description: Whether to send Google Calendar invites.
          default: false
        calendarGridInterval:
          anyOf:
            - type: integer
            - type: "null"
          title: Calendargridinterval
          description: Grid interval in minutes for calendar display.
        appointmentTimeStepMinutes:
          anyOf:
            - type: integer
            - type: "null"
          title: Appointmenttimestepminutes
          description:
            Time step interval in minutes for appointment scheduling. If
            null, uses the smallest service duration.
        showTranslucentPastEvents:
          type: boolean
          title: Showtranslucentpastevents
          description:
            Whether to show translucent past events in the calendar for
            this provider.
          default: true
        showGhostEvent:
          type: boolean
          title: Showghostevent
          description:
            Whether to show ghost events on hover in the calendar for this
            provider.
          default: false
        autoSignOffNotes:
          type: boolean
          title: Autosignoffnotes
          description: Whether notes should automatically sign off when created.
          default: true
        firebaseUid:
          anyOf:
            - type: string
            - type: "null"
          title: Firebaseuid
          description: Firebase unique identifier for the provider.
        visibleLocationIds:
          items:
            type: string
          type: array
          title: Visiblelocationids
          description: List of location IDs that the provider can see.
        permissions:
          items:
            type: string
          type: array
          title: Permissions
          description: List of permissions associated with the provider.
      type: object
      required:
        - id
        - type
        - createdDate
        - roles
      title: FirebaseProviderSummary
    FormDefaultTextEdit:
      properties:
        formId:
          type: string
          title: Formid
        defaultText:
          type: string
          title: Defaulttext
      type: object
      required:
        - formId
        - defaultText
      title: FormDefaultTextEdit
    FormDetail-Input:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        pathName:
          type: string
          title: Pathname
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        blocks:
          items:
            $ref: "#/components/schemas/BlockDetail-Input"
          type: array
          title: Blocks
          default: []
      type: object
      required:
        - id
        - name
        - pathName
      title: FormDetail
    FormDetail-Output:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        pathName:
          type: string
          title: Pathname
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        blocks:
          items:
            $ref: "#/components/schemas/BlockDetail-Output"
          type: array
          title: Blocks
          default: []
      type: object
      required:
        - id
        - name
        - pathName
      title: FormDetail
    FormInsuranceCoverage:
      properties:
        insuranceCoverageId:
          anyOf:
            - type: string
            - type: "null"
          title: Insurancecoverageid
        pverifyCode:
          anyOf:
            - type: string
            - type: "null"
          title: Pverifycode
        memberId:
          anyOf:
            - type: string
            - type: "null"
          title: Memberid
        insurerName:
          anyOf:
            - type: string
            - type: "null"
          title: Insurername
        policyHolderName:
          anyOf:
            - type: string
            - type: "null"
          title: Policyholdername
        policyHolderDob:
          anyOf:
            - type: string
              format: date
            - type: "null"
          title: Policyholderdob
        groupId:
          anyOf:
            - type: string
            - type: "null"
          title: Groupid
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
      type: object
      title: FormInsuranceCoverage
    FormStructure:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        blocks:
          items:
            $ref: "#/components/schemas/BlockStructure"
          type: array
          title: Blocks
      type: object
      required:
        - id
        - name
        - blocks
      title: FormStructure
    FormSubmissionData:
      properties:
        blocks:
          items:
            oneOf:
              - $ref: "#/components/schemas/SubmittedDemographicsBlock"
              - $ref: "#/components/schemas/SubmittedPaymentMethodBlock"
              - $ref: "#/components/schemas/SubmittedMedicalHistoryBlock"
              - $ref: "#/components/schemas/SubmittedInsuranceBlock"
              - $ref: "#/components/schemas/SubmittedDynamicBlock"
          type: array
          title: Blocks
          default: []
        patientId:
          type: string
          title: Patientid
        hadUploadError:
          anyOf:
            - type: boolean
            - type: "null"
          title: Haduploaderror
        isCompleteSubmission:
          type: boolean
          title: Iscompletesubmission
          default: false
      type: object
      required:
        - patientId
      title: FormSubmissionData
    FormTable:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        pathName:
          type: string
          title: Pathname
        createdDate:
          type: string
          format: date-time
          title: Createddate
        numSubmissions:
          anyOf:
            - type: integer
            - type: "null"
          title: Numsubmissions
        defaultSendingText:
          anyOf:
            - type: string
            - type: "null"
          title: Defaultsendingtext
      type: object
      required:
        - id
        - name
        - pathName
        - createdDate
      title: FormTable
    FormTiny:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        pathName:
          type: string
          title: Pathname
      type: object
      required:
        - id
        - name
        - pathName
      title: FormTiny
    FormTinyWithStatus:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        pathName:
          type: string
          title: Pathname
        completed:
          type: boolean
          title: Completed
          default: false
      type: object
      required:
        - id
        - name
        - pathName
      title: FormTinyWithStatus
    FreeUsageItem:
      properties:
        quantity:
          type: number
          title: Quantity
        description:
          type: string
          title: Description
      type: object
      required:
        - quantity
        - description
      title: FreeUsageItem
    FrontPage:
      properties:
        services:
          items:
            $ref: "#/components/schemas/ServiceDetail"
          type: array
          title: Services
        providers:
          items:
            $ref: "#/components/schemas/PublicProvider"
          type: array
          title: Providers
        locations:
          items:
            $ref: "#/components/schemas/LocationDetail"
          type: array
          title: Locations
        categories:
          items:
            type: string
          type: array
          title: Categories
        logoUrl:
          type: string
          title: Logourl
        tenantName:
          type: string
          title: Tenantname
        phoneNumber:
          type: string
          title: Phonenumber
        slogan:
          anyOf:
            - type: string
            - type: "null"
          title: Slogan
        shouldExposePatientTypeChoice:
          type: boolean
          title: Shouldexposepatienttypechoice
        shouldExposeLocationTypeChoice:
          type: boolean
          title: Shouldexposelocationtypechoice
        shouldGroupServicesByLocation:
          type: boolean
          title: Shouldgroupservicesbylocation
          default: false
        shouldGroupServicesByCategory:
          type: boolean
          title: Shouldgroupservicesbycategory
          default: false
        googleTagManagerId:
          anyOf:
            - type: string
            - type: "null"
          title: Googletagmanagerid
      type: object
      required:
        - services
        - providers
        - locations
        - categories
        - logoUrl
        - tenantName
        - phoneNumber
        - shouldExposePatientTypeChoice
        - shouldExposeLocationTypeChoice
      title: FrontPage
    GFECreateRequest:
      properties:
        patientId:
          type: string
          title: Patientid
        locationId:
          type: string
          title: Locationid
        appointmentTime:
          type: string
          format: date-time
          title: Appointmenttime
        requestedTreatments:
          items:
            type: string
          type: array
          title: Requestedtreatments
        patientEmail:
          anyOf:
            - type: string
              format: email
            - type: "null"
          title: Patientemail
        patientPhone:
          anyOf:
            - type: string
            - type: "null"
          title: Patientphone
      type: object
      required:
        - patientId
        - locationId
        - appointmentTime
        - requestedTreatments
      title: GFECreateRequest
      description: Request to create a new Good Faith Exam appointment
    GFEDetail:
      properties:
        id:
          type: string
          title: Id
        patientId:
          type: string
          title: Patientid
        spakinectGfeId:
          type: string
          title: Spakinectgfeid
        createdDate:
          type: string
          format: date-time
          title: Createddate
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
        status:
          $ref: "#/components/schemas/GFEStatus"
        requestedTreatments:
          items:
            type: string
          type: array
          title: Requestedtreatments
        patientDetails:
          $ref: "#/components/schemas/PatientDetails"
        document:
          anyOf:
            - $ref: "#/components/schemas/DocumentSummary"
            - type: "null"
      type: object
      required:
        - id
        - patientId
        - spakinectGfeId
        - createdDate
        - status
        - requestedTreatments
        - patientDetails
      title: GFEDetail
      description: Detailed Good Faith Exam information including SpaKinect data
    GFEStatus:
      type: string
      enum:
        - Processing
        - Pending Review
        - Approved
        - Rejected
        - Completed
        - Cancelled
        - Cancelled by client
      title: GFEStatus
      description: Status values for Good Faith Exam visits from SpaKinect API
    GroupedAvailability:
      properties:
        date:
          type: string
          format: date-time
          title: Date
        morning:
          items:
            $ref: "#/components/schemas/Availability"
          type: array
          title: Morning
        afternoon:
          items:
            $ref: "#/components/schemas/Availability"
          type: array
          title: Afternoon
        evening:
          items:
            $ref: "#/components/schemas/Availability"
          type: array
          title: Evening
      type: object
      required:
        - date
        - morning
        - afternoon
        - evening
      title: GroupedAvailability
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: "#/components/schemas/ValidationError"
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ICDTenCode:
      properties:
        code:
          type: string
          title: Code
        shortDesc:
          type: string
          title: Shortdesc
        longDesc:
          anyOf:
            - type: string
            - type: "null"
          title: Longdesc
        categorical:
          anyOf:
            - type: boolean
            - type: "null"
          title: Categorical
      type: object
      required:
        - code
        - shortDesc
        - longDesc
        - categorical
      title: ICDTenCode
    InsurancePaymentCreate:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the insurance payment.
        insurer:
          type: string
          title: Insurer
          description: Name of the insurer.
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
          description: Optional comment about the payment.
        amount:
          type: integer
          title: Amount
          description: Amount of the payment.
        currency:
          type: string
          title: Currency
          description: Currency of the payment.
          default: USD
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: Location of the payment.
        creatorId:
          anyOf:
            - type: string
            - type: "null"
          title: Creatorid
          description: ID of the provider who created this payment.
      type: object
      required:
        - id
        - insurer
        - amount
      title: InsurancePaymentCreate
    InsurancePaymentSummary:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the insurance payment.
        insurer:
          type: string
          title: Insurer
          description: Name of the insurer.
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
          description: Optional comment about the payment.
        amount:
          type: integer
          title: Amount
          description: Amount of the payment.
        currency:
          type: string
          title: Currency
          description: Currency of the payment.
        status:
          $ref: "#/components/schemas/PaymentStatus"
          description: Status of the payment.
        payinId:
          type: string
          title: Payinid
          description: Unique identifier for the payin.
        payinConfigId:
          type: string
          title: Payinconfigid
          description: Unique identifier for the payin configuration.
        paymentMedium:
          $ref: "#/components/schemas/PaymentMedium"
          description: Medium of the payment.
        fee:
          type: integer
          title: Fee
          description: Fee associated with the payment.
        paymentMethod:
          anyOf:
            - $ref: "#/components/schemas/PaymentMethodSummary"
            - type: "null"
          description: Summary of the payment method used.
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date when the payment was created.
        creatorId:
          anyOf:
            - type: string
            - type: "null"
          title: Creatorid
          description: ID of the provider who created this payment.
      type: object
      required:
        - id
        - insurer
        - amount
        - currency
        - status
        - payinId
        - payinConfigId
        - paymentMedium
        - fee
        - createdDate
      title: InsurancePaymentSummary
    IntakeKPI:
      properties:
        numberFormsSubmitted:
          anyOf:
            - type: integer
            - type: "null"
          title: Numberformssubmitted
        numberFormResponsesMissingPast:
          anyOf:
            - type: integer
            - type: "null"
          title: Numberformresponsesmissingpast
        numberFormResponsesMissingUpcoming:
          anyOf:
            - type: integer
            - type: "null"
          title: Numberformresponsesmissingupcoming
        numberNotifications:
          anyOf:
            - type: integer
            - type: "null"
          title: Numbernotifications
        percentGrowth:
          anyOf:
            - type: number
            - type: "null"
          title: Percentgrowth
      type: object
      title: IntakeKPI
    InventoryAction:
      type: string
      enum:
        - STOCK_CREATED
        - STOCK_UPDATED
        - STOCK_ARCHIVED
        - DRAWDOWN
        - RESTORED
        - SHIPMENT_RECEIVED
        - SHIPMENT_UPDATED
        - SHIPMENT_ARCHIVED
        - ITEM_LINKED
        - ITEM_UNLINKED
      title: InventoryAction
    InventoryLog:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the inventory log
        itemId:
          anyOf:
            - type: string
            - type: "null"
          title: Itemid
          description: ID of the item
        stockId:
          type: string
          title: Stockid
          description: ID of the stock
        quantity:
          anyOf:
            - type: number
            - type: "null"
          title: Quantity
          description: Quantity of the stock
        chargeId:
          anyOf:
            - type: string
            - type: "null"
          title: Chargeid
          description: ID of the charge
        action:
          $ref: "#/components/schemas/InventoryAction"
          description: Action performed on the stock
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: Date and time the log was created
        creatorId:
          type: string
          title: Creatorid
          description: ID of the creator
        shipmentId:
          anyOf:
            - type: string
            - type: "null"
          title: Shipmentid
          description: ID of the shipment
        note:
          anyOf:
            - type: string
            - type: "null"
          title: Note
          description: Optional note about the inventory action
        stock:
          anyOf:
            - $ref: "#/components/schemas/StockTiny"
            - type: "null"
          description: Stock
        item:
          anyOf:
            - $ref: "#/components/schemas/Item"
            - type: "null"
          description: Item
        charge:
          anyOf:
            - $ref: "#/components/schemas/ChargeSummary-Output"
            - type: "null"
          description: Charge
        shipment:
          anyOf:
            - $ref: "#/components/schemas/Shipment-Output"
            - type: "null"
          description: Shipment
        creator:
          anyOf:
            - $ref: "#/components/schemas/UserTiny"
            - type: "null"
          description: Creator
      type: object
      required:
        - stockId
        - action
        - creatorId
      title: InventoryLog
    InviteStatus:
      type: string
      enum:
        - PENDING
        - ACCEPTED
        - REJECTED
      title: InviteStatus
    InvoiceAction:
      properties:
        invoiceSetIds:
          items:
            type: string
          type: array
          title: Invoicesetids
        actionType:
          type: string
          enum:
            - resume
            - pause
            - change rule set
            - to-collections
            - cancel
            - write-off
          title: Actiontype
        ruleSetId:
          anyOf:
            - type: string
            - type: "null"
          title: Rulesetid
        writeOffReason:
          anyOf:
            - type: string
            - type: "null"
          title: Writeoffreason
      type: object
      required:
        - invoiceSetIds
        - actionType
      title: InvoiceAction
    InvoiceCreate:
      properties:
        patientId:
          type: string
          title: Patientid
        ruleSetId:
          type: string
          title: Rulesetid
        charges:
          anyOf:
            - items:
                $ref: "#/components/schemas/ChargeDetail-Input"
              type: array
            - type: "null"
          title: Charges
      type: object
      required:
        - patientId
        - ruleSetId
      title: InvoiceCreate
    InvoiceForTable:
      properties:
        id:
          type: string
          title: Id
        method:
          anyOf:
            - $ref: "#/components/schemas/InvoiceMethod"
            - type: "null"
        status:
          $ref: "#/components/schemas/InvoiceStatus"
        rule:
          anyOf:
            - $ref: "#/components/schemas/RuleDetails"
            - type: "null"
        amount:
          type: integer
          title: Amount
        sendTime:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Sendtime
        pausedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Pauseddate
        resumedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Resumeddate
        methodsAttempted:
          items:
            prefixItems:
              - $ref: "#/components/schemas/InvoiceMethod"
              - type: boolean
              - type: string
            type: array
            maxItems: 3
            minItems: 3
          type: array
          title: Methodsattempted
        failedReason:
          anyOf:
            - type: string
            - type: "null"
          title: Failedreason
        pdfPath:
          anyOf:
            - type: string
            - type: "null"
          title: Pdfpath
        emailStatus:
          anyOf:
            - type: string
            - type: "null"
          title: Emailstatus
        smsContent:
          anyOf:
            - type: string
            - type: "null"
          title: Smscontent
        callStatus:
          anyOf:
            - type: string
            - type: "null"
          title: Callstatus
      type: object
      required:
        - id
        - status
        - amount
        - methodsAttempted
      title: InvoiceForTable
    InvoiceMethod:
      type: string
      enum:
        - CHARGE_CARD
        - SMS
        - EMAIL
        - CALL
        - MAIL
        - EXPIRY
      title: InvoiceMethod
      description: The method used to send an invoice to a patient.
    InvoiceSetForTable:
      properties:
        id:
          type: string
          title: Id
        status:
          $ref: "#/components/schemas/InvoiceSetStatus"
        resumedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Resumeddate
        pausedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Pauseddate
        createdDate:
          type: string
          format: date-time
          title: Createddate
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
        invoices:
          items:
            $ref: "#/components/schemas/InvoiceForTable"
          type: array
          title: Invoices
        patient:
          $ref: "#/components/schemas/PatientInvoicingDetails"
      type: object
      required:
        - id
        - status
        - createdDate
        - invoices
        - patient
      title: InvoiceSetForTable
    InvoiceSetStatus:
      type: string
      enum:
        - ACTIVE
        - PAUSED
        - CANCELLED
        - EXPIRED
        - PAID
        - WILL_FAIL
        - FAILED
      title: InvoiceSetStatus
      description: The status of an invoice set.
    InvoiceSetUpdate:
      properties:
        invoiceSetId:
          type: string
          title: Invoicesetid
        status:
          $ref: "#/components/schemas/InvoiceSetStatus"
        pausedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Pauseddate
      type: object
      required:
        - invoiceSetId
        - status
      title: InvoiceSetUpdate
    InvoiceStatus:
      type: string
      enum:
        - PENDING
        - SENT
        - FAILED
        - PAUSED
        - CANCELLED
      title: InvoiceStatus
      description: The status of an invoice.
    InvoiceUpdate:
      properties:
        invoiceId:
          type: string
          title: Invoiceid
        method:
          anyOf:
            - $ref: "#/components/schemas/InvoiceMethod"
            - type: "null"
        sendTime:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Sendtime
        status:
          anyOf:
            - $ref: "#/components/schemas/InvoiceStatus"
            - type: "null"
        methodsAttempted:
          anyOf:
            - items:
                prefixItems:
                  - $ref: "#/components/schemas/InvoiceMethod"
                  - type: boolean
                  - type: string
                type: array
                maxItems: 3
                minItems: 3
              type: array
            - type: "null"
          title: Methodsattempted
        failedReason:
          anyOf:
            - type: string
            - type: "null"
          title: Failedreason
      type: object
      required:
        - invoiceId
      title: InvoiceUpdate
    InvoicingMetrics:
      properties:
        willFail:
          type: integer
          title: Willfail
          default: 0
        failed:
          type: integer
          title: Failed
          default: 0
        paused:
          type: integer
          title: Paused
          default: 0
        expired:
          type: integer
          title: Expired
          default: 0
      type: object
      title: InvoicingMetrics
    IssuedDiscountDetail:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the discount bank entry
        memberId:
          type: string
          title: Memberid
          description: ID of the member
        membershipDiscountId:
          type: string
          title: Membershipdiscountid
          description: ID of the membership discount
        quantityRemaining:
          type: integer
          title: Quantityremaining
          description: Quantity remaining in the bank
        expiryDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Expirydate
          description: When this bank entry expires
        membershipDiscount:
          $ref: "#/components/schemas/MembershipDiscountDetail"
          description: Details of the membership discount
        usageCount:
          type: integer
          title: Usagecount
          description: Number of times this discount has been used
          default: 0
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: When the bank entry was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: When the bank entry was last updated
        items:
          anyOf:
            - items:
                $ref: "#/components/schemas/ChargeItem"
              type: array
            - type: "null"
          title: Items
          description: Items that have been used from this bank entry
        packages:
          anyOf:
            - items:
                $ref: "#/components/schemas/SoldPackage-Output"
              type: array
            - type: "null"
          title: Packages
          description: Packages that have been used from this bank entry
      type: object
      required:
        - id
        - memberId
        - membershipDiscountId
        - quantityRemaining
        - membershipDiscount
      title: IssuedDiscountDetail
    Item:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the item
        name:
          type: string
          title: Name
          description: Name of the item
        brandName:
          anyOf:
            - type: string
            - type: "null"
          title: Brandname
          description: Optional brand name of the item
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Optional description of the item
        price:
          type: integer
          title: Price
          description: Price of the item in cents
        category:
          anyOf:
            - type: string
            - type: "null"
          title: Category
          description: Category name (references category.name)
        unit:
          anyOf:
            - $ref: "#/components/schemas/Unit"
            - type: "null"
          description: Unit of measurement for the item
        isPhysical:
          type: boolean
          title: Isphysical
          description: Whether the item is physical
          default: true
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the item is archived
          default: false
        internalNotes:
          anyOf:
            - type: string
            - type: "null"
          title: Internalnotes
          description: Optional internal notes for the item
        taxable:
          type: boolean
          title: Taxable
          description: Whether the item is subject to taxes
          default: false
        sortOrder:
          anyOf:
            - type: integer
            - type: "null"
          title: Sortorder
          description: Optional sort order for the item
        allowCustomPricing:
          type: boolean
          title: Allowcustompricing
          description: Whether custom pricing is allowed for this item
          default: false
        type:
          $ref: "#/components/schemas/ItemType"
          description: Type of item (PRODUCT, MEDICATION, etc.)
          default: PRODUCT
        stocks:
          anyOf:
            - items:
                $ref: "#/components/schemas/ItemStock"
              type: array
            - type: "null"
          title: Stocks
          description: Optional linked stocks for the item
      type: object
      required:
        - name
        - price
      title: Item
    ItemDetail:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the item
        name:
          type: string
          title: Name
          description: Name of the item
        brandName:
          anyOf:
            - type: string
            - type: "null"
          title: Brandname
          description: Optional brand name of the item
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Optional description of the item
        price:
          type: integer
          title: Price
          description: Price of the item in cents
        category:
          anyOf:
            - type: string
            - type: "null"
          title: Category
          description: Category name (references category.name)
        unit:
          anyOf:
            - $ref: "#/components/schemas/Unit"
            - type: "null"
          description: Unit of measurement for the item
        isPhysical:
          type: boolean
          title: Isphysical
          description: Whether the item is physical
          default: true
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the item is archived
          default: false
        internalNotes:
          anyOf:
            - type: string
            - type: "null"
          title: Internalnotes
          description: Optional internal notes for the item
        taxable:
          type: boolean
          title: Taxable
          description: Whether the item is subject to taxes
          default: false
        sortOrder:
          anyOf:
            - type: integer
            - type: "null"
          title: Sortorder
          description: Optional sort order for the item
        allowCustomPricing:
          type: boolean
          title: Allowcustompricing
          description: Whether custom pricing is allowed for this item
          default: false
        type:
          $ref: "#/components/schemas/ItemType"
          description: Type of item (PRODUCT, MEDICATION, etc.)
          default: PRODUCT
        stocks:
          anyOf:
            - items:
                $ref: "#/components/schemas/ItemStockDetail"
              type: array
            - type: "null"
          title: Stocks
          description: Optional linked stocks for the item
        usageCount:
          anyOf:
            - type: integer
            - type: "null"
          title: Usagecount
          description: Number of times this item has been used
      type: object
      required:
        - name
        - price
        - usageCount
      title: ItemDetail
    ItemSortType:
      type: string
      enum:
        - CATEGORY
        - USAGE
        - DEFINED_ORDER
        - NAME
        - PRICE
      title: ItemSortType
    ItemStock:
      properties:
        itemId:
          type: string
          title: Itemid
          description: ID of the item
        stockId:
          type: string
          title: Stockid
          description: ID of the stock
        quantityUsed:
          type: number
          title: Quantityused
          description: Quantity of the item
      type: object
      required:
        - itemId
        - stockId
        - quantityUsed
      title: ItemStock
    ItemStockDetail:
      properties:
        itemId:
          type: string
          title: Itemid
          description: ID of the item
        stockId:
          type: string
          title: Stockid
          description: ID of the stock
        quantityUsed:
          type: number
          title: Quantityused
          description: Quantity of the item
        stock:
          $ref: "#/components/schemas/Stock"
          description: Details of the linked stock
      type: object
      required:
        - itemId
        - stockId
        - quantityUsed
        - stock
      title: ItemStockDetail
    ItemTiny:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the item
        name:
          type: string
          title: Name
          description: Name of the item
        brandName:
          anyOf:
            - type: string
            - type: "null"
          title: Brandname
          description: Optional brand name of the item
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Optional description of the item
        price:
          type: integer
          title: Price
          description: Price of the item in cents
        category:
          anyOf:
            - type: string
            - type: "null"
          title: Category
          description: Category name (references category.name)
        unit:
          anyOf:
            - $ref: "#/components/schemas/Unit"
            - type: "null"
          description: Unit of measurement for the item
        isPhysical:
          type: boolean
          title: Isphysical
          description: Whether the item is physical
          default: true
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the item is archived
          default: false
        internalNotes:
          anyOf:
            - type: string
            - type: "null"
          title: Internalnotes
          description: Optional internal notes for the item
        taxable:
          type: boolean
          title: Taxable
          description: Whether the item is subject to taxes
          default: false
        sortOrder:
          anyOf:
            - type: integer
            - type: "null"
          title: Sortorder
          description: Optional sort order for the item
        allowCustomPricing:
          type: boolean
          title: Allowcustompricing
          description: Whether custom pricing is allowed for this item
          default: false
        type:
          $ref: "#/components/schemas/ItemType"
          description: Type of item (PRODUCT, MEDICATION, etc.)
          default: PRODUCT
      type: object
      required:
        - name
        - price
      title: ItemTiny
    ItemType:
      type: string
      enum:
        - ITEM
        - PRODUCT
        - MEDICATION
        - SERVICE
        - PACKAGE
        - MEMBERSHIP
      title: ItemType
    ItemWithQuantity:
      properties:
        itemName:
          type: string
          title: Itemname
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        chargeId:
          anyOf:
            - type: string
            - type: "null"
          title: Chargeid
        discountReason:
          anyOf:
            - type: string
            - type: "null"
          title: Discountreason
        discountAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Discountamount
        discountPercentage:
          anyOf:
            - type: number
            - type: "null"
          title: Discountpercentage
        quantity:
          type: integer
          title: Quantity
        unit:
          anyOf:
            - type: string
            - type: "null"
          title: Unit
        pricePerItem:
          type: integer
          title: Priceperitem
        itemType:
          anyOf:
            - type: string
            - type: "null"
          title: Itemtype
      type: object
      required:
        - itemName
        - quantity
        - pricePerItem
      title: ItemWithQuantity
    LivekitSetupCallParams:
      properties:
        externalNumber:
          type: string
          title: Externalnumber
        trunkNumber:
          type: string
          title: Trunknumber
        roomName:
          type: string
          title: Roomname
      type: object
      required:
        - externalNumber
        - trunkNumber
        - roomName
      title: LivekitSetupCallParams
    LivekitSetupCallResponse:
      properties:
        prompt:
          type: string
          title: Prompt
        initialMessage:
          type: string
          title: Initialmessage
        tools:
          items:
            $ref: "#/components/schemas/Tool"
          type: array
          title: Tools
        headers:
          additionalProperties:
            type: string
          type: object
          title: Headers
        webhookUrl:
          type: string
          title: Webhookurl
        basePath:
          type: string
          title: Basepath
        modelType:
          anyOf:
            - $ref: "#/components/schemas/LlmModelType"
            - type: "null"
        supportedLanguage:
          anyOf:
            - $ref: "#/components/schemas/AiLanguageSupport"
            - type: "null"
        silenceTrackerMode:
          anyOf:
            - $ref: "#/components/schemas/SilenceTrackerMode"
            - type: "null"
      type: object
      required:
        - prompt
        - initialMessage
        - tools
        - headers
        - webhookUrl
        - basePath
      title: LivekitSetupCallResponse
    LlmModelType:
      type: string
      enum:
        - gemini-2.5-flash
        - claude-3-7-sonnet
        - claude-3-5-haiku
        - gpt-5.2
        - gpt-5-mini
        - gpt-5-nano
        - gpt-realtime
        - gpt-realtime-mini
        - gemini-2.5-flash
        - gemini-2.5-flash-preview-05-20
        - gemini-2.5-flash-lite
        - gemini-live
      title: LlmModelType
    LocationDetail:
      properties:
        id:
          type: string
          title: Id
        isVirtual:
          type: boolean
          title: Isvirtual
        name:
          type: string
          title: Name
        addressLineOne:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslineone
        addressLineTwo:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslinetwo
        city:
          anyOf:
            - type: string
            - type: "null"
          title: City
        state:
          anyOf:
            - type: string
            - type: "null"
          title: State
        zipCode:
          anyOf:
            - type: string
            - type: "null"
          title: Zipcode
        country:
          anyOf:
            - type: string
            - type: "null"
          title: Country
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
        spakinectLocationId:
          anyOf:
            - type: string
            - type: "null"
          title: Spakinectlocationid
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
        photoUrl:
          anyOf:
            - type: string
            - type: "null"
          title: Photourl
        reviewLink:
          anyOf:
            - type: string
            - type: "null"
          title: Reviewlink
        timezone:
          type: string
          title: Timezone
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
        latitude:
          anyOf:
            - type: number
            - type: "null"
          title: Latitude
        longitude:
          anyOf:
            - type: number
            - type: "null"
          title: Longitude
        taxes:
          items:
            $ref: "#/components/schemas/TaxSummary"
          type: array
          title: Taxes
          default: []
      type: object
      required:
        - id
        - isVirtual
        - name
        - timezone
      title: LocationDetail
    LocationDiff:
      properties:
        fromLocation:
          anyOf:
            - $ref: "#/components/schemas/LocationTiny"
            - type: "null"
        toLocation:
          anyOf:
            - $ref: "#/components/schemas/LocationTiny"
            - type: "null"
      type: object
      title: LocationDiff
    LocationSummary:
      properties:
        id:
          type: string
          title: Id
        isVirtual:
          type: boolean
          title: Isvirtual
        name:
          type: string
          title: Name
        addressLineOne:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslineone
        addressLineTwo:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslinetwo
        city:
          anyOf:
            - type: string
            - type: "null"
          title: City
        state:
          anyOf:
            - type: string
            - type: "null"
          title: State
        zipCode:
          anyOf:
            - type: string
            - type: "null"
          title: Zipcode
        country:
          anyOf:
            - type: string
            - type: "null"
          title: Country
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
        spakinectLocationId:
          anyOf:
            - type: string
            - type: "null"
          title: Spakinectlocationid
      type: object
      required:
        - id
        - isVirtual
        - name
      title: LocationSummary
    LocationTiny:
      properties:
        id:
          type: string
          title: Id
        isVirtual:
          type: boolean
          title: Isvirtual
      type: object
      required:
        - id
        - isVirtual
      title: LocationTiny
    LocationTinyWithName:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        isVirtual:
          type: boolean
          title: Isvirtual
      type: object
      required:
        - id
        - name
        - isVirtual
      title: LocationTinyWithName
      description:
        Location with name for analytics - avoids requiring eager loading
        everywhere.
    LowPatientReviewData:
      properties:
        rating:
          type: integer
          title: Rating
        feedback:
          anyOf:
            - type: string
            - type: "null"
          title: Feedback
        locationName:
          type: string
          title: Locationname
        patientName:
          type: string
          title: Patientname
        reviewDate:
          type: string
          title: Reviewdate
        locationId:
          type: string
          title: Locationid
      type: object
      required:
        - rating
        - feedback
        - locationName
        - patientName
        - reviewDate
        - locationId
      title: LowPatientReviewData
    MailgunSendResponse:
      properties:
        id:
          type: string
          title: Id
      type: object
      required:
        - id
      title: MailgunSendResponse
    MakeAICall:
      properties:
        assistantType:
          type: string
          enum:
            - BILLER
            - CALL_REMINDER
            - CALL_FOLLOW_UP
            - CALL_LAB_TECHNICIAN
          title: Assistanttype
        reasonForCall:
          type: string
          title: Reasonforcall
        patientId:
          type: string
          title: Patientid
        eventId:
          anyOf:
            - type: string
            - type: "null"
          title: Eventid
        provider:
          type: string
          enum:
            - retell
            - livekit
          title: Provider
          default: livekit
      type: object
      required:
        - assistantType
        - reasonForCall
        - patientId
      title: MakeAICall
    ManualInvoiceCreate:
      properties:
        patientId:
          type: string
          title: Patientid
          description: Identifier of the patient to create the invoice for.
        message:
          type: string
          title: Message
          description: Custom message to be sent with the invoice.
        invoiceMethod:
          $ref: "#/components/schemas/InvoiceMethod"
          description: Method to use for sending the invoice.
        charges:
          anyOf:
            - items:
                $ref: "#/components/schemas/ChargeDetail-Input"
              type: array
            - type: "null"
          title: Charges
          description:
            Optional charge to create before invoicing. If not provided,
            will invoice existing outstanding charges.
      type: object
      required:
        - patientId
        - message
        - invoiceMethod
      title: ManualInvoiceCreate
    MeasurementBase:
      properties:
        height:
          anyOf:
            - type: number
            - type: "null"
          title: Height
          description: The height of the patient in cms.
        weight:
          anyOf:
            - type: number
            - type: "null"
          title: Weight
          description: The weight of the patient in kgs.
        systolicBp:
          anyOf:
            - type: number
            - type: "null"
          title: Systolicbp
        diastolicBp:
          anyOf:
            - type: number
            - type: "null"
          title: Diastolicbp
        pulse:
          anyOf:
            - type: number
            - type: "null"
          title: Pulse
        temperature:
          anyOf:
            - type: number
            - type: "null"
          title: Temperature
        waistCircumference:
          anyOf:
            - type: number
            - type: "null"
          title: Waistcircumference
          description: The waist circumference of the patient in cms.
        patientId:
          type: string
          title: Patientid
        noteId:
          anyOf:
            - type: string
            - type: "null"
          title: Noteid
        measurementDate:
          type: string
          format: date-time
          title: Measurementdate
          description:
            The date and time the measurement was taken. Defaults to now
            if not provided.
        eventId:
          anyOf:
            - type: string
            - type: "null"
          title: Eventid
          description: The event that the measurement was taken for.
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description:
            When the measurement was taken. Defaults to current time if
            not provided.
      type: object
      required:
        - patientId
      title: MeasurementBase
      description: Base schema for measurement fields (excluding creator_id and id).
    MeasurementSummary:
      properties:
        height:
          anyOf:
            - type: number
            - type: "null"
          title: Height
          description: The height of the patient in cms.
        weight:
          anyOf:
            - type: number
            - type: "null"
          title: Weight
          description: The weight of the patient in kgs.
        systolicBp:
          anyOf:
            - type: number
            - type: "null"
          title: Systolicbp
        diastolicBp:
          anyOf:
            - type: number
            - type: "null"
          title: Diastolicbp
        pulse:
          anyOf:
            - type: number
            - type: "null"
          title: Pulse
        temperature:
          anyOf:
            - type: number
            - type: "null"
          title: Temperature
        waistCircumference:
          anyOf:
            - type: number
            - type: "null"
          title: Waistcircumference
          description: The waist circumference of the patient in cms.
        patientId:
          type: string
          title: Patientid
        noteId:
          anyOf:
            - type: string
            - type: "null"
          title: Noteid
        measurementDate:
          type: string
          format: date-time
          title: Measurementdate
          description:
            The date and time the measurement was taken. Defaults to now
            if not provided.
        eventId:
          anyOf:
            - type: string
            - type: "null"
          title: Eventid
          description: The event that the measurement was taken for.
        createdDate:
          type: string
          format: date-time
          title: Createddate
        id:
          type: string
          title: Id
        creatorId:
          anyOf:
            - type: string
            - type: "null"
          title: Creatorid
          description:
            ID of the user who created this measurement (optional for legacy
            measurements)
      type: object
      required:
        - patientId
        - createdDate
        - id
      title: MeasurementSummary
      description:
        Schema for reading measurements. creator_id is optional for legacy
        measurements.
    MedicationCreate:
      properties:
        name:
          type: string
          title: Name
        unit:
          anyOf:
            - $ref: "#/components/schemas/Unit"
            - type: "null"
        brandName:
          anyOf:
            - type: string
            - type: "null"
          title: Brandname
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        price:
          type: integer
          title: Price
          default: 0
        category:
          anyOf:
            - type: string
            - type: "null"
          title: Category
        internalNotes:
          anyOf:
            - type: string
            - type: "null"
          title: Internalnotes
        sortOrder:
          anyOf:
            - type: integer
            - type: "null"
          title: Sortorder
        taxable:
          type: boolean
          title: Taxable
          default: false
        allowCustomPricing:
          type: boolean
          title: Allowcustompricing
          default: false
        isUsedAsTemplate:
          type: boolean
          title: Isusedastemplate
          default: false
        templateAmount:
          anyOf:
            - type: number
            - type: "null"
          title: Templateamount
        templateAdministrationLocation:
          anyOf:
            - type: string
            - type: "null"
          title: Templateadministrationlocation
        templateFrequency:
          anyOf:
            - type: string
            - type: "null"
          title: Templatefrequency
        templateQuantity:
          anyOf:
            - type: number
            - type: "null"
          title: Templatequantity
        templateComment:
          anyOf:
            - type: string
            - type: "null"
          title: Templatecomment
        templateLotNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Templatelotnumber
      type: object
      required:
        - name
      title: MedicationCreate
      description: Schema for creating a medication product (inherits from Item).
    MedicationSummary:
      properties:
        name:
          type: string
          title: Name
        unit:
          anyOf:
            - $ref: "#/components/schemas/Unit"
            - type: "null"
        brandName:
          anyOf:
            - type: string
            - type: "null"
          title: Brandname
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        price:
          type: integer
          title: Price
          default: 0
        category:
          anyOf:
            - type: string
            - type: "null"
          title: Category
        internalNotes:
          anyOf:
            - type: string
            - type: "null"
          title: Internalnotes
        sortOrder:
          anyOf:
            - type: integer
            - type: "null"
          title: Sortorder
        taxable:
          type: boolean
          title: Taxable
        allowCustomPricing:
          type: boolean
          title: Allowcustompricing
        isUsedAsTemplate:
          type: boolean
          title: Isusedastemplate
          default: false
        templateAmount:
          anyOf:
            - type: number
            - type: "null"
          title: Templateamount
        templateAdministrationLocation:
          anyOf:
            - type: string
            - type: "null"
          title: Templateadministrationlocation
        templateFrequency:
          anyOf:
            - type: string
            - type: "null"
          title: Templatefrequency
        templateQuantity:
          anyOf:
            - type: number
            - type: "null"
          title: Templatequantity
        templateComment:
          anyOf:
            - type: string
            - type: "null"
          title: Templatecomment
        templateLotNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Templatelotnumber
        id:
          type: string
          title: Id
        createdDate:
          type: string
          format: date-time
          title: Createddate
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
        isPhysical:
          type: boolean
          title: Isphysical
        isArchived:
          type: boolean
          title: Isarchived
        template:
          anyOf:
            - $ref: "#/components/schemas/MedicationTemplateSummary"
            - type: "null"
      type: object
      required:
        - name
        - taxable
        - allowCustomPricing
        - id
        - createdDate
        - isPhysical
        - isArchived
      title: MedicationSummary
      description: Schema for returning medication product information.
    MedicationTemplateSummary:
      properties:
        name:
          type: string
          title: Name
        amount:
          anyOf:
            - type: number
            - type: "null"
          title: Amount
        unit:
          anyOf:
            - $ref: "#/components/schemas/Unit"
            - type: "null"
        administrationLocation:
          anyOf:
            - type: string
            - type: "null"
          title: Administrationlocation
        frequency:
          anyOf:
            - type: string
            - type: "null"
          title: Frequency
        quantity:
          type: number
          title: Quantity
          default: 1.0
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
        lotNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Lotnumber
        id:
          type: string
          title: Id
      type: object
      required:
        - name
        - id
      title: MedicationTemplateSummary
      description: Schema for returning medication template information.
    MedicationUpdate:
      properties:
        name:
          anyOf:
            - type: string
            - type: "null"
          title: Name
        unit:
          anyOf:
            - $ref: "#/components/schemas/Unit"
            - type: "null"
        brandName:
          anyOf:
            - type: string
            - type: "null"
          title: Brandname
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        price:
          anyOf:
            - type: integer
            - type: "null"
          title: Price
        category:
          anyOf:
            - type: string
            - type: "null"
          title: Category
        internalNotes:
          anyOf:
            - type: string
            - type: "null"
          title: Internalnotes
        sortOrder:
          anyOf:
            - type: integer
            - type: "null"
          title: Sortorder
        taxable:
          anyOf:
            - type: boolean
            - type: "null"
          title: Taxable
        allowCustomPricing:
          anyOf:
            - type: boolean
            - type: "null"
          title: Allowcustompricing
        isUsedAsTemplate:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isusedastemplate
        templateAmount:
          anyOf:
            - type: number
            - type: "null"
          title: Templateamount
        templateAdministrationLocation:
          anyOf:
            - type: string
            - type: "null"
          title: Templateadministrationlocation
        templateFrequency:
          anyOf:
            - type: string
            - type: "null"
          title: Templatefrequency
        templateQuantity:
          anyOf:
            - type: number
            - type: "null"
          title: Templatequantity
        templateComment:
          anyOf:
            - type: string
            - type: "null"
          title: Templatecomment
        templateLotNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Templatelotnumber
      type: object
      title: MedicationUpdate
      description: Schema for updating a medication product.
    MedicationWithDoseCreate:
      properties:
        name:
          type: string
          title: Name
        unit:
          anyOf:
            - type: string
            - type: "null"
          title: Unit
        patientId:
          type: string
          title: Patientid
        providerId:
          anyOf:
            - type: string
            - type: "null"
          title: Providerid
        doseDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Dosedate
        sideEffects:
          anyOf:
            - type: string
            - type: "null"
          title: Sideeffects
        administrationLocation:
          anyOf:
            - type: string
            - type: "null"
          title: Administrationlocation
        amount:
          anyOf:
            - type: number
            - type: "null"
          title: Amount
        quantity:
          type: number
          title: Quantity
          default: 1.0
        frequency:
          anyOf:
            - type: string
            - type: "null"
          title: Frequency
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
        lotNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Lotnumber
        stockId:
          anyOf:
            - type: string
            - type: "null"
          title: Stockid
        noteId:
          anyOf:
            - type: string
            - type: "null"
          title: Noteid
        signedOffProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Signedoffproviderid
        signedOffDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Signedoffdate
        isUsedAsTemplate:
          type: boolean
          title: Isusedastemplate
          default: false
      type: object
      required:
        - name
        - patientId
      title: MedicationWithDoseCreate
      description:
        Schema for creating a medication administration when the medication
        product may not exist.
    MemberAnalyticsSummary:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the member
        patientId:
          type: string
          title: Patientid
          description: ID of the patient
        membershipId:
          type: string
          title: Membershipid
          description: ID of the membership
        membership:
          $ref: "#/components/schemas/MembershipTiny"
          description: Membership information
        soldByProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Soldbyproviderid
          description: ID of the provider who sold this membership
        startDate:
          type: string
          format: date-time
          title: Startdate
          description: When the patient joined the membership
        endDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Enddate
          description: When the membership ended (if applicable)
        nextBillingDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Nextbillingdate
          description: Next scheduled billing date (if custom)
        unfreezeDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Unfreezedate
          description: When the membership should be automatically unfrozen
        status:
          $ref: "#/components/schemas/MemberStatus"
          description: Current status of the membership
        autoRenew:
          type: boolean
          title: Autorenew
          description: Whether the membership auto-renews
        billingFrequency:
          $ref: "#/components/schemas/MembershipFrequency"
          description: Billing frequency for this member
        patient:
          $ref: "#/components/schemas/PatientSummaryWithLocation"
          description: Patient information with location
        charges:
          items:
            $ref: "#/components/schemas/ChargeTiny"
          type: array
          title: Charges
          description: Charges for this member
        soldByProvider:
          anyOf:
            - $ref: "#/components/schemas/ProviderCreator"
            - type: "null"
          description: Provider who sold this membership
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: When the member record was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: When the member record was last updated
        paymentMethod:
          anyOf:
            - $ref: "#/components/schemas/PaymentMethodSummary"
            - type: "null"
          description: Payment method for this member
      type: object
      required:
        - id
        - patientId
        - membershipId
        - membership
        - startDate
        - status
        - autoRenew
        - billingFrequency
        - patient
        - charges
      title: MemberAnalyticsSummary
      description:
        Member summary specifically for analytics with location data eagerly
        loaded.
    MemberBillingDateUpdate:
      properties:
        memberId:
          type: string
          title: Memberid
          description: ID of the member to update the billing date for
        nextBillingDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Nextbillingdate
          description: New next billing date (null to reset to automatic)
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
          description: Comment explaining the billing date change
      type: object
      required:
        - memberId
      title: MemberBillingDateUpdate
    MemberDeferredEnrollment:
      properties:
        patientId:
          type: string
          title: Patientid
          description: ID of the patient to enroll
        membershipId:
          type: string
          title: Membershipid
          description: ID of the membership to enroll in
        paymentMethodId:
          anyOf:
            - type: string
            - type: "null"
          title: Paymentmethodid
          description:
            ID of the payment method to use for future billing (not required
            for $0 memberships)
        firstBillingDate:
          type: string
          format: date-time
          title: Firstbillingdate
          description: Date when the first billing should occur
        startDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Startdate
          description: Start date for the membership (defaults to now)
        soldByProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Soldbyproviderid
          description: ID of the provider who sold this membership
      type: object
      required:
        - patientId
        - membershipId
        - firstBillingDate
      title: MemberDeferredEnrollment
      description: Schema for enrolling a member with deferred billing.
    MemberDetail:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the member
        patientId:
          type: string
          title: Patientid
          description: ID of the patient
        membershipId:
          type: string
          title: Membershipid
          description: ID of the membership
        membership:
          $ref: "#/components/schemas/MembershipDetail"
          description: Membership information
        soldByProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Soldbyproviderid
          description: ID of the provider who sold this membership
        startDate:
          type: string
          format: date-time
          title: Startdate
          description: When the patient joined the membership
        endDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Enddate
          description: When the membership ended (if applicable)
        nextBillingDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Nextbillingdate
          description: Next scheduled billing date (if custom)
        unfreezeDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Unfreezedate
          description: When the membership should be automatically unfrozen
        status:
          $ref: "#/components/schemas/MemberStatus"
          description: Current status of the membership
        autoRenew:
          type: boolean
          title: Autorenew
          description: Whether the membership auto-renews
        billingFrequency:
          $ref: "#/components/schemas/MembershipFrequency"
          description: Billing frequency for this member
        patient:
          $ref: "#/components/schemas/PatientSummary"
          description: Patient information
        charges:
          items:
            $ref: "#/components/schemas/ChargeTiny"
          type: array
          title: Charges
          description: Charges for this member
        soldByProvider:
          anyOf:
            - $ref: "#/components/schemas/ProviderCreator"
            - type: "null"
          description: Provider who sold this membership
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: When the member record was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: When the member record was last updated
        paymentMethod:
          anyOf:
            - $ref: "#/components/schemas/PaymentMethodSummary"
            - type: "null"
          description: Payment method for this member
        logs:
          items:
            $ref: "#/components/schemas/MemberLogTiny"
          type: array
          title: Logs
          description: Activity logs for this member
      type: object
      required:
        - id
        - patientId
        - membershipId
        - membership
        - startDate
        - status
        - autoRenew
        - billingFrequency
        - patient
        - charges
      title: MemberDetail
    MemberDiscountUpdate:
      properties:
        issuedDiscountId:
          type: string
          title: Issueddiscountid
          description: ID of the membership discount bank to update
        quantity:
          anyOf:
            - type: integer
            - type: "null"
          title: Quantity
          description: New quantity for the discount
        expiryDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Expirydate
          description: New expiry date for the discount
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
          description: Comment explaining the discount update
      type: object
      required:
        - issuedDiscountId
      title: MemberDiscountUpdate
    MemberLogDetail:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the log
        memberId:
          type: string
          title: Memberid
          description: ID of the member
        logType:
          $ref: "#/components/schemas/MemberLogType"
          description: Type of log
        creatorId:
          type: string
          title: Creatorid
          description: ID of the creator
        chargeId:
          anyOf:
            - type: string
            - type: "null"
          title: Chargeid
          description: ID of the charge
        paymentMethodId:
          anyOf:
            - type: string
            - type: "null"
          title: Paymentmethodid
          description: ID of the payment method
        charge:
          anyOf:
            - $ref: "#/components/schemas/ChargeSummary-Output"
            - type: "null"
          description: Charge details
        creator:
          $ref: "#/components/schemas/ProviderCreator"
          description: Creator details
        paymentMethod:
          anyOf:
            - $ref: "#/components/schemas/PaymentMethodSummary"
            - type: "null"
          description: Payment method details
        oldPaymentMethod:
          anyOf:
            - $ref: "#/components/schemas/PaymentMethodSummary"
            - type: "null"
          description: Old payment method details
        oldStatus:
          anyOf:
            - $ref: "#/components/schemas/MemberStatus"
            - type: "null"
          description: Old status
        newStatus:
          anyOf:
            - $ref: "#/components/schemas/MemberStatus"
            - type: "null"
          description: New status
        newQuantityRemaining:
          anyOf:
            - type: integer
            - type: "null"
          title: Newquantityremaining
          description: New quantity remaining
        oldQuantityRemaining:
          anyOf:
            - type: integer
            - type: "null"
          title: Oldquantityremaining
          description: Old quantity remaining
        newExpiryDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Newexpirydate
          description: New expiry date
        oldExpiryDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Oldexpirydate
          description: Old expiry date
        newBillingDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Newbillingdate
          description: New billing date
        oldBillingDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Oldbillingdate
          description: Old billing date
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
          description: Comment
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: When the log was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: When the log was last updated
      type: object
      required:
        - id
        - memberId
        - logType
        - creatorId
        - creator
      title: MemberLogDetail
    MemberLogTiny:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the log
        logType:
          $ref: "#/components/schemas/MemberLogType"
          description: Type of log
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: When the log was created
      type: object
      required:
        - id
        - logType
        - createdDate
      title: MemberLogTiny
    MemberLogType:
      type: string
      enum:
        - STATUS_CHANGE
        - MANUAL_PAYMENT
        - RENEWED
        - PAYMENT_METHOD_CHANGE
        - DISCOUNT_USED
        - DISCOUNT_RESTORED
        - DISCOUNT_MODIFIED
        - ENROLLED
        - BILLING_DATE_CHANGE
      title: MemberLogType
    MemberManualPayment:
      properties:
        memberId:
          type: string
          title: Memberid
          description: ID of the member to make a manual payment for
        paymentMethodId:
          anyOf:
            - type: string
            - type: "null"
          title: Paymentmethodid
          description: New payment method ID (optional, only updates if provided)
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
          description: Comment explaining the payment method change
      type: object
      required:
        - memberId
      title: MemberManualPayment
    MemberPaymentMethodUpdate:
      properties:
        memberId:
          type: string
          title: Memberid
          description: ID of the member to update the payment method for
        paymentMethodId:
          type: string
          title: Paymentmethodid
          description: New payment method ID
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
          description: Comment explaining the payment method change
        chargeImmediately:
          type: boolean
          title: Chargeimmediately
          description:
            Whether to immediately attempt to charge the member if they
            are delinquent
          default: false
      type: object
      required:
        - memberId
        - paymentMethodId
      title: MemberPaymentMethodUpdate
    MemberSoldByProviderUpdate:
      properties:
        memberId:
          type: string
          title: Memberid
          description: ID of the member to update
        providerId:
          anyOf:
            - type: string
            - type: "null"
          title: Providerid
          description: ID of the provider who sold this membership (null to unassign)
      type: object
      required:
        - memberId
      title: MemberSoldByProviderUpdate
    MemberStatus:
      type: string
      enum:
        - ACTIVE
        - EXPIRED
        - CANCELLED
        - DELINQUENT
        - FROZEN
      title: MemberStatus
    MemberStatusUpdate:
      properties:
        memberId:
          type: string
          title: Memberid
          description: ID of the member to update the status for
        status:
          $ref: "#/components/schemas/MemberStatus"
          description: New status for the member
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
          description: Comment explaining the status change
        unfreezeDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Unfreezedate
          description:
            When to automatically unfreeze the membership (only for FROZEN
            status)
      type: object
      required:
        - memberId
        - status
      title: MemberStatusUpdate
    MemberTiny:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the member
        membership:
          $ref: "#/components/schemas/MembershipTiny"
          description: Membership details
        startDate:
          type: string
          format: date-time
          title: Startdate
          description: When the patient joined the membership
        status:
          $ref: "#/components/schemas/MemberStatus"
          description: Current status of the membership
      type: object
      required:
        - id
        - membership
        - startDate
        - status
      title: MemberTiny
    MembershipDetail:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the membership
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
          description: External system identifier for the membership
        name:
          type: string
          title: Name
          description: Name of the membership
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Optional description of the membership
        price:
          type: integer
          title: Price
          description: Price of the membership in cents
        globalDiscountPercentage:
          anyOf:
            - type: number
            - type: "null"
          title: Globaldiscountpercentage
          description: Global discount percentage for all items
          default: 0
        patientCreditAmount:
          type: integer
          title: Patientcreditamount
          description: Amount of patient credit in cents
          default: 0
        patientCreditFrequency:
          $ref: "#/components/schemas/MembershipFrequency"
          description: Frequency of patient credit
          default: MONTHLY
        patientCreditExpiryDays:
          anyOf:
            - type: integer
            - type: "null"
          title: Patientcreditexpirydays
          description: Days until patient credit expires
        maxRenewals:
          anyOf:
            - type: integer
            - type: "null"
          title: Maxrenewals
          description: Maximum number of renewals (null means unlimited)
          default: 0
        autoRenew:
          type: boolean
          title: Autorenew
          description: Whether the membership auto-renews
          default: true
        setupFee:
          type: integer
          title: Setupfee
          description: Setup fee for the membership in cents
          default: 0
        freezeFee:
          type: integer
          title: Freezefee
          description: Fee to freeze the membership in cents
          default: 0
        minimumBillingCycles:
          type: integer
          title: Minimumbillingcycles
          description: Minimum number of billing cycles required
          default: 0
        billingFrequency:
          $ref: "#/components/schemas/MembershipFrequency"
          description: Billing frequency for the membership
          default: MONTHLY
        textColor:
          anyOf:
            - type: string
            - type: "null"
          title: Textcolor
          description: Text color for the membership
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the membership is archived
          default: false
        ruleSetId:
          anyOf:
            - type: string
            - type: "null"
          title: Rulesetid
          description: ID of the rule set for the membership
        discounts:
          anyOf:
            - items:
                $ref: "#/components/schemas/MembershipDiscount"
              type: array
            - type: "null"
          title: Discounts
          description: Optional discounts for the membership
        memberCount:
          anyOf:
            - type: integer
            - type: "null"
          title: Membercount
          description: Number of active members
          default: 0
        totalRevenue:
          anyOf:
            - type: integer
            - type: "null"
          title: Totalrevenue
          description: Total revenue from this membership
          default: 0
      type: object
      required:
        - name
        - price
      title: MembershipDetail
    MembershipDiscount:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the membership discount
        membershipId:
          type: string
          title: Membershipid
          description: ID of the membership this discount belongs to
        itemId:
          anyOf:
            - type: string
            - type: "null"
          title: Itemid
          description: ID of the specific item for this discount (includes packages)
        itemCategory:
          anyOf:
            - type: string
            - type: "null"
          title: Itemcategory
          description: Category name for items in this discount (references category.name)
        isPhysical:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isphysical
          description:
            Whether this discount applies to physical items (True), services
            (False), or neither (None)
        discountPercentage:
          anyOf:
            - type: number
            - type: "null"
          title: Discountpercentage
          description: Discount percentage
        discountAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Discountamount
          description: Discount amount in cents
        creditAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Creditamount
          description: Credit amount in cents
        quantity:
          anyOf:
            - type: integer
            - type: "null"
          title: Quantity
          description: Quantity for this discount
        rollover:
          type: boolean
          title: Rollover
          description: Whether to rollover unused quantities
          default: false
        rolloverExpiryDays:
          anyOf:
            - type: integer
            - type: "null"
          title: Rolloverexpirydays
          description: Days until rollover items expire
        neverExpire:
          type: boolean
          title: Neverexpire
          description: Whether rollover items never expire
          default: false
        group:
          anyOf:
            - type: string
            - type: "null"
          title: Group
          description: Group for this discount
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the discount is archived
          default: false
      type: object
      required:
        - membershipId
      title: MembershipDiscount
    MembershipDiscountDetail:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the membership discount
        membershipId:
          type: string
          title: Membershipid
          description: ID of the membership this discount belongs to
        itemId:
          anyOf:
            - type: string
            - type: "null"
          title: Itemid
          description: ID of the specific item for this discount (includes packages)
        itemCategory:
          anyOf:
            - type: string
            - type: "null"
          title: Itemcategory
          description: Category name for items in this discount (references category.name)
        isPhysical:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isphysical
          description:
            Whether this discount applies to physical items (True), services
            (False), or neither (None)
        discountPercentage:
          anyOf:
            - type: number
            - type: "null"
          title: Discountpercentage
          description: Discount percentage
        discountAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Discountamount
          description: Discount amount in cents
        creditAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Creditamount
          description: Credit amount in cents
        quantity:
          anyOf:
            - type: integer
            - type: "null"
          title: Quantity
          description: Quantity for this discount
        rollover:
          type: boolean
          title: Rollover
          description: Whether to rollover unused quantities
          default: false
        rolloverExpiryDays:
          anyOf:
            - type: integer
            - type: "null"
          title: Rolloverexpirydays
          description: Days until rollover items expire
        neverExpire:
          type: boolean
          title: Neverexpire
          description: Whether rollover items never expire
          default: false
        group:
          anyOf:
            - type: string
            - type: "null"
          title: Group
          description: Group for this discount
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the discount is archived
          default: false
        item:
          anyOf:
            - $ref: "#/components/schemas/ItemTiny"
            - type: "null"
          description: Item that has been used from this discount (includes packages)
      type: object
      required:
        - membershipId
      title: MembershipDiscountDetail
    MembershipFrequency:
      type: string
      enum:
        - DAILY
        - WEEKLY
        - BIWEEKLY
        - MONTHLY
        - QUARTERLY
        - SEMI_ANNUALLY
        - YEARLY
      title: MembershipFrequency
    MembershipTiny:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the membership
        name:
          type: string
          title: Name
          description: Name of the membership
        textColor:
          anyOf:
            - type: string
            - type: "null"
          title: Textcolor
          description: Text color of the membership
      type: object
      required:
        - id
        - name
      title: MembershipTiny
    MerchantAccount:
      properties:
        id:
          type: string
          title: Id
          description: The rainforest merchant account ID
        name:
          type: string
          title: Name
          description: Friendly name for the merchant account
        isDefault:
          type: boolean
          title: Isdefault
          description: Whether this is the default merchant account for the tenant
        cardProcessingFee:
          type: number
          title: Cardprocessingfee
          description: Card processing fee
        perTransactionFee:
          type: integer
          title: Pertransactionfee
          description: Per transaction fee
        inPersonCardProcessingFee:
          type: number
          title: Inpersoncardprocessingfee
          description: In-person card processing fee
        inPersonPerTransactionFee:
          type: integer
          title: Inpersonpertransactionfee
          description: In-person per transaction fee
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time the merchant account was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: The date and time the merchant account was last updated
        locations:
          anyOf:
            - items:
                $ref: "#/components/schemas/LocationSummary"
              type: array
            - type: "null"
          title: Locations
          description: The locations associated with the merchant account
      type: object
      required:
        - id
        - name
        - isDefault
        - cardProcessingFee
        - perTransactionFee
        - inPersonCardProcessingFee
        - inPersonPerTransactionFee
        - createdDate
      title: MerchantAccount
      description: Basic merchant account information.
    MerchantAccountFilters:
      properties:
        id:
          anyOf:
            - type: string
            - type: "null"
          title: Id
          description: The unique identifier for the merchant account
        name:
          anyOf:
            - type: string
            - type: "null"
          title: Name
          description: The name of the merchant account
        isDefault:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isdefault
          description: Whether the merchant account is the default
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: The location ID
      type: object
      title: MerchantAccountFilters
      description: Filters for merchant accounts.
    MerchantAccountUpdate:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the merchant account
        name:
          anyOf:
            - type: string
            - type: "null"
          title: Name
          description: Friendly name for the merchant account
        isDefault:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isdefault
          description: Whether the merchant account is the default
        locationIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Locationids
          description: The location IDs to associate with the merchant account
      type: object
      required:
        - id
      title: MerchantAccountUpdate
      description: Update merchant account information.
    MerchantFees:
      properties:
        totalAmount:
          $ref: "#/components/schemas/TotalAmount"
      type: object
      required:
        - totalAmount
      title: MerchantFees
      description: The fees for the merchant
    MergePatient:
      properties:
        keepId:
          type: string
          title: Keepid
        mergeIds:
          items:
            type: string
          type: array
          title: Mergeids
        voidOtherCharges:
          type: boolean
          title: Voidothercharges
          default: false
      type: object
      required:
        - keepId
        - mergeIds
      title: MergePatient
    MergeSummary:
      properties:
        keep:
          $ref: "#/components/schemas/PatientSummary"
        merge:
          items:
            $ref: "#/components/schemas/PatientSummary"
          type: array
          title: Merge
        voidOtherCharges:
          type: boolean
          title: Voidothercharges
          default: false
      type: object
      required:
        - keep
        - merge
      title: MergeSummary
    MessageStatus:
      type: string
      enum:
        - CREATED
        - QUEUED
        - SCHEDULED
        - SENDING
        - SENT
        - UNDELIVERED
        - DELIVERED
        - READ
        - FAILED
        - EXPIRED
        - OPTED_OUT
      title: MessageStatus
    MessageSummary:
      properties:
        id:
          type: string
          title: Id
        messageUid:
          anyOf:
            - type: string
            - type: "null"
          title: Messageuid
        content:
          anyOf:
            - type: string
            - type: "null"
          title: Content
        chatId:
          type: string
          title: Chatid
        status:
          $ref: "#/components/schemas/MessageStatus"
        errorMessage:
          anyOf:
            - type: string
            - type: "null"
          title: Errormessage
        sendoMessageId:
          anyOf:
            - type: string
            - type: "null"
          title: Sendomessageid
        sender:
          $ref: "#/components/schemas/UserTiny"
        functionCall:
          anyOf:
            - type: object
            - type: "null"
          title: Functioncall
        createdDate:
          type: string
          format: date-time
          title: Createddate
        files:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Files
          default: []
        suggestedMessages:
          anyOf:
            - items:
                $ref: "#/components/schemas/SuggestedMessageSummary"
              type: array
            - type: "null"
          title: Suggestedmessages
        toolCalls:
          anyOf:
            - items:
                $ref: "#/components/schemas/ToolCallSummary"
              type: array
            - type: "null"
          title: Toolcalls
        eventId:
          anyOf:
            - type: string
            - type: "null"
          title: Eventid
        type:
          anyOf:
            - $ref: "#/components/schemas/MessageType"
            - type: "null"
      type: object
      required:
        - id
        - chatId
        - status
        - sender
        - createdDate
      title: MessageSummary
    MessageType:
      type: string
      enum:
        - REMINDER
        - OVERRIDE
        - FOLLOW_UP
        - EXPIRED
        - CONFIRMATION
        - INTRODUCTORY
        - CANCELLED
        - UPDATE
      title: MessageType
    Module:
      type: string
      enum:
        - TEXTING
        - CALLING
        - PAYMENTS
        - SCRIBE
        - SCHEDULING
        - FORMS
        - INVENTORY
        - LOCATIONS
        - CALENDAR_PATIENT_STATUS
        - SPAKINECT
        - SCRIBE_MEDICAL_CODES
      title: Module
    MovePaymentRequest:
      properties:
        paymentId:
          type: string
          title: Paymentid
          description: The ID of the payment to move.
        newPatientId:
          type: string
          title: Newpatientid
          description: The ID of the patient to move the payment to.
      type: object
      required:
        - paymentId
        - newPatientId
      title: MovePaymentRequest
      description: Request to move a payment from one patient to another.
    MovePaymentToLocationRequest:
      properties:
        paymentId:
          type: string
          title: Paymentid
          description: The ID of the payment to move.
        newLocationId:
          type: string
          title: Newlocationid
          description: The ID of the location to move the payment to.
      type: object
      required:
        - paymentId
        - newLocationId
      title: MovePaymentToLocationRequest
      description: Request to move a payment from one location to another.
    MultiSelect:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        options:
          items:
            type: string
          type: array
          title: Options
        maxSelections:
          anyOf:
            - type: integer
            - type: "null"
          title: Maxselections
        minSelections:
          anyOf:
            - type: integer
            - type: "null"
          title: Minselections
      type: object
      required:
        - name
        - options
      title: MultiSelect
    NoteAttachmentFromUrlRequest:
      properties:
        url:
          type: string
          title: Url
        name:
          anyOf:
            - type: string
            - type: "null"
          title: Name
      type: object
      required:
        - url
      title: NoteAttachmentFromUrlRequest
    NoteAttachmentNameUpdate:
      properties:
        name:
          type: string
          title: Name
      type: object
      required:
        - name
      title: NoteAttachmentNameUpdate
    NoteAttachmentNote:
      properties:
        id:
          type: string
          title: Id
        createdDate:
          type: string
          format: date-time
          title: Createddate
      type: object
      required:
        - id
        - createdDate
      title: NoteAttachmentNote
    NoteAttachmentResponse:
      properties:
        id:
          type: string
          title: Id
        noteId:
          anyOf:
            - type: string
            - type: "null"
          title: Noteid
        gcsPath:
          type: string
          title: Gcspath
        originalFilename:
          type: string
          title: Originalfilename
        signedUrl:
          type: string
          title: Signedurl
        thumbnailSignedUrl:
          anyOf:
            - type: string
            - type: "null"
          title: Thumbnailsignedurl
        annotations:
          anyOf:
            - items:
                type: object
              type: array
            - type: "null"
          title: Annotations
        name:
          type: string
          title: Name
        createdDate:
          type: string
          format: date-time
          title: Createddate
        patient:
          anyOf:
            - $ref: "#/components/schemas/PatientSummary"
            - type: "null"
        note:
          anyOf:
            - $ref: "#/components/schemas/NoteAttachmentNote"
            - type: "null"
      type: object
      required:
        - id
        - gcsPath
        - originalFilename
        - signedUrl
        - name
        - createdDate
      title: NoteAttachmentResponse
    NoteChatParams:
      properties:
        parentNoteId:
          type: string
          title: Parentnoteid
        providerId:
          type: string
          title: Providerid
        message:
          type: string
          title: Message
      type: object
      required:
        - parentNoteId
        - providerId
        - message
      title: NoteChatParams
    NoteCreate:
      properties:
        patientId:
          type: string
          title: Patientid
        providerId:
          type: string
          title: Providerid
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
        eventId:
          anyOf:
            - type: string
            - type: "null"
          title: Eventid
        parentNoteId:
          anyOf:
            - type: string
            - type: "null"
          title: Parentnoteid
        content:
          anyOf:
            - type: string
            - type: "null"
          title: Content
        aiGenerated:
          type: boolean
          title: Aigenerated
          default: false
        noteTranscriptId:
          anyOf:
            - type: string
            - type: "null"
          title: Notetranscriptid
        template:
          anyOf:
            - $ref: "#/components/schemas/NoteTemplateTableItem"
            - type: "null"
        prompt:
          anyOf:
            - type: string
            - type: "null"
          title: Prompt
        icd10Codes:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Icd10Codes
        cptCodes:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Cptcodes
      type: object
      required:
        - patientId
        - providerId
      title: NoteCreate
    NoteDetail:
      properties:
        id:
          type: string
          title: Id
        eventId:
          anyOf:
            - type: string
            - type: "null"
          title: Eventid
        parentNoteId:
          type: string
          title: Parentnoteid
        duration:
          anyOf:
            - type: integer
            - type: "null"
          title: Duration
        version:
          type: integer
          title: Version
        currentVersion:
          type: integer
          title: Currentversion
        content:
          anyOf:
            - type: string
            - type: "null"
          title: Content
        summary:
          anyOf:
            - type: string
            - type: "null"
          title: Summary
        aiGenerated:
          type: boolean
          title: Aigenerated
        template:
          anyOf:
            - $ref: "#/components/schemas/NoteTemplateTableItem"
            - type: "null"
        patient:
          $ref: "#/components/schemas/PatientDetail"
        createdDate:
          type: string
          format: date-time
          title: Createddate
        transcript:
          anyOf:
            - $ref: "#/components/schemas/NoteTranscriptSummary"
            - type: "null"
        providers:
          items:
            $ref: "#/components/schemas/ProviderTiny"
          type: array
          title: Providers
          default: []
        sourceDocuments:
          items:
            $ref: "#/components/schemas/DocumentSummary"
          type: array
          title: Sourcedocuments
          default: []
        icd10Codes:
          anyOf:
            - items:
                $ref: "#/components/schemas/ICDTenCode"
              type: array
            - type: "null"
          title: Icd10Codes
        cptCodes:
          anyOf:
            - items:
                $ref: "#/components/schemas/CPTCode"
              type: array
            - type: "null"
          title: Cptcodes
        signedOffProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Signedoffproviderid
        signedOffDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Signedoffdate
      type: object
      required:
        - id
        - parentNoteId
        - version
        - currentVersion
        - aiGenerated
        - patient
        - createdDate
      title: NoteDetail
    NoteGroupItem:
      properties:
        key:
          type: string
          title: Key
        label:
          anyOf:
            - type: string
            - type: "null"
          title: Label
        total:
          type: integer
          title: Total
      type: object
      required:
        - key
        - total
      title: NoteGroupItem
      description: |-
        Represents a single group bucket for grouped note listings.

        key: The group key value (e.g., patient_id, template_id). For missing values
             we use the string "none" to simplify client handling.
        label: Optional human-readable label for the key (e.g., patient full name, template name).
        total: Number of rows that match current filters within this group.
    NoteGroupSummary:
      properties:
        groupKey:
          type: string
          title: Groupkey
          description: The group key this summary belongs to
        totalNotes:
          type: integer
          title: Totalnotes
          description: Total number of notes in this group
        providerCount:
          type: integer
          title: Providercount
          description: Number of providers in this group
        uniquePatients:
          type: integer
          title: Uniquepatients
          description: Number of unique patients
        uniqueLocations:
          type: integer
          title: Uniquelocations
          description: Number of unique locations
        earliestFirstNoteDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Earliestfirstnotedate
          description: Earliest first note date across all providers
        latestLastNoteDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Latestlastnotedate
          description: Latest last note date across all providers
      type: object
      required:
        - groupKey
        - totalNotes
        - providerCount
        - uniquePatients
        - uniqueLocations
      title: NoteGroupSummary
      description: Summary statistics for a specific group.
    NoteListItem:
      properties:
        id:
          type: string
          title: Id
        content:
          anyOf:
            - type: string
            - type: "null"
          title: Content
        summary:
          anyOf:
            - type: string
            - type: "null"
          title: Summary
        templateId:
          anyOf:
            - type: string
            - type: "null"
          title: Templateid
        createdDate:
          type: string
          format: date-time
          title: Createddate
        visitDate:
          type: string
          format: date-time
          title: Visitdate
        lastEditedDate:
          type: string
          format: date-time
          title: Lastediteddate
        aiGenerated:
          type: boolean
          title: Aigenerated
        patient:
          $ref: "#/components/schemas/PatientSummary"
        providers:
          items:
            $ref: "#/components/schemas/ProviderTiny"
          type: array
          title: Providers
          default: []
        version:
          type: integer
          title: Version
        sourceDocuments:
          items:
            $ref: "#/components/schemas/DocumentSummary"
          type: array
          title: Sourcedocuments
          default: []
        signedOffProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Signedoffproviderid
        signedOffDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Signedoffdate
      type: object
      required:
        - id
        - createdDate
        - visitDate
        - lastEditedDate
        - aiGenerated
        - patient
        - version
      title: NoteListItem
    NoteScribeResponse:
      properties:
        id:
          type: string
          title: Id
        content:
          $ref: "#/components/schemas/DefaultNoteContent"
        template:
          anyOf:
            - $ref: "#/components/schemas/NoteTemplateTableItem"
            - type: "null"
      type: object
      required:
        - id
        - content
      title: NoteScribeResponse
    NoteSummary:
      properties:
        id:
          type: string
          title: Id
        patientNames:
          items:
            type: string
          type: array
          title: Patientnames
          default: []
        providerNames:
          items:
            type: string
          type: array
          title: Providernames
          default: []
        version:
          type: integer
          title: Version
        createdDate:
          type: string
          format: date-time
          title: Createddate
        signedOffProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Signedoffproviderid
        signedOffDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Signedoffdate
      type: object
      required:
        - id
        - version
        - createdDate
      title: NoteSummary
    NoteTemplateAttachmentCreate:
      properties:
        name:
          type: string
          title: Name
        gcsPath:
          anyOf:
            - type: string
            - type: "null"
          title: Gcspath
      type: object
      required:
        - name
      title: NoteTemplateAttachmentCreate
    NoteTemplateAttachmentResponse:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        gcsPath:
          anyOf:
            - type: string
            - type: "null"
          title: Gcspath
        signedUrl:
          anyOf:
            - type: string
            - type: "null"
          title: Signedurl
        createdDate:
          type: string
          format: date-time
          title: Createddate
      type: object
      required:
        - id
        - name
        - createdDate
      title: NoteTemplateAttachmentResponse
    NoteTemplateCreate:
      properties:
        name:
          type: string
          title: Name
        contentTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Contenttemplate
        attachments:
          items:
            $ref: "#/components/schemas/NoteTemplateAttachmentCreate"
          type: array
          title: Attachments
          default: []
      type: object
      required:
        - name
      title: NoteTemplateCreate
    NoteTemplateTableItem:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        contentTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Contenttemplate
        attachments:
          items:
            $ref: "#/components/schemas/NoteTemplateAttachmentResponse"
          type: array
          title: Attachments
          default: []
        createdDate:
          type: string
          format: date-time
          title: Createddate
      type: object
      required:
        - id
        - name
        - createdDate
      title: NoteTemplateTableItem
    NoteTemplateUpdate:
      properties:
        id:
          type: string
          title: Id
        name:
          anyOf:
            - type: string
            - type: "null"
          title: Name
        contentTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Contenttemplate
        attachments:
          items:
            $ref: "#/components/schemas/NoteTemplateAttachmentCreate"
          type: array
          title: Attachments
          default: []
      type: object
      required:
        - id
      title: NoteTemplateUpdate
    NoteTranscriptSummary:
      properties:
        id:
          type: string
          title: Id
        transcript:
          type: string
          title: Transcript
        duration:
          anyOf:
            - type: integer
            - type: "null"
          title: Duration
        createdDate:
          type: string
          format: date-time
          title: Createddate
      type: object
      required:
        - id
        - transcript
        - createdDate
      title: NoteTranscriptSummary
    NotesBreakdownItem:
      properties:
        providerName:
          type: string
          title: Providername
          description: Provider full name
        providerId:
          type: string
          title: Providerid
          description: Provider ID
        totalNotes:
          type: integer
          title: Totalnotes
          description: Total number of notes
        uniquePatients:
          type: integer
          title: Uniquepatients
          description: Number of unique patients
        uniqueLocations:
          type: integer
          title: Uniquelocations
          description: Number of unique locations
        firstNoteDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Firstnotedate
          description: Date of first note
        lastNoteDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Lastnotedate
          description: Date of last note
      type: object
      required:
        - providerName
        - providerId
        - totalNotes
        - uniquePatients
        - uniqueLocations
      title: NotesBreakdownItem
      description: Individual notes breakdown item aggregated by provider.
    Notification:
      properties:
        message:
          type: string
          title: Message
        data:
          type: object
          title: Data
          default: {}
        chatId:
          anyOf:
            - type: string
            - type: "null"
          title: Chatid
        callId:
          anyOf:
            - type: string
            - type: "null"
          title: Callid
        messageId:
          anyOf:
            - type: string
            - type: "null"
          title: Messageid
      type: object
      required:
        - message
      title: Notification
    NotificationMethod:
      type: string
      enum:
        - SMS
        - EMAIL
        - IN_APP
      title: NotificationMethod
      description: Communication methods for notification preferences.
    NotificationPreferenceCreate:
      properties:
        alertType:
          $ref: "#/components/schemas/AlertType"
          description: The type of alert to subscribe to.
        communicationMethod:
          $ref: "#/components/schemas/NotificationMethod"
          description: The method to receive notifications.
        locationFilterEnabled:
          type: boolean
          title: Locationfilterenabled
          description:
            Whether to only receive notifications for alerts from the current
            location.
          default: false
      type: object
      required:
        - alertType
        - communicationMethod
      title: NotificationPreferenceCreate
      description: Schema for creating a notification preference.
    NotificationPreferenceSummary:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the notification preference.
        userId:
          type: string
          title: Userid
          description: The unique identifier of the user.
        alertType:
          $ref: "#/components/schemas/AlertType"
          description: The type of alert.
        communicationMethod:
          $ref: "#/components/schemas/NotificationMethod"
          description: The method to receive notifications.
        locationFilterEnabled:
          type: boolean
          title: Locationfilterenabled
          description:
            Whether to only receive notifications for alerts from the current
            location.
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time when the preference was created.
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: The date and time when the preference was last updated.
      type: object
      required:
        - id
        - userId
        - alertType
        - communicationMethod
        - locationFilterEnabled
        - createdDate
      title: NotificationPreferenceSummary
      description: Schema for a notification preference summary.
    NotificationPreferencesRequest:
      properties:
        preferences:
          items:
            $ref: "#/components/schemas/NotificationPreferenceCreate"
          type: array
          title: Preferences
          description: List of notification preferences to set.
      type: object
      required:
        - preferences
      title: NotificationPreferencesRequest
      description: Schema for bulk creating/updating notification preferences.
    NotificationPreferencesResponse:
      properties:
        preferences:
          items:
            $ref: "#/components/schemas/NotificationPreferenceSummary"
          type: array
          title: Preferences
          description: List of user's notification preferences.
        availableAlertTypes:
          items:
            $ref: "#/components/schemas/AlertType"
          type: array
          title: Availablealerttypes
          description: List of all available alert types.
      type: object
      required:
        - preferences
        - availableAlertTypes
      title: NotificationPreferencesResponse
      description: Schema for notification preferences response.
    Number:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        placeholder:
          type: string
          title: Placeholder
      type: object
      required:
        - name
        - placeholder
      title: Number
    POSDevice:
      properties:
        deviceRegistrationId:
          type: string
          title: Deviceregistrationid
        deviceName:
          type: string
          title: Devicename
        make:
          type: string
          title: Make
        model:
          type: string
          title: Model
        merchantAccountId:
          type: string
          title: Merchantaccountid
        locationId:
          type: string
          title: Locationid
      type: object
      required:
        - deviceRegistrationId
        - deviceName
        - make
        - model
        - merchantAccountId
        - locationId
      title: POSDevice
    PVerifyPayerListResponse:
      properties:
        payerCode:
          type: string
          title: Payercode
        payerName:
          type: string
          title: Payername
        isActive:
          type: boolean
          title: Isactive
        isSupportingEligibility:
          type: boolean
          title: Issupportingeligibility
        isSupportingClaims:
          type: boolean
          title: Issupportingclaims
        isEDIPayer:
          type: boolean
          title: Isedipayer
      type: object
      required:
        - payerCode
        - payerName
        - isActive
        - isSupportingEligibility
        - isSupportingClaims
        - isEDIPayer
      title: PVerifyPayerListResponse
    Package-Input:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the package
        name:
          type: string
          title: Name
          description: Name of the package
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Optional description of the package
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the package is archived
          default: false
        price:
          type: integer
          title: Price
          description: Price of the package in cents
        internalNotes:
          anyOf:
            - type: string
            - type: "null"
          title: Internalnotes
          description: Optional internal notes for the package
        items:
          anyOf:
            - items:
                $ref: "#/components/schemas/PackageItem-Input"
              type: array
            - type: "null"
          title: Items
          description: Items included in the package
        category:
          anyOf:
            - type: string
            - type: "null"
          title: Category
          description: Category name (references category.name)
      type: object
      required:
        - name
        - price
      title: Package
    Package-Output:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the package
        name:
          type: string
          title: Name
          description: Name of the package
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Optional description of the package
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the package is archived
          default: false
        price:
          type: integer
          title: Price
          description: Price of the package in cents
        internalNotes:
          anyOf:
            - type: string
            - type: "null"
          title: Internalnotes
          description: Optional internal notes for the package
        items:
          anyOf:
            - items:
                $ref: "#/components/schemas/PackageItem-Output"
              type: array
            - type: "null"
          title: Items
          description: Items included in the package
        category:
          anyOf:
            - type: string
            - type: "null"
          title: Category
          description: Category name (references category.name)
      type: object
      required:
        - name
        - price
      title: Package
    PackageDetail:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the package
        name:
          type: string
          title: Name
          description: Name of the package
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Optional description of the package
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the package is archived
          default: false
        price:
          type: integer
          title: Price
          description: Price of the package in cents
        internalNotes:
          anyOf:
            - type: string
            - type: "null"
          title: Internalnotes
          description: Optional internal notes for the package
        items:
          anyOf:
            - items:
                $ref: "#/components/schemas/PackageItem-Output"
              type: array
            - type: "null"
          title: Items
          description: Items included in the package
        category:
          anyOf:
            - type: string
            - type: "null"
          title: Category
          description: Category name (references category.name)
        numberOfActivePatients:
          type: integer
          title: Numberofactivepatients
          description: Number of active patients on this package
          default: 0
        numberOfPatients:
          type: integer
          title: Numberofpatients
          description: Total number of patients who have purchased this package
          default: 0
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: Date the package was created
      type: object
      required:
        - name
        - price
      title: PackageDetail
    PackageItem-Input:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the package item
        packageId:
          type: string
          title: Packageid
          description: Package ID this item belongs to
        itemId:
          type: string
          title: Itemid
          description: Item ID for this package item
        quantity:
          anyOf:
            - type: integer
            - type: "null"
          title: Quantity
          description: Quantity of the item in the package
        price:
          type: integer
          title: Price
          description: Price of the item in the package in cents
        item:
          anyOf:
            - $ref: "#/components/schemas/ItemTiny"
            - type: "null"
          description: Details of the item
      type: object
      required:
        - packageId
        - itemId
        - price
      title: PackageItem
    PackageItem-Output:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the package item
        packageId:
          type: string
          title: Packageid
          description: Package ID this item belongs to
        itemId:
          type: string
          title: Itemid
          description: Item ID for this package item
        quantity:
          anyOf:
            - type: integer
            - type: "null"
          title: Quantity
          description: Quantity of the item in the package
        price:
          type: integer
          title: Price
          description: Price of the item in the package in cents
        item:
          anyOf:
            - $ref: "#/components/schemas/ItemTiny"
            - type: "null"
          description: Details of the item
      type: object
      required:
        - packageId
        - itemId
        - price
      title: PackageItem
    PackageItemUsage:
      properties:
        price:
          type: integer
          title: Price
        quantity:
          type: integer
          title: Quantity
        quantityRemaining:
          type: integer
          title: Quantityremaining
        item:
          $ref: "#/components/schemas/ItemTiny"
      type: object
      required:
        - price
        - quantity
        - quantityRemaining
        - item
      title: PackageItemUsage
    PackageStatus:
      type: string
      enum:
        - USED
        - ACTIVE
        - CANCELLED
      title: PackageStatus
    PackageTiny:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the package
        name:
          type: string
          title: Name
          description: Name of the package
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Optional description of the package
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the package is archived
          default: false
        price:
          type: integer
          title: Price
          description: Price of the package in cents
      type: object
      required:
        - name
        - price
      title: PackageTiny
    Page_AlertSummary_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/AlertSummary"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[AlertSummary]
    Page_AnalyticsDashboardSchema_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/AnalyticsDashboardSchema"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[AnalyticsDashboardSchema]
    Page_CallTable_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/CallTable"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[CallTable]
    Page_CartSummary_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/CartSummary"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[CartSummary]
    Page_ChargeTable_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/ChargeTable-Output"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[ChargeTable]
    Page_ChatSummary_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/ChatSummary"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[ChatSummary]
    Page_CommissionReportSummary_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/CommissionReportSummary"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[CommissionReportSummary]
    Page_CommissionStructureDetail_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/CommissionStructureDetail-Output"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[CommissionStructureDetail]
    Page_DepositDetails_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/DepositDetails"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[DepositDetails]
    Page_DocumentSummary_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/DocumentSummary"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[DocumentSummary]
    Page_EventIconSummary_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/EventIconSummary"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[EventIconSummary]
    Page_InvoiceSetForTable_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/InvoiceSetForTable"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[InvoiceSetForTable]
    Page_ItemDetail_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/ItemDetail"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[ItemDetail]
    Page_LocationDetail_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/LocationDetail"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[LocationDetail]
    Page_MemberAnalyticsSummary_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/MemberAnalyticsSummary"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[MemberAnalyticsSummary]
    Page_MemberDetail_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/MemberDetail"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[MemberDetail]
    Page_MembershipDetail_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/MembershipDetail"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[MembershipDetail]
    Page_NoteListItem_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/NoteListItem"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[NoteListItem]
    Page_NotesBreakdownItem_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/NotesBreakdownItem"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[NotesBreakdownItem]
    Page_PackageDetail_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/PackageDetail"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[PackageDetail]
    Page_PatientCreditSummary_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/PatientCreditSummary"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[PatientCreditSummary]
    Page_PatientPendingIntake_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/PatientPendingIntake"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[PatientPendingIntake]
    Page_PatientSubmission_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/PatientSubmission"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[PatientSubmission]
    Page_PatientTable_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/PatientTable"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[PatientTable]
    Page_PatientTagSummary_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/PatientTagSummary"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[PatientTagSummary]
    Page_PatientUploadErrors_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/PatientUploadErrors"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[PatientUploadErrors]
    Page_PatientUpload_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/PatientUpload"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[PatientUpload]
    Page_PaymentBreakdownItem_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/PaymentBreakdownItem"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[PaymentBreakdownItem]
    Page_PaymentTableItem_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/PaymentTableItem"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[PaymentTableItem]
    Page_ProviderEarningsItem_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/ProviderEarningsItem"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[ProviderEarningsItem]
    Page_ProviderPaymentDetail_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/ProviderPaymentDetail"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[ProviderPaymentDetail]
    Page_QuoteSummary_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/QuoteSummary"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[QuoteSummary]
    Page_RevenueBreakdownItem_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/RevenueBreakdownItem"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[RevenueBreakdownItem]
    Page_StockDetail_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/StockDetail-Output"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[StockDetail]
    Page_Supplier_:
      properties:
        data:
          items:
            $ref: "#/components/schemas/Supplier"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: Page[Supplier]
    PatientAnswer:
      properties:
        questionId:
          type: string
          title: Questionid
        data:
          anyOf:
            - type: string
            - type: boolean
            - items:
                type: string
              type: array
            - additionalProperties:
                anyOf:
                  - type: string
                  - type: "null"
              type: object
            - additionalProperties:
                anyOf:
                  - type: integer
                  - type: "null"
              type: object
            - type: number
            - type: "null"
          title: Data
      type: object
      required:
        - questionId
        - data
      title: PatientAnswer
    PatientBankedItem:
      properties:
        id:
          type: string
          title: Id
        itemId:
          type: string
          title: Itemid
        patientId:
          type: string
          title: Patientid
        createdByChargeItemId:
          type: string
          title: Createdbychargeitemid
        quantity:
          type: integer
          title: Quantity
        quantityRemaining:
          type: integer
          title: Quantityremaining
        createdDate:
          type: string
          format: date-time
          title: Createddate
        item:
          $ref: "#/components/schemas/ItemTiny"
        price:
          type: integer
          title: Price
        usages:
          items:
            $ref: "#/components/schemas/BankedItemUsage"
          type: array
          title: Usages
          description: List of charges that used this banked item
      type: object
      required:
        - id
        - itemId
        - patientId
        - createdByChargeItemId
        - quantity
        - quantityRemaining
        - createdDate
        - item
        - price
      title: PatientBankedItem
    PatientChart:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the user.
        firstName:
          anyOf:
            - type: string
            - type: "null"
          title: Firstname
          description: The user's first name.
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
          description: The user's last name.
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
          description: The user's phone number.
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
          description: The user's email address.
        type:
          $ref: "#/components/schemas/UserType"
          description: The type of user.
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: The location of the user.
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
          description: The user's external identifier if available.
        address:
          anyOf:
            - type: string
            - type: "null"
          title: Address
          description: The user's primary address.
        addressLineTwo:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslinetwo
          description: Additional address information.
        city:
          anyOf:
            - type: string
            - type: "null"
          title: City
          description: The city of the user's address.
        state:
          anyOf:
            - type: string
            - type: "null"
          title: State
          description: The state of the user's address.
        zipCode:
          anyOf:
            - type: string
            - type: "null"
          title: Zipcode
          description: The postal code of the user's address.
        country:
          anyOf:
            - type: string
            - type: "null"
          title: Country
          description: The country of the user's address.
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time when the user was created.
        addressValid:
          anyOf:
            - type: boolean
            - type: "null"
          title: Addressvalid
          description: Whether the user's address is valid.
        meta:
          anyOf:
            - type: object
            - type: "null"
          title: Meta
          description: Any additional metadata about the user relevant to your system.
        isArchived:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isarchived
          description: Whether the user is archived.
        primaryLocationId:
          anyOf:
            - type: string
            - type: "null"
          title: Primarylocationid
          description: The primary location of the user.
        gender:
          anyOf:
            - type: string
            - type: "null"
          title: Gender
          description: The gender of the patient.
        dateOfBirth:
          anyOf:
            - type: string
              format: date
            - type: "null"
          title: Dateofbirth
          description: The date of birth of the patient.
        patientMedications:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Patientmedications
          description: List of patient's self-reported medications.
        onSchedulingBlacklist:
          anyOf:
            - type: boolean
            - type: "null"
          title: Onschedulingblacklist
          description: Whether the patient is on the scheduling blacklist.
        surchargeDisabled:
          anyOf:
            - type: boolean
            - type: "null"
          title: Surchargedisabled
          description: Whether surcharges are disabled for this patient.
        tags:
          anyOf:
            - items:
                $ref: "#/components/schemas/PatientTagSummary"
              type: array
            - type: "null"
          title: Tags
          description: List of patient tags
        creditBalance:
          anyOf:
            - type: integer
            - type: "null"
          title: Creditbalance
          description: Patient's credit balance in cents.
        preferredProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Preferredproviderid
          description: The preferred provider ID for this patient.
        memberships:
          anyOf:
            - items:
                $ref: "#/components/schemas/MemberTiny"
              type: array
            - type: "null"
          title: Memberships
          description: List of memberships for this patient
        goalWeight:
          anyOf:
            - type: number
            - type: "null"
          title: Goalweight
          description: The goal weight of the patient.
        measurements:
          anyOf:
            - items:
                $ref: "#/components/schemas/MeasurementSummary"
              type: array
            - type: "null"
          title: Measurements
          description: List of patient's measurements.
        medications:
          anyOf:
            - items:
                $ref: "#/components/schemas/DeprecatedMedicationSummary"
              type: array
            - type: "null"
          title: Medications
          description: List of provider-administered medication doses.
        optedOutOfSms:
          anyOf:
            - type: boolean
            - type: "null"
          title: Optedoutofsms
          description: Whether patient has opted out of SMS
        appointmentCount:
          anyOf:
            - type: integer
            - type: "null"
          title: Appointmentcount
          description: Total number of appointments for this patient
        totalSpent:
          anyOf:
            - type: integer
            - type: "null"
          title: Totalspent
          description: Total amount spent by this patient in cents
        healthData:
          anyOf:
            - additionalProperties:
                $ref: "#/components/schemas/DynamicHealthField"
              type: object
            - type: "null"
          title: Healthdata
          description: Dynamic health fields and values
        profilePictureUrl:
          anyOf:
            - type: string
            - type: "null"
          title: Profilepictureurl
          description: URL to the patient's profile picture.
      type: object
      required:
        - id
        - type
        - createdDate
      title: PatientChart
      description:
        Extended patient model for the patient detail/chart endpoint that
        includes health data.
    PatientCreate:
      properties:
        firstName:
          anyOf:
            - type: string
            - type: "null"
          title: Firstname
          description: The user's first name.
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
          description: The user's last name.
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
          description: An identifier in your system that corresponds to this patient.
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
          description: The user's email address.
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
          description: The user's phone number.
        address:
          anyOf:
            - type: string
            - type: "null"
          title: Address
          description: The user's primary address.
        addressLineTwo:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslinetwo
          description: Additional address information.
        city:
          anyOf:
            - type: string
            - type: "null"
          title: City
          description: The city of the user's address.
        state:
          anyOf:
            - type: string
            - type: "null"
          title: State
          description: The state of the user's address.
        zipCode:
          anyOf:
            - type: string
            - type: "null"
          title: Zipcode
          description: The postal code of the user's address.
        country:
          anyOf:
            - type: string
            - type: "null"
          title: Country
          description: The country of the user's address.
        addressValid:
          anyOf:
            - type: boolean
            - type: "null"
          title: Addressvalid
          description: Whether the user's address is valid.
        meta:
          anyOf:
            - type: object
            - type: "null"
          title: Meta
          description: Any additional metadata about the user relevant to your system.
        primaryLocationId:
          anyOf:
            - type: string
            - type: "null"
          title: Primarylocationid
          description: The primary location of the patient.
        id:
          anyOf:
            - type: string
            - type: "null"
          title: Id
          description: The unique identifier for the user.
        firebaseUid:
          anyOf:
            - type: string
            - type: "null"
          title: Firebaseuid
          description: The user's Firebase UID if available.
        dateOfBirth:
          anyOf:
            - type: string
              format: date
            - type: "null"
          title: Dateofbirth
          description: The date of birth of the patient.
        type:
          type: string
          title: Type
          default: PATIENT
        gender:
          anyOf:
            - type: string
            - type: "null"
          title: Gender
          description: The gender of the patient.
        patientSource:
          anyOf:
            - $ref: "#/components/schemas/PatientSource"
            - type: "null"
          description: The source of the patient.
        onSchedulingBlacklist:
          anyOf:
            - type: boolean
            - type: "null"
          title: Onschedulingblacklist
          description: Whether the patient is on the scheduling blacklist.
          default: false
        surchargeDisabled:
          anyOf:
            - type: boolean
            - type: "null"
          title: Surchargedisabled
          description: Whether surcharges are disabled for this patient.
          default: false
        creditBalance:
          anyOf:
            - type: integer
            - type: "null"
          title: Creditbalance
          description: Patient's credit balance in cents.
          default: 0
        preferredProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Preferredproviderid
          description: The preferred provider ID for this patient.
      type: object
      title: PatientCreate
    PatientCreditCreate:
      properties:
        patientId:
          anyOf:
            - type: string
            - type: "null"
          title: Patientid
        amount:
          type: integer
          title: Amount
          description: Credit amount in cents
        amountRemaining:
          anyOf:
            - type: integer
            - type: "null"
          title: Amountremaining
          description: Amount remaining in cents, defaults to amount
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
        expiryDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Expirydate
        memberId:
          anyOf:
            - type: string
            - type: "null"
          title: Memberid
        creatorId:
          anyOf:
            - type: string
            - type: "null"
          title: Creatorid
      type: object
      required:
        - amount
      title: PatientCreditCreate
    PatientCreditSummary:
      properties:
        id:
          type: string
          title: Id
        patientId:
          type: string
          title: Patientid
        amount:
          type: integer
          title: Amount
        amountRemaining:
          type: integer
          title: Amountremaining
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
        expiryDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Expirydate
        memberId:
          anyOf:
            - type: string
            - type: "null"
          title: Memberid
        createdDate:
          type: string
          format: date-time
          title: Createddate
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
        creator:
          anyOf:
            - $ref: "#/components/schemas/UserTiny"
            - type: "null"
      type: object
      required:
        - id
        - patientId
        - amount
        - amountRemaining
        - createdDate
      title: PatientCreditSummary
    PatientCreditUpdate:
      properties:
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
        expiryDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Expirydate
        amount:
          anyOf:
            - type: integer
            - type: "null"
          title: Amount
          description: Update the total credit amount in cents
        amountRemaining:
          anyOf:
            - type: integer
            - type: "null"
          title: Amountremaining
          description: Update the remaining credit amount in cents
      type: object
      title: PatientCreditUpdate
    PatientDetail:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the user.
        firstName:
          anyOf:
            - type: string
            - type: "null"
          title: Firstname
          description: The user's first name.
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
          description: The user's last name.
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
          description: The user's phone number.
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
          description: The user's email address.
        type:
          $ref: "#/components/schemas/UserType"
          description: The type of user.
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: The location of the user.
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
          description: The user's external identifier if available.
        address:
          anyOf:
            - type: string
            - type: "null"
          title: Address
          description: The user's primary address.
        addressLineTwo:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslinetwo
          description: Additional address information.
        city:
          anyOf:
            - type: string
            - type: "null"
          title: City
          description: The city of the user's address.
        state:
          anyOf:
            - type: string
            - type: "null"
          title: State
          description: The state of the user's address.
        zipCode:
          anyOf:
            - type: string
            - type: "null"
          title: Zipcode
          description: The postal code of the user's address.
        country:
          anyOf:
            - type: string
            - type: "null"
          title: Country
          description: The country of the user's address.
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time when the user was created.
        addressValid:
          anyOf:
            - type: boolean
            - type: "null"
          title: Addressvalid
          description: Whether the user's address is valid.
        meta:
          anyOf:
            - type: object
            - type: "null"
          title: Meta
          description: Any additional metadata about the user relevant to your system.
        isArchived:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isarchived
          description: Whether the user is archived.
        primaryLocationId:
          anyOf:
            - type: string
            - type: "null"
          title: Primarylocationid
          description: The primary location of the user.
        gender:
          anyOf:
            - type: string
            - type: "null"
          title: Gender
          description: The gender of the patient.
        dateOfBirth:
          anyOf:
            - type: string
              format: date
            - type: "null"
          title: Dateofbirth
          description: The date of birth of the patient.
        patientMedications:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Patientmedications
          description: List of patient's self-reported medications.
        onSchedulingBlacklist:
          anyOf:
            - type: boolean
            - type: "null"
          title: Onschedulingblacklist
          description: Whether the patient is on the scheduling blacklist.
        surchargeDisabled:
          anyOf:
            - type: boolean
            - type: "null"
          title: Surchargedisabled
          description: Whether surcharges are disabled for this patient.
        tags:
          anyOf:
            - items:
                $ref: "#/components/schemas/PatientTagSummary"
              type: array
            - type: "null"
          title: Tags
          description: List of patient tags
        creditBalance:
          anyOf:
            - type: integer
            - type: "null"
          title: Creditbalance
          description: Patient's credit balance in cents.
        preferredProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Preferredproviderid
          description: The preferred provider ID for this patient.
        memberships:
          anyOf:
            - items:
                $ref: "#/components/schemas/MemberTiny"
              type: array
            - type: "null"
          title: Memberships
          description: List of memberships for this patient
        goalWeight:
          anyOf:
            - type: number
            - type: "null"
          title: Goalweight
          description: The goal weight of the patient.
        measurements:
          anyOf:
            - items:
                $ref: "#/components/schemas/MeasurementSummary"
              type: array
            - type: "null"
          title: Measurements
          description: List of patient's measurements.
        medications:
          anyOf:
            - items:
                $ref: "#/components/schemas/DeprecatedMedicationSummary"
              type: array
            - type: "null"
          title: Medications
          description: List of provider-administered medication doses.
        optedOutOfSms:
          anyOf:
            - type: boolean
            - type: "null"
          title: Optedoutofsms
          description: Whether patient has opted out of SMS
        appointmentCount:
          anyOf:
            - type: integer
            - type: "null"
          title: Appointmentcount
          description: Total number of appointments for this patient
        totalSpent:
          anyOf:
            - type: integer
            - type: "null"
          title: Totalspent
          description: Total amount spent by this patient in cents
      type: object
      required:
        - id
        - type
        - createdDate
      title: PatientDetail
    PatientDetails:
      properties:
        name:
          anyOf:
            - type: string
            - type: "null"
          title: Name
          description: Patient's full name
        first_name:
          type: string
          title: First Name
          description: Patient's first name
        last_name:
          type: string
          title: Last Name
          description: Patient's last name
        email:
          type: string
          title: Email
          description: Patient's email address
        phone:
          anyOf:
            - type: string
            - type: "null"
          title: Phone
          description: Patient's phone number
      type: object
      required:
        - first_name
        - last_name
        - email
      title: PatientDetails
    PatientInvoicingDetails:
      properties:
        id:
          type: string
          title: Id
        firstName:
          type: string
          title: Firstname
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
        address:
          anyOf:
            - type: string
            - type: "null"
          title: Address
        addressLineTwo:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslinetwo
        city:
          anyOf:
            - type: string
            - type: "null"
          title: City
        state:
          anyOf:
            - type: string
            - type: "null"
          title: State
        zipCode:
          anyOf:
            - type: string
            - type: "null"
          title: Zipcode
        country:
          anyOf:
            - type: string
            - type: "null"
          title: Country
        charges:
          items:
            $ref: "#/components/schemas/ChargeInvoicingDetails"
          type: array
          title: Charges
      type: object
      required:
        - id
        - firstName
        - charges
      title: PatientInvoicingDetails
    PatientPendingIntake:
      properties:
        id:
          type: string
          title: Id
        patientId:
          type: string
          title: Patientid
        patientFirstName:
          type: string
          title: Patientfirstname
        patientLastName:
          anyOf:
            - type: string
            - type: "null"
          title: Patientlastname
        appointmentStart:
          type: string
          title: Appointmentstart
        provider:
          type: string
          title: Provider
        appointmentType:
          type: string
          title: Appointmenttype
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
      type: object
      required:
        - id
        - patientId
        - patientFirstName
        - appointmentStart
        - provider
        - appointmentType
      title: PatientPendingIntake
      description: Patient with pending intake forms
    PatientResponsibilityRequest:
      properties:
        patient_id:
          type: string
          title: Patient Id
        provider_id:
          type: string
          title: Provider Id
        payer_code:
          anyOf:
            - type: string
            - type: "null"
          title: Payer Code
        member_id:
          anyOf:
            - type: string
            - type: "null"
          title: Member Id
        cpt_codes:
          items:
            type: string
          type: array
          title: Cpt Codes
      type: object
      required:
        - patient_id
        - provider_id
        - cpt_codes
      title: PatientResponsibilityRequest
    PatientResponsibilityResponse:
      properties:
        amount:
          type: integer
          title: Amount
      type: object
      required:
        - amount
      title: PatientResponsibilityResponse
    PatientSidebarSnapshot:
      properties:
        memosCount:
          type: integer
          title: Memoscount
          description: Count of memos (quick notes without event)
          default: 0
        appointmentsCount:
          type: integer
          title: Appointmentscount
          description: Count of patient events (not archived)
          default: 0
        chargesCount:
          type: integer
          title: Chargescount
          description: Count of charges for patient
          default: 0
        paymentMethodsCount:
          type: integer
          title: Paymentmethodscount
          description: Count of active payment methods (excluding Apple Pay)
          default: 0
        formsCount:
          type: integer
          title: Formscount
          description: Count of completed form submissions for patient
          default: 0
        notesCount:
          type: integer
          title: Notescount
          description: Count of latest-note threads for patient
          default: 0
        documentsCount:
          type: integer
          title: Documentscount
          description: Count of documents for patient
          default: 0
        attachmentsCount:
          type: integer
          title: Attachmentscount
          description: Count of attachments per attachment-history rules
          default: 0
      type: object
      title: PatientSidebarSnapshot
      description: |-
        Snapshot for patient sidebar: counts + today's appointments list.

        Fields use snake_case per backend conventions. Frontend middleware will
        map these to camelCase for TypeScript consumers.
    PatientSoldPackage:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        packageId:
          type: string
          title: Packageid
        patientId:
          type: string
          title: Patientid
        chargeItemId:
          type: string
          title: Chargeitemid
        createdDate:
          type: string
          format: date-time
          title: Createddate
        items:
          items:
            $ref: "#/components/schemas/PackageItemUsage"
          type: array
          title: Items
      type: object
      required:
        - id
        - name
        - packageId
        - patientId
        - chargeItemId
        - createdDate
        - items
      title: PatientSoldPackage
    PatientSource:
      type: string
      enum:
        - SELF_SCHEDULING
        - CALL
        - TEXT
        - MANUALLY_CREATED
        - UPLOADED_FROM_FILE
        - FORM
        - SEED_DATA
        - DEMO
        - EXTERNAL_INTEGRATION
        - OTHER
      title: PatientSource
    PatientStatus:
      type: string
      enum:
        - NEW
        - EXISTING
        - RETURNING
      title: PatientStatus
    PatientSubmission:
      properties:
        patient:
          $ref: "#/components/schemas/UserTiny"
        answers:
          items:
            $ref: "#/components/schemas/PatientAnswer"
          type: array
          title: Answers
        submissionDate:
          type: string
          format: date-time
          title: Submissiondate
        hadUploadError:
          anyOf:
            - type: boolean
            - type: "null"
          title: Haduploaderror
      type: object
      required:
        - patient
        - answers
        - submissionDate
      title: PatientSubmission
    PatientSubmissionTableItem:
      properties:
        patient:
          $ref: "#/components/schemas/UserTiny"
        formId:
          type: string
          title: Formid
        submissionDate:
          type: string
          format: date-time
          title: Submissiondate
        hadUploadError:
          anyOf:
            - type: boolean
            - type: "null"
          title: Haduploaderror
        isCompleted:
          type: boolean
          title: Iscompleted
      type: object
      required:
        - patient
        - formId
        - submissionDate
        - isCompleted
      title: PatientSubmissionTableItem
    PatientSubmissionsTable:
      properties:
        data:
          items:
            $ref: "#/components/schemas/PatientSubmissionTableItem"
          type: array
          title: Data
        total:
          type: integer
          title: Total
      type: object
      required:
        - data
        - total
      title: PatientSubmissionsTable
    PatientSummary:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the user.
        firstName:
          anyOf:
            - type: string
            - type: "null"
          title: Firstname
          description: The user's first name.
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
          description: The user's last name.
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
          description: The user's phone number.
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
          description: The user's email address.
        type:
          $ref: "#/components/schemas/UserType"
          description: The type of user.
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: The location of the user.
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
          description: The user's external identifier if available.
        address:
          anyOf:
            - type: string
            - type: "null"
          title: Address
          description: The user's primary address.
        addressLineTwo:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslinetwo
          description: Additional address information.
        city:
          anyOf:
            - type: string
            - type: "null"
          title: City
          description: The city of the user's address.
        state:
          anyOf:
            - type: string
            - type: "null"
          title: State
          description: The state of the user's address.
        zipCode:
          anyOf:
            - type: string
            - type: "null"
          title: Zipcode
          description: The postal code of the user's address.
        country:
          anyOf:
            - type: string
            - type: "null"
          title: Country
          description: The country of the user's address.
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time when the user was created.
        addressValid:
          anyOf:
            - type: boolean
            - type: "null"
          title: Addressvalid
          description: Whether the user's address is valid.
        meta:
          anyOf:
            - type: object
            - type: "null"
          title: Meta
          description: Any additional metadata about the user relevant to your system.
        isArchived:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isarchived
          description: Whether the user is archived.
        primaryLocationId:
          anyOf:
            - type: string
            - type: "null"
          title: Primarylocationid
          description: The primary location of the user.
        gender:
          anyOf:
            - type: string
            - type: "null"
          title: Gender
          description: The gender of the patient.
        dateOfBirth:
          anyOf:
            - type: string
              format: date
            - type: "null"
          title: Dateofbirth
          description: The date of birth of the patient.
        patientMedications:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Patientmedications
          description: List of patient's self-reported medications.
        onSchedulingBlacklist:
          anyOf:
            - type: boolean
            - type: "null"
          title: Onschedulingblacklist
          description: Whether the patient is on the scheduling blacklist.
        surchargeDisabled:
          anyOf:
            - type: boolean
            - type: "null"
          title: Surchargedisabled
          description: Whether surcharges are disabled for this patient.
        tags:
          anyOf:
            - items:
                $ref: "#/components/schemas/PatientTagSummary"
              type: array
            - type: "null"
          title: Tags
          description: List of patient tags
        creditBalance:
          anyOf:
            - type: integer
            - type: "null"
          title: Creditbalance
          description: Patient's credit balance in cents.
        preferredProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Preferredproviderid
          description: The preferred provider ID for this patient.
      type: object
      required:
        - id
        - type
        - createdDate
      title: PatientSummary
    PatientSummaryWithLocation:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the user.
        firstName:
          anyOf:
            - type: string
            - type: "null"
          title: Firstname
          description: The user's first name.
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
          description: The user's last name.
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
          description: The user's phone number.
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
          description: The user's email address.
        type:
          $ref: "#/components/schemas/UserType"
          description: The type of user.
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: The location of the user.
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
          description: The user's external identifier if available.
        address:
          anyOf:
            - type: string
            - type: "null"
          title: Address
          description: The user's primary address.
        addressLineTwo:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslinetwo
          description: Additional address information.
        city:
          anyOf:
            - type: string
            - type: "null"
          title: City
          description: The city of the user's address.
        state:
          anyOf:
            - type: string
            - type: "null"
          title: State
          description: The state of the user's address.
        zipCode:
          anyOf:
            - type: string
            - type: "null"
          title: Zipcode
          description: The postal code of the user's address.
        country:
          anyOf:
            - type: string
            - type: "null"
          title: Country
          description: The country of the user's address.
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time when the user was created.
        addressValid:
          anyOf:
            - type: boolean
            - type: "null"
          title: Addressvalid
          description: Whether the user's address is valid.
        meta:
          anyOf:
            - type: object
            - type: "null"
          title: Meta
          description: Any additional metadata about the user relevant to your system.
        isArchived:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isarchived
          description: Whether the user is archived.
        primaryLocationId:
          anyOf:
            - type: string
            - type: "null"
          title: Primarylocationid
          description: The primary location of the user.
        gender:
          anyOf:
            - type: string
            - type: "null"
          title: Gender
          description: The gender of the patient.
        dateOfBirth:
          anyOf:
            - type: string
              format: date
            - type: "null"
          title: Dateofbirth
          description: The date of birth of the patient.
        patientMedications:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Patientmedications
          description: List of patient's self-reported medications.
        onSchedulingBlacklist:
          anyOf:
            - type: boolean
            - type: "null"
          title: Onschedulingblacklist
          description: Whether the patient is on the scheduling blacklist.
        surchargeDisabled:
          anyOf:
            - type: boolean
            - type: "null"
          title: Surchargedisabled
          description: Whether surcharges are disabled for this patient.
        tags:
          anyOf:
            - items:
                $ref: "#/components/schemas/PatientTagSummary"
              type: array
            - type: "null"
          title: Tags
          description: List of patient tags
        creditBalance:
          anyOf:
            - type: integer
            - type: "null"
          title: Creditbalance
          description: Patient's credit balance in cents.
        preferredProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Preferredproviderid
          description: The preferred provider ID for this patient.
        primaryLocation:
          anyOf:
            - $ref: "#/components/schemas/LocationTinyWithName"
            - type: "null"
          description: Primary location of the patient
      type: object
      required:
        - id
        - type
        - createdDate
      title: PatientSummaryWithLocation
      description: Patient summary with primary location details for analytics.
    PatientSummaryWithMemberships:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the user.
        firstName:
          anyOf:
            - type: string
            - type: "null"
          title: Firstname
          description: The user's first name.
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
          description: The user's last name.
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
          description: The user's phone number.
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
          description: The user's email address.
        type:
          $ref: "#/components/schemas/UserType"
          description: The type of user.
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: The location of the user.
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
          description: The user's external identifier if available.
        address:
          anyOf:
            - type: string
            - type: "null"
          title: Address
          description: The user's primary address.
        addressLineTwo:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslinetwo
          description: Additional address information.
        city:
          anyOf:
            - type: string
            - type: "null"
          title: City
          description: The city of the user's address.
        state:
          anyOf:
            - type: string
            - type: "null"
          title: State
          description: The state of the user's address.
        zipCode:
          anyOf:
            - type: string
            - type: "null"
          title: Zipcode
          description: The postal code of the user's address.
        country:
          anyOf:
            - type: string
            - type: "null"
          title: Country
          description: The country of the user's address.
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time when the user was created.
        addressValid:
          anyOf:
            - type: boolean
            - type: "null"
          title: Addressvalid
          description: Whether the user's address is valid.
        meta:
          anyOf:
            - type: object
            - type: "null"
          title: Meta
          description: Any additional metadata about the user relevant to your system.
        isArchived:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isarchived
          description: Whether the user is archived.
        primaryLocationId:
          anyOf:
            - type: string
            - type: "null"
          title: Primarylocationid
          description: The primary location of the user.
        gender:
          anyOf:
            - type: string
            - type: "null"
          title: Gender
          description: The gender of the patient.
        dateOfBirth:
          anyOf:
            - type: string
              format: date
            - type: "null"
          title: Dateofbirth
          description: The date of birth of the patient.
        patientMedications:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Patientmedications
          description: List of patient's self-reported medications.
        onSchedulingBlacklist:
          anyOf:
            - type: boolean
            - type: "null"
          title: Onschedulingblacklist
          description: Whether the patient is on the scheduling blacklist.
        surchargeDisabled:
          anyOf:
            - type: boolean
            - type: "null"
          title: Surchargedisabled
          description: Whether surcharges are disabled for this patient.
        tags:
          anyOf:
            - items:
                $ref: "#/components/schemas/PatientTagSummary"
              type: array
            - type: "null"
          title: Tags
          description: List of patient tags
        creditBalance:
          anyOf:
            - type: integer
            - type: "null"
          title: Creditbalance
          description: Patient's credit balance in cents.
        preferredProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Preferredproviderid
          description: The preferred provider ID for this patient.
        memberships:
          anyOf:
            - items:
                $ref: "#/components/schemas/MemberTiny"
              type: array
            - type: "null"
          title: Memberships
          description: List of memberships for this patient
      type: object
      required:
        - id
        - type
        - createdDate
      title: PatientSummaryWithMemberships
    PatientTable:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the user.
        firstName:
          anyOf:
            - type: string
            - type: "null"
          title: Firstname
          description: The user's first name.
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
          description: The user's last name.
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
          description: The user's phone number.
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
          description: The user's email address.
        type:
          $ref: "#/components/schemas/UserType"
          description: The type of user.
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: The location of the user.
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
          description: The user's external identifier if available.
        address:
          anyOf:
            - type: string
            - type: "null"
          title: Address
          description: The user's primary address.
        addressLineTwo:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslinetwo
          description: Additional address information.
        city:
          anyOf:
            - type: string
            - type: "null"
          title: City
          description: The city of the user's address.
        state:
          anyOf:
            - type: string
            - type: "null"
          title: State
          description: The state of the user's address.
        zipCode:
          anyOf:
            - type: string
            - type: "null"
          title: Zipcode
          description: The postal code of the user's address.
        country:
          anyOf:
            - type: string
            - type: "null"
          title: Country
          description: The country of the user's address.
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time when the user was created.
        addressValid:
          anyOf:
            - type: boolean
            - type: "null"
          title: Addressvalid
          description: Whether the user's address is valid.
        meta:
          anyOf:
            - type: object
            - type: "null"
          title: Meta
          description: Any additional metadata about the user relevant to your system.
        isArchived:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isarchived
          description: Whether the user is archived.
        primaryLocationId:
          anyOf:
            - type: string
            - type: "null"
          title: Primarylocationid
          description: The primary location of the user.
        gender:
          anyOf:
            - type: string
            - type: "null"
          title: Gender
          description: The gender of the patient.
        dateOfBirth:
          anyOf:
            - type: string
              format: date
            - type: "null"
          title: Dateofbirth
          description: The date of birth of the patient.
        patientMedications:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Patientmedications
          description: List of patient's self-reported medications.
        onSchedulingBlacklist:
          anyOf:
            - type: boolean
            - type: "null"
          title: Onschedulingblacklist
          description: Whether the patient is on the scheduling blacklist.
        surchargeDisabled:
          anyOf:
            - type: boolean
            - type: "null"
          title: Surchargedisabled
          description: Whether surcharges are disabled for this patient.
        tags:
          anyOf:
            - items:
                $ref: "#/components/schemas/PatientTagSummary"
              type: array
            - type: "null"
          title: Tags
          description: List of patient tags
        creditBalance:
          anyOf:
            - type: integer
            - type: "null"
          title: Creditbalance
          description: Patient's credit balance in cents.
        preferredProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Preferredproviderid
          description: The preferred provider ID for this patient.
        memberships:
          anyOf:
            - items:
                $ref: "#/components/schemas/MemberTiny"
              type: array
            - type: "null"
          title: Memberships
          description: List of memberships for this patient
        goalWeight:
          anyOf:
            - type: number
            - type: "null"
          title: Goalweight
          description: The goal weight of the patient.
        measurements:
          anyOf:
            - items:
                $ref: "#/components/schemas/MeasurementSummary"
              type: array
            - type: "null"
          title: Measurements
          description: List of patient's measurements.
        medications:
          anyOf:
            - items:
                $ref: "#/components/schemas/DeprecatedMedicationSummary"
              type: array
            - type: "null"
          title: Medications
          description: List of provider-administered medication doses.
        optedOutOfSms:
          anyOf:
            - type: boolean
            - type: "null"
          title: Optedoutofsms
          description: Whether patient has opted out of SMS
        appointmentCount:
          type: integer
          title: Appointmentcount
          description: Total number of appointments for this patient (sortable)
          default: 0
        totalSpent:
          type: integer
          title: Totalspent
          description: Total amount spent by this patient in cents (sortable)
          default: 0
        primaryLocationName:
          anyOf:
            - type: string
            - type: "null"
          title: Primarylocationname
          description: Name of the patient's primary location
        lastAppointmentDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Lastappointmentdate
          description: Date of the patient's last completed appointment
      type: object
      required:
        - id
        - type
        - createdDate
      title: PatientTable
      description: |-
        Extended patient model specifically for table display with sortable appointment count and total spent columns.

        This model ensures that appointment_count and total_spent are always provided for table sorting,
        whereas PatientDetail may have these as optional/null fields.
    PatientTagAssignment:
      properties:
        patientId:
          type: string
          title: Patientid
          description: Patient ID to assign/unassign tags
        tagIds:
          items:
            type: string
          type: array
          title: Tagids
          description: List of patient tag IDs to assign
      type: object
      required:
        - patientId
        - tagIds
      title: PatientTagAssignment
    PatientTagCreate:
      properties:
        name:
          type: string
          maxLength: 100
          minLength: 1
          title: Name
          description: Name of the patient tag
        emoji:
          anyOf:
            - type: string
              maxLength: 10
            - type: "null"
          title: Emoji
          description: Emoji associated with the tag
        color:
          anyOf:
            - type: string
              maxLength: 7
            - type: "null"
          title: Color
          description: Color code for the tag (hex format)
        isActive:
          type: boolean
          title: Isactive
          description: Whether the tag is active
          default: true
      type: object
      required:
        - name
      title: PatientTagCreate
    PatientTagDetail:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the patient tag
        name:
          type: string
          title: Name
          description: Name of the patient tag
        emoji:
          anyOf:
            - type: string
            - type: "null"
          title: Emoji
          description: Emoji associated with the tag
        color:
          anyOf:
            - type: string
            - type: "null"
          title: Color
          description: Color code for the tag (hex format)
        isActive:
          type: boolean
          title: Isactive
          description: Whether the tag is active
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: Date and time when the tag was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: Date and time when the tag was last updated
        patientCount:
          anyOf:
            - type: integer
            - type: "null"
          title: Patientcount
          description: Number of patients with this tag
      type: object
      required:
        - id
        - name
        - isActive
        - createdDate
      title: PatientTagDetail
    PatientTagSummary:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the patient tag
        name:
          type: string
          title: Name
          description: Name of the patient tag
        emoji:
          anyOf:
            - type: string
            - type: "null"
          title: Emoji
          description: Emoji associated with the tag
        color:
          anyOf:
            - type: string
            - type: "null"
          title: Color
          description: Color code for the tag (hex format)
        isActive:
          type: boolean
          title: Isactive
          description: Whether the tag is active
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: Date and time when the tag was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: Date and time when the tag was last updated
      type: object
      required:
        - id
        - name
        - isActive
        - createdDate
      title: PatientTagSummary
    PatientTagUpdate:
      properties:
        name:
          anyOf:
            - type: string
              maxLength: 100
              minLength: 1
            - type: "null"
          title: Name
          description: Name of the patient tag
        emoji:
          anyOf:
            - type: string
              maxLength: 10
            - type: "null"
          title: Emoji
          description: Emoji associated with the tag
        color:
          anyOf:
            - type: string
              maxLength: 7
            - type: "null"
          title: Color
          description: Color code for the tag (hex format)
        isActive:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isactive
          description: Whether the tag is active
      type: object
      title: PatientTagUpdate
    PatientTiny:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the user.
        firstName:
          anyOf:
            - type: string
            - type: "null"
          title: Firstname
          description: The user's first name.
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
          description: The user's last name.
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
          description: The user's phone number.
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
          description: The user's email address.
        type:
          $ref: "#/components/schemas/UserType"
          description: The type of user.
          default: PATIENT
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: The location of the user.
        dateOfBirth:
          anyOf:
            - type: string
              format: date
            - type: "null"
          title: Dateofbirth
          description: The date of birth of the patient.
        onSchedulingBlacklist:
          anyOf:
            - type: boolean
            - type: "null"
          title: Onschedulingblacklist
          description: Whether the patient is on the scheduling blacklist.
      type: object
      required:
        - id
      title: PatientTiny
    PatientUpdate:
      properties:
        firstName:
          anyOf:
            - type: string
            - type: "null"
          title: Firstname
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
        address:
          anyOf:
            - type: string
            - type: "null"
          title: Address
        addressLineTwo:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslinetwo
        city:
          anyOf:
            - type: string
            - type: "null"
          title: City
        state:
          anyOf:
            - type: string
            - type: "null"
          title: State
        zipCode:
          anyOf:
            - type: string
            - type: "null"
          title: Zipcode
        country:
          anyOf:
            - type: string
            - type: "null"
          title: Country
        addressValid:
          anyOf:
            - type: boolean
            - type: "null"
          title: Addressvalid
        meta:
          anyOf:
            - type: object
            - type: "null"
          title: Meta
        primaryLocationId:
          anyOf:
            - type: string
            - type: "null"
          title: Primarylocationid
        dateOfBirth:
          anyOf:
            - type: string
              format: date
            - type: "null"
          title: Dateofbirth
        allergies:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Allergies
        familyHistory:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Familyhistory
        medicalHistory:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Medicalhistory
        prescriptions:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Prescriptions
        gender:
          anyOf:
            - type: string
            - type: "null"
          title: Gender
        goalWeight:
          anyOf:
            - type: number
            - type: "null"
          title: Goalweight
        patientSource:
          anyOf:
            - $ref: "#/components/schemas/PatientSource"
            - type: "null"
        surchargeDisabled:
          anyOf:
            - type: boolean
            - type: "null"
          title: Surchargedisabled
        creditBalance:
          anyOf:
            - type: integer
            - type: "null"
          title: Creditbalance
        preferredProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Preferredproviderid
      type: object
      title: PatientUpdate
    PatientUpload:
      properties:
        id:
          type: string
          title: Id
        uploader:
          $ref: "#/components/schemas/UserTiny"
        status:
          type: string
          title: Status
        error:
          anyOf:
            - type: string
            - type: "null"
          title: Error
        createdDate:
          type: string
          format: date-time
          title: Createddate
      type: object
      required:
        - id
        - uploader
        - status
        - createdDate
      title: PatientUpload
    PatientUploadErrors:
      properties:
        firstNameValue:
          type: string
          title: Firstnamevalue
          default: ""
        firstName:
          type: string
          title: Firstname
          default: ""
        lastName:
          type: string
          title: Lastname
          default: ""
        email:
          type: string
          title: Email
          default: ""
        phoneNumber:
          type: string
          title: Phonenumber
          default: ""
        dateOfBirth:
          type: string
          title: Dateofbirth
          default: ""
        externalId:
          type: string
          title: Externalid
          default: ""
        externalChargeId:
          type: string
          title: Externalchargeid
          default: ""
        externalChargeCreatedDate:
          type: string
          title: Externalchargecreateddate
          default: ""
        address:
          type: string
          title: Address
          default: ""
        addressLineTwo:
          type: string
          title: Addresslinetwo
          default: ""
        city:
          type: string
          title: City
          default: ""
        state:
          type: string
          title: State
          default: ""
        zipCode:
          type: string
          title: Zipcode
          default: ""
        balanceDescription:
          type: string
          title: Balancedescription
          default: ""
        outstandingBalance:
          type: string
          title: Outstandingbalance
          default: ""
      type: object
      title: PatientUploadErrors
    PatientWithAppointmentDetail:
      properties:
        id:
          type: string
          title: Id
        firstName:
          type: string
          title: Firstname
        lastName:
          type: string
          title: Lastname
        dateOfBirth:
          anyOf:
            - type: string
            - type: "null"
          title: Dateofbirth
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
        appointmentStart:
          type: string
          format: date-time
          title: Appointmentstart
        appointmentEnd:
          type: string
          format: date-time
          title: Appointmentend
        appointmentType:
          anyOf:
            - type: string
            - type: "null"
          title: Appointmenttype
        appointmentTitle:
          anyOf:
            - type: string
            - type: "null"
          title: Appointmenttitle
      type: object
      required:
        - id
        - firstName
        - lastName
        - appointmentStart
        - appointmentEnd
      title: PatientWithAppointmentDetail
    PayinComponentSetupResponse:
      properties:
        sessionKey:
          type: string
          title: Sessionkey
        payinConfigId:
          type: string
          title: Payinconfigid
        paymentMethods:
          items:
            $ref: "#/components/schemas/PaymentMethodSummary"
          type: array
          title: Paymentmethods
          default: []
        sandbox:
          type: boolean
          title: Sandbox
      type: object
      required:
        - sessionKey
        - payinConfigId
        - sandbox
      title: PayinComponentSetupResponse
    PayinConfigCreate:
      properties:
        paymentAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Paymentamount
        savePaymentMethod:
          type: boolean
          title: Savepaymentmethod
          default: false
        textReceipt:
          type: boolean
          title: Textreceipt
          default: false
        paymentMedium:
          $ref: "#/components/schemas/PaymentMedium"
        paymentPlan:
          anyOf:
            - $ref: "#/components/schemas/PaymentPlanCreateWithoutID"
            - type: "null"
        isSurcharged:
          type: boolean
          title: Issurcharged
          default: false
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
        creatorId:
          anyOf:
            - type: string
            - type: "null"
          title: Creatorid
        membershipId:
          anyOf:
            - type: string
            - type: "null"
          title: Membershipid
        membershipStartDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Membershipstartdate
        soldByProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Soldbyproviderid
        merchantAccountId:
          anyOf:
            - type: string
            - type: "null"
          title: Merchantaccountid
        charges:
          items:
            $ref: "#/components/schemas/ChargeSummary-Input"
          type: array
          title: Charges
      type: object
      required:
        - paymentMedium
        - charges
      title: PayinConfigCreate
    PayinEvent:
      properties:
        merchantId:
          type: string
          title: Merchantid
        payinConfigId:
          type: string
          title: Payinconfigid
        payinId:
          type: string
          title: Payinid
        paymentMethodId:
          anyOf:
            - type: string
            - type: "null"
          title: Paymentmethodid
        amount:
          type: integer
          title: Amount
        billingType:
          type: string
          title: Billingtype
        createdAt:
          type: string
          format: date-time
          title: Createdat
        card:
          anyOf:
            - $ref: "#/components/schemas/RainforestCard"
            - type: "null"
        ach:
          anyOf:
            - $ref: "#/components/schemas/RainforestACH"
            - type: "null"
        metadata:
          anyOf:
            - $ref: "#/components/schemas/PaymentPlanPayinMetadata"
            - $ref: "#/components/schemas/PayinMetadata"
            - $ref: "#/components/schemas/InsurancePaymentCreate"
          title: Metadata
        merchantFees:
          $ref: "#/components/schemas/MerchantFees"
        deviceData:
          anyOf:
            - type: object
            - type: "null"
          title: Devicedata
        refusalDesc:
          anyOf:
            - type: string
            - type: "null"
          title: Refusaldesc
      type: object
      required:
        - merchantId
        - payinConfigId
        - payinId
        - amount
        - billingType
        - createdAt
        - metadata
        - merchantFees
      title: PayinEvent
      description: A payin event from Rainforest
    PayinMetadata:
      properties:
        charges:
          anyOf:
            - items:
                $ref: "#/components/schemas/ChargeDetail-Output"
              type: array
            - items:
                $ref: "#/components/schemas/ChargeTiny"
              type: array
            - type: "null"
          title: Charges
        paymentMedium:
          anyOf:
            - $ref: "#/components/schemas/PaymentMedium"
            - type: "null"
          default: PAYMENT_LINK
        paymentAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Paymentamount
        savePaymentMethod:
          anyOf:
            - type: boolean
            - type: "null"
          title: Savepaymentmethod
        patientId:
          anyOf:
            - type: string
            - type: "null"
          title: Patientid
        transactionId:
          anyOf:
            - type: string
            - type: "null"
          title: Transactionid
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
        creatorId:
          anyOf:
            - type: string
            - type: "null"
          title: Creatorid
        eventId:
          anyOf:
            - type: string
            - type: "null"
          title: Eventid
        isSurcharged:
          anyOf:
            - type: boolean
            - type: "null"
          title: Issurcharged
        membershipId:
          anyOf:
            - type: string
            - type: "null"
          title: Membershipid
        membershipStartDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Membershipstartdate
        soldByProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Soldbyproviderid
      type: object
      title: PayinMetadata
      description: The metadata sent to Rainforest when a payin is created
    Payment-Input:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the payment.
        patientId:
          anyOf:
            - type: string
            - type: "null"
          title: Patientid
          description: The ID of the patient associated with the payment.
        payinId:
          anyOf:
            - type: string
            - type: "null"
          title: Payinid
          description: The ID of the payin associated with the payment.
        amount:
          type: integer
          title: Amount
          description: The total amount of the payment.
        status:
          $ref: "#/components/schemas/PaymentStatus"
          description: The current status of the payment.
        currency:
          type: string
          title: Currency
          description: The currency in which the payment was made.
          default: USD
        payinConfigId:
          anyOf:
            - type: string
            - type: "null"
          title: Payinconfigid
          description: The configuration ID for the payin.
        paymentMedium:
          type: string
          title: Paymentmedium
          description: The name of the payment medium.
        paymentMethodId:
          anyOf:
            - type: string
            - type: "null"
          title: Paymentmethodid
          description: The ID of the payment method used.
        stripePaymentIntentId:
          anyOf:
            - type: string
            - type: "null"
          title: Stripepaymentintentid
          description: Stripe's payment intent ID if used.
        failedReason:
          anyOf:
            - type: string
            - type: "null"
          title: Failedreason
          description: Reason for payment failure if applicable.
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: The date and time the payment was last updated.
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time the payment was created.
        fee:
          type: integer
          title: Fee
          description: The fee charged by the payment processor.
          default: 0
        feeToPatient:
          type: integer
          title: Feetopatient
          description: The fee charged to the patient for the transaction.
        paymentMethod:
          anyOf:
            - $ref: "#/components/schemas/PaymentMethodSummary"
            - type: "null"
          description: Summary of the payment method used.
        refunds:
          items:
            $ref: "#/components/schemas/RefundSummary"
          type: array
          title: Refunds
          description: List of refunds associated with the payment.
          default: []
      type: object
      required:
        - id
        - amount
        - status
        - paymentMedium
        - createdDate
        - feeToPatient
      title: Payment
    Payment-Output:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the payment.
        patientId:
          anyOf:
            - type: string
            - type: "null"
          title: Patientid
          description: The ID of the patient associated with the payment.
        payinId:
          anyOf:
            - type: string
            - type: "null"
          title: Payinid
          description: The ID of the payin associated with the payment.
        amount:
          type: integer
          title: Amount
          description: The total amount of the payment.
        status:
          $ref: "#/components/schemas/PaymentStatus"
          description: The current status of the payment.
        currency:
          type: string
          title: Currency
          description: The currency in which the payment was made.
          default: USD
        payinConfigId:
          anyOf:
            - type: string
            - type: "null"
          title: Payinconfigid
          description: The configuration ID for the payin.
        paymentMedium:
          type: string
          title: Paymentmedium
          description: The name of the payment medium.
        paymentMethodId:
          anyOf:
            - type: string
            - type: "null"
          title: Paymentmethodid
          description: The ID of the payment method used.
        stripePaymentIntentId:
          anyOf:
            - type: string
            - type: "null"
          title: Stripepaymentintentid
          description: Stripe's payment intent ID if used.
        failedReason:
          anyOf:
            - type: string
            - type: "null"
          title: Failedreason
          description: Reason for payment failure if applicable.
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: The date and time the payment was last updated.
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time the payment was created.
        fee:
          type: integer
          title: Fee
          description: The fee charged by the payment processor.
          default: 0
        feeToPatient:
          type: integer
          title: Feetopatient
          description: The fee charged to the patient for the transaction.
        paymentMethod:
          anyOf:
            - $ref: "#/components/schemas/PaymentMethodSummary"
            - type: "null"
          description: Summary of the payment method used.
        refunds:
          items:
            $ref: "#/components/schemas/RefundSummary"
          type: array
          title: Refunds
          description: List of refunds associated with the payment.
          default: []
      type: object
      required:
        - id
        - amount
        - status
        - paymentMedium
        - createdDate
        - feeToPatient
      title: Payment
    PaymentBreakdownItem:
      properties:
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: Date when the payment was created
        location:
          anyOf:
            - type: string
            - type: "null"
          title: Location
          description: Location name where the payment occurred
        patient:
          $ref: "#/components/schemas/PatientTiny"
          description: Patient information
        paymentMedium:
          type: string
          title: Paymentmedium
          description: Payment medium used
        paymentMethodType:
          anyOf:
            - type: string
            - type: "null"
          title: Paymentmethodtype
          description: Payment method type (card, bank, etc.)
        paymentMethodDetails:
          anyOf:
            - type: string
            - type: "null"
          title: Paymentmethoddetails
          description: Payment method details (last 4 digits, etc.)
        amount:
          type: integer
          title: Amount
          description: Payment amount in cents
        fee:
          type: integer
          title: Fee
          description: Fee amount in cents
        netAmount:
          type: integer
          title: Netamount
          description: Net amount after fees in cents
        status:
          type: string
          title: Status
          description: Payment status
        paymentId:
          type: string
          title: Paymentid
          description: Payment ID for reference
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
          description: Charge comment (from associated charge)
      type: object
      required:
        - createdDate
        - patient
        - paymentMedium
        - amount
        - fee
        - netAmount
        - status
        - paymentId
      title: PaymentBreakdownItem
      description: Individual payment breakdown item.
    PaymentLinkDetails:
      properties:
        charges:
          items:
            $ref: "#/components/schemas/ChargeDetailWithItems"
          type: array
          title: Charges
        patient:
          $ref: "#/components/schemas/PatientSummary"
        paymentLink:
          type: string
          title: Paymentlink
      type: object
      required:
        - charges
        - patient
        - paymentLink
      title: PaymentLinkDetails
    PaymentMedium:
      type: string
      enum:
        - POS
        - VIRTUAL_TERMINAL
        - PAYMENT_LINK
        - PAYMENT_PLAN
        - SUBSCRIPTION
        - SAVED_PAYMENT_METHOD
        - MEMBERSHIP
        - CASH
        - CHECK
        - CARE_CREDIT
        - PATIENT_CREDIT
      title: PaymentMedium
      description: |-
        Payment medium types supported by the system.

        These fall into two categories:
        1. Payment Processor Mediums: Require Rainforest/Stripe payin (card processing)
        2. External Settlement Mediums: Settled outside the system (cash, check, etc.)
    PaymentMediumCreate:
      properties:
        name:
          type: string
          maxLength: 100
          minLength: 1
          title: Name
          description: The name of the custom settlement type.
      type: object
      required:
        - name
      title: PaymentMediumCreate
      description: Schema for creating a custom settlement type.
    PaymentMediumDetail:
      properties:
        name:
          type: string
          title: Name
          description: The name/identifier of the payment medium (primary key).
        isSystem:
          type: boolean
          title: Issystem
          description: Whether this is a system-defined payment medium (immutable).
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether this payment medium is archived.
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time the payment medium was created.
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: The date and time the payment medium was last updated.
      type: object
      required:
        - name
        - isSystem
        - isArchived
        - createdDate
      title: PaymentMediumDetail
      description: Schema for reading payment medium records.
    PaymentMediumUpdate:
      properties:
        name:
          anyOf:
            - type: string
              maxLength: 100
              minLength: 1
            - type: "null"
          title: Name
          description: The name of the custom settlement type.
        isArchived:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isarchived
          description: Whether to archive/unarchive the payment medium.
      type: object
      title: PaymentMediumUpdate
      description: Schema for updating a custom settlement type.
    PaymentMethod:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
      type: object
      required:
        - name
      title: PaymentMethod
    PaymentMethodConfigCreate:
      properties:
        sessionKey:
          type: string
          title: Sessionkey
        paymentMethodConfigId:
          type: string
          title: Paymentmethodconfigid
        paymentMethods:
          items:
            $ref: "#/components/schemas/PaymentMethodSummary"
          type: array
          title: Paymentmethods
        sandbox:
          type: boolean
          title: Sandbox
      type: object
      required:
        - sessionKey
        - paymentMethodConfigId
        - paymentMethods
        - sandbox
      title: PaymentMethodConfigCreate
    PaymentMethodPublic:
      properties:
        brand:
          anyOf:
            - type: string
            - type: "null"
          title: Brand
        last4:
          anyOf:
            - type: string
            - type: "null"
          title: Last4
        expMonth:
          anyOf:
            - type: integer
            - type: "null"
          title: Expmonth
        expYear:
          anyOf:
            - type: integer
            - type: "null"
          title: Expyear
        accountHolderType:
          anyOf:
            - type: string
            - type: "null"
          title: Accountholdertype
        accountNumberLast4:
          anyOf:
            - type: integer
            - type: "null"
          title: Accountnumberlast4
        bankName:
          anyOf:
            - type: string
            - type: "null"
          title: Bankname
        routingNumber:
          anyOf:
            - type: integer
            - type: "null"
          title: Routingnumber
        type:
          anyOf:
            - $ref: "#/components/schemas/PaymentMethodType"
            - type: "null"
      type: object
      required:
        - brand
        - last4
        - expMonth
        - expYear
        - accountHolderType
        - accountNumberLast4
        - bankName
        - routingNumber
        - type
      title: PaymentMethodPublic
    PaymentMethodSummary:
      properties:
        id:
          type: string
          title: Id
        patientId:
          anyOf:
            - type: string
            - type: "null"
          title: Patientid
        rainforestPaymentMethodId:
          type: string
          title: Rainforestpaymentmethodid
        brand:
          anyOf:
            - type: string
            - type: "null"
          title: Brand
        last4:
          anyOf:
            - type: string
            - type: "null"
          title: Last4
        expMonth:
          anyOf:
            - type: integer
            - type: "null"
          title: Expmonth
        expYear:
          anyOf:
            - type: integer
            - type: "null"
          title: Expyear
        accountHolderType:
          anyOf:
            - type: string
            - type: "null"
          title: Accountholdertype
        accountNumberLast4:
          anyOf:
            - type: integer
            - type: "null"
          title: Accountnumberlast4
        bankName:
          anyOf:
            - type: string
            - type: "null"
          title: Bankname
        routingNumber:
          anyOf:
            - type: integer
            - type: "null"
          title: Routingnumber
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        type:
          anyOf:
            - $ref: "#/components/schemas/PaymentMethodType"
            - type: "null"
        isDefault:
          type: boolean
          title: Isdefault
          default: false
        isArchived:
          type: boolean
          title: Isarchived
          default: false
      type: object
      required:
        - id
        - patientId
        - rainforestPaymentMethodId
        - brand
        - last4
        - expMonth
        - expYear
        - accountHolderType
        - accountNumberLast4
        - bankName
        - routingNumber
        - description
        - type
      title: PaymentMethodSummary
    PaymentMethodType:
      type: string
      enum:
        - CARD
        - ACH
        - APPLE_PAY
      title: PaymentMethodType
    PaymentMethodUpdate:
      properties:
        rainforestPaymentMethod:
          $ref: "#/components/schemas/RainforestPaymentMethod"
      type: object
      required:
        - rainforestPaymentMethod
      title: PaymentMethodUpdate
    PaymentOverTime:
      properties:
        weekLabel:
          type: string
          title: Weeklabel
        chargeStatus:
          type: string
          title: Chargestatus
        totalAmount:
          type: number
          title: Totalamount
        count:
          type: integer
          title: Count
      type: object
      required:
        - weekLabel
        - chargeStatus
        - totalAmount
        - count
      title: PaymentOverTime
    PaymentOverview:
      properties:
        totalRevenueFromPos:
          type: number
          title: Totalrevenuefrompos
        topSellingItems:
          items:
            $ref: "#/components/schemas/TopSellingItemOverview"
          type: array
          title: Topsellingitems
        topCustomers:
          items:
            $ref: "#/components/schemas/TopCustomerOverview"
          type: array
          title: Topcustomers
        period:
          $ref: "#/components/schemas/Period"
        todayChange:
          type: number
          title: Todaychange
      type: object
      required:
        - totalRevenueFromPos
        - topSellingItems
        - topCustomers
        - period
        - todayChange
      title: PaymentOverview
    PaymentPlanCreate:
      properties:
        initialAmount:
          type: integer
          title: Initialamount
          description: The initial payment amount for the payment plan
        chargeIds:
          items:
            type: string
          type: array
          title: Chargeids
          description: The IDs of the associated charges
        frequency:
          $ref: "#/components/schemas/PaymentPlanFrequency"
          description: The frequency of installment payments
        installments:
          type: integer
          title: Installments
          description: The number of installment payments
        installmentAmount:
          type: integer
          title: Installmentamount
          description: The amount of each installment payment
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: The ID of the associated location
        startDate:
          anyOf:
            - type: string
              format: date
            - type: "null"
          title: Startdate
          description:
            Optional start date for the first payment (only allowed for
            $0 down payment plans)
        id:
          type: string
          title: Id
          description: The ID of the payment plan
        paymentMethodId:
          type: string
          title: Paymentmethodid
          description: The ID of the associated payment method
      type: object
      required:
        - initialAmount
        - chargeIds
        - frequency
        - installments
        - installmentAmount
        - paymentMethodId
      title: PaymentPlanCreate
      description: |-
        Represents the creation of a payment plan with an ID and associated payment method.

        This model extends PaymentPlanCreateWithoutID by adding an automatically generated ID
        and a required payment method ID. It includes all the fields from the parent class
        along with these additional attributes.

        Attributes:
            id (str): An automatically generated unique identifier for the payment plan.
            payment_method_id (str): The ID of the associated payment method used for installments.
    PaymentPlanCreateWithoutID:
      properties:
        initialAmount:
          type: integer
          title: Initialamount
          description: The initial payment amount for the payment plan
        chargeIds:
          items:
            type: string
          type: array
          title: Chargeids
          description: The IDs of the associated charges
        frequency:
          $ref: "#/components/schemas/PaymentPlanFrequency"
          description: The frequency of installment payments
        installments:
          type: integer
          title: Installments
          description: The number of installment payments
        installmentAmount:
          type: integer
          title: Installmentamount
          description: The amount of each installment payment
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: The ID of the associated location
        startDate:
          anyOf:
            - type: string
              format: date
            - type: "null"
          title: Startdate
          description:
            Optional start date for the first payment (only allowed for
            $0 down payment plans)
      type: object
      required:
        - initialAmount
        - chargeIds
        - frequency
        - installments
        - installmentAmount
      title: PaymentPlanCreateWithoutID
      description: |-
        Represents the creation of a payment plan without an ID.

        This model defines the structure for creating a new payment plan,
        including details about the initial payment, associated charge,
        frequency of payments, number of installments, and the amount for each installment.
    PaymentPlanFrequency:
      type: string
      enum:
        - WEEKLY
        - BIWEEKLY
        - MONTHLY
      title: PaymentPlanFrequency
    PaymentPlanPayinMetadata:
      properties:
        charges:
          anyOf:
            - items:
                $ref: "#/components/schemas/ChargeDetail-Output"
              type: array
            - items:
                $ref: "#/components/schemas/ChargeTiny"
              type: array
            - type: "null"
          title: Charges
        paymentMedium:
          anyOf:
            - $ref: "#/components/schemas/PaymentMedium"
            - type: "null"
          default: PAYMENT_LINK
        paymentAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Paymentamount
        savePaymentMethod:
          anyOf:
            - type: boolean
            - type: "null"
          title: Savepaymentmethod
        patientId:
          anyOf:
            - type: string
            - type: "null"
          title: Patientid
        transactionId:
          anyOf:
            - type: string
            - type: "null"
          title: Transactionid
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
        creatorId:
          anyOf:
            - type: string
            - type: "null"
          title: Creatorid
        eventId:
          anyOf:
            - type: string
            - type: "null"
          title: Eventid
        isSurcharged:
          anyOf:
            - type: boolean
            - type: "null"
          title: Issurcharged
        membershipId:
          anyOf:
            - type: string
            - type: "null"
          title: Membershipid
        membershipStartDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Membershipstartdate
        soldByProviderId:
          anyOf:
            - type: string
            - type: "null"
          title: Soldbyproviderid
        paymentPlan:
          $ref: "#/components/schemas/PaymentPlanCreateWithoutID"
      type: object
      required:
        - paymentPlan
      title: PaymentPlanPayinMetadata
      description: The metadata sent to Rainforest when a payment plan is created
    PaymentPlanWithChargesRequest:
      properties:
        charges:
          items:
            $ref: "#/components/schemas/ChargeDetail-Input"
          type: array
          title: Charges
        paymentPlan:
          $ref: "#/components/schemas/PaymentPlanCreateWithoutID"
        rainforestPaymentMethodId:
          type: string
          title: Rainforestpaymentmethodid
      type: object
      required:
        - charges
        - paymentPlan
        - rainforestPaymentMethodId
      title: PaymentPlanWithChargesRequest
      description:
        Request schema for creating payment plans with charges ($0 down
        payments).
    PaymentReceipt:
      properties:
        id:
          type: string
          title: Id
        patient:
          $ref: "#/components/schemas/PublicPatient"
        amount:
          type: integer
          title: Amount
        charges:
          items:
            $ref: "#/components/schemas/PublicCharge"
          type: array
          title: Charges
        refunds:
          items:
            $ref: "#/components/schemas/RefundSummary"
          type: array
          title: Refunds
        createdDate:
          type: string
          format: date-time
          title: Createddate
        paymentMedium:
          type: string
          title: Paymentmedium
        paymentMethod:
          anyOf:
            - $ref: "#/components/schemas/PaymentMethodPublic"
            - type: "null"
        feeToPatient:
          type: integer
          title: Feetopatient
        hasItems:
          type: boolean
          title: Hasitems
          default: false
        hasPackages:
          type: boolean
          title: Haspackages
          default: false
      type: object
      required:
        - id
        - patient
        - amount
        - charges
        - refunds
        - createdDate
        - paymentMedium
        - feeToPatient
      title: PaymentReceipt
    PaymentStatus:
      type: string
      enum:
        - CANCELED
        - CREATED
        - FAILED
        - IN_REVIEW
        - PRESENTING
        - PROCESSING
        - SUCCEEDED
      title: PaymentStatus
    PaymentSummary:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the payment.
        patientId:
          anyOf:
            - type: string
            - type: "null"
          title: Patientid
          description: The ID of the patient associated with the payment.
        payinId:
          anyOf:
            - type: string
            - type: "null"
          title: Payinid
          description: The ID of the payin associated with the payment.
        amount:
          type: integer
          title: Amount
          description: The total amount of the payment.
        status:
          $ref: "#/components/schemas/PaymentStatus"
          description: The current status of the payment.
        currency:
          type: string
          title: Currency
          description: The currency in which the payment was made.
          default: USD
        payinConfigId:
          anyOf:
            - type: string
            - type: "null"
          title: Payinconfigid
          description: The configuration ID for the payin.
        paymentMedium:
          type: string
          title: Paymentmedium
          description: The name of the payment medium.
        paymentMethodId:
          anyOf:
            - type: string
            - type: "null"
          title: Paymentmethodid
          description: The ID of the payment method used.
        stripePaymentIntentId:
          anyOf:
            - type: string
            - type: "null"
          title: Stripepaymentintentid
          description: Stripe's payment intent ID if used.
        failedReason:
          anyOf:
            - type: string
            - type: "null"
          title: Failedreason
          description: Reason for payment failure if applicable.
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: The date and time the payment was last updated.
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time the payment was created.
        fee:
          type: integer
          title: Fee
          description: The fee charged by the payment processor.
          default: 0
        feeToPatient:
          type: integer
          title: Feetopatient
          description: The fee charged to the patient for the transaction.
      type: object
      required:
        - id
        - amount
        - status
        - paymentMedium
        - createdDate
        - feeToPatient
      title: Payment
    PaymentSummaryForTimeline:
      properties:
        id:
          type: string
          title: Id
          description: Payment ID
        amount:
          type: integer
          title: Amount
          description: Payment amount in cents
        payerName:
          type: string
          title: Payername
          description: Name of the payer
        creatorName:
          type: string
          title: Creatorname
          description: Name of the user who processed the payment
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: Payment creation date
        paymentMedium:
          type: string
          title: Paymentmedium
          description: Payment medium (e.g., CASH)
      type: object
      required:
        - id
        - amount
        - payerName
        - creatorName
        - createdDate
        - paymentMedium
      title: PaymentSummaryForTimeline
      description: Payment summary for timeline display.
    PaymentTable:
      properties:
        items:
          $ref: "#/components/schemas/Page_PaymentTableItem_"
        hasInsurancePayments:
          type: boolean
          title: Hasinsurancepayments
      type: object
      required:
        - items
        - hasInsurancePayments
      title: PaymentTable
    PaymentTableItem:
      properties:
        id:
          type: string
          title: Id
        firstName:
          anyOf:
            - type: string
            - type: "null"
          title: Firstname
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
        patientId:
          anyOf:
            - type: string
            - type: "null"
          title: Patientid
        externalPatientId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalpatientid
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
        amount:
          type: integer
          title: Amount
        currency:
          type: string
          title: Currency
        status:
          type: string
          title: Status
        paymentMedium:
          type: string
          title: Paymentmedium
        fee:
          type: integer
          title: Fee
        feeToPatient:
          type: integer
          title: Feetopatient
        paymentMethod:
          anyOf:
            - $ref: "#/components/schemas/PaymentMethodSummary"
            - type: "null"
        createdDate:
          type: string
          format: date-time
          title: Createddate
        refunds:
          items:
            $ref: "#/components/schemas/TableRefund-Output"
          type: array
          title: Refunds
        creator:
          anyOf:
            - $ref: "#/components/schemas/UserTiny"
            - type: "null"
        isPaymentPlan:
          type: boolean
          title: Ispaymentplan
        items:
          items:
            $ref: "#/components/schemas/ItemWithQuantity"
          type: array
          title: Items
          description: List of items with their quantities and prices
        isInsurancePayment:
          type: boolean
          title: Isinsurancepayment
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
      type: object
      required:
        - id
        - amount
        - currency
        - status
        - paymentMedium
        - fee
        - feeToPatient
        - createdDate
        - refunds
        - isPaymentPlan
        - isInsurancePayment
      title: PaymentTableItem
    PaymentWithCharges:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the payment.
        patientId:
          anyOf:
            - type: string
            - type: "null"
          title: Patientid
          description: The ID of the patient associated with the payment.
        payinId:
          anyOf:
            - type: string
            - type: "null"
          title: Payinid
          description: The ID of the payin associated with the payment.
        amount:
          type: integer
          title: Amount
          description: The total amount of the payment.
        status:
          $ref: "#/components/schemas/PaymentStatus"
          description: The current status of the payment.
        currency:
          type: string
          title: Currency
          description: The currency in which the payment was made.
          default: USD
        payinConfigId:
          anyOf:
            - type: string
            - type: "null"
          title: Payinconfigid
          description: The configuration ID for the payin.
        paymentMedium:
          type: string
          title: Paymentmedium
          description: The name of the payment medium.
        paymentMethodId:
          anyOf:
            - type: string
            - type: "null"
          title: Paymentmethodid
          description: The ID of the payment method used.
        stripePaymentIntentId:
          anyOf:
            - type: string
            - type: "null"
          title: Stripepaymentintentid
          description: Stripe's payment intent ID if used.
        failedReason:
          anyOf:
            - type: string
            - type: "null"
          title: Failedreason
          description: Reason for payment failure if applicable.
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: The date and time the payment was last updated.
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time the payment was created.
        fee:
          type: integer
          title: Fee
          description: The fee charged by the payment processor.
          default: 0
        feeToPatient:
          type: integer
          title: Feetopatient
          description: The fee charged to the patient for the transaction.
        charges:
          items:
            $ref: "#/components/schemas/ChargePaymentSummary"
          type: array
          title: Charges
      type: object
      required:
        - id
        - amount
        - status
        - paymentMedium
        - createdDate
        - feeToPatient
        - charges
      title: Payment
    PaymentWithPatient:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the payment.
        patientId:
          anyOf:
            - type: string
            - type: "null"
          title: Patientid
          description: The ID of the patient associated with the payment.
        payinId:
          anyOf:
            - type: string
            - type: "null"
          title: Payinid
          description: The ID of the payin associated with the payment.
        amount:
          type: integer
          title: Amount
          description: The total amount of the payment.
        status:
          $ref: "#/components/schemas/PaymentStatus"
          description: The current status of the payment.
        currency:
          type: string
          title: Currency
          description: The currency in which the payment was made.
          default: USD
        payinConfigId:
          anyOf:
            - type: string
            - type: "null"
          title: Payinconfigid
          description: The configuration ID for the payin.
        paymentMedium:
          type: string
          title: Paymentmedium
          description: The name of the payment medium.
        paymentMethodId:
          anyOf:
            - type: string
            - type: "null"
          title: Paymentmethodid
          description: The ID of the payment method used.
        stripePaymentIntentId:
          anyOf:
            - type: string
            - type: "null"
          title: Stripepaymentintentid
          description: Stripe's payment intent ID if used.
        failedReason:
          anyOf:
            - type: string
            - type: "null"
          title: Failedreason
          description: Reason for payment failure if applicable.
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: The date and time the payment was last updated.
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time the payment was created.
        fee:
          type: integer
          title: Fee
          description: The fee charged by the payment processor.
          default: 0
        feeToPatient:
          type: integer
          title: Feetopatient
          description: The fee charged to the patient for the transaction.
        paymentMethod:
          anyOf:
            - $ref: "#/components/schemas/PaymentMethodSummary"
            - type: "null"
          description: Summary of the payment method used.
        refunds:
          items:
            $ref: "#/components/schemas/RefundSummary"
          type: array
          title: Refunds
          description: List of refunds associated with the payment.
          default: []
        patient:
          anyOf:
            - $ref: "#/components/schemas/PatientSummary"
            - type: "null"
      type: object
      required:
        - id
        - amount
        - status
        - paymentMedium
        - createdDate
        - feeToPatient
        - patient
      title: Payment
    Period:
      properties:
        startDate:
          type: string
          title: Startdate
        endDate:
          type: string
          title: Enddate
      type: object
      required:
        - startDate
        - endDate
      title: Period
    PlannedPaymentStatus:
      type: string
      enum:
        - SCHEDULED
        - COMPLETED
        - FAILED
        - CANCELLED
      title: PlannedPaymentStatus
    PlannedPaymentSummary:
      properties:
        paymentPlanId:
          type: string
          title: Paymentplanid
        amount:
          type: number
          title: Amount
        paymentDate:
          type: string
          format: date
          title: Paymentdate
        id:
          type: string
          title: Id
        status:
          $ref: "#/components/schemas/PlannedPaymentStatus"
      type: object
      required:
        - paymentPlanId
        - amount
        - paymentDate
        - id
        - status
      title: PlannedPaymentSummary
    ProviderCapacity:
      properties:
        id:
          type: string
          title: Id
        firstName:
          type: string
          title: Firstname
        lastName:
          type: string
          title: Lastname
        email:
          type: string
          title: Email
        bookingCapacity:
          type: integer
          title: Bookingcapacity
      type: object
      required:
        - id
        - firstName
        - lastName
        - email
        - bookingCapacity
      title: ProviderCapacity
    ProviderCreator:
      properties:
        id:
          type: string
          title: Id
        firstName:
          type: string
          title: Firstname
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
      type: object
      required:
        - id
        - firstName
      title: ProviderCreator
    ProviderEarningsItem:
      properties:
        provider:
          $ref: "#/components/schemas/ProviderEarningsProvider"
        totalSold:
          type: integer
          title: Totalsold
        discounts:
          type: integer
          title: Discounts
        tips:
          type: integer
          title: Tips
        voidAdjustments:
          type: integer
          title: Voidadjustments
        taxes:
          type: integer
          title: Taxes
        outstandingBalances:
          type: integer
          title: Outstandingbalances
        refunds:
          type: integer
          title: Refunds
        totalEarnings:
          type: integer
          title: Totalearnings
        uniquePatients:
          type: integer
          title: Uniquepatients
        uniqueLocations:
          type: integer
          title: Uniquelocations
      type: object
      required:
        - provider
        - totalSold
        - discounts
        - tips
        - voidAdjustments
        - taxes
        - outstandingBalances
        - refunds
        - totalEarnings
        - uniquePatients
        - uniqueLocations
      title: ProviderEarningsItem
    ProviderEarningsProvider:
      properties:
        id:
          anyOf:
            - type: string
            - type: "null"
          title: Id
        firstName:
          anyOf:
            - type: string
            - type: "null"
          title: Firstname
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
      type: object
      title: ProviderEarningsProvider
      description:
        Provider schema for earnings reports, allows None id for uncategorized
        items
    ProviderInvite:
      properties:
        email:
          type: string
          format: email
          title: Email
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
        firstName:
          type: string
          title: Firstname
        lastName:
          type: string
          title: Lastname
        roles:
          items:
            type: string
          type: array
          title: Roles
        primaryLocationId:
          anyOf:
            - type: string
            - type: "null"
          title: Primarylocationid
      type: object
      required:
        - email
        - firstName
        - lastName
        - roles
      title: ProviderInvite
    ProviderItemCategoryBreakdown:
      properties:
        itemCategory:
          type: string
          title: Itemcategory
        totalCollected:
          type: integer
          title: Totalcollected
        tipsCollected:
          type: integer
          title: Tipscollected
        refundsIssued:
          type: integer
          title: Refundsissued
      type: object
      required:
        - itemCategory
        - totalCollected
        - tipsCollected
        - refundsIssued
      title: ProviderItemCategoryBreakdown
    ProviderPaymentDetail:
      properties:
        paymentId:
          type: string
          title: Paymentid
        amount:
          type: integer
          title: Amount
        createdDate:
          type: string
          format: date-time
          title: Createddate
        chargeId:
          type: string
          title: Chargeid
        patientId:
          anyOf:
            - type: string
            - type: "null"
          title: Patientid
        patientFirstName:
          anyOf:
            - type: string
            - type: "null"
          title: Patientfirstname
        patientLastName:
          anyOf:
            - type: string
            - type: "null"
          title: Patientlastname
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
        locationName:
          anyOf:
            - type: string
            - type: "null"
          title: Locationname
      type: object
      required:
        - paymentId
        - amount
        - createdDate
        - chargeId
        - patientId
        - patientFirstName
        - patientLastName
        - locationId
        - locationName
      title: ProviderPaymentDetail
    ProviderPaymentMediumBreakdown:
      properties:
        paymentMedium:
          type: string
          title: Paymentmedium
        totalCollected:
          type: integer
          title: Totalcollected
        tipsCollected:
          type: integer
          title: Tipscollected
        refundsIssued:
          type: integer
          title: Refundsissued
      type: object
      required:
        - paymentMedium
        - totalCollected
        - tipsCollected
        - refundsIssued
      title: ProviderPaymentMediumBreakdown
    ProviderRolesUpdate:
      properties:
        roles:
          items:
            type: string
          type: array
          title: Roles
        providerId:
          type: string
          title: Providerid
      type: object
      required:
        - roles
        - providerId
      title: ProviderRolesUpdate
    ProviderShiftsData:
      properties:
        provider:
          $ref: "#/components/schemas/ProviderTiny"
        shifts:
          items:
            $ref: "#/components/schemas/EventTiny-Output"
          type: array
          title: Shifts
        appointments:
          items:
            $ref: "#/components/schemas/EventTiny-Output"
          type: array
          title: Appointments
      type: object
      required:
        - provider
        - shifts
        - appointments
      title: ProviderShiftsData
    ProviderSummary:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the user.
        firstName:
          anyOf:
            - type: string
            - type: "null"
          title: Firstname
          description: The user's first name.
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
          description: The user's last name.
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
          description: The user's phone number.
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
          description: The user's email address.
        type:
          type: string
          title: Type
          description: Type of the user, fixed as 'provider'.
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: The location of the user.
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
          description: The user's external identifier if available.
        address:
          anyOf:
            - type: string
            - type: "null"
          title: Address
          description: The user's primary address.
        addressLineTwo:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslinetwo
          description: Additional address information.
        city:
          anyOf:
            - type: string
            - type: "null"
          title: City
          description: The city of the user's address.
        state:
          anyOf:
            - type: string
            - type: "null"
          title: State
          description: The state of the user's address.
        zipCode:
          anyOf:
            - type: string
            - type: "null"
          title: Zipcode
          description: The postal code of the user's address.
        country:
          anyOf:
            - type: string
            - type: "null"
          title: Country
          description: The country of the user's address.
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time when the user was created.
        addressValid:
          anyOf:
            - type: boolean
            - type: "null"
          title: Addressvalid
          description: Whether the user's address is valid.
        meta:
          anyOf:
            - type: object
            - type: "null"
          title: Meta
          description: Any additional metadata about the user relevant to your system.
        isArchived:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isarchived
          description: Whether the user is archived.
        primaryLocationId:
          anyOf:
            - type: string
            - type: "null"
          title: Primarylocationid
          description: Primary location id of the provider.
        roles:
          items:
            $ref: "#/components/schemas/RoleSummary"
          type: array
          title: Roles
          description: List of roles associated with the provider.
        lastActive:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Lastactive
          description: Last active date of the provider.
        bio:
          anyOf:
            - type: string
            - type: "null"
          title: Bio
          description: Bio of the provider.
        profileImage:
          anyOf:
            - type: string
            - type: "null"
          title: Profileimage
          description: Profile image of the provider.
        hasGoogleCalendar:
          type: boolean
          title: Hasgooglecalendar
          description: Whether the provider has a Google Calendar.
          default: false
        nationalProviderIdentifier:
          anyOf:
            - type: string
            - type: "null"
          title: Nationalprovideridentifier
          description: National provider identifier of the provider.
        bookingCapacity:
          anyOf:
            - type: integer
            - type: "null"
          title: Bookingcapacity
          description: Booking capacity of the provider.
        showIds:
          type: boolean
          title: Showids
          description: Whether to show IDs in the UI for this provider.
          default: false
        showWeekendsOnCalendar:
          type: boolean
          title: Showweekendsoncalendar
          description: Whether to show weekends on the calendar for this provider.
          default: true
        showCancelledAppointments:
          type: boolean
          title: Showcancelledappointments
          description:
            Whether to show cancelled appointments in the calendar for
            this provider.
          default: false
        showMessagesBox:
          type: boolean
          title: Showmessagesbox
          description: Whether to show the messages box in the UI for this provider.
          default: true
        startCalendarHour:
          anyOf:
            - type: integer
            - type: "null"
          title: Startcalendarhour
          description: The start hour of the calendar for this provider.
        endCalendarHour:
          anyOf:
            - type: integer
            - type: "null"
          title: Endcalendarhour
          description: The end hour of the calendar for this provider.
        sendGcalInvites:
          type: boolean
          title: Sendgcalinvites
          description: Whether to send Google Calendar invites.
          default: false
        calendarGridInterval:
          anyOf:
            - type: integer
            - type: "null"
          title: Calendargridinterval
          description: Grid interval in minutes for calendar display.
        appointmentTimeStepMinutes:
          anyOf:
            - type: integer
            - type: "null"
          title: Appointmenttimestepminutes
          description:
            Time step interval in minutes for appointment scheduling. If
            null, uses the smallest service duration.
        showTranslucentPastEvents:
          type: boolean
          title: Showtranslucentpastevents
          description:
            Whether to show translucent past events in the calendar for
            this provider.
          default: true
        showGhostEvent:
          type: boolean
          title: Showghostevent
          description:
            Whether to show ghost events on hover in the calendar for this
            provider.
          default: false
        autoSignOffNotes:
          type: boolean
          title: Autosignoffnotes
          description: Whether notes should automatically sign off when created.
          default: true
      type: object
      required:
        - id
        - type
        - createdDate
        - roles
      title: ProviderSummary
    ProviderTiny:
      properties:
        id:
          type: string
          title: Id
        firstName:
          type: string
          title: Firstname
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
      type: object
      required:
        - id
        - firstName
      title: ProviderTiny
    ProviderUpdate:
      properties:
        firstName:
          anyOf:
            - type: string
            - type: "null"
          title: Firstname
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
        address:
          anyOf:
            - type: string
            - type: "null"
          title: Address
        addressLineTwo:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslinetwo
        city:
          anyOf:
            - type: string
            - type: "null"
          title: City
        state:
          anyOf:
            - type: string
            - type: "null"
          title: State
        zipCode:
          anyOf:
            - type: string
            - type: "null"
          title: Zipcode
        country:
          anyOf:
            - type: string
            - type: "null"
          title: Country
        addressValid:
          anyOf:
            - type: boolean
            - type: "null"
          title: Addressvalid
        meta:
          anyOf:
            - type: object
            - type: "null"
          title: Meta
        primaryLocationId:
          anyOf:
            - type: string
            - type: "null"
          title: Primarylocationid
        bio:
          anyOf:
            - type: string
            - type: "null"
          title: Bio
          description: Bio of the provider.
        profileImage:
          anyOf:
            - type: string
            - type: "null"
          title: Profileimage
          description: Profile image of the provider.
        nationalProviderIdentifier:
          anyOf:
            - type: string
            - type: "null"
          title: Nationalprovideridentifier
          description: National provider identifier of the provider.
        roles:
          anyOf:
            - items:
                $ref: "#/components/schemas/RoleSummary"
              type: array
            - type: "null"
          title: Roles
          description: List of roles associated with the provider.
        bookingCapacity:
          anyOf:
            - type: integer
            - type: "null"
          title: Bookingcapacity
          description: Booking capacity of the provider.
        showIds:
          anyOf:
            - type: boolean
            - type: "null"
          title: Showids
          description: Whether to show IDs in the UI for this provider.
        showWeekendsOnCalendar:
          anyOf:
            - type: boolean
            - type: "null"
          title: Showweekendsoncalendar
          description: Whether to show weekends on the calendar for this provider.
      type: object
      title: ProviderUpdate
    ProviderUtilization:
      properties:
        provider:
          $ref: "#/components/schemas/UserTiny"
        appointmentTime:
          type: integer
          title: Appointmenttime
        appointmentCount:
          type: integer
          title: Appointmentcount
        totalTime:
          type: integer
          title: Totaltime
        utilizationRate:
          type: number
          title: Utilizationrate
      type: object
      required:
        - provider
        - appointmentTime
        - appointmentCount
        - totalTime
        - utilizationRate
      title: ProviderUtilization
      description: Provider utilization statistics
    ProviderWithServices:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the user.
        firstName:
          anyOf:
            - type: string
            - type: "null"
          title: Firstname
          description: The user's first name.
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
          description: The user's last name.
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
          description: The user's phone number.
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
          description: The user's email address.
        type:
          $ref: "#/components/schemas/UserType"
          description: The type of user.
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: The location of the user.
        services:
          items:
            $ref: "#/components/schemas/ServiceTiny"
          type: array
          title: Services
          default: []
        visibleLocationIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Visiblelocationids
        isArchived:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isarchived
      type: object
      required:
        - id
        - type
      title: ProviderWithServices
    ProvidersCommissionStructure:
      properties:
        id:
          type: string
          title: Id
        firstName:
          type: string
          title: Firstname
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
        commissionStructure:
          anyOf:
            - $ref: "#/components/schemas/CommissionStructureTiny"
            - type: "null"
          description: Commission structure for the provider.
      type: object
      required:
        - id
        - firstName
      title: ProvidersCommissionStructure
    PublicCharge:
      properties:
        id:
          type: string
          title: Id
        total:
          type: integer
          title: Total
        totalOutstanding:
          type: integer
          title: Totaloutstanding
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        status:
          $ref: "#/components/schemas/ChargeStatus"
        discountAmount:
          type: integer
          title: Discountamount
        discountPercentage:
          type: number
          title: Discountpercentage
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
        externalCreatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Externalcreateddate
        createdDate:
          type: string
          format: date-time
          title: Createddate
        ruleSetId:
          anyOf:
            - type: string
            - type: "null"
          title: Rulesetid
        tips:
          anyOf:
            - items:
                $ref: "#/components/schemas/TipDetail"
              type: array
            - type: "null"
          title: Tips
        taxTotal:
          anyOf:
            - type: integer
            - type: "null"
          title: Taxtotal
      type: object
      required:
        - id
        - total
        - totalOutstanding
        - status
        - discountAmount
        - discountPercentage
        - createdDate
      title: PublicCharge
    PublicInvoice:
      properties:
        charges:
          items:
            $ref: "#/components/schemas/PublicInvoiceCharge"
          type: array
          title: Charges
        patient:
          $ref: "#/components/schemas/PublicPatient"
        sessionKey:
          anyOf:
            - type: string
            - type: "null"
          title: Sessionkey
        payinConfigId:
          anyOf:
            - type: string
            - type: "null"
          title: Payinconfigid
        gcsFileUrl:
          type: string
          title: Gcsfileurl
        sandbox:
          type: boolean
          title: Sandbox
        fee:
          anyOf:
            - type: integer
            - type: "null"
          title: Fee
          default: 0
        merchantAccount:
          $ref: "#/components/schemas/PublicMerchantAccount"
      type: object
      required:
        - charges
        - patient
        - gcsFileUrl
        - sandbox
        - merchantAccount
      title: PublicInvoice
    PublicInvoiceCharge:
      properties:
        id:
          type: string
          title: Id
        description:
          type: string
          title: Description
        status:
          $ref: "#/components/schemas/ChargeStatus"
        total:
          type: integer
          title: Total
        totalOutstanding:
          type: integer
          title: Totaloutstanding
        discountAmount:
          type: integer
          title: Discountamount
        externalId:
          type: string
          title: Externalid
        createdDate:
          type: string
          format: date-time
          title: Createddate
      type: object
      required:
        - id
        - description
        - status
        - total
        - totalOutstanding
        - discountAmount
        - externalId
        - createdDate
      title: PublicInvoiceCharge
    PublicInvoiceSummary:
      properties:
        totalOutstanding:
          type: integer
          title: Totaloutstanding
        paymentLink:
          type: string
          title: Paymentlink
      type: object
      required:
        - totalOutstanding
        - paymentLink
      title: PublicInvoiceSummary
    PublicLocation:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        addressLineOne:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslineone
        addressLineTwo:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslinetwo
        city:
          anyOf:
            - type: string
            - type: "null"
          title: City
        state:
          anyOf:
            - type: string
            - type: "null"
          title: State
        zipCode:
          anyOf:
            - type: string
            - type: "null"
          title: Zipcode
        country:
          anyOf:
            - type: string
            - type: "null"
          title: Country
        timezone:
          type: string
          title: Timezone
      type: object
      required:
        - id
        - name
        - timezone
      title: PublicLocation
    PublicMerchantAccount:
      properties:
        cardProcessingFee:
          type: number
          title: Cardprocessingfee
          description: Card processing fee
        perTransactionFee:
          type: integer
          title: Pertransactionfee
          description: Per transaction fee
        inPersonCardProcessingFee:
          type: number
          title: Inpersoncardprocessingfee
          description: In-person card processing fee
        inPersonPerTransactionFee:
          type: integer
          title: Inpersonpertransactionfee
          description: In-person per transaction fee
      type: object
      required:
        - cardProcessingFee
        - perTransactionFee
        - inPersonCardProcessingFee
        - inPersonPerTransactionFee
      title: PublicMerchantAccount
      description: Public merchant account information.
    PublicPatient:
      properties:
        id:
          type: string
          title: Id
        firstName:
          type: string
          title: Firstname
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
      type: object
      required:
        - id
        - firstName
        - lastName
      title: PublicPatient
    PublicProvider:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the user.
        firstName:
          anyOf:
            - type: string
            - type: "null"
          title: Firstname
          description: The user's first name.
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
          description: The user's last name.
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
          description: The user's phone number.
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
          description: The user's email address.
        type:
          $ref: "#/components/schemas/UserType"
          description: The type of user.
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: The location of the user.
        profileImage:
          anyOf:
            - type: string
            - type: "null"
          title: Profileimage
        bio:
          anyOf:
            - type: string
            - type: "null"
          title: Bio
      type: object
      required:
        - id
        - type
      title: PublicProvider
    PublicQuoteView:
      properties:
        id:
          type: string
          title: Id
          description: Quote ID
        status:
          $ref: "#/components/schemas/QuoteStatus"
          description: Quote status
        title:
          anyOf:
            - type: string
            - type: "null"
          title: Title
          description: Title of the quote
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Description of the quote
        discountAmount:
          type: integer
          title: Discountamount
          description: Total discount in cents
        taxAmount:
          type: integer
          title: Taxamount
          description: Total tax in cents
        total:
          type: integer
          title: Total
          description: Final total in cents
        terms:
          anyOf:
            - type: string
            - type: "null"
          title: Terms
          description: Terms and conditions
        validUntilDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Validuntildate
          description: When the quote expires
        items:
          items:
            $ref: "#/components/schemas/QuoteItem"
          type: array
          title: Items
          description: Items and packages in the quote
          default: []
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: Date the quote was created
        viewedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Vieweddate
          description: When the patient first viewed the quote
        respondedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Respondeddate
          description: When the patient responded to the quote
        subtotal:
          type: integer
          title: Subtotal
          description: Calculate subtotal from items after item-level discounts.
          readOnly: true
      type: object
      required:
        - id
        - status
        - discountAmount
        - taxAmount
        - total
        - subtotal
      title: PublicQuoteView
      description: Public view of quote for patients.
    PublicTenant:
      properties:
        name:
          type: string
          title: Name
        subDomain:
          type: string
          title: Subdomain
        homePage:
          type: string
          title: Homepage
        phoneNumber:
          type: string
          title: Phonenumber
        logoUrl:
          type: string
          title: Logourl
        manualInvoiceText:
          type: string
          title: Manualinvoicetext
        slogan:
          anyOf:
            - type: string
            - type: "null"
          title: Slogan
        providerDeactivatedPages:
          items:
            type: string
          type: array
          title: Providerdeactivatedpages
          default: []
        patientDeactivatedPages:
          items:
            type: string
          type: array
          title: Patientdeactivatedpages
          default: []
        enabledModules:
          items:
            $ref: "#/components/schemas/Module"
          type: array
          title: Enabledmodules
          default: []
        hidePatientPaymentPlans:
          type: boolean
          title: Hidepatientpaymentplans
          default: false
        passFeeToPatient:
          type: boolean
          title: Passfeetopatient
        requiredPatientFields:
          items:
            type: string
          type: array
          title: Requiredpatientfields
          default: []
        selfSchedulingRedirectUrl:
          anyOf:
            - type: string
            - type: "null"
          title: Selfschedulingredirecturl
        allowMultipleBookingsForDifferentAppointments:
          type: boolean
          title: Allowmultiplebookingsfordifferentappointments
          default: false
        allowMultipleSelfScheduleAppointments:
          type: boolean
          title: Allowmultipleselfscheduleappointments
          default: false
        receiptLogoUrl:
          anyOf:
            - type: string
            - type: "null"
          title: Receiptlogourl
        googleTagManagerId:
          anyOf:
            - type: string
            - type: "null"
          title: Googletagmanagerid
      type: object
      required:
        - name
        - subDomain
        - homePage
        - phoneNumber
        - logoUrl
        - manualInvoiceText
        - passFeeToPatient
      title: PublicTenant
      description: A publically exposable Tenant
    QueryConfigSchema:
      properties:
        table:
          type: string
          title: Table
          description: Table name to query
        fields:
          items:
            type: string
          type: array
          title: Fields
          description: List of fields to select
        filters:
          anyOf:
            - items:
                type: object
              type: array
            - type: "null"
          title: Filters
          description: Optional filters to apply
        aggregations:
          anyOf:
            - additionalProperties:
                type: string
              type: object
            - type: "null"
          title: Aggregations
          description: Optional aggregations to apply
        groupBy:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Groupby
          description: Optional fields to group by
        temporalGrouping:
          anyOf:
            - additionalProperties:
                type: string
                enum:
                  - hour
                  - day
                  - week
                  - month
                  - quarter
                  - year
              type: object
            - type: "null"
          title: Temporalgrouping
          description: Optional temporal grouping for date fields
        orderBy:
          anyOf:
            - additionalProperties:
                type: string
              type: object
            - type: "null"
          title: Orderby
          description: Optional ordering configuration
      type: object
      required:
        - table
        - fields
      title: QueryConfigSchema
      description: Schema for query configuration.
    QueryExecutionSchema:
      properties:
        page:
          anyOf:
            - type: integer
            - type: "null"
          title: Page
        perPage:
          anyOf:
            - type: integer
            - type: "null"
          title: Perpage
        sortBy:
          anyOf:
            - type: string
            - type: "null"
          title: Sortby
        sortDirection:
          anyOf:
            - type: string
              enum:
                - asc
                - desc
            - type: "null"
          title: Sortdirection
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
        queryConfig:
          $ref: "#/components/schemas/QueryConfigSchema"
          description: Query builder configuration
        chartType:
          anyOf:
            - type: string
            - type: "null"
          title: Charttype
          description: Chart type to optimize query behavior (table, bar, etc.)
        search:
          anyOf:
            - type: string
            - type: "null"
          title: Search
          description: Global search term to filter across text fields
        tz:
          type: string
          title: Tz
          description: Timezone for date filtering and temporal grouping
      type: object
      required:
        - queryConfig
        - tz
      title: QueryExecutionSchema
      description: Schema for executing a query.
    QueryResultSchema:
      properties:
        data:
          items:
            type: object
          type: array
          title: Data
          description: Query result data
        totalCount:
          type: integer
          title: Totalcount
          description: Total number of results
        executionTimeMs:
          type: number
          title: Executiontimems
          description: Query execution time in milliseconds
        metadata:
          anyOf:
            - type: object
            - type: "null"
          title: Metadata
          description: Field metadata for chart rendering
      type: object
      required:
        - data
        - totalCount
        - executionTimeMs
      title: QueryResultSchema
      description: Schema for query execution results.
    QuestionConditionDetail:
      properties:
        id:
          type: string
          title: Id
        questionId:
          type: string
          title: Questionid
        dependentQuestionId:
          type: string
          title: Dependentquestionid
        operator:
          $ref: "#/components/schemas/ConditionOperator"
        value:
          type: string
          title: Value
        groupId:
          anyOf:
            - type: string
            - type: "null"
          title: Groupid
      type: object
      required:
        - id
        - questionId
        - dependentQuestionId
        - operator
        - value
      title: QuestionConditionDetail
    QuestionData:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
      type: object
      required:
        - name
      title: QuestionData
    QuestionDetail-Input:
      properties:
        id:
          type: string
          title: Id
        blockId:
          type: string
          title: Blockid
        formId:
          type: string
          title: Formid
        position:
          type: integer
          title: Position
        questionType:
          $ref: "#/components/schemas/QuestionType"
        required:
          type: boolean
          title: Required
        isArchived:
          type: boolean
          title: Isarchived
          default: false
        mappingKey:
          anyOf:
            - type: string
            - type: "null"
          title: Mappingkey
        data:
          $ref: "#/components/schemas/QuestionData"
        conditions:
          items:
            $ref: "#/components/schemas/QuestionConditionDetail"
          type: array
          title: Conditions
          default: []
      type: object
      required:
        - id
        - blockId
        - formId
        - position
        - questionType
        - required
        - data
      title: QuestionDetail
    QuestionDetail-Output:
      properties:
        id:
          type: string
          title: Id
        blockId:
          type: string
          title: Blockid
        formId:
          type: string
          title: Formid
        position:
          type: integer
          title: Position
        questionType:
          $ref: "#/components/schemas/QuestionType"
        required:
          type: boolean
          title: Required
        isArchived:
          type: boolean
          title: Isarchived
          default: false
        mappingKey:
          anyOf:
            - type: string
            - type: "null"
          title: Mappingkey
        data:
          $ref: "#/components/schemas/QuestionData"
        conditions:
          items:
            $ref: "#/components/schemas/QuestionConditionDetail"
          type: array
          title: Conditions
          default: []
      type: object
      required:
        - id
        - blockId
        - formId
        - position
        - questionType
        - required
        - data
      title: QuestionDetail
    QuestionDetail_Union_Address__Date__Text__SingleSelect__MultiSelect__Toggle__Signature__FileUpload__PaymentMethod__Tag__Disclaimer__Statement__Document__Number__CalculatedScore__-Input:
      properties:
        id:
          type: string
          title: Id
        blockId:
          type: string
          title: Blockid
        formId:
          type: string
          title: Formid
        position:
          type: integer
          title: Position
        questionType:
          $ref: "#/components/schemas/QuestionType"
        required:
          type: boolean
          title: Required
        isArchived:
          type: boolean
          title: Isarchived
          default: false
        mappingKey:
          anyOf:
            - type: string
            - type: "null"
          title: Mappingkey
        data:
          anyOf:
            - $ref: "#/components/schemas/Address"
            - $ref: "#/components/schemas/Date-Input"
            - $ref: "#/components/schemas/Text"
            - $ref: "#/components/schemas/SingleSelect"
            - $ref: "#/components/schemas/MultiSelect"
            - $ref: "#/components/schemas/Toggle"
            - $ref: "#/components/schemas/Signature"
            - $ref: "#/components/schemas/FileUpload"
            - $ref: "#/components/schemas/PaymentMethod"
            - $ref: "#/components/schemas/Tag"
            - $ref: "#/components/schemas/Disclaimer"
            - $ref: "#/components/schemas/Statement"
            - $ref: "#/components/schemas/Document"
            - $ref: "#/components/schemas/Number"
            - $ref: "#/components/schemas/CalculatedScore"
          title: Data
        conditions:
          items:
            $ref: "#/components/schemas/QuestionConditionDetail"
          type: array
          title: Conditions
          default: []
      type: object
      required:
        - id
        - blockId
        - formId
        - position
        - questionType
        - required
        - data
      title:
        QuestionDetail[Union[Address, Date, Text, SingleSelect, MultiSelect,
        Toggle, Signature, FileUpload, PaymentMethod, Tag, Disclaimer, Statement,
        Document, Number, CalculatedScore]]
    QuestionDetail_Union_Address__Date__Text__SingleSelect__MultiSelect__Toggle__Signature__FileUpload__PaymentMethod__Tag__Disclaimer__Statement__Document__Number__CalculatedScore__-Output:
      properties:
        id:
          type: string
          title: Id
        blockId:
          type: string
          title: Blockid
        formId:
          type: string
          title: Formid
        position:
          type: integer
          title: Position
        questionType:
          $ref: "#/components/schemas/QuestionType"
        required:
          type: boolean
          title: Required
        isArchived:
          type: boolean
          title: Isarchived
          default: false
        mappingKey:
          anyOf:
            - type: string
            - type: "null"
          title: Mappingkey
        data:
          anyOf:
            - $ref: "#/components/schemas/Address"
            - $ref: "#/components/schemas/Date-Output"
            - $ref: "#/components/schemas/Text"
            - $ref: "#/components/schemas/SingleSelect"
            - $ref: "#/components/schemas/MultiSelect"
            - $ref: "#/components/schemas/Toggle"
            - $ref: "#/components/schemas/Signature"
            - $ref: "#/components/schemas/FileUpload"
            - $ref: "#/components/schemas/PaymentMethod"
            - $ref: "#/components/schemas/Tag"
            - $ref: "#/components/schemas/Disclaimer"
            - $ref: "#/components/schemas/Statement"
            - $ref: "#/components/schemas/Document"
            - $ref: "#/components/schemas/Number"
            - $ref: "#/components/schemas/CalculatedScore"
          title: Data
        conditions:
          items:
            $ref: "#/components/schemas/QuestionConditionDetail"
          type: array
          title: Conditions
          default: []
      type: object
      required:
        - id
        - blockId
        - formId
        - position
        - questionType
        - required
        - data
      title:
        QuestionDetail[Union[Address, Date, Text, SingleSelect, MultiSelect,
        Toggle, Signature, FileUpload, PaymentMethod, Tag, Disclaimer, Statement,
        Document, Number, CalculatedScore]]
    QuestionSummary:
      properties:
        id:
          type: string
          title: Id
        questionType:
          $ref: "#/components/schemas/QuestionType"
        name:
          type: string
          title: Name
        isArchived:
          type: boolean
          title: Isarchived
      type: object
      required:
        - id
        - questionType
        - name
        - isArchived
      title: QuestionSummary
    QuestionType:
      type: string
      enum:
        - ADDRESS
        - DATE
        - TEXT
        - NUMBER
        - TEXT_AREA
        - SINGLE_SELECT
        - RADIAL_SINGLE_SELECT
        - MULTI_SELECT
        - RADIAL_MULTI_SELECT
        - TOGGLE
        - SIGNATURE
        - FILE_UPLOAD
        - PHONE_NUMBER
        - EMAIL
        - PAYMENT_METHOD
        - TAG
        - DISCLAIMER
        - STATEMENT
        - DOCUMENT
        - FEET_INCHES_HEIGHT
        - POUNDS_WEIGHT
        - CALCULATED_SCORE
      title: QuestionType
    QuickNoteCreate:
      properties:
        patientId:
          type: string
          title: Patientid
        note:
          type: string
          title: Note
        creatorId:
          type: string
          title: Creatorid
        eventId:
          anyOf:
            - type: string
            - type: "null"
          title: Eventid
      type: object
      required:
        - patientId
        - note
        - creatorId
      title: QuickNoteCreate
    QuickNoteSummary:
      properties:
        id:
          type: string
          title: Id
        patientId:
          type: string
          title: Patientid
        note:
          type: string
          title: Note
        creator:
          $ref: "#/components/schemas/UserTiny"
        eventId:
          anyOf:
            - type: string
            - type: "null"
          title: Eventid
        createdDate:
          type: string
          format: date-time
          title: Createddate
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
        isArchived:
          type: boolean
          title: Isarchived
          default: false
      type: object
      required:
        - id
        - patientId
        - note
        - creator
        - createdDate
      title: QuickNoteSummary
    QuickNoteUpdate:
      properties:
        note:
          anyOf:
            - type: string
            - type: "null"
          title: Note
        eventId:
          anyOf:
            - type: string
            - type: "null"
          title: Eventid
      type: object
      title: QuickNoteUpdate
    QuoteCreate:
      properties:
        id:
          anyOf:
            - type: string
            - type: "null"
          title: Id
          description: Quote ID (auto-generated if not provided)
        patientId:
          type: string
          title: Patientid
          description: ID of the patient
        cartId:
          type: string
          title: Cartid
          description: ID of source cart if creating from cart
        creatorId:
          type: string
          title: Creatorid
          description: ID of the user creating the quote
        title:
          anyOf:
            - type: string
            - type: "null"
          title: Title
          description: Title/subject of the quote
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Description of the quote
        validUntilDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Validuntildate
          description: When the quote expires
        terms:
          anyOf:
            - type: string
            - type: "null"
          title: Terms
          description: Terms and conditions
        internalNotes:
          anyOf:
            - type: string
            - type: "null"
          title: Internalnotes
          description: Internal notes
        requiresPatientVerification:
          type: boolean
          title: Requirespatientverification
          description: Require patient verification to view
          default: true
      type: object
      required:
        - patientId
        - cartId
        - creatorId
      title: QuoteCreate
      description: Schema for creating a new quote.
    QuoteDetail:
      properties:
        id:
          type: string
          title: Id
          description: Quote ID
        patientId:
          type: string
          title: Patientid
          description: Patient ID
        creatorId:
          anyOf:
            - type: string
            - type: "null"
          title: Creatorid
          description: Creator ID
        cartId:
          anyOf:
            - type: string
            - type: "null"
          title: Cartid
          description: Source cart ID
        status:
          $ref: "#/components/schemas/QuoteStatus"
          description: Quote status
        title:
          anyOf:
            - type: string
            - type: "null"
          title: Title
          description: Title/subject of the quote
        discountAmount:
          type: integer
          title: Discountamount
          description: Total discount in cents
        discountPercentage:
          type: number
          title: Discountpercentage
          description: Overall discount percentage
        taxAmount:
          type: integer
          title: Taxamount
          description: Total tax in cents
        total:
          type: integer
          title: Total
          description: Final total in cents
        itemCount:
          type: integer
          title: Itemcount
          description: Number of items in quote
          default: 0
        packageCount:
          type: integer
          title: Packagecount
          description: Number of packages in quote
          default: 0
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: Date the quote was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: Date the quote was last updated
        validUntilDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Validuntildate
          description: When the quote expires
        sentDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Sentdate
          description: When the quote was sent
        viewedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Vieweddate
          description: When the patient first viewed the quote
        respondedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Respondeddate
          description: When the patient responded to the quote
        internalNotes:
          anyOf:
            - type: string
            - type: "null"
          title: Internalnotes
          description: Internal notes
        creator:
          anyOf:
            - $ref: "#/components/schemas/ProviderTiny"
            - type: "null"
          description: Creator details
        patient:
          anyOf:
            - $ref: "#/components/schemas/PatientSummary"
            - type: "null"
          description: Patient details
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Description of the quote
        terms:
          anyOf:
            - type: string
            - type: "null"
          title: Terms
          description: Terms and conditions
        items:
          items:
            $ref: "#/components/schemas/QuoteItem"
          type: array
          title: Items
          description: Items and packages in the quote
          default: []
        convertedChargeId:
          anyOf:
            - type: string
            - type: "null"
          title: Convertedchargeid
          description: ID of charge if quote was converted
        subtotal:
          type: integer
          title: Subtotal
          description: Calculate subtotal from items after item-level discounts.
          readOnly: true
      type: object
      required:
        - id
        - patientId
        - status
        - discountAmount
        - discountPercentage
        - taxAmount
        - total
        - subtotal
      title: QuoteDetail
      description: Detailed schema for quote with all items and packages.
    QuoteItem:
      properties:
        quoteId:
          type: string
          title: Quoteid
          description: ID of the quote
        itemId:
          anyOf:
            - type: string
            - type: "null"
          title: Itemid
          description: ID of the item (if this is an item)
        packageId:
          anyOf:
            - type: string
            - type: "null"
          title: Packageid
          description: ID of the package (if this is a package)
        quantity:
          type: number
          title: Quantity
          description: Quantity of the item/package
        unitPrice:
          type: integer
          title: Unitprice
          description: Unit price in cents
        discountAmount:
          type: integer
          title: Discountamount
          description: Discount amount in cents
        discountPercentage:
          type: number
          title: Discountpercentage
          description: Discount percentage
        taxAmount:
          type: integer
          title: Taxamount
          description: Tax amount in cents
        totalPrice:
          type: integer
          title: Totalprice
          description: Total price for this quantity in cents
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Custom description for this item/package
        item:
          anyOf:
            - $ref: "#/components/schemas/ItemTiny"
            - type: "null"
          description: Item details (if this is an item)
        package:
          anyOf:
            - $ref: "#/components/schemas/PackageTiny"
            - type: "null"
          description: Package details (if this is a package)
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: Date the item was added
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: Date the item was last updated
      type: object
      required:
        - quoteId
        - quantity
        - unitPrice
        - discountAmount
        - discountPercentage
        - taxAmount
        - totalPrice
      title: QuoteItem
      description:
        Schema for quote items with full details (handles both items and
        packages).
    QuoteItemCreate:
      properties:
        itemId:
          anyOf:
            - type: string
            - type: "null"
          title: Itemid
          description: ID of the item (required if not package)
        packageId:
          anyOf:
            - type: string
            - type: "null"
          title: Packageid
          description: ID of the package (required if not item)
        quantity:
          type: number
          title: Quantity
          description: Quantity of the item/package
          default: 1.0
        unitPrice:
          anyOf:
            - type: integer
            - type: "null"
          title: Unitprice
          description:
            Custom unit price in cents (if different from item/package
            price)
        discountAmount:
          type: integer
          title: Discountamount
          description: Discount amount in cents
          default: 0
        discountPercentage:
          type: number
          title: Discountpercentage
          description: Discount percentage (0-100)
          default: 0.0
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Custom description for this item/package in the quote
      type: object
      title: QuoteItemCreate
      description: Schema for creating quote items (handles both items and packages).
    QuoteItemUpdate:
      properties:
        quantity:
          anyOf:
            - type: number
            - type: "null"
          title: Quantity
          description: New quantity
        unitPrice:
          anyOf:
            - type: integer
            - type: "null"
          title: Unitprice
          description: New unit price in cents
        discountAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Discountamount
          description: New discount amount in cents
        discountPercentage:
          anyOf:
            - type: number
            - type: "null"
          title: Discountpercentage
          description: New discount percentage
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: New description
      type: object
      title: QuoteItemUpdate
      description: Schema for updating quote items (handles both items and packages).
    QuoteResponse:
      properties:
        quoteId:
          type: string
          title: Quoteid
          description: ID of the quote
        response:
          type: string
          title: Response
          description: Patient response (accept/decline)
        message:
          anyOf:
            - type: string
            - type: "null"
          title: Message
          description: Optional message from patient
        preferredPaymentMethodId:
          anyOf:
            - type: string
            - type: "null"
          title: Preferredpaymentmethodid
          description: Preferred payment method if accepting
      type: object
      required:
        - quoteId
        - response
      title: QuoteResponse
      description: Patient response to a quote.
    QuoteStatus:
      type: string
      enum:
        - DRAFT
        - SENT
        - VIEWED
        - ACCEPTED
        - DECLINED
        - EXPIRED
        - CONVERTED
      title: QuoteStatus
      description: Status of a quote.
    QuoteSummary:
      properties:
        id:
          type: string
          title: Id
          description: Quote ID
        patientId:
          type: string
          title: Patientid
          description: Patient ID
        creatorId:
          anyOf:
            - type: string
            - type: "null"
          title: Creatorid
          description: Creator ID
        cartId:
          anyOf:
            - type: string
            - type: "null"
          title: Cartid
          description: Source cart ID
        status:
          $ref: "#/components/schemas/QuoteStatus"
          description: Quote status
        title:
          anyOf:
            - type: string
            - type: "null"
          title: Title
          description: Title/subject of the quote
        discountAmount:
          type: integer
          title: Discountamount
          description: Total discount in cents
        discountPercentage:
          type: number
          title: Discountpercentage
          description: Overall discount percentage
        taxAmount:
          type: integer
          title: Taxamount
          description: Total tax in cents
        total:
          type: integer
          title: Total
          description: Final total in cents
        itemCount:
          type: integer
          title: Itemcount
          description: Number of items in quote
          default: 0
        packageCount:
          type: integer
          title: Packagecount
          description: Number of packages in quote
          default: 0
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: Date the quote was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: Date the quote was last updated
        validUntilDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Validuntildate
          description: When the quote expires
        sentDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Sentdate
          description: When the quote was sent
        viewedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Vieweddate
          description: When the patient first viewed the quote
        respondedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Respondeddate
          description: When the patient responded to the quote
        internalNotes:
          anyOf:
            - type: string
            - type: "null"
          title: Internalnotes
          description: Internal notes
        creator:
          anyOf:
            - $ref: "#/components/schemas/ProviderTiny"
            - type: "null"
          description: Creator details
        patient:
          anyOf:
            - $ref: "#/components/schemas/PatientSummary"
            - type: "null"
          description: Patient details
      type: object
      required:
        - id
        - patientId
        - status
        - discountAmount
        - discountPercentage
        - taxAmount
        - total
      title: QuoteSummary
      description: Summary schema for quote with basic details.
    QuoteUpdate:
      properties:
        status:
          anyOf:
            - $ref: "#/components/schemas/QuoteStatus"
            - type: "null"
          description: Quote status
        title:
          anyOf:
            - type: string
            - type: "null"
          title: Title
          description: Title/subject of the quote
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Description of the quote
        validUntilDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Validuntildate
          description: When the quote expires
        terms:
          anyOf:
            - type: string
            - type: "null"
          title: Terms
          description: Terms and conditions
        internalNotes:
          anyOf:
            - type: string
            - type: "null"
          title: Internalnotes
          description: Internal notes
        requiresPatientVerification:
          anyOf:
            - type: boolean
            - type: "null"
          title: Requirespatientverification
          description: Require patient verification to view
        discountAmount:
          anyOf:
            - type: integer
            - type: "null"
          title: Discountamount
          description: Overall quote discount in cents
        discountPercentage:
          anyOf:
            - type: number
            - type: "null"
          title: Discountpercentage
          description: Overall quote discount percentage
      type: object
      title: QuoteUpdate
      description: Schema for updating quote details.
    RainforestACH:
      properties:
        accountHolderType:
          type: string
          title: Accountholdertype
        accountNumberLast4:
          type: string
          title: Accountnumberlast4
        bankName:
          type: string
          title: Bankname
        routingNumber:
          type: string
          title: Routingnumber
      type: object
      required:
        - accountHolderType
        - accountNumberLast4
        - bankName
        - routingNumber
      title: RainforestACH
      description: The ACH used to pay for the payin
    RainforestCard:
      properties:
        brand:
          type: string
          title: Brand
        last4:
          type: string
          title: Last4
        expMonth:
          type: integer
          title: Expmonth
        expYear:
          type: integer
          title: Expyear
      type: object
      required:
        - brand
        - last4
        - expMonth
        - expYear
      title: RainforestCard
      description: The card used to pay for the payin
    RainforestPaymentMethod:
      properties:
        paymentMethodId:
          type: string
          title: Paymentmethodid
        paymentMethodConfigId:
          type: string
          title: Paymentmethodconfigid
        fingerprint:
          anyOf:
            - type: string
            - type: "null"
          title: Fingerprint
        methodType:
          type: string
          title: Methodtype
        card:
          anyOf:
            - $ref: "#/components/schemas/RainforestCard"
            - type: "null"
        ach:
          anyOf:
            - $ref: "#/components/schemas/RainforestACH"
            - type: "null"
        applePay:
          anyOf:
            - $ref: "#/components/schemas/ApplePay"
            - type: "null"
        billingContact:
          anyOf:
            - $ref: "#/components/schemas/BillingContact"
            - type: "null"
        metadata:
          type: object
          title: Metadata
        createdAt:
          type: string
          title: Createdat
        updatedAt:
          type: string
          title: Updatedat
      type: object
      required:
        - paymentMethodId
        - paymentMethodConfigId
        - fingerprint
        - methodType
        - card
        - ach
        - applePay
        - billingContact
        - metadata
        - createdAt
        - updatedAt
      title: RainforestPaymentMethod
    RecurrenceModificationMode:
      type: string
      enum:
        - this
        - future
        - all
      title: RecurrenceModificationMode
      description: |-
        Enum representing the different modes for handling recurring event modifications
        Used when modifying recurring events to specify which occurrences should be affected
    RecurringEventDetail:
      properties:
        id:
          type: string
          title: Id
        rrule:
          type: string
          title: Rrule
        startDate:
          type: string
          format: date-time
          title: Startdate
        durationMinutes:
          type: integer
          title: Durationminutes
        timezone:
          type: string
          title: Timezone
        serviceIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Serviceids
        capacity:
          anyOf:
            - type: integer
            - type: "null"
          title: Capacity
        type:
          $ref: "#/components/schemas/EventType"
        title:
          type: string
          title: Title
        attendeeIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Attendeeids
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
        organizerId:
          type: string
          title: Organizerid
      type: object
      required:
        - id
        - rrule
        - startDate
        - durationMinutes
        - timezone
        - type
        - title
        - organizerId
      title: RecurringEventDetail
    RecurringEventRequest:
      properties:
        id:
          anyOf:
            - type: string
            - type: "null"
          title: Id
        rrule:
          type: string
          title: Rrule
        startDate:
          type: string
          format: date-time
          title: Startdate
        durationMinutes:
          type: integer
          title: Durationminutes
        timezone:
          type: string
          title: Timezone
        serviceIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Serviceids
        capacity:
          anyOf:
            - type: integer
            - type: "null"
          title: Capacity
      type: object
      required:
        - rrule
        - startDate
        - durationMinutes
        - timezone
      title: RecurringEventRequest
    RecurringEventUpdate:
      properties:
        id:
          type: string
          title: Id
        rrule:
          type: string
          title: Rrule
        startDate:
          type: string
          format: date-time
          title: Startdate
        durationMinutes:
          type: integer
          title: Durationminutes
        timezone:
          type: string
          title: Timezone
        serviceIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Serviceids
        capacity:
          anyOf:
            - type: integer
            - type: "null"
          title: Capacity
        type:
          $ref: "#/components/schemas/EventType"
        title:
          type: string
          title: Title
        attendeeIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Attendeeids
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
      type: object
      required:
        - id
        - rrule
        - startDate
        - durationMinutes
        - timezone
        - type
        - title
      title: RecurringEventUpdate
    RefundCreate:
      properties:
        paymentId:
          type: string
          title: Paymentid
        providerId:
          type: string
          title: Providerid
        amount:
          type: integer
          title: Amount
        reason:
          $ref: "#/components/schemas/RefundReason"
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
        restoreInventory:
          type: boolean
          title: Restoreinventory
          default: false
      type: object
      required:
        - paymentId
        - providerId
        - amount
        - reason
      title: RefundCreate
      description: Create a refund for a payment.
    RefundReason:
      type: string
      enum:
        - DUPLICATE
        - DISPUTE
        - BOOKING_FEE
        - OTHER
      title: RefundReason
    RefundSummary:
      properties:
        id:
          type: string
          title: Id
        paymentId:
          type: string
          title: Paymentid
        amount:
          type: integer
          title: Amount
        reason:
          $ref: "#/components/schemas/RefundReason"
        createdDate:
          type: string
          format: date-time
          title: Createddate
        status:
          $ref: "#/components/schemas/PaymentStatus"
        rainforestRefundId:
          anyOf:
            - type: string
            - type: "null"
          title: Rainforestrefundid
        fee:
          type: integer
          title: Fee
          default: 0
      type: object
      required:
        - id
        - paymentId
        - amount
        - reason
        - createdDate
        - status
      title: RefundSummary
    RefundSummaryForTimeline:
      properties:
        id:
          type: string
          title: Id
          description: Refund ID
        amount:
          type: integer
          title: Amount
          description: Refund amount in cents
        payerName:
          type: string
          title: Payername
          description: Name of the original payer
        creatorName:
          type: string
          title: Creatorname
          description: Name of the user who processed the refund
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: Refund creation date
        reason:
          anyOf:
            - type: string
            - type: "null"
          title: Reason
          description: Reason for the refund
      type: object
      required:
        - id
        - amount
        - payerName
        - creatorName
        - createdDate
      title: RefundSummaryForTimeline
      description: Refund summary for timeline display.
    RefundWithPatient:
      properties:
        id:
          type: string
          title: Id
        paymentId:
          type: string
          title: Paymentid
        amount:
          type: integer
          title: Amount
        reason:
          $ref: "#/components/schemas/RefundReason"
        createdDate:
          type: string
          format: date-time
          title: Createddate
        status:
          $ref: "#/components/schemas/PaymentStatus"
        rainforestRefundId:
          anyOf:
            - type: string
            - type: "null"
          title: Rainforestrefundid
        fee:
          type: integer
          title: Fee
          default: 0
        patient:
          $ref: "#/components/schemas/PatientSummary"
      type: object
      required:
        - id
        - paymentId
        - amount
        - reason
        - createdDate
        - status
        - patient
      title: RefundWithPatient
    RegenerateAISuggestion:
      properties:
        suggestedMessageId:
          type: string
          title: Suggestedmessageid
        feedback:
          type: string
          title: Feedback
      type: object
      required:
        - suggestedMessageId
        - feedback
      title: RegenerateAISuggestion
    RelativeDate:
      properties:
        years:
          anyOf:
            - type: integer
            - type: "null"
          title: Years
        months:
          anyOf:
            - type: integer
            - type: "null"
          title: Months
        days:
          anyOf:
            - type: integer
            - type: "null"
          title: Days
      type: object
      title: RelativeDate
    RescheduleData:
      properties:
        oldStart:
          type: string
          title: Oldstart
        newStart:
          type: string
          title: Newstart
      type: object
      required:
        - oldStart
        - newStart
      title: RescheduleData
      description: Data structure for reschedule events
    ResolveAlertParams:
      properties:
        alertIds:
          items:
            type: string
          type: array
          title: Alertids
        actionRequired:
          type: boolean
          title: Actionrequired
      type: object
      required:
        - alertIds
        - actionRequired
      title: ResolveAlertParams
    RetryInvoiceMethod:
      properties:
        invoiceSetId:
          type: string
          title: Invoicesetid
        method:
          $ref: "#/components/schemas/InvoiceMethod"
      type: object
      required:
        - invoiceSetId
        - method
      title: RetryInvoiceMethod
    Revenue:
      properties:
        data:
          items:
            $ref: "#/components/schemas/RevenueItem"
          type: array
          title: Data
      type: object
      required:
        - data
      title: Revenue
    RevenueBreakdownItem:
      properties:
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: Date when the charge was created
        location:
          anyOf:
            - type: string
            - type: "null"
          title: Location
          description: Location name where the sale occurred
        provider:
          anyOf:
            - $ref: "#/components/schemas/ProviderTiny"
            - type: "null"
          description: Provider who made the sale
        patient:
          $ref: "#/components/schemas/PatientTiny"
          description: Patient information
        item:
          type: string
          title: Item
          description: Item or service name
        itemType:
          type: string
          title: Itemtype
          description: Type of the item (PRODUCT, SERVICE, PACKAGE, etc.)
        itemCategory:
          type: string
          title: Itemcategory
          description: Category of the item
        quantity:
          type: number
          title: Quantity
          description: Quantity sold
        price:
          type: integer
          title: Price
          description: Unit price in cents
        grossAmount:
          type: integer
          title: Grossamount
          description: Gross amount before discounts/taxes in cents
        itemDiscountAmount:
          type: integer
          title: Itemdiscountamount
          description: Item-level discount amount in cents
        chargeDiscountAmount:
          type: integer
          title: Chargediscountamount
          description: Proportional charge-level discount amount in cents
        taxAmount:
          type: integer
          title: Taxamount
          description: Tax amount in cents
        netAmount:
          type: integer
          title: Netamount
          description: Net amount after discounts and taxes in cents
        paymentMediums:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Paymentmediums
          description: Payment methods used
        chargeId:
          type: string
          title: Chargeid
          description: Charge ID for reference
        comment:
          anyOf:
            - type: string
            - type: "null"
          title: Comment
          description: Charge comment
      type: object
      required:
        - createdDate
        - patient
        - item
        - itemType
        - itemCategory
        - quantity
        - price
        - grossAmount
        - itemDiscountAmount
        - chargeDiscountAmount
        - taxAmount
        - netAmount
        - chargeId
      title: RevenueBreakdownItem
      description: Individual revenue breakdown item.
    RevenueItem:
      properties:
        date:
          type: string
          title: Date
        paymentMedium:
          type: string
          title: Paymentmedium
        totalAmount:
          type: number
          title: Totalamount
        transactionCount:
          type: integer
          title: Transactioncount
        averageTransaction:
          type: number
          title: Averagetransaction
      type: object
      required:
        - date
        - paymentMedium
        - totalAmount
        - transactionCount
        - averageTransaction
      title: RevenueItem
    ReviewSummary:
      properties:
        id:
          type: string
          title: Id
        rating:
          type: integer
          maximum: 5.0
          minimum: 1.0
          title: Rating
          description: Rating from 1-5 stars
        feedback:
          anyOf:
            - type: string
            - type: "null"
          title: Feedback
          description: Patient feedback text
        locationName:
          type: string
          title: Locationname
        redirectedToExternal:
          type: boolean
          title: Redirectedtoexternal
          description: Whether patient was redirected to external platform
        createdDate:
          type: string
          title: Createddate
          description: ISO format datetime string
      type: object
      required:
        - id
        - rating
        - locationName
        - redirectedToExternal
        - createdDate
      title: ReviewSummary
      description: Summary of a patient review for timeline display.
    RoleCreate:
      properties:
        name:
          type: string
          title: Name
          description: Role name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Optional description of the role
        userType:
          $ref: "#/components/schemas/RoleType"
          description: Role type (ADMIN, PROVIDER, USER)
          default: USER
      type: object
      required:
        - name
      title: RoleCreate
    RoleDetail:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the role
        name:
          type: string
          title: Name
          description: Role name (e.g., 'admin', 'user', 'billing_manager')
        userType:
          $ref: "#/components/schemas/RoleType"
          description: Role type (ADMIN, PROVIDER, USER)
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: When the role was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: When the role was last updated
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Description of what this role does
        permissions:
          items:
            type: string
          type: array
          title: Permissions
          description: List of permission strings
      type: object
      required:
        - id
        - name
        - userType
      title: RoleDetail
      description: Extended role information including permissions
    RoleSummary:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the role
        name:
          type: string
          title: Name
          description: Role name (e.g., 'admin', 'user', 'billing_manager')
        userType:
          $ref: "#/components/schemas/RoleType"
          description: Role type (ADMIN, PROVIDER, USER)
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: When the role was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: When the role was last updated
      type: object
      required:
        - id
        - name
        - userType
      title: RoleSummary
    RoleType:
      type: string
      enum:
        - ADMIN
        - PROVIDER
        - USER
      title: RoleType
    RoleUpdate:
      properties:
        name:
          anyOf:
            - type: string
            - type: "null"
          title: Name
          description: Updated role name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Updated role description
        userType:
          anyOf:
            - $ref: "#/components/schemas/RoleType"
            - type: "null"
          description: Updated role type
      type: object
      title: RoleUpdate
    RuleCreateWithoutId:
      properties:
        name:
          type: string
          title: Name
          description: Name of the rule.
        delayInDays:
          type: integer
          title: Delayindays
          description: Number of days to delay before applying the rule.
        amountLessThan:
          anyOf:
            - type: integer
            - type: "null"
          title: Amountlessthan
          description: Upper bound for the amount, exclusive.
        amountGreaterThan:
          anyOf:
            - type: integer
            - type: "null"
          title: Amountgreaterthan
          description: Lower bound for the amount, exclusive.
        lessThanOrEqualTo:
          anyOf:
            - type: integer
            - type: "null"
          title: Lessthanorequalto
          description: Upper bound for the amount, inclusive.
        methods:
          items:
            $ref: "#/components/schemas/InvoiceMethod"
          type: array
          title: Methods
          description: Communication methods to be used for this rule.
        message:
          anyOf:
            - type: string
            - type: "null"
          title: Message
          description:
            Message to be sent when applying this rule, must contain the
            {url} and {first_name} placeholders.
      type: object
      required:
        - name
        - delayInDays
        - methods
      title: RuleCreateWithoutId
    RuleDetails:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        methods:
          items:
            $ref: "#/components/schemas/InvoiceMethod"
          type: array
          title: Methods
        delayInDays:
          type: integer
          title: Delayindays
        message:
          type: string
          title: Message
      type: object
      required:
        - id
        - name
        - methods
        - delayInDays
        - message
      title: RuleDetails
    RuleSetCreate:
      properties:
        name:
          type: string
          title: Name
          description: Name of the rule set to be created.
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Optional description of the rule set to be created.
        rules:
          items:
            $ref: "#/components/schemas/RuleCreateWithoutId"
          type: array
          title: Rules
          description: List of rules to be created.
          default: []
      type: object
      required:
        - name
      title: RuleSetCreate
    RuleSetSummary:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the rule set.
        name:
          type: string
          title: Name
          description: Name of the rule set.
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Optional description of the rule set.
        rules:
          items:
            $ref: "#/components/schemas/RuleSummary"
          type: array
          title: Rules
          description: List of rules contained in this rule set.
          default: []
      type: object
      required:
        - id
        - name
      title: RuleSetSummary
    RuleSetUpdate:
      properties:
        name:
          type: string
          title: Name
          description: Name of the rule set to be updated.
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Optional description of the rule set.
        rules:
          items:
            $ref: "#/components/schemas/RuleUpdate"
          type: array
          title: Rules
          description: List of rules to update or create.
          default: []
      type: object
      required:
        - name
      title: RuleSetUpdate
    RuleSummary:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the rule.
        name:
          type: string
          title: Name
          description: Name of the rule.
        delayInDays:
          type: integer
          title: Delayindays
          description: Number of days to delay before applying the rule.
        ruleSetId:
          type: string
          title: Rulesetid
          description: Identifier of the rule set this rule belongs to.
        amountLessThan:
          anyOf:
            - type: integer
            - type: "null"
          title: Amountlessthan
          description: Upper bound for the amount, exclusive.
        amountGreaterThan:
          anyOf:
            - type: integer
            - type: "null"
          title: Amountgreaterthan
          description: Lower bound for the amount, exclusive.
        lessThanOrEqualTo:
          anyOf:
            - type: integer
            - type: "null"
          title: Lessthanorequalto
          description: Upper bound for the amount, inclusive.
        methods:
          items:
            $ref: "#/components/schemas/InvoiceMethod"
          type: array
          title: Methods
          description: Communication methods to be used for this rule.
        message:
          anyOf:
            - type: string
            - type: "null"
          title: Message
          description: Message to be sent when applying this rule.
      type: object
      required:
        - id
        - name
        - delayInDays
        - ruleSetId
        - methods
      title: RuleSummary
    RuleUpdate:
      properties:
        id:
          anyOf:
            - type: string
            - type: "null"
          title: Id
          description: Optional ID of the rule. If present, the rule will be updated.
        name:
          type: string
          title: Name
          description: Name of the rule.
        ruleSetId:
          type: string
          title: Rulesetid
          description: Identifier of the rule set this rule belongs to.
        delayInDays:
          anyOf:
            - type: integer
            - type: "null"
          title: Delayindays
          description: Number of days to delay before applying the rule.
        amountLessThan:
          anyOf:
            - type: integer
            - type: "null"
          title: Amountlessthan
          description: Upper bound for the amount, exclusive.
        amountGreaterThan:
          anyOf:
            - type: integer
            - type: "null"
          title: Amountgreaterthan
          description: Lower bound for the amount, exclusive.
        lessThanOrEqualTo:
          anyOf:
            - type: integer
            - type: "null"
          title: Lessthanorequalto
          description: Upper bound for the amount, inclusive.
        methods:
          anyOf:
            - items:
                $ref: "#/components/schemas/InvoiceMethod"
              type: array
            - type: "null"
          title: Methods
          description: Communication methods to be used for this rule.
        message:
          anyOf:
            - type: string
            - type: "null"
          title: Message
          description:
            Message to be sent when applying this rule, must contain the
            {url} and {first_name} placeholders.
      type: object
      required:
        - name
        - ruleSetId
      title: RuleUpdate
    SchedulingKPI:
      properties:
        numberAppointmentsScheduled:
          anyOf:
            - type: integer
            - type: "null"
          title: Numberappointmentsscheduled
        numberAppointmentsCompleted:
          anyOf:
            - type: integer
            - type: "null"
          title: Numberappointmentscompleted
        numberNotifications:
          anyOf:
            - type: integer
            - type: "null"
          title: Numbernotifications
        percentGrowth:
          anyOf:
            - type: number
            - type: "null"
          title: Percentgrowth
      type: object
      title: SchedulingKPI
    SelfScheduleAppointment:
      properties:
        assignments:
          items:
            $ref: "#/components/schemas/AvailabilityAssignment"
          type: array
          minItems: 1
          title: Assignments
        organizerId:
          type: string
          title: Organizerid
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
        start:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Start
        end:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: End
        notes:
          anyOf:
            - type: string
            - type: "null"
          title: Notes
        cancelEventId:
          anyOf:
            - type: string
            - type: "null"
          title: Canceleventid
      type: object
      required:
        - assignments
        - organizerId
      additionalProperties: false
      title: SelfScheduleAppointment
    SelfScheduleCancellationRequest:
      properties:
        cancellationReason:
          anyOf:
            - type: string
            - type: "null"
          title: Cancellationreason
          description: Optional reason for cancelling the appointment
      type: object
      title: SelfScheduleCancellationRequest
      description: Schema for self-schedule appointment cancellation requests
    SelfSchedulePatient:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the user.
        firstName:
          anyOf:
            - type: string
            - type: "null"
          title: Firstname
          description: The user's first name.
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
          description: The user's last name.
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
          description: The user's phone number.
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
          description: The user's email address.
        type:
          $ref: "#/components/schemas/UserType"
          description: The type of user.
          default: PATIENT
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: The location of the user.
        dateOfBirth:
          anyOf:
            - type: string
              format: date
            - type: "null"
          title: Dateofbirth
          description: The date of birth of the patient.
        onSchedulingBlacklist:
          anyOf:
            - type: boolean
            - type: "null"
          title: Onschedulingblacklist
          description: Whether the patient is on the scheduling blacklist.
        patientStatus:
          $ref: "#/components/schemas/PatientStatus"
        futureAppointment:
          anyOf:
            - $ref: "#/components/schemas/EventTiny-Output"
            - type: "null"
        hasPaymentMethod:
          type: boolean
          title: Haspaymentmethod
          default: false
      type: object
      required:
        - id
        - patientStatus
      title: SelfSchedulePatient
    SelfSchedulePatientRequest:
      properties:
        firstName:
          type: string
          minLength: 1
          title: Firstname
        lastName:
          type: string
          minLength: 1
          title: Lastname
        phoneNumber:
          type: string
          title: Phonenumber
      type: object
      required:
        - firstName
        - lastName
        - phoneNumber
      title: SelfSchedulePatientRequest
    SendQuoteRequest:
      properties:
        quoteId:
          type: string
          title: Quoteid
          description: ID of the quote to send
        method:
          type: string
          title: Method
          description: Communication method (email, sms, etc.)
        message:
          anyOf:
            - type: string
            - type: "null"
          title: Message
          description: Custom message to include
        scheduleSendDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Schedulesenddate
          description: Schedule quote to be sent at this time
      type: object
      required:
        - quoteId
        - method
      title: SendQuoteRequest
      description: Request schema for sending quotes to patients.
    SendReceipt:
      properties:
        paymentId:
          type: string
          title: Paymentid
        useEmail:
          type: boolean
          title: Useemail
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
        isAutomatic:
          type: boolean
          title: Isautomatic
          default: false
      type: object
      required:
        - paymentId
        - useEmail
      title: SendReceipt
    SendingSummary:
      properties:
        success:
          type: boolean
          title: Success
        message:
          type: string
          title: Message
      type: object
      required:
        - success
        - message
      title: SendingSummary
    ServiceDetail:
      properties:
        id:
          type: string
          title: Id
        duration:
          type: integer
          title: Duration
        name:
          type: string
          title: Name
        locationIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Locationids
        color:
          type: string
          title: Color
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        price:
          anyOf:
            - type: integer
            - type: "null"
          title: Price
        displayPrice:
          anyOf:
            - type: integer
            - type: "null"
          title: Displayprice
        costOfService:
          type: integer
          title: Costofservice
          default: 0
        estimated:
          anyOf:
            - type: boolean
            - type: "null"
          title: Estimated
          default: false
        bookingFee:
          type: integer
          title: Bookingfee
        bookingFeeText:
          anyOf:
            - type: string
            - type: "null"
          title: Bookingfeetext
        reminderDaysBefore:
          anyOf:
            - type: integer
            - type: "null"
          title: Reminderdaysbefore
          default: 1
        cancellationCost:
          anyOf:
            - type: integer
            - type: "null"
          title: Cancellationcost
          default: 0
        hoursBeforeCancellingCosts:
          anyOf:
            - type: integer
            - type: "null"
          title: Hoursbeforecancellingcosts
          default: 0
        bookingFeePercentage:
          anyOf:
            - type: integer
            - type: "null"
          title: Bookingfeepercentage
        cancellationFeePctWithin24h:
          anyOf:
            - type: integer
            - type: "null"
          title: Cancellationfeepctwithin24H
        cancellationFeePctWithin48h:
          anyOf:
            - type: integer
            - type: "null"
          title: Cancellationfeepctwithin48H
        refundBookingFeeBefore48h:
          anyOf:
            - type: boolean
            - type: "null"
          title: Refundbookingfeebefore48H
          default: false
        hoursBeforeBookingFeeRefundable:
          anyOf:
            - type: integer
            - type: "null"
          title: Hoursbeforebookingfeerefundable
        followUpDaysAfter:
          anyOf:
            - type: integer
            - type: "null"
          title: Followupdaysafter
          default: 0
        followUpSmsTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Followupsmstemplate
        providerIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Providerids
        forms:
          anyOf:
            - items:
                $ref: "#/components/schemas/FormTiny"
              type: array
            - type: "null"
          title: Forms
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
        confirmationSmsTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Confirmationsmstemplate
        cancellationSmsTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Cancellationsmstemplate
        noShowSmsTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Noshowsmstemplate
        overrideNoticeSmsTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Overridenoticesmstemplate
        reminderSmsTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Remindersmstemplate
        selfSchedulingBufferTime:
          anyOf:
            - type: integer
            - type: "null"
          title: Selfschedulingbuffertime
        visibility:
          $ref: "#/components/schemas/ServiceVisibilityType"
          default: ALL
        minutesBeforeRebookingAllowed:
          anyOf:
            - type: integer
            - type: "null"
          title: Minutesbeforerebookingallowed
        allowIndividualProviderBooking:
          anyOf:
            - type: boolean
            - type: "null"
          title: Allowindividualproviderbooking
        displayOrder:
          anyOf:
            - type: integer
            - type: "null"
          title: Displayorder
          default: 0
        reservedTimeMinutes:
          anyOf:
            - type: integer
            - type: "null"
          title: Reservedtimeminutes
        category:
          anyOf:
            - type: string
            - type: "null"
          title: Category
        isDoubleBookable:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isdoublebookable
          default: true
        isPopular:
          anyOf:
            - type: boolean
            - type: "null"
          title: Ispopular
          default: false
        creditCardRequired:
          anyOf:
            - type: boolean
            - type: "null"
          title: Creditcardrequired
          default: false
        collectCreditCard:
          anyOf:
            - type: boolean
            - type: "null"
          title: Collectcreditcard
          default: false
        autoGfeTreatments:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Autogfetreatments
        brandName:
          anyOf:
            - type: string
            - type: "null"
          title: Brandname
        unit:
          anyOf:
            - $ref: "#/components/schemas/Unit"
            - type: "null"
        internalNotes:
          anyOf:
            - type: string
            - type: "null"
          title: Internalnotes
        sortOrder:
          anyOf:
            - type: integer
            - type: "null"
          title: Sortorder
        taxable:
          anyOf:
            - type: boolean
            - type: "null"
          title: Taxable
          default: false
        allowCustomPricing:
          anyOf:
            - type: boolean
            - type: "null"
          title: Allowcustompricing
          default: false
      type: object
      required:
        - id
        - duration
        - name
        - color
        - bookingFee
      title: ServiceDetail
    ServiceDiff:
      properties:
        serviceId:
          type: string
          title: Serviceid
        serviceTitle:
          anyOf:
            - type: string
            - type: "null"
          title: Servicetitle
        from:
          anyOf:
            - $ref: "#/components/schemas/ServiceEndpoint"
            - type: "null"
        to:
          anyOf:
            - $ref: "#/components/schemas/ServiceEndpoint"
            - type: "null"
        changeTypes:
          items:
            type: string
          type: array
          title: Changetypes
          default: []
      type: object
      required:
        - serviceId
      title: ServiceDiff
    ServiceEdit:
      properties:
        id:
          type: string
          title: Id
        name:
          anyOf:
            - type: string
            - type: "null"
          title: Name
        duration:
          anyOf:
            - type: integer
            - type: "null"
          title: Duration
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        price:
          anyOf:
            - type: integer
            - type: "null"
          title: Price
        displayPrice:
          anyOf:
            - type: integer
            - type: "null"
          title: Displayprice
        costOfService:
          type: integer
          title: Costofservice
          default: 0
        estimated:
          anyOf:
            - type: boolean
            - type: "null"
          title: Estimated
          default: false
        bookingFee:
          anyOf:
            - type: integer
            - type: "null"
          title: Bookingfee
        bookingFeeText:
          anyOf:
            - type: string
            - type: "null"
          title: Bookingfeetext
        reminderDaysBefore:
          anyOf:
            - type: integer
            - type: "null"
          title: Reminderdaysbefore
        cancellationCost:
          anyOf:
            - type: integer
            - type: "null"
          title: Cancellationcost
        hoursBeforeCancellingCosts:
          anyOf:
            - type: integer
            - type: "null"
          title: Hoursbeforecancellingcosts
        bookingFeePercentage:
          anyOf:
            - type: integer
            - type: "null"
          title: Bookingfeepercentage
        cancellationFeePctWithin24h:
          anyOf:
            - type: integer
            - type: "null"
          title: Cancellationfeepctwithin24H
        cancellationFeePctWithin48h:
          anyOf:
            - type: integer
            - type: "null"
          title: Cancellationfeepctwithin48H
        refundBookingFeeBefore48h:
          anyOf:
            - type: boolean
            - type: "null"
          title: Refundbookingfeebefore48H
        hoursBeforeBookingFeeRefundable:
          anyOf:
            - type: integer
            - type: "null"
          title: Hoursbeforebookingfeerefundable
        followUpDaysAfter:
          anyOf:
            - type: integer
            - type: "null"
          title: Followupdaysafter
        followUpSmsTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Followupsmstemplate
        reminderSmsTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Remindersmstemplate
        locationIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Locationids
        providerIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Providerids
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
        formIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Formids
        confirmationSmsTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Confirmationsmstemplate
        cancellationSmsTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Cancellationsmstemplate
        noShowSmsTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Noshowsmstemplate
        overrideNoticeSmsTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Overridenoticesmstemplate
        selfSchedulingBufferTime:
          anyOf:
            - type: integer
            - type: "null"
          title: Selfschedulingbuffertime
        visibility:
          anyOf:
            - $ref: "#/components/schemas/ServiceVisibilityType"
            - type: "null"
          default: ALL
        minutesBeforeRebookingAllowed:
          anyOf:
            - type: integer
            - type: "null"
          title: Minutesbeforerebookingallowed
        color:
          anyOf:
            - type: string
            - type: "null"
          title: Color
        allowIndividualProviderBooking:
          anyOf:
            - type: boolean
            - type: "null"
          title: Allowindividualproviderbooking
        displayOrder:
          anyOf:
            - type: integer
            - type: "null"
          title: Displayorder
        reservedTimeMinutes:
          anyOf:
            - type: integer
            - type: "null"
          title: Reservedtimeminutes
        category:
          anyOf:
            - type: string
            - type: "null"
          title: Category
        isDoubleBookable:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isdoublebookable
          default: true
        isPopular:
          anyOf:
            - type: boolean
            - type: "null"
          title: Ispopular
          default: false
        creditCardRequired:
          anyOf:
            - type: boolean
            - type: "null"
          title: Creditcardrequired
          default: false
        collectCreditCard:
          anyOf:
            - type: boolean
            - type: "null"
          title: Collectcreditcard
          default: false
        autoGfeTreatments:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Autogfetreatments
        brandName:
          anyOf:
            - type: string
            - type: "null"
          title: Brandname
        unit:
          anyOf:
            - $ref: "#/components/schemas/Unit"
            - type: "null"
        internalNotes:
          anyOf:
            - type: string
            - type: "null"
          title: Internalnotes
        sortOrder:
          anyOf:
            - type: integer
            - type: "null"
          title: Sortorder
        taxable:
          anyOf:
            - type: boolean
            - type: "null"
          title: Taxable
          default: false
        allowCustomPricing:
          anyOf:
            - type: boolean
            - type: "null"
          title: Allowcustompricing
          default: false
      type: object
      required:
        - id
      title: ServiceEdit
    ServiceEndpoint:
      properties:
        start:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Start
        end:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: End
        providerId:
          anyOf:
            - type: string
            - type: "null"
          title: Providerid
      type: object
      title: ServiceEndpoint
    ServiceTable:
      properties:
        id:
          type: string
          title: Id
        duration:
          type: integer
          title: Duration
        name:
          type: string
          title: Name
        locationIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Locationids
        color:
          type: string
          title: Color
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        price:
          anyOf:
            - type: integer
            - type: "null"
          title: Price
        displayPrice:
          anyOf:
            - type: integer
            - type: "null"
          title: Displayprice
        costOfService:
          type: integer
          title: Costofservice
          default: 0
        estimated:
          anyOf:
            - type: boolean
            - type: "null"
          title: Estimated
          default: false
        bookingFee:
          type: integer
          title: Bookingfee
        bookingFeeText:
          anyOf:
            - type: string
            - type: "null"
          title: Bookingfeetext
        reminderDaysBefore:
          anyOf:
            - type: integer
            - type: "null"
          title: Reminderdaysbefore
          default: 1
        cancellationCost:
          anyOf:
            - type: integer
            - type: "null"
          title: Cancellationcost
          default: 0
        hoursBeforeCancellingCosts:
          anyOf:
            - type: integer
            - type: "null"
          title: Hoursbeforecancellingcosts
          default: 0
        bookingFeePercentage:
          anyOf:
            - type: integer
            - type: "null"
          title: Bookingfeepercentage
        cancellationFeePctWithin24h:
          anyOf:
            - type: integer
            - type: "null"
          title: Cancellationfeepctwithin24H
        cancellationFeePctWithin48h:
          anyOf:
            - type: integer
            - type: "null"
          title: Cancellationfeepctwithin48H
        refundBookingFeeBefore48h:
          anyOf:
            - type: boolean
            - type: "null"
          title: Refundbookingfeebefore48H
          default: false
        hoursBeforeBookingFeeRefundable:
          anyOf:
            - type: integer
            - type: "null"
          title: Hoursbeforebookingfeerefundable
        followUpDaysAfter:
          anyOf:
            - type: integer
            - type: "null"
          title: Followupdaysafter
          default: 0
        followUpSmsTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Followupsmstemplate
        providerIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Providerids
        forms:
          anyOf:
            - items:
                $ref: "#/components/schemas/FormTiny"
              type: array
            - type: "null"
          title: Forms
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
        confirmationSmsTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Confirmationsmstemplate
        cancellationSmsTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Cancellationsmstemplate
        noShowSmsTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Noshowsmstemplate
        overrideNoticeSmsTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Overridenoticesmstemplate
        reminderSmsTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Remindersmstemplate
        selfSchedulingBufferTime:
          anyOf:
            - type: integer
            - type: "null"
          title: Selfschedulingbuffertime
        visibility:
          $ref: "#/components/schemas/ServiceVisibilityType"
          default: ALL
        minutesBeforeRebookingAllowed:
          anyOf:
            - type: integer
            - type: "null"
          title: Minutesbeforerebookingallowed
        allowIndividualProviderBooking:
          anyOf:
            - type: boolean
            - type: "null"
          title: Allowindividualproviderbooking
        displayOrder:
          anyOf:
            - type: integer
            - type: "null"
          title: Displayorder
          default: 0
        reservedTimeMinutes:
          anyOf:
            - type: integer
            - type: "null"
          title: Reservedtimeminutes
        category:
          anyOf:
            - type: string
            - type: "null"
          title: Category
        isDoubleBookable:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isdoublebookable
          default: true
        isPopular:
          anyOf:
            - type: boolean
            - type: "null"
          title: Ispopular
          default: false
        creditCardRequired:
          anyOf:
            - type: boolean
            - type: "null"
          title: Creditcardrequired
          default: false
        collectCreditCard:
          anyOf:
            - type: boolean
            - type: "null"
          title: Collectcreditcard
          default: false
        autoGfeTreatments:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Autogfetreatments
        brandName:
          anyOf:
            - type: string
            - type: "null"
          title: Brandname
        unit:
          anyOf:
            - $ref: "#/components/schemas/Unit"
            - type: "null"
        internalNotes:
          anyOf:
            - type: string
            - type: "null"
          title: Internalnotes
        sortOrder:
          anyOf:
            - type: integer
            - type: "null"
          title: Sortorder
        taxable:
          anyOf:
            - type: boolean
            - type: "null"
          title: Taxable
          default: false
        allowCustomPricing:
          anyOf:
            - type: boolean
            - type: "null"
          title: Allowcustompricing
          default: false
        numBookings:
          type: integer
          title: Numbookings
      type: object
      required:
        - id
        - duration
        - name
        - color
        - bookingFee
        - numBookings
      title: ServiceTable
    ServiceTiny:
      properties:
        id:
          type: string
          title: Id
        duration:
          type: integer
          title: Duration
        name:
          type: string
          title: Name
        locationIds:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Locationids
        color:
          type: string
          title: Color
      type: object
      required:
        - id
        - duration
        - name
        - color
      title: ServiceTiny
    ServiceVisibilityType:
      type: string
      enum:
        - ALL
        - NEW
        - EXISTING
        - "NO"
      title: ServiceVisibilityType
    ShiftsByDateResponse:
      properties:
        date:
          type: string
          title: Date
        providers:
          items:
            $ref: "#/components/schemas/ProviderShiftsData"
          type: array
          title: Providers
      type: object
      required:
        - date
        - providers
      title: ShiftsByDateResponse
    Shipment-Input:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the shipment
        stockId:
          type: string
          title: Stockid
          description: ID of the stock
        supplierId:
          type: string
          title: Supplierid
          description: ID of the supplier
        locationId:
          type: string
          title: Locationid
          description: ID of the location where the shipment was delivered
        lotNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Lotnumber
          description: Optional lot number of the shipment
        expiryDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Expirydate
          description: Optional expiry date of the shipment
        sku:
          anyOf:
            - type: string
            - type: "null"
          title: Sku
          description: Optional SKU (Stock Keeping Unit)
        quantity:
          type: number
          title: Quantity
          description: Total quantity
        remainingQuantity:
          type: number
          title: Remainingquantity
          description: Remaining quantity
        cost:
          anyOf:
            - type: integer
            - type: "null"
          title: Cost
          description: Cost of the shipment in cents
        supplier:
          anyOf:
            - $ref: "#/components/schemas/Supplier"
            - type: "null"
          description: Optional supplier details
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: Date and time the shipment was created
        note:
          anyOf:
            - type: string
            - type: "null"
          title: Note
          description: Optional note for inventory log when updating shipment
      type: object
      required:
        - stockId
        - supplierId
        - locationId
        - quantity
        - remainingQuantity
      title: Shipment
    Shipment-Output:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the shipment
        stockId:
          type: string
          title: Stockid
          description: ID of the stock
        supplierId:
          type: string
          title: Supplierid
          description: ID of the supplier
        locationId:
          type: string
          title: Locationid
          description: ID of the location where the shipment was delivered
        lotNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Lotnumber
          description: Optional lot number of the shipment
        expiryDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Expirydate
          description: Optional expiry date of the shipment
        sku:
          anyOf:
            - type: string
            - type: "null"
          title: Sku
          description: Optional SKU (Stock Keeping Unit)
        quantity:
          type: number
          title: Quantity
          description: Total quantity
        remainingQuantity:
          type: number
          title: Remainingquantity
          description: Remaining quantity
        cost:
          anyOf:
            - type: integer
            - type: "null"
          title: Cost
          description: Cost of the shipment in cents
        supplier:
          anyOf:
            - $ref: "#/components/schemas/Supplier"
            - type: "null"
          description: Optional supplier details
        createdDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Createddate
          description: Date and time the shipment was created
        note:
          anyOf:
            - type: string
            - type: "null"
          title: Note
          description: Optional note for inventory log when updating shipment
        locationName:
          anyOf:
            - type: string
            - type: "null"
          title: Locationname
          description: Get the location name from the related location object
          readOnly: true
      type: object
      required:
        - stockId
        - supplierId
        - locationId
        - quantity
        - remainingQuantity
        - locationName
      title: Shipment
    SignalwireInboundAssistantStatus:
      properties:
        enabled:
          type: boolean
          title: Enabled
      type: object
      required:
        - enabled
      title: SignalwireInboundAssistantStatus
      description: Schema for SignalWire inbound assistant status.
    Signature:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        text:
          anyOf:
            - type: string
            - type: "null"
          title: Text
      type: object
      required:
        - name
      title: Signature
    SilenceTrackerMode:
      type: string
      enum:
        - ENABLED
        - ON_CALL_END
        - DISABLED
      title: SilenceTrackerMode
    SingleSelect:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        options:
          items:
            type: string
          type: array
          title: Options
      type: object
      required:
        - name
        - options
      title: SingleSelect
    SmsProvider:
      type: string
      enum:
        - SIGNALWIRE
        - SENDO
      title: SmsProvider
    SoldPackage-Input:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the sold package
        packageId:
          type: string
          title: Packageid
          description: Package ID that was sold
        patientId:
          type: string
          title: Patientid
          description: Patient ID who purchased the package
        chargeItemId:
          type: string
          title: Chargeitemid
          description: Charge item ID associated with the package purchase
        status:
          $ref: "#/components/schemas/PackageStatus"
          description: Status of the sold package
        package:
          anyOf:
            - $ref: "#/components/schemas/Package-Input"
            - type: "null"
          description: Details of the package
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: Date the package was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: Date the package was updated
      type: object
      required:
        - packageId
        - patientId
        - chargeItemId
        - status
        - createdDate
      title: SoldPackage
    SoldPackage-Output:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the sold package
        packageId:
          type: string
          title: Packageid
          description: Package ID that was sold
        patientId:
          type: string
          title: Patientid
          description: Patient ID who purchased the package
        chargeItemId:
          type: string
          title: Chargeitemid
          description: Charge item ID associated with the package purchase
        status:
          $ref: "#/components/schemas/PackageStatus"
          description: Status of the sold package
        package:
          anyOf:
            - $ref: "#/components/schemas/Package-Output"
            - type: "null"
          description: Details of the package
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: Date the package was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: Date the package was updated
      type: object
      required:
        - packageId
        - patientId
        - chargeItemId
        - status
        - createdDate
      title: SoldPackage
    SoldPackageDetail:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the sold package
        packageId:
          type: string
          title: Packageid
          description: Package ID that was sold
        patientId:
          type: string
          title: Patientid
          description: Patient ID who purchased the package
        chargeItemId:
          type: string
          title: Chargeitemid
          description: Charge item ID associated with the package purchase
        status:
          $ref: "#/components/schemas/PackageStatus"
          description: Status of the sold package
        package:
          $ref: "#/components/schemas/PackageDetail"
          description: Details of the package
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: Date the package was created
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: Date the package was updated
        items:
          items:
            $ref: "#/components/schemas/ChargeItemDetailWithCharge"
          type: array
          title: Items
          description: Items used in the package
        patient:
          $ref: "#/components/schemas/PatientSummary"
          description: Details of the patient
        chargeItem:
          $ref: "#/components/schemas/ChargeItem"
          description: Details of the charge item
      type: object
      required:
        - packageId
        - patientId
        - chargeItemId
        - status
        - package
        - createdDate
        - patient
        - chargeItem
      title: SoldPackageDetail
    StaffDiff:
      properties:
        added:
          items:
            $ref: "#/components/schemas/UserTiny"
          type: array
          title: Added
          default: []
        removed:
          items:
            $ref: "#/components/schemas/UserTiny"
          type: array
          title: Removed
          default: []
        unchanged:
          items:
            $ref: "#/components/schemas/UserTiny"
          type: array
          title: Unchanged
          default: []
      type: object
      title: StaffDiff
    Statement:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        points:
          items:
            type: string
          type: array
          title: Points
      type: object
      required:
        - name
        - points
      title: Statement
    StatusChangeData:
      properties:
        oldStatus:
          type: string
          title: Oldstatus
        newStatus:
          type: string
          title: Newstatus
      type: object
      required:
        - oldStatus
        - newStatus
      title: StatusChangeData
      description: Data structure for generic status change events
    StatusTransitionData:
      properties:
        oldStatus:
          type: string
          title: Oldstatus
      type: object
      required:
        - oldStatus
      title: StatusTransitionData
      description: Base data structure for status transition events
    Stock:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the stock
        name:
          type: string
          title: Name
          description: Name of the stock
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Optional description of the stock
        notes:
          anyOf:
            - type: string
            - type: "null"
          title: Notes
          description: Notes about the stock
        category:
          anyOf:
            - type: string
            - type: "null"
          title: Category
          description: Category name (references category.name)
        unit:
          $ref: "#/components/schemas/Unit"
          description: Unit of measurement
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the stock is archived
          default: false
        shipments:
          anyOf:
            - items:
                $ref: "#/components/schemas/Shipment-Output"
              type: array
            - type: "null"
          title: Shipments
          description: Shipments in the stock
      type: object
      required:
        - name
        - unit
      title: Stock
    StockDetail-Input:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the stock
        name:
          type: string
          title: Name
          description: Name of the stock
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Optional description of the stock
        notes:
          anyOf:
            - type: string
            - type: "null"
          title: Notes
          description: Notes about the stock
        category:
          anyOf:
            - type: string
            - type: "null"
          title: Category
          description: Category name (references category.name)
        unit:
          $ref: "#/components/schemas/Unit"
          description: Unit of measurement
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the stock is archived
          default: false
        shipments:
          anyOf:
            - items:
                $ref: "#/components/schemas/Shipment-Input"
              type: array
            - type: "null"
          title: Shipments
          description: Shipments in the stock
        items:
          anyOf:
            - items:
                $ref: "#/components/schemas/ItemStock"
              type: array
            - type: "null"
          title: Items
          description: Items in the stock
        locationSummaries:
          anyOf:
            - items:
                $ref: "#/components/schemas/StockLocationSummary"
              type: array
            - type: "null"
          title: Locationsummaries
          description: Stock quantities grouped by location
        note:
          anyOf:
            - type: string
            - type: "null"
          title: Note
          description: Optional note for inventory log when updating stock
      type: object
      required:
        - name
        - unit
      title: StockDetail
    StockDetail-Output:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the stock
        name:
          type: string
          title: Name
          description: Name of the stock
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Optional description of the stock
        notes:
          anyOf:
            - type: string
            - type: "null"
          title: Notes
          description: Notes about the stock
        category:
          anyOf:
            - type: string
            - type: "null"
          title: Category
          description: Category name (references category.name)
        unit:
          $ref: "#/components/schemas/Unit"
          description: Unit of measurement
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the stock is archived
          default: false
        shipments:
          anyOf:
            - items:
                $ref: "#/components/schemas/Shipment-Output"
              type: array
            - type: "null"
          title: Shipments
          description: Shipments in the stock
        items:
          anyOf:
            - items:
                $ref: "#/components/schemas/ItemStock"
              type: array
            - type: "null"
          title: Items
          description: Items in the stock
        locationSummaries:
          anyOf:
            - items:
                $ref: "#/components/schemas/StockLocationSummary"
              type: array
            - type: "null"
          title: Locationsummaries
          description: Stock quantities grouped by location
        note:
          anyOf:
            - type: string
            - type: "null"
          title: Note
          description: Optional note for inventory log when updating stock
      type: object
      required:
        - name
        - unit
      title: StockDetail
    StockLocationSummary:
      properties:
        locationId:
          type: string
          title: Locationid
          description: ID of the location
        locationName:
          type: string
          title: Locationname
          description: Name of the location
        totalQuantity:
          type: number
          title: Totalquantity
          description: Total quantity at this location
        remainingQuantity:
          type: number
          title: Remainingquantity
          description: Remaining quantity at this location
        percentage:
          type: number
          title: Percentage
          description: Percentage of stock remaining
      type: object
      required:
        - locationId
        - locationName
        - totalQuantity
        - remainingQuantity
        - percentage
      title: StockLocationSummary
    StockTiny:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the stock
        name:
          type: string
          title: Name
          description: Name of the stock
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Optional description of the stock
        notes:
          anyOf:
            - type: string
            - type: "null"
          title: Notes
          description: Notes about the stock
        category:
          anyOf:
            - type: string
            - type: "null"
          title: Category
          description: Category name (references category.name)
        unit:
          $ref: "#/components/schemas/Unit"
          description: Unit of measurement
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the stock is archived
          default: false
      type: object
      required:
        - name
        - unit
      title: StockTiny
    SubmittedDemographicsBlock:
      properties:
        id:
          type: string
          title: Id
        blockType:
          type: string
          const: DEMOGRAPHICS
          title: Blocktype
          default: DEMOGRAPHICS
        email:
          type: string
          title: Email
        dateOfBirth:
          type: string
          format: date
          title: Dateofbirth
        gender:
          type: string
          title: Gender
        address:
          $ref: "#/components/schemas/AddressAnswer"
      type: object
      required:
        - id
        - email
        - dateOfBirth
        - gender
        - address
      title: SubmittedDemographicsBlock
    SubmittedDynamicBlock:
      properties:
        id:
          type: string
          title: Id
        blockType:
          type: string
          const: DYNAMIC
          title: Blocktype
          default: DYNAMIC
      additionalProperties: true
      type: object
      required:
        - id
      title: SubmittedDynamicBlock
    SubmittedInsuranceBlock:
      properties:
        id:
          type: string
          title: Id
        blockType:
          type: string
          const: INSURANCE
          title: Blocktype
          default: INSURANCE
        primary:
          anyOf:
            - $ref: "#/components/schemas/FormInsuranceCoverage"
            - type: "null"
        secondary:
          anyOf:
            - $ref: "#/components/schemas/FormInsuranceCoverage"
            - type: "null"
      type: object
      required:
        - id
      title: SubmittedInsuranceBlock
    SubmittedMedicalHistoryBlock:
      properties:
        id:
          type: string
          title: Id
        blockType:
          type: string
          const: MEDICAL_HISTORY
          title: Blocktype
          default: MEDICAL_HISTORY
        allergies:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Allergies
        medications:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Medications
        familyHistory:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Familyhistory
        medicalHistory:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Medicalhistory
        prescriptions:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Prescriptions
        surgicalHistory:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Surgicalhistory
        socialHistory:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Socialhistory
      type: object
      required:
        - id
      title: SubmittedMedicalHistoryBlock
    SubmittedPaymentMethodBlock:
      properties:
        id:
          type: string
          title: Id
        blockType:
          type: string
          const: PAYMENT_METHODS
          title: Blocktype
          default: PAYMENT_METHODS
        rainforestPaymentMethod:
          anyOf:
            - $ref: "#/components/schemas/RainforestPaymentMethod"
            - type: "null"
      type: object
      required:
        - id
      title: SubmittedPaymentMethodBlock
    SuggestedMessageSummary:
      properties:
        id:
          type: string
          title: Id
        chatId:
          type: string
          title: Chatid
        fromMessageId:
          type: string
          title: Frommessageid
        content:
          type: string
          title: Content
        assistantId:
          type: string
          title: Assistantid
        isSelected:
          type: boolean
          title: Isselected
        createdDate:
          type: string
          format: date-time
          title: Createddate
      type: object
      required:
        - id
        - chatId
        - fromMessageId
        - content
        - assistantId
        - isSelected
        - createdDate
      title: SuggestedMessageSummary
    SuggestionItem:
      properties:
        id:
          type: string
          title: Id
        label:
          type: string
          title: Label
        content:
          type: string
          title: Content
        type:
          $ref: "#/components/schemas/SuggestionType"
      type: object
      required:
        - id
        - label
        - content
        - type
      title: SuggestionItem
    SuggestionItemCreateAndUpdate:
      properties:
        id:
          type: string
          title: Id
        label:
          type: string
          title: Label
        content:
          type: string
          title: Content
      type: object
      required:
        - id
        - label
        - content
      title: SuggestionItemCreateAndUpdate
    SuggestionType:
      type: string
      enum:
        - SAVED
        - TENANT
        - ASSISTANT
        - PATIENT
        - NOTE_TEMPLATE
        - EVENT
      title: SuggestionType
    Supplier:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the supplier
        name:
          type: string
          title: Name
          description: Name of the supplier
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Optional description of the supplier
        website:
          anyOf:
            - type: string
            - type: "null"
          title: Website
          description: Optional website of the supplier
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
          description: Optional email of the supplier
        preferredContactMethod:
          anyOf:
            - type: string
            - type: "null"
          title: Preferredcontactmethod
          description: Optional preferred contact method
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
          description: Optional phone number of the supplier
        addressLineOne:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslineone
          description: Optional first line of address
        addressLineTwo:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslinetwo
          description: Optional second line of address
        city:
          anyOf:
            - type: string
            - type: "null"
          title: City
          description: Optional city
        state:
          anyOf:
            - type: string
            - type: "null"
          title: State
          description: Optional state or province
        zipCode:
          anyOf:
            - type: string
            - type: "null"
          title: Zipcode
          description: Optional ZIP or postal code
        country:
          anyOf:
            - type: string
            - type: "null"
          title: Country
          description: Optional country
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the supplier is archived
          default: false
      type: object
      required:
        - name
      title: Supplier
    TableRefund-Input:
      properties:
        id:
          type: string
          title: Id
        amount:
          type: integer
          title: Amount
        reason:
          $ref: "#/components/schemas/RefundReason"
        createdDate:
          type: string
          format: date-time
          title: Createddate
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        creator:
          anyOf:
            - $ref: "#/components/schemas/UserTiny"
            - type: "null"
      type: object
      required:
        - id
        - amount
        - reason
        - createdDate
      title: TableRefund
    TableRefund-Output:
      properties:
        id:
          type: string
          title: Id
        amount:
          type: integer
          title: Amount
        reason:
          $ref: "#/components/schemas/RefundReason"
        createdDate:
          type: string
          format: date-time
          title: Createddate
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        creator:
          anyOf:
            - $ref: "#/components/schemas/UserTiny"
            - type: "null"
      type: object
      required:
        - id
        - amount
        - reason
        - createdDate
      title: TableRefund
    Tag:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        placeholder:
          type: string
          title: Placeholder
        allowedTags:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Allowedtags
      type: object
      required:
        - name
        - placeholder
      title: Tag
    TagCreate:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        useForAlerts:
          type: boolean
          title: Useforalerts
        useForCalls:
          type: boolean
          title: Useforcalls
      type: object
      required:
        - name
        - useForAlerts
        - useForCalls
      title: TagCreate
    TagSummary:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        useForAlerts:
          type: boolean
          title: Useforalerts
        useForCalls:
          type: boolean
          title: Useforcalls
        id:
          type: string
          title: Id
      type: object
      required:
        - name
        - useForAlerts
        - useForCalls
        - id
      title: TagSummary
    TagTiny:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
      type: object
      required:
        - id
        - name
      title: TagTiny
    TaxCreate:
      properties:
        name:
          type: string
          title: Name
          description: Name of the tax (e.g., 'Sales Tax', 'VAT')
        percentage:
          type: number
          maximum: 100.0
          minimum: 0.0
          title: Percentage
          description: Tax percentage (e.g., 8.25 for 8.25%)
        location_id:
          type: string
          title: Location Id
          description: Location this tax applies to
      type: object
      required:
        - name
        - percentage
        - location_id
      title: TaxCreate
      description: Schema for creating a new tax.
    TaxDetail:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the tax
        name:
          type: string
          title: Name
          description: Name of the tax (e.g., 'Sales Tax', 'VAT')
        percentage:
          type: number
          title: Percentage
          description: Tax percentage (e.g., 8.25 for 8.25%)
        location_id:
          type: string
          title: Location Id
          description: Location this tax applies to
      type: object
      required:
        - id
        - name
        - percentage
        - location_id
      title: TaxDetail
      description: Detailed tax information.
    TaxSummary:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the tax
        name:
          type: string
          title: Name
          description: Name of the tax (e.g., 'Sales Tax', 'VAT')
        percentage:
          type: number
          title: Percentage
          description: Tax percentage (e.g., 8.25 for 8.25%)
        location_id:
          type: string
          title: Location Id
          description: Location this tax applies to
      type: object
      required:
        - id
        - name
        - percentage
        - location_id
      title: TaxSummary
      description: Basic tax information.
    TaxUpdate:
      properties:
        name:
          anyOf:
            - type: string
            - type: "null"
          title: Name
          description: Name of the tax
        percentage:
          anyOf:
            - type: number
              maximum: 100.0
              minimum: 0.0
            - type: "null"
          title: Percentage
          description: Tax percentage (e.g., 8.25 for 8.25%)
      type: object
      title: TaxUpdate
      description: Schema for updating an existing tax.
    TemplateAttachmentUploadResponse:
      properties:
        gcsPath:
          type: string
          title: Gcspath
        signedUrl:
          type: string
          title: Signedurl
        originalFilename:
          type: string
          title: Originalfilename
      type: object
      required:
        - gcsPath
        - signedUrl
        - originalFilename
      title: TemplateAttachmentUploadResponse
    Tenant:
      properties:
        name:
          type: string
          title: Name
        subDomain:
          type: string
          title: Subdomain
        clinicType:
          $ref: "#/components/schemas/ClinicType"
          default: DEFAULT
        providerDeactivatedPages:
          items:
            type: string
          type: array
          title: Providerdeactivatedpages
        patientDeactivatedPages:
          items:
            type: string
          type: array
          title: Patientdeactivatedpages
        enabledModules:
          items:
            $ref: "#/components/schemas/Module"
          type: array
          title: Enabledmodules
        homePage:
          type: string
          title: Homepage
        passFeeToPatient:
          type: boolean
          title: Passfeetopatient
        paymentProcessor:
          type: string
          title: Paymentprocessor
        activatedChargeMethods:
          items:
            type: string
          type: array
          title: Activatedchargemethods
        phoneNumber:
          type: string
          title: Phonenumber
        logoUrl:
          type: string
          title: Logourl
        successfulPaymentText:
          type: string
          title: Successfulpaymenttext
        campaign:
          type: string
          title: Campaign
        enterpriseTenant:
          anyOf:
            - type: string
            - type: "null"
          title: Enterprisetenant
        manualInvoiceText:
          type: string
          title: Manualinvoicetext
        practiceTypeCode:
          anyOf:
            - type: integer
            - type: "null"
          title: Practicetypecode
        slogan:
          anyOf:
            - type: string
            - type: "null"
          title: Slogan
        replyToEmail:
          anyOf:
            - type: string
            - type: "null"
          title: Replytoemail
        ccEmail:
          anyOf:
            - type: string
            - type: "null"
          title: Ccemail
        defaultTimezone:
          anyOf:
            - type: string
            - type: "null"
          title: Defaulttimezone
        hidePatientPaymentPlans:
          type: boolean
          title: Hidepatientpaymentplans
          default: false
        coloredMail:
          type: boolean
          title: Coloredmail
          default: false
        requiredPatientFields:
          items:
            type: string
          type: array
          title: Requiredpatientfields
          default: []
        enabledCommunicationMethods:
          items:
            $ref: "#/components/schemas/CommunicationMethod"
          type: array
          title: Enabledcommunicationmethods
          default: []
        enabledInvoiceMethods:
          items:
            $ref: "#/components/schemas/InvoiceMethod"
          type: array
          title: Enabledinvoicemethods
          default:
            - EMAIL
            - SMS
            - CHARGE_CARD
        maxInvoicesPerDay:
          type: integer
          title: Maxinvoicesperday
          default: 100
        invoicingStartTime:
          type: integer
          title: Invoicingstarttime
          default: 9
        invoicingEndTime:
          type: integer
          title: Invoicingendtime
          default: 17
        invoicingOnWeekends:
          type: boolean
          title: Invoicingonweekends
          default: false
        invoicingExcludesHolidays:
          type: boolean
          title: Invoicingexcludesholidays
          default: false
        maxInvoicesPerMinute:
          type: integer
          title: Maxinvoicesperminute
          default: 10
        sendReceiptText:
          type: string
          title: Sendreceipttext
        autoRespondToSms:
          type: boolean
          title: Autorespondtosms
          default: false
        generateResponseOnSms:
          type: boolean
          title: Generateresponseonsms
          default: false
        billAutomatically:
          type: boolean
          title: Billautomatically
          default: false
        smsProvider:
          $ref: "#/components/schemas/SmsProvider"
        selfSchedulingRedirectUrl:
          anyOf:
            - type: string
            - type: "null"
          title: Selfschedulingredirecturl
        allowMultipleBookingsForDifferentAppointments:
          type: boolean
          title: Allowmultiplebookingsfordifferentappointments
          default: false
        allowMultipleSelfScheduleAppointments:
          type: boolean
          title: Allowmultipleselfscheduleappointments
          default: false
        daysUntilPatientBecomesNew:
          anyOf:
            - type: integer
            - type: "null"
          title: Daysuntilpatientbecomesnew
        authTimeoutMs:
          anyOf:
            - type: integer
            - type: "null"
          title: Authtimeoutms
        introductoryText:
          anyOf:
            - type: string
            - type: "null"
          title: Introductorytext
        optOutMessage:
          anyOf:
            - type: string
            - type: "null"
          title: Optoutmessage
        helpMessage:
          anyOf:
            - type: string
            - type: "null"
          title: Helpmessage
        apiKey:
          anyOf:
            - type: string
            - type: "null"
          title: Apikey
        gcalEmail:
          anyOf:
            - type: string
            - type: "null"
          title: Gcalemail
        gcalToken:
          anyOf:
            - type: string
            - type: "null"
          title: Gcaltoken
        gcalRefreshToken:
          anyOf:
            - type: string
            - type: "null"
          title: Gcalrefreshtoken
        auditSmsResponse:
          type: boolean
          title: Auditsmsresponse
          default: false
        itemSortType:
          $ref: "#/components/schemas/ItemSortType"
          default: USAGE
        reservationCancellationSmsTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Reservationcancellationsmstemplate
        automaticallySendReceipts:
          type: boolean
          title: Automaticallysendreceipts
          default: true
        defaultReceiptCommunicationMethod:
          $ref: "#/components/schemas/CommunicationMethod"
          default: SMS
        receiptLogoUrl:
          anyOf:
            - type: string
            - type: "null"
          title: Receiptlogourl
        duplicatePatientFields:
          items:
            type: string
          type: array
          title: Duplicatepatientfields
          default:
            - first_name
            - last_name
            - phone_number
        googleTagManagerId:
          anyOf:
            - type: string
            - type: "null"
          title: Googletagmanagerid
      type: object
      required:
        - name
        - subDomain
        - providerDeactivatedPages
        - patientDeactivatedPages
        - enabledModules
        - homePage
        - passFeeToPatient
        - paymentProcessor
        - activatedChargeMethods
        - phoneNumber
        - logoUrl
        - successfulPaymentText
        - campaign
        - enterpriseTenant
        - manualInvoiceText
        - sendReceiptText
        - smsProvider
      title: Tenant
      description: The configuration for each of the clients of Decoda.
    TenantUpdate:
      properties:
        name:
          anyOf:
            - type: string
            - type: "null"
          title: Name
        passFeeToPatient:
          anyOf:
            - type: boolean
            - type: "null"
          title: Passfeetopatient
        defaultTimezone:
          anyOf:
            - type: string
            - type: "null"
          title: Defaulttimezone
        homePage:
          anyOf:
            - type: string
            - type: "null"
          title: Homepage
        logoUrl:
          anyOf:
            - type: string
            - type: "null"
          title: Logourl
        successfulPaymentText:
          anyOf:
            - type: string
            - type: "null"
          title: Successfulpaymenttext
        hidePatientPaymentPlans:
          anyOf:
            - type: boolean
            - type: "null"
          title: Hidepatientpaymentplans
        ccEmail:
          anyOf:
            - type: string
            - type: "null"
          title: Ccemail
        replyToEmail:
          anyOf:
            - type: string
            - type: "null"
          title: Replytoemail
        requiredPatientFields:
          anyOf:
            - items:
                type: string
              type: array
            - type: "null"
          title: Requiredpatientfields
          default:
            - first_name
            - phone_number
        maxInvoicesPerDay:
          type: integer
          title: Maxinvoicesperday
          default: 100
        maxInvoicesPerMinute:
          anyOf:
            - type: integer
            - type: "null"
          title: Maxinvoicesperminute
        invoicingStartTime:
          anyOf:
            - type: integer
            - type: "null"
          title: Invoicingstarttime
        invoicingEndTime:
          anyOf:
            - type: integer
            - type: "null"
          title: Invoicingendtime
        invoicingOnWeekends:
          anyOf:
            - type: boolean
            - type: "null"
          title: Invoicingonweekends
        invoicingExcludesHolidays:
          anyOf:
            - type: boolean
            - type: "null"
          title: Invoicingexcludesholidays
        sendReceiptText:
          anyOf:
            - type: string
            - type: "null"
          title: Sendreceipttext
        autoRespondToSms:
          anyOf:
            - type: boolean
            - type: "null"
          title: Autorespondtosms
        generateResponseOnSms:
          anyOf:
            - type: boolean
            - type: "null"
          title: Generateresponseonsms
        manualInvoiceText:
          anyOf:
            - type: string
            - type: "null"
          title: Manualinvoicetext
        billAutomatically:
          type: boolean
          title: Billautomatically
          default: false
        selfSchedulingRedirectUrl:
          anyOf:
            - type: string
            - type: "null"
          title: Selfschedulingredirecturl
        allowMultipleBookingsForDifferentAppointments:
          type: boolean
          title: Allowmultiplebookingsfordifferentappointments
          default: false
        daysUntilPatientBecomesNew:
          anyOf:
            - type: integer
            - type: "null"
          title: Daysuntilpatientbecomesnew
        introductoryText:
          anyOf:
            - type: string
            - type: "null"
          title: Introductorytext
        optOutMessage:
          anyOf:
            - type: string
            - type: "null"
          title: Optoutmessage
        helpMessage:
          anyOf:
            - type: string
            - type: "null"
          title: Helpmessage
        apiKey:
          anyOf:
            - type: string
            - type: "null"
          title: Apikey
        auditSmsResponse:
          anyOf:
            - type: boolean
            - type: "null"
          title: Auditsmsresponse
          default: true
        itemSortType:
          $ref: "#/components/schemas/ItemSortType"
          default: USAGE
        reservationCancellationSmsTemplate:
          anyOf:
            - type: string
            - type: "null"
          title: Reservationcancellationsmstemplate
        receiptLogoUrl:
          anyOf:
            - type: string
            - type: "null"
          title: Receiptlogourl
        automaticallySendReceipts:
          anyOf:
            - type: boolean
            - type: "null"
          title: Automaticallysendreceipts
        defaultReceiptCommunicationMethod:
          anyOf:
            - type: string
            - type: "null"
          title: Defaultreceiptcommunicationmethod
        googleTagManagerId:
          anyOf:
            - type: string
            - type: "null"
          title: Googletagmanagerid
        authTimeoutMs:
          anyOf:
            - type: integer
            - type: "null"
          title: Authtimeoutms
      type: object
      title: TenantUpdate
      description: Update a tenant.
    Text:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        placeholder:
          type: string
          title: Placeholder
      type: object
      required:
        - name
        - placeholder
      title: Text
    TimeDiff:
      properties:
        fromStart:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Fromstart
        toStart:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Tostart
      type: object
      title: TimeDiff
    TimelineEvent:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the event
        type:
          type: string
          enum:
            - balance_closure
            - adjustment
            - calculated_balance
            - discrepancy_note
            - cash_payment
            - cash_refund
          title: Type
          description: Type of timeline event
        date:
          type: string
          format: date-time
          title: Date
          description: Date/time of the event
        cashBalance:
          anyOf:
            - $ref: "#/components/schemas/CashBalanceDetail"
            - type: "null"
          description: Cash balance details if type is balance_closure
        adjustment:
          anyOf:
            - $ref: "#/components/schemas/CashBalanceAdjustmentDetail"
            - type: "null"
          description: Adjustment details if type is adjustment
        calculatedBalance:
          anyOf:
            - $ref: "#/components/schemas/CalculatedDailyBalance"
            - type: "null"
          description: Calculated balance details if type is calculated_balance
        paymentSummary:
          anyOf:
            - $ref: "#/components/schemas/PaymentSummaryForTimeline"
            - type: "null"
          description: Payment details if type is cash_payment
        refundSummary:
          anyOf:
            - $ref: "#/components/schemas/RefundSummaryForTimeline"
            - type: "null"
          description: Refund details if type is cash_refund
        locationName:
          anyOf:
            - type: string
            - type: "null"
          title: Locationname
          description: Name of the location
      type: object
      required:
        - id
        - type
        - date
      title: TimelineEvent
      description: Timeline event for cash balance display.
    TimelineStats:
      properties:
        totalEvents:
          type: integer
          title: Totalevents
          description: Total number of events
        balanceClosures:
          type: integer
          title: Balanceclosures
          description: Number of balance closures
        adjustments:
          type: integer
          title: Adjustments
          description: Number of adjustments
        discrepancies:
          type: integer
          title: Discrepancies
          description: Number of discrepancies
      type: object
      required:
        - totalEvents
        - balanceClosures
        - adjustments
        - discrepancies
      title: TimelineStats
      description: Summary statistics for timeline events.
    TipCreate:
      properties:
        chargeId:
          type: string
          title: Chargeid
          description: Charge ID this tip belongs to
        amount:
          type: integer
          title: Amount
          description: Tip amount in cents
        providerId:
          type: string
          title: Providerid
          description: Provider ID receiving the tip
      type: object
      required:
        - chargeId
        - amount
        - providerId
      title: TipCreate
    TipDetail:
      properties:
        chargeId:
          type: string
          title: Chargeid
          description: Charge ID this tip belongs to
        amount:
          type: integer
          title: Amount
          description: Tip amount in cents
        providerId:
          type: string
          title: Providerid
          description: Provider ID receiving the tip
        id:
          type: string
          title: Id
          description: Unique identifier for the tip
        provider:
          anyOf:
            - $ref: "#/components/schemas/ProviderTiny"
            - type: "null"
          description: Provider receiving the tip
      type: object
      required:
        - chargeId
        - amount
        - providerId
      title: TipDetail
    TipDetailedExportData:
      properties:
        tipId:
          type: string
          title: Tipid
          description: Tip ID
        providerId:
          type: string
          title: Providerid
          description: Provider ID
        providerName:
          type: string
          title: Providername
          description: Provider full name
        providerEmail:
          type: string
          title: Provideremail
          description: Provider email
        tipAmount:
          type: integer
          title: Tipamount
          description: Individual tip amount in cents
        patientName:
          type: string
          title: Patientname
          description: Patient name
        chargeId:
          type: string
          title: Chargeid
          description: Charge ID
        locationName:
          type: string
          title: Locationname
          description: Location name
        tipDate:
          type: string
          title: Tipdate
          description: Date when tip was created
        startDate:
          type: string
          title: Startdate
          description: Export period start date
        endDate:
          type: string
          title: Enddate
          description: Export period end date
      type: object
      required:
        - tipId
        - providerId
        - providerName
        - providerEmail
        - tipAmount
        - patientName
        - chargeId
        - locationName
        - tipDate
        - startDate
        - endDate
      title: TipDetailedExportData
    TipUpdate:
      properties:
        providerId:
          type: string
          title: Providerid
          description: Provider ID receiving the tip
        amount:
          anyOf:
            - type: integer
            - type: "null"
          title: Amount
          description: Tip amount in cents (optional)
      type: object
      required:
        - providerId
      title: TipUpdate
    Toggle:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
      type: object
      required:
        - name
      title: Toggle
    Tool:
      properties:
        name:
          type: string
          title: Name
        description:
          type: string
          title: Description
        endpoint:
          anyOf:
            - type: string
            - type: "null"
          title: Endpoint
        type:
          $ref: "#/components/schemas/ToolType"
          default: CUSTOM
        parameters:
          items:
            $ref: "#/components/schemas/ToolParameter"
          type: array
          title: Parameters
      type: object
      required:
        - name
        - description
        - parameters
      title: Tool
    ToolCall:
      properties:
        id:
          type: string
          title: Id
        toolName:
          type: string
          title: Toolname
        toolArguments:
          type: object
          title: Toolarguments
        toolCallId:
          anyOf:
            - type: string
            - type: "null"
          title: Toolcallid
      type: object
      required:
        - id
        - toolName
        - toolArguments
      title: ToolCall
    ToolCallSummary:
      properties:
        id:
          type: string
          title: Id
        callId:
          anyOf:
            - type: string
            - type: "null"
          title: Callid
        messageId:
          anyOf:
            - type: string
            - type: "null"
          title: Messageid
        alertId:
          anyOf:
            - type: string
            - type: "null"
          title: Alertid
        toolName:
          type: string
          title: Toolname
        toolArguments:
          type: object
          title: Toolarguments
        toolCallId:
          anyOf:
            - type: string
            - type: "null"
          title: Toolcallid
        result:
          anyOf:
            - type: object
            - type: "null"
          title: Result
        toolCallDescription:
          anyOf:
            - type: string
            - type: "null"
          title: Toolcalldescription
        hasBeenCalled:
          type: boolean
          title: Hasbeencalled
          default: false
        createdDate:
          type: string
          format: date-time
          title: Createddate
      type: object
      required:
        - id
        - toolName
        - toolArguments
        - createdDate
      title: ToolCallSummary
    ToolParameter:
      properties:
        name:
          type: string
          title: Name
        description:
          type: string
          title: Description
        required:
          type: boolean
          title: Required
          default: true
      type: object
      required:
        - name
        - description
      title: ToolParameter
    ToolType:
      type: string
      enum:
        - CUSTOM
        - PREDEFINED
      title: ToolType
    TopCustomerOverview:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        totalSpend:
          type: number
          title: Totalspend
        transactionCount:
          type: integer
          title: Transactioncount
      type: object
      required:
        - id
        - name
        - totalSpend
        - transactionCount
      title: TopCustomerOverview
    TopSellingItem:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
        price:
          type: number
          title: Price
        totalQuantity:
          type: integer
          title: Totalquantity
        numberOfPurchases:
          type: integer
          title: Numberofpurchases
        totalRevenue:
          type: number
          title: Totalrevenue
        averageQuantityPerPurchase:
          type: number
          title: Averagequantityperpurchase
      type: object
      required:
        - id
        - name
        - price
        - totalQuantity
        - numberOfPurchases
        - totalRevenue
        - averageQuantityPerPurchase
      title: TopSellingItem
    TopSellingItemOverview:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        totalQuantity:
          type: integer
          title: Totalquantity
        totalRevenue:
          type: number
          title: Totalrevenue
      type: object
      required:
        - id
        - name
        - totalQuantity
        - totalRevenue
      title: TopSellingItemOverview
    TotalAmount:
      properties:
        amount:
          type: integer
          title: Amount
        currencyCode:
          type: string
          title: Currencycode
      type: object
      required:
        - amount
        - currencyCode
      title: TotalAmount
      description: Rainforest currency format
    TranscriptDetail:
      properties:
        speakerId:
          type: string
          title: Speakerid
        content:
          type: string
          title: Content
        order:
          type: integer
          title: Order
        startTime:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Starttime
        endTime:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Endtime
      type: object
      required:
        - speakerId
        - content
        - order
      title: TranscriptDetail
    TreatmentOption:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
      type: object
      required:
        - id
        - name
      title: TreatmentOption
      description: Available treatment option from SpaKinect
    TreatmentsResponse:
      properties:
        treatments:
          items:
            $ref: "#/components/schemas/TreatmentOption"
          type: array
          title: Treatments
      type: object
      required:
        - treatments
      title: TreatmentsResponse
      description: List of available treatments
    Unit:
      type: string
      enum:
        - AMPOULES
        - APPLICATORS
        - BOTTLES
        - BOXES
        - CAPSULES
        - CUPS
        - DOSES
        - G_PER_ML
        - GRAMS
        - IU
        - IU_PER_ML
        - OUNCES
        - FLUID_OUNCES
        - KG
        - KITS
        - LITERS
        - MCG
        - MG
        - MG_PER_ML
        - ML
        - MMOL
        - MICROGRAM_PER_ML
        - PACKS
        - PAIRS
        - PATCHES
        - PERCENTAGE
        - PIECES
        - POUCHES
        - ROLLS
        - SACHETS
        - SHEETS
        - SPRAYS
        - STRIPS
        - SYRINGES
        - TABLETS
        - TABLETS_PER_DAY
        - TESTS
        - TUBES
        - UNITS
        - VIALS
        - TREATMENTS
        - SESSIONS
        - PULSES
        - JOULES
        - CENTIMETERS
        - THREAD_COUNT
        - INJECTIONS
        - WRINKLE_UNITS
        - POUNDS
        - FEET
        - INCHES
      title: Unit
    UpdateDashboardSchema:
      properties:
        name:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
          title: Name
          description: Name of the dashboard
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Description of the dashboard
        layoutConfig:
          anyOf:
            - type: object
            - type: "null"
          title: Layoutconfig
          description: Grid layout configuration
        isArchived:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isarchived
          description: Whether the dashboard is archived
      type: object
      title: UpdateDashboardSchema
      description: Schema for updating an existing analytics dashboard.
    UpdateInvoiceData:
      properties:
        method:
          $ref: "#/components/schemas/InvoiceMethod"
        sendTime:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Sendtime
      type: object
      required:
        - method
      title: UpdateInvoiceData
    UpdatePatientArchivedStatus:
      properties:
        patientIds:
          items:
            type: string
          type: array
          title: Patientids
        isArchived:
          type: boolean
          title: Isarchived
          default: true
      type: object
      required:
        - patientIds
      title: UpdatePatientArchivedStatus
    UpdatePatientDynamicFieldsResponse:
      properties:
        healthData:
          additionalProperties:
            $ref: "#/components/schemas/DynamicHealthField"
          type: object
          title: Healthdata
          description: Updated health data
      type: object
      required:
        - healthData
      title: UpdatePatientDynamicFieldsResponse
      description: Response schema for updating patient dynamic fields.
    UpdateWidgetSchema:
      properties:
        title:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
          title: Title
          description: Title of the widget
        description:
          anyOf:
            - type: string
            - type: "null"
          title: Description
          description: Description of the widget
        chartType:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
          title: Charttype
          description: Type of chart
        queryConfig:
          anyOf:
            - $ref: "#/components/schemas/QueryConfigSchema"
            - type: "null"
          description: Query builder configuration
        chartConfig:
          anyOf:
            - type: object
            - type: "null"
          title: Chartconfig
          description: Chart-specific configuration
        layoutPosition:
          anyOf:
            - type: object
            - type: "null"
          title: Layoutposition
          description: Grid position and size
        isArchived:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isarchived
          description: Whether the widget is archived
        orderIndex:
          anyOf:
            - type: integer
            - type: "null"
          title: Orderindex
          description: Order index for widget positioning
      type: object
      title: UpdateWidgetSchema
      description: Schema for updating an existing dashboard widget.
    UpdatedAppointment:
      properties:
        updatedFrom:
          $ref: "#/components/schemas/EventDetail"
        updatedTo:
          $ref: "#/components/schemas/EventDetail"
        patient:
          $ref: "#/components/schemas/UserTiny"
        provider:
          $ref: "#/components/schemas/UserTiny"
        staffDiff:
          anyOf:
            - $ref: "#/components/schemas/StaffDiff"
            - type: "null"
        serviceDiffs:
          items:
            $ref: "#/components/schemas/ServiceDiff"
          type: array
          title: Servicediffs
          default: []
        timeDiff:
          anyOf:
            - $ref: "#/components/schemas/TimeDiff"
            - type: "null"
        locationDiff:
          anyOf:
            - $ref: "#/components/schemas/LocationDiff"
            - type: "null"
        changedFields:
          items:
            type: string
          type: array
          title: Changedfields
          default: []
      type: object
      required:
        - updatedFrom
        - updatedTo
        - patient
        - provider
      title: UpdatedAppointment
    UsageItem:
      properties:
        date:
          type: string
          title: Date
        quantity:
          type: number
          title: Quantity
        description:
          type: string
          title: Description
        unitPrice:
          type: integer
          title: Unitprice
        amount:
          type: integer
          title: Amount
        pricingId:
          anyOf:
            - type: string
            - type: "null"
          title: Pricingid
      type: object
      required:
        - date
        - quantity
        - description
        - unitPrice
        - amount
      title: UsageItem
    UsageResponse:
      properties:
        items:
          items:
            $ref: "#/components/schemas/UsageItem"
          type: array
          title: Items
        freeUsage:
          items:
            $ref: "#/components/schemas/FreeUsageItem"
          type: array
          title: Freeusage
      type: object
      required:
        - items
        - freeUsage
      title: UsageResponse
    UserSummary:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the user.
        firstName:
          anyOf:
            - type: string
            - type: "null"
          title: Firstname
          description: The user's first name.
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
          description: The user's last name.
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
          description: The user's phone number.
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
          description: The user's email address.
        type:
          $ref: "#/components/schemas/UserType"
          description: The type of user.
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: The location of the user.
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
          description: The user's external identifier if available.
        address:
          anyOf:
            - type: string
            - type: "null"
          title: Address
          description: The user's primary address.
        addressLineTwo:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslinetwo
          description: Additional address information.
        city:
          anyOf:
            - type: string
            - type: "null"
          title: City
          description: The city of the user's address.
        state:
          anyOf:
            - type: string
            - type: "null"
          title: State
          description: The state of the user's address.
        zipCode:
          anyOf:
            - type: string
            - type: "null"
          title: Zipcode
          description: The postal code of the user's address.
        country:
          anyOf:
            - type: string
            - type: "null"
          title: Country
          description: The country of the user's address.
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time when the user was created.
        addressValid:
          anyOf:
            - type: boolean
            - type: "null"
          title: Addressvalid
          description: Whether the user's address is valid.
        meta:
          anyOf:
            - type: object
            - type: "null"
          title: Meta
          description: Any additional metadata about the user relevant to your system.
        isArchived:
          anyOf:
            - type: boolean
            - type: "null"
          title: Isarchived
          description: Whether the user is archived.
        primaryLocationId:
          anyOf:
            - type: string
            - type: "null"
          title: Primarylocationid
          description: The primary location of the user.
      type: object
      required:
        - id
        - type
        - createdDate
      title: UserSummary
    UserTiny:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the user.
        firstName:
          anyOf:
            - type: string
            - type: "null"
          title: Firstname
          description: The user's first name.
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
          description: The user's last name.
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
          description: The user's phone number.
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
          description: The user's email address.
        type:
          $ref: "#/components/schemas/UserType"
          description: The type of user.
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
          description: The location of the user.
      type: object
      required:
        - id
        - type
      title: UserTiny
    UserType:
      type: string
      enum:
        - PROVIDER
        - PATIENT
        - ASSISTANT
      title: UserType
    UserUpdate:
      properties:
        firstName:
          anyOf:
            - type: string
            - type: "null"
          title: Firstname
        lastName:
          anyOf:
            - type: string
            - type: "null"
          title: Lastname
        externalId:
          anyOf:
            - type: string
            - type: "null"
          title: Externalid
        email:
          anyOf:
            - type: string
            - type: "null"
          title: Email
        phoneNumber:
          anyOf:
            - type: string
            - type: "null"
          title: Phonenumber
        address:
          anyOf:
            - type: string
            - type: "null"
          title: Address
        addressLineTwo:
          anyOf:
            - type: string
            - type: "null"
          title: Addresslinetwo
        city:
          anyOf:
            - type: string
            - type: "null"
          title: City
        state:
          anyOf:
            - type: string
            - type: "null"
          title: State
        zipCode:
          anyOf:
            - type: string
            - type: "null"
          title: Zipcode
        country:
          anyOf:
            - type: string
            - type: "null"
          title: Country
        addressValid:
          anyOf:
            - type: boolean
            - type: "null"
          title: Addressvalid
        meta:
          anyOf:
            - type: object
            - type: "null"
          title: Meta
        primaryLocationId:
          anyOf:
            - type: string
            - type: "null"
          title: Primarylocationid
      type: object
      title: UserUpdate
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    VerifyPatient:
      properties:
        patientId:
          type: string
          title: Patientid
        lastName:
          type: string
          title: Lastname
        phoneNumber:
          type: string
          title: Phonenumber
        dateOfBirth:
          type: string
          title: Dateofbirth
      type: object
      required:
        - patientId
        - lastName
        - phoneNumber
        - dateOfBirth
      title: VerifyPatient
    VisibleLocationsUpdate:
      properties:
        locationIds:
          items:
            type: string
          type: array
          title: Locationids
      type: object
      required:
        - locationIds
      title: VisibleLocationsUpdate
    WebhookConfigUpdate:
      properties:
        webhookUrl:
          anyOf:
            - type: string
            - type: "null"
          title: Webhookurl
        webhookEnabled:
          type: boolean
          title: Webhookenabled
          default: false
        webhookSubscriptions:
          items:
            type: string
          type: array
          title: Webhooksubscriptions
          default: []
      type: object
      title: WebhookConfigUpdate
      description: Update webhook configuration for a tenant.
    WebhookCreate:
      properties:
        subscriptions:
          items:
            $ref: "#/components/schemas/AlertType"
          type: array
          title: Subscriptions
          description: List of event types the webhook subscribes to.
        url:
          type: string
          title: Url
          description: The URL where the webhook will send notifications.
        notificationEmail:
          anyOf:
            - type: string
            - type: "null"
          title: Notificationemail
          description: Email address for sending notifications about delivery failures.
      type: object
      required:
        - subscriptions
        - url
      title: WebhookCreate
    WebhookDeliveryAttemptSummary:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the webhook delivery attempt.
        type:
          $ref: "#/components/schemas/AlertType"
          description: The type of event.
        data:
          anyOf:
            - $ref: "#/components/schemas/PaymentSummary"
            - $ref: "#/components/schemas/RefundSummary"
            - $ref: "#/components/schemas/AdjustmentSummary"
            - $ref: "#/components/schemas/ChargeSummary-Output"
            - $ref: "#/components/schemas/ServiceDetail"
            - $ref: "#/components/schemas/MessageSummary"
            - $ref: "#/components/schemas/PaymentWithCharges"
            - $ref: "#/components/schemas/PatientSummary"
            - $ref: "#/components/schemas/InvoiceUpdate"
            - $ref: "#/components/schemas/LowPatientReviewData"
            - $ref: "#/components/schemas/InvoiceSetUpdate"
            - $ref: "#/components/schemas/Notification"
            - $ref: "#/components/schemas/CallSummary"
            - $ref: "#/components/schemas/EventDetail"
            - $ref: "#/components/schemas/UpdatedAppointment"
            - $ref: "#/components/schemas/AnsweredFormTiny"
            - $ref: "#/components/schemas/PlannedPaymentSummary"
            - $ref: "#/components/schemas/PayinEvent"
            - $ref: "#/components/schemas/ChatUpdate"
            - $ref: "#/components/schemas/InventoryLog"
            - $ref: "#/components/schemas/ChargePaymentUpdate"
            - $ref: "#/components/schemas/AppointmentChecklistUpdatedData"
            - $ref: "#/components/schemas/DepositEvent"
          title: Data
          description: The `Alert's` data associated with this `WebhookDeliveryAttempt`.
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time when the event was created.
        alertId:
          type: string
          title: Alertid
          description: The `Alert`'s id associated with this `WebhookDeliveryAttempt`.
        deliveredDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Delivereddate
          description: The date and time when the event was delivered.
        lastDeliveryAttemptDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Lastdeliveryattemptdate
          description: The date and time when the last delivery attempt was made.
        lastDeliveryAttemptStatus:
          anyOf:
            - type: integer
            - type: "null"
          title: Lastdeliveryattemptstatus
          description: The HTTP status of the last delivery attempt.
        lastDeliveryAttemptError:
          anyOf:
            - type: string
            - type: "null"
          title: Lastdeliveryattempterror
          description: The error message from the last delivery attempt, if any.
      type: object
      required:
        - id
        - type
        - data
        - createdDate
        - alertId
      title: WebhookDeliveryAttemptSummary
      description: An Event in Decoda's system.
    WebhookEventType:
      type: string
      enum:
        - PAYMENT_CREATED
        - PAYMENT_COMPLETED
        - PAYMENT_FAILED
        - CHARGE_CREATED
        - ADJUSTMENT_CREATED
        - REFUND_CREATED
        - PATIENT_CREATED
        - PATIENT_UPDATED
      title: WebhookEventType
      description:
        WebhookEventType is an enum that represents the type of event that
        will be sent to the webhook.
    WebhookSummary:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the webhook.
        subscriptions:
          items:
            $ref: "#/components/schemas/AlertType"
          type: array
          title: Subscriptions
          description: List of event types the webhook is subscribed to.
        url:
          type: string
          title: Url
          description: The URL where the webhook sends notifications.
        createdDate:
          type: string
          format: date-time
          title: Createddate
          description: The date and time when the webhook was created.
        updatedDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          title: Updateddate
          description: The date and time when the webhook was last updated.
        secret:
          type: string
          title: Secret
          description: The secret key used for signing the webhook payloads.
        notificationEmail:
          anyOf:
            - type: string
            - type: "null"
          title: Notificationemail
          description: Email address for sending notifications about delivery failures.
        isArchived:
          type: boolean
          title: Isarchived
          description: Whether the webhook has been archived.
          default: false
      type: object
      required:
        - id
        - subscriptions
        - url
        - createdDate
        - secret
      title: WebhookSummary
    WebhookUpdate:
      properties:
        subscriptions:
          anyOf:
            - items:
                $ref: "#/components/schemas/AlertType"
              type: array
            - type: "null"
          title: Subscriptions
          description: List of event types the webhook subscribes to.
        url:
          anyOf:
            - type: string
            - type: "null"
          title: Url
          description: The URL where the webhook will send notifications.
        notificationEmail:
          anyOf:
            - type: string
            - type: "null"
          title: Notificationemail
          description: Email address for sending notifications about delivery failures.
      type: object
      title: WebhookUpdate
    WriteOffCreate:
      properties:
        chargeId:
          type: string
          title: Chargeid
        providerId:
          anyOf:
            - type: string
            - type: "null"
          title: Providerid
        locationId:
          anyOf:
            - type: string
            - type: "null"
          title: Locationid
        reason:
          type: string
          title: Reason
      type: object
      required:
        - chargeId
        - reason
      title: WriteOffCreate
    decoda__apps__api__routes__analytics__dashboards__payment_breakdown__GroupItem:
      properties:
        key:
          type: string
          title: Key
        label:
          type: string
          title: Label
        total:
          type: integer
          title: Total
      type: object
      required:
        - key
        - label
        - total
      title: GroupItem
      description:
        Represents a single group bucket for grouped payment breakdown
        listings.
    decoda__apps__api__routes__analytics__dashboards__payment_breakdown__GroupSummary:
      properties:
        groupKey:
          type: string
          title: Groupkey
          description: The group key this summary belongs to
        totalPayments:
          type: integer
          title: Totalpayments
          description: Total number of payments in this group
        totalAmount:
          type: integer
          title: Totalamount
          description: Total payment amount (formatted as currency)
        totalFee:
          type: integer
          title: Totalfee
          description: Total fee amount (formatted as currency)
        totalNetAmount:
          type: integer
          title: Totalnetamount
          description: Total net amount after fees (formatted as currency)
        uniquePatients:
          type: integer
          title: Uniquepatients
          description: Number of unique patients
        uniqueLocations:
          type: integer
          title: Uniquelocations
          description: Number of unique locations
      type: object
      required:
        - groupKey
        - totalPayments
        - totalAmount
        - totalFee
        - totalNetAmount
        - uniquePatients
        - uniqueLocations
      title: GroupSummary
      description: Summary statistics for a specific group.
    decoda__apps__api__routes__analytics__dashboards__product_sales_breakdown__GroupItem:
      properties:
        key:
          type: string
          title: Key
        label:
          type: string
          title: Label
        total:
          type: integer
          title: Total
      type: object
      required:
        - key
        - label
        - total
      title: GroupItem
      description:
        Represents a single group bucket for grouped revenue breakdown
        listings.
    decoda__apps__api__routes__analytics__dashboards__product_sales_breakdown__GroupSummary:
      properties:
        groupKey:
          type: string
          title: Groupkey
          description: The group key this summary belongs to
        totalItems:
          type: integer
          title: Totalitems
          description: Total number of items in this group
        totalQuantity:
          type: integer
          title: Totalquantity
          description: Total quantity (formatted)
        totalGrossAmount:
          type: integer
          title: Totalgrossamount
          description: Total gross amount (formatted as currency)
        totalItemDiscountAmount:
          type: integer
          title: Totalitemdiscountamount
          description: Total item-level discount amount (formatted as currency)
        totalChargeDiscountAmount:
          type: integer
          title: Totalchargediscountamount
          description: Total charge-level discount amount (formatted as currency)
        totalTaxAmount:
          type: integer
          title: Totaltaxamount
          description: Total tax amount (formatted as currency)
        totalNetAmount:
          type: integer
          title: Totalnetamount
          description: Total net amount (formatted as currency)
        uniquePatients:
          type: integer
          title: Uniquepatients
          description: Number of unique patients
        uniqueProviders:
          type: integer
          title: Uniqueproviders
          description: Number of unique providers
        uniqueLocations:
          type: integer
          title: Uniquelocations
          description: Number of unique locations
      type: object
      required:
        - groupKey
        - totalItems
        - totalQuantity
        - totalGrossAmount
        - totalItemDiscountAmount
        - totalChargeDiscountAmount
        - totalTaxAmount
        - totalNetAmount
        - uniquePatients
        - uniqueProviders
        - uniqueLocations
      title: GroupSummary
      description: Summary statistics for a specific group.
    decoda__apps__api__routes__analytics__dashboards__provider_earnings__GroupItem:
      properties:
        key:
          type: string
          title: Key
        label:
          type: string
          title: Label
        total:
          anyOf:
            - type: integer
            - type: "null"
          title: Total
      type: object
      required:
        - key
        - label
      title: GroupItem
    decoda__apps__api__routes__analytics__dashboards__provider_earnings__GroupSummary:
      properties:
        groupKey:
          type: string
          title: Groupkey
        totalSold:
          type: integer
          title: Totalsold
        totalDiscounts:
          type: integer
          title: Totaldiscounts
        totalTips:
          type: integer
          title: Totaltips
        totalVoidAdjustments:
          type: integer
          title: Totalvoidadjustments
        totalTaxes:
          type: integer
          title: Totaltaxes
        totalOutstandingBalances:
          type: integer
          title: Totaloutstandingbalances
        totalRefunds:
          type: integer
          title: Totalrefunds
        totalEarnings:
          type: integer
          title: Totalearnings
        uniquePatients:
          type: integer
          title: Uniquepatients
        uniqueLocations:
          type: integer
          title: Uniquelocations
      type: object
      required:
        - groupKey
        - totalSold
        - totalDiscounts
        - totalTips
        - totalVoidAdjustments
        - totalTaxes
        - totalOutstandingBalances
        - totalRefunds
        - totalEarnings
        - uniquePatients
        - uniqueLocations
      title: GroupSummary
