# File auto generated by pnpm build - DO NOT EDIT
openapi: 3.1.1
jsonSchemaDialect: https://spec.openapis.org/oas/3.1/dialect/2024-11-10
info:
  version: 1.0.0
  title: Clickmax Public API
  description: Public API reference for Clickmax integrations
servers:
  - url: https://mcp.clickmax.io/api/v0
security:
  - bearerAuth: []
paths:
  /analytics-dashboards/catalog:
    get:
      summary: Get the dashboard widget and template catalog
      description: Lists the widget presets and dashboard templates available for
        opportunities BI dashboards, plus the workspace limits.
      operationId: analyticsDashboardsCatalog
      tags:
        - analytics-dashboards
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsDashboardsCatalogOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /analytics-dashboards/list:
    get:
      summary: List saved dashboards
      description: Lists the saved opportunities BI dashboards of the workspace with
        their full config.
      operationId: analyticsDashboardsList
      tags:
        - analytics-dashboards
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsDashboardsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /analytics-dashboards/create-from-template:
    post:
      summary: Create a dashboard from a template
      description: Creates a dashboard filled from a template id of the catalog.
        `name` defaults to the template name; `pipelineId` scopes (and is
        stamped into) the stage-broken widgets of the template.
      operationId: analyticsDashboardsCreateFromTemplate
      tags:
        - analytics-dashboards
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsDashboardsCreateFromTemplateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsDashboardsCreateFromTemplateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /analytics-dashboards/compose:
    post:
      summary: Build a custom dashboard in one call
      description: Creates a custom dashboard from sections of catalog widgets —
        resolves each widget, adds the section title bands and sizes the cards
        to close the grid rows. Preferred over adding widgets one by one.
      operationId: analyticsDashboardsCompose
      tags:
        - analytics-dashboards
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsDashboardsComposeInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsDashboardsCreateFromTemplateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /analytics-dashboards/create:
    post:
      summary: Create a dashboard
      description: Creates a dashboard from an explicit config of widgets and shared
        filters.
      operationId: analyticsDashboardsCreate
      tags:
        - analytics-dashboards
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsDashboardsCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsDashboardsCreateFromTemplateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /analytics-dashboards/update:
    post:
      summary: Rename a dashboard or replace its config
      description: Renames a dashboard and/or replaces its whole config. Sending
        `config` overwrites widgets and shared filters.
      operationId: analyticsDashboardsUpdate
      tags:
        - analytics-dashboards
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsDashboardsUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsDashboardsCreateFromTemplateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /analytics-dashboards/delete:
    delete:
      summary: Delete a dashboard
      description: Deletes a saved dashboard. Opportunity data is untouched.
      operationId: analyticsDashboardsDelete
      tags:
        - analytics-dashboards
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsDashboardsDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsDashboardsDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /analytics-dashboards/settings-update:
    post:
      summary: Change a dashboard's period, goals, shared filter or live mode
      description: Partially updates the dashboard settings (shared `filters`,
        `periodPreset`, `showGoals`, advanced `conditions`, `live` mode) without
        touching its widgets.
      operationId: analyticsDashboardsSettingsUpdate
      tags:
        - analytics-dashboards
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsDashboardsSettingsUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsDashboardsCreateFromTemplateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /analytics-dashboards/widget-add:
    post:
      summary: Add a widget to a dashboard
      description: Adds one widget to a dashboard, from a catalog `presetId`, a raw
        `widget` selection, or a `heading` (section title band). Accepts `size`
        (grid columns/height), `customFieldId` and `tagIds`. Returns the updated
        dashboard.
      operationId: analyticsDashboardsWidgetAdd
      tags:
        - analytics-dashboards
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsDashboardsWidgetAddInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsDashboardsCreateFromTemplateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /analytics-dashboards/widget-update:
    post:
      summary: Reconfigure a widget
      description: Partially updates one widget of a dashboard — only the sent keys
        change, including `size`, `heading`, `customFieldId` and `tagIds`.
        Returns the updated dashboard.
      operationId: analyticsDashboardsWidgetUpdate
      tags:
        - analytics-dashboards
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsDashboardsWidgetUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsDashboardsCreateFromTemplateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /analytics-dashboards/widget-remove:
    delete:
      summary: Remove a widget from a dashboard
      description: Removes one widget from a dashboard. Returns the updated dashboard.
      operationId: analyticsDashboardsWidgetRemove
      tags:
        - analytics-dashboards
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsDashboardsWidgetRemoveInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsDashboardsCreateFromTemplateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /analytics-dashboards/widget-move:
    post:
      summary: Reposition a widget in a dashboard
      description: Moves a widget to a new 0-based `position` in the dashboard grid.
        Returns the updated dashboard.
      operationId: analyticsDashboardsWidgetMove
      tags:
        - analytics-dashboards
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsDashboardsWidgetMoveInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsDashboardsCreateFromTemplateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /analytics-dashboards/run:
    post:
      summary: Run a dashboard and get its numbers
      description: "Runs a dashboard config against the workspace data and returns one
        result per widget. Stateless: the config does not need to be saved."
      operationId: analyticsDashboardsRun
      tags:
        - analytics-dashboards
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsDashboardsRunInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsDashboardsRunOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /analytics/funnel:
    post:
      summary: Get funnel analytics
      description: Returns funnel analytics for selected project slugs and funnel ids,
        including step stats, aggregate stats, and sales history.
      operationId: analyticsFunnel
      tags:
        - analytics
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsFunnelInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsFunnelOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /analytics/total-sales:
    post:
      summary: Get total sales overview
      description: Returns overall sales totals for selected project slugs and date
        range, including internal, external, and total revenue breakdowns.
      operationId: analyticsTotalSales
      tags:
        - analytics
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsTotalSalesInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsTotalSalesOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /analytics/recent-activities:
    post:
      summary: List recent lead activities
      description: Returns recent lead activities for the workspace filtered by date
        range, project ids, funnel ids, and activity categories.
      operationId: analyticsRecentActivities
      tags:
        - analytics
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsRecentActivitiesInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsRecentActivitiesOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /analytics/top-products:
    post:
      summary: Get top-selling products
      description: Returns product sales overview for the workspace, including
        top-selling products and aggregate product totals.
      operationId: analyticsTopProducts
      tags:
        - analytics
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsTopProductsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsTopProductsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /analytics/sales-pages:
    post:
      summary: Get most accessed sales pages
      description: Returns sales-page access analytics for selected project slugs and
        funnel ids, including total visits and per-page monthly views.
      operationId: analyticsSalesPages
      tags:
        - analytics
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsSalesPagesInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsSalesPagesOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /analytics/flows-overview:
    post:
      summary: Get flows overview
      description: Returns flow execution overview for selected projects and date
        range, including active flow count and top flows by execution/reach.
      operationId: analyticsFlowsOverview
      tags:
        - analytics
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsFlowsOverviewInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsFlowsOverviewOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /analytics/leads-overview:
    get:
      summary: Get leads dashboard overview
      description: Returns lead-engagement dashboard overview for the workspace,
        including engaged contacts, flows, and list-level engagement
        percentages.
      operationId: analyticsLeadsOverview
      tags:
        - analytics
      parameters:
        - in: query
          name: startDate
          required: false
          schema:
            type: string
            format: date-time
            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        - in: query
          name: endDate
          required: false
          schema:
            type: string
            format: date-time
            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsLeadsOverviewOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /analytics/sales-metrics:
    post:
      summary: Get sales metrics comparison
      description: Returns sales metrics for the selected current and previous
        periods, including conversion, top product, and previous-period growth.
      operationId: analyticsSalesMetrics
      tags:
        - analytics
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsSalesMetricsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsSalesMetricsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /analytics/leads-metrics:
    post:
      summary: Get leads metrics comparison
      description: Returns leads metrics for selected projects, funnels, pages, and
        time windows, including conversion, lead pricing, and period comparison.
      operationId: analyticsLeadsMetrics
      tags:
        - analytics
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsLeadsMetricsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsLeadsMetricsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /analytics/messages-metrics:
    post:
      summary: Get messages metrics comparison
      description: Returns messaging engagement metrics for selected projects and
        funnels across current and previous periods.
      operationId: analyticsMessagesMetrics
      tags:
        - analytics
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsMessagesMetricsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsMessagesMetricsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /attendants/list:
    get:
      summary: List CRM attendants
      description: "Lists the workspace ATTENDANTS (atendentes) — the people
        opportunity cards are assigned to — with their `id`, `name`, `email`,
        `role` (`atendente` | `vendedor` | `coordenador`), attendant types, the
        pipelines they belong to, and card counters (`totalCards`, `openCards`).
        This is the ONLY way to resolve an `attendantId`, which every
        assignment, routing, task and bulk-action tool requires. Optional
        `search` matches name/email; optional `pipelineId` restricts to the
        attendants of one pipeline. Visibility follows the caller: a plain
        `atendente`/`vendedor` session gets ONLY its own record, while
        owner/admin/`coordenador` get the whole team."
      operationId: attendantsList
      tags:
        - attendants
      parameters:
        - in: query
          name: search
          required: false
          schema:
            type: string
        - in: query
          name: pipelineId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AttendantsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /attendants/create:
    post:
      summary: Create a CRM attendant
      description: Creates an attendant with `name`, `email` and `password` (min 6
        chars) — this provisions a login, it is not a label-only record.
        Optional `role` defaults to the workspace default; `coordenador` also
        grants the right to manage other attendants and to see the whole team.
        Restricted to owner/admin or an attendant whose role is `coordenador`;
        other callers get 403. To set which attendant types the person carries,
        call `attendants_set_types` afterwards — this endpoint does not accept
        them.
      operationId: attendantsCreate
      tags:
        - attendants
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AttendantsCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AttendantsCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /attendants/update:
    post:
      summary: Update a CRM attendant
      description: Updates an attendant `name`, `email`, `phone`, `role`, or
        `meetingRoomUrl` (a fixed meeting room link; send `null` to clear it —
        an empty string is rejected, the URL must start with http/https).
        Password cannot be changed here. Restricted to owner/admin or a
        `coordenador` attendant.
      operationId: attendantsUpdate
      tags:
        - attendants
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AttendantsUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AttendantsUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /attendants/delete:
    delete:
      summary: Delete a CRM attendant
      description: "Deletes an attendant. Destructive: the person loses access and
        their card assignments go with them — prefer reassigning their open
        cards first (`attendants_list` reports `openCards`, and
        `opportunities_bulk_assign_attendants` can move a whole selection at
        once). Restricted to owner/admin or a `coordenador` attendant."
      operationId: attendantsDelete
      tags:
        - attendants
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AttendantsDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AttendantsDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /attendants/attendant-types-list:
    get:
      summary: List attendant types
      description: Lists the workspace ATTENDANT TYPES (tipos de atendente — e.g.
        "SDR", "Closer", "Suporte") with `id`, `name`, `color`, `emoji`, display
        order and `memberCount`. An attendant type is the ROLE ON A CARD used
        for commission splits; it is orthogonal to the attendant `role` (which
        is a permission level). Resolve `attendantTypeId` here before using it
        in `cards_assign_attendants`, `pipelines_attendant_types_set` or
        `attendants_set_types`.
      operationId: attendantTypesList
      tags:
        - attendants
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AttendantTypesListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /attendants/attendant-types-create:
    post:
      summary: Create an attendant type
      description: Creates an attendant type with `name` and optional `description`,
        `color` (hex, max 7 chars) and `emoji`. The new type is workspace-wide;
        attaching it to a pipeline (with its default commission) is a separate
        call to `pipelines_attendant_types_set`. Restricted to
        owner/admin/editor.
      operationId: attendantTypesCreate
      tags:
        - attendants
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AttendantTypesCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AttendantTypesCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /attendants/attendant-types-update:
    post:
      summary: Update an attendant type
      description: Patches an attendant type `name`, `description`, `color` or
        `emoji`. Only the keys sent are changed. The returned `memberCount` is
        always 0 on this response — it is not recomputed here; read it back with
        `attendant_types_list`. Restricted to owner/admin/editor.
      operationId: attendantTypesUpdate
      tags:
        - attendants
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AttendantTypesUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AttendantTypesUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /attendants/attendant-types-delete:
    delete:
      summary: Delete an attendant type
      description: "Deletes an attendant type. Destructive: cards and pipelines that
        referenced it lose that typing (and the commission default that came
        with it). Restricted to owner/admin/editor."
      operationId: attendantTypesDelete
      tags:
        - attendants
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AttendantTypesDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AttendantTypesDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /attendants/attendant-types-reorder:
    post:
      summary: Reorder attendant types
      description: Replaces the display order of the workspace attendant types. Send
        the FULL list of `attendantTypeIds` in the desired order — ids left out
        are not reordered. Restricted to owner/admin/editor.
      operationId: attendantTypesReorder
      tags:
        - attendants
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AttendantTypesReorderInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AttendantTypesReorderOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /attendants/set-types:
    post:
      summary: Set the types of an attendant
      description: Replaces the FULL set of attendant types carried by one attendant.
        Pass an empty `attendantTypeIds` to clear them all. This says what the
        person CAN be on a card; the per-card typing is still chosen in
        `cards_assign_attendants`. Restricted to owner/admin/editor.
      operationId: attendantsSetTypes
      tags:
        - attendants
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AttendantsSetTypesInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AttendantsSetTypesOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /attendants/teams-list:
    get:
      summary: List CRM teams
      description: "Lists the CRM TEAMS (times de atendimento) with their `id` and
        name. Exposed as a read-only resolver: `teamId` is required by
        `pipelines_settings_update` (to delegate auto-assign to the distribution
        engine) and by the `atribuicao` recipe of `managed_flows_upsert`, and
        there was no other way to obtain one. Team membership and
        temperature-routing rules are configured in the web UI, not through
        MCP."
      operationId: teamsList
      tags:
        - attendants
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TeamsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /custom-fields/list:
    get:
      summary: List CRM custom fields
      description: 'Lists the workspace CUSTOM FIELDS (campos customizados /
        customFields) — the user-defined extra fields configured in the CRM, NOT
        the native/built-in fields. Each returned field is tagged with
        `entityType`: "leads" = custom fields on leads/contacts, "opportunities"
        = custom fields on opportunity (deal / kanban card) records. Pass
        `entityType` to list only one kind; omit it to return both kinds in one
        call. Optionally pass `filterable: true` to restrict to fields usable in
        segment/list filters. Returns per-field metadata: `fieldName`,
        `displayName`, `fieldType`, `entityType`, `groupName`, `options`,
        `order`, and visibility flags. Use this whenever the user mentions
        "campos customizados", "custom fields", or "customFields" for leads or
        opportunities.'
      operationId: customFieldsList
      tags:
        - custom-fields
      parameters:
        - in: query
          name: entityType
          required: false
          schema:
            type: string
            enum:
              - leads
              - opportunities
        - in: query
          name: filterable
          required: false
          schema:
            type: boolean
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CustomFieldsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /custom-fields/create:
    post:
      summary: Create a CRM custom field
      description: "Creates a new CUSTOM FIELD (campo customizado) on leads or
        opportunities. `fieldName` is the internal identifier (unique per
        `entityType` within the workspace) and `displayName` is the user-facing
        label. `fieldType` is one of: text, number, date, boolean, currency,
        percentage, select, multi_select, radio, formula, file, json, link,
        rating. For select/multi_select/radio, `options` (array of `{label,
        value}`, at least one non-empty label) is REQUIRED by this tool — the
        backend accepts an empty/missing options list but that produces a
        useless empty dropdown. The backend always overwrites `value` to match
        `label` on save (a caller-supplied divergent `value` is silently
        discarded), so pass the same string for both. Fails with a conflict if
        an active field with the same `fieldName` already exists for that
        `entityType`."
      operationId: customFieldsCreate
      tags:
        - custom-fields
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CustomFieldsCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CustomFieldsCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /custom-fields/update:
    post:
      summary: Update a CRM custom field
      description: Patches an existing custom field by `customFieldId`. Only the
        provided keys are changed; omit a key to leave it untouched. If
        `fieldType` is set to select/multi_select/radio, `options` (array of
        `{label, value}`, at least one non-empty label) must be provided in the
        same call — the backend has no such rule but an empty options list makes
        the dropdown useless. `value` always mirrors `label` on save regardless
        of what is sent. Fails for an unknown `customFieldId`, and fails with a
        conflict if changing `fieldName`/`entityType` collides with another
        active field.
      operationId: customFieldsUpdate
      tags:
        - custom-fields
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CustomFieldsUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CustomFieldsUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /forms/list:
    get:
      summary: List forms and quizzes
      description: Returns paginated forms and quizzes for the current workspace, with
        `submissionsCount` per row. Filter by `kind` (`form` | `quiz`), `status`
        (`draft` | `active` | `paused`), and `search`.
      operationId: formsList
      tags:
        - forms
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: search
          required: false
          schema:
            type: string
        - in: query
          name: status
          required: false
          schema:
            type: string
            enum:
              - draft
              - active
              - paused
        - in: query
          name: kind
          required: false
          schema:
            type: string
            enum:
              - form
              - quiz
        - in: query
          name: projectId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FormsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /forms/get:
    get:
      summary: Get one form or quiz
      description: Fetches one form/quiz by `id`, including its full `schema` (form
        definition or quiz steps+blocks) and its public `publicUrl`. Read this
        right after create to obtain the seeded default `theme`/`settings` and
        step ids before customizing a quiz.
      operationId: formsGet
      tags:
        - forms
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FormsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /forms/create:
    post:
      summary: Create a form or quiz
      description: 'Creates a form or quiz. Requires `name`. Set `kind: "quiz"` for a
        quiz. Omit `schema` to get a complete seeded starter (valid default
        theme/settings + one step) — then read it with the get tool and replace
        its `schema` via the update tool to customize. Optional
        `funnelId`/`pageId` attach it to a funnel/page. Starts as `draft` unless
        `status` is set. BLOCK ID FORMAT: every block, option, step, and
        condition `field` id MUST be identifier-safe —
        letters/digits/underscores only, no hyphens (regex:
        `^[a-zA-Z_][a-zA-Z0-9_]*$`). Recommended: `<prefix>_<rand>` (e.g.
        `b_a1z9`). Hyphens break the runtime expression evaluator. In
        `displayRule.when[].field`, reference the BLOCK id (e.g. `b_renal`), not
        the CRM custom-field mapping key.'
      operationId: formsCreate
      tags:
        - forms
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FormsCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FormsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /forms/update:
    post:
      summary: Update form/quiz metadata
      description: Updates metadata only — `name`, `title`, `description`, `status`
        (`active` publishes, `paused` takes offline), `slug`, `funnelId`,
        `pageId`. CANNOT change the `schema`, so it can never clobber quiz
        content. Use `forms_step_upsert`/`forms_step_delete` to edit quiz
        structure, or `forms_replace_schema` for a wholesale rewrite.
      operationId: formsUpdate
      tags:
        - forms
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FormsUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FormsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /forms/replace-schema:
    post:
      summary: Replace a form/quiz schema
      description: "Overwrites the ENTIRE `schema` (the server re-derives `kind`). Use
        only for wholesale rewrites or theme/settings/qualification edits — to
        add/edit/remove individual quiz steps prefer
        `forms_step_upsert`/`forms_step_delete`, which never require resending
        the whole document. Pass `expectedUpdatedAt` (from `forms_get`) to
        reject stale overwrites with a conflict. BLOCK ID FORMAT: every block,
        option, step, and condition `field` id MUST be identifier-safe —
        letters/digits/underscores only, no hyphens (regex:
        `^[a-zA-Z_][a-zA-Z0-9_]*$`). Recommended: `<prefix>_<rand>` (e.g.
        `b_a1z9`). Hyphens break the runtime expression evaluator. In
        `displayRule.when[].field`, reference the BLOCK id (e.g. `b_renal`), not
        the CRM custom-field mapping key."
      operationId: formsReplaceSchema
      tags:
        - forms
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FormsReplaceSchemaInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FormsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /forms/step-upsert:
    post:
      summary: Add or edit one quiz step
      description: "Adds a quiz step (omit `stepId`) or edits one (`stepId` + any of
        `name`, `next`, `blocks`). `blocks` replaces that step’s block list —
        send the full list for that one step, not the whole quiz. `index` sets
        insert position when creating. The server merges into the freshest saved
        quiz, so untouched steps are never dropped. Pass `expectedUpdatedAt`
        (from `forms_get`) for lost-update protection (conflict on stale).
        Quizzes only. BLOCK ID FORMAT: every block, option, step, and condition
        `field` id MUST be identifier-safe — letters/digits/underscores only, no
        hyphens (regex: `^[a-zA-Z_][a-zA-Z0-9_]*$`). Recommended:
        `<prefix>_<rand>` (e.g. `b_a1z9`). Hyphens break the runtime expression
        evaluator. In `displayRule.when[].field`, reference the BLOCK id (e.g.
        `b_renal`), not the CRM custom-field mapping key."
      operationId: formsStepUpsert
      tags:
        - forms
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FormsStepUpsertInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FormsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /forms/step-delete:
    delete:
      summary: Delete one quiz step
      description: Removes one step from a quiz by `stepId` and reindexes the
        remaining steps. Pass `expectedUpdatedAt` (from `forms_get`) for
        lost-update protection (conflict on stale). Quizzes only.
      operationId: formsStepDelete
      tags:
        - forms
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FormsStepDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FormsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /forms/delete:
    delete:
      summary: Delete a form or quiz
      description: Soft-deletes one form/quiz by `id`. The public page stops
        responding and it disappears from listings. Existing submissions are
        retained.
      operationId: formsDelete
      tags:
        - forms
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FormsDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FormsDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /forms/submissions-list:
    get:
      summary: List form/quiz submissions
      description: Returns paginated submissions for one form/quiz by `id`. For
        quizzes each row includes the server-computed `score`, the reached
        `resultStepId`, and the answer `values`.
      operationId: formsSubmissionsList
      tags:
        - forms
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FormsSubmissionsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /forms/analytics:
    get:
      summary: Get form/quiz analytics
      description: Returns aggregate performance for one form/quiz by `id` (views,
        leads, completions, capture/completion rates, per-step drop-off, and
        answer/result breakdowns). Optional date-range query params narrow the
        window.
      operationId: formsAnalytics
      tags:
        - forms
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: period
          required: false
          schema:
            anyOf:
              - type: string
                enum:
                  - 7d
              - type: string
                enum:
                  - 30d
              - type: string
                enum:
                  - 90d
              - type: string
                enum:
                  - all
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FormsAnalyticsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lead-activities/list:
    post:
      summary: List lead activities (workspace)
      description: Returns paginated registered lead activities for the workspace,
        across all leads. Use for cohort questions over the raw event stream;
        for one lead prefer the by-lead variant.
      operationId: leadActivitiesList
      tags:
        - lead-activities
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsRecentActivitiesInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadActivitiesListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lead-activities/list-by-lead:
    post:
      summary: List lead activities for one lead
      description: Returns paginated registered activities for one `leadId`. Use to
        inspect a single lead timeline (Lead/Tag/Email/WhatsApp/Members/Payments
        categories).
      operationId: leadActivitiesListByLead
      tags:
        - lead-activities
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LeadActivitiesListByLeadInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadActivitiesListByLeadOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lead-activities/system-list:
    post:
      summary: List system activities (workspace)
      description: Returns paginated raw system activity events for the workspace.
        This is the broader cousin of `tags_system_activities` (which is
        narrower, only tag-marker events). Best foundation for "leads who did
        event X" and "did X but not Y" cohort questions.
      operationId: leadActivitiesSystemList
      tags:
        - lead-activities
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsRecentActivitiesInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadActivitiesSystemListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lead-activities/system-by-lead:
    post:
      summary: List system activities for one lead
      description: Returns paginated raw system activity events for one `leadId`. Same
        payload shape as the workspace variant.
      operationId: leadActivitiesSystemByLead
      tags:
        - lead-activities
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LeadActivitiesSystemByLeadInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadActivitiesSystemByLeadOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lead-activities/owner-stats:
    get:
      summary: Get workspace activity stats
      description: Returns aggregated workspace-level activity stats (active leads,
        engagement). Use for headline numbers, not per-lead identification.
      operationId: leadActivitiesOwnerStats
      tags:
        - lead-activities
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadActivitiesOwnerStatsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lead-activities/owner-timeseries:
    post:
      summary: Get workspace activity timeseries
      description: Returns activity counts over a `dateRange { from, to }` with
        optional `granularity` (e.g. `day`, `week`). Workspace-aggregate, not
        per-lead.
      operationId: leadActivitiesOwnerTimeseries
      tags:
        - lead-activities
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LeadActivitiesOwnerTimeseriesInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadActivitiesOwnerTimeseriesOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lead-activities/owner-count:
    get:
      summary: Get workspace activity counts
      description: Returns activity counts grouped by type/category for the workspace.
        Aggregate, not per-lead.
      operationId: leadActivitiesOwnerCount
      tags:
        - lead-activities
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadActivitiesOwnerCountOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lead-activities/metrics-by-lead:
    get:
      summary: Get activity metrics for one lead
      description: Returns activity counts over time for one `leadId`, optional
        `startDate`/`endDate`. Useful for engagement-trend summaries on a single
        lead.
      operationId: leadActivitiesMetricsByLead
      tags:
        - lead-activities
      parameters:
        - in: query
          name: leadId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: startDate
          required: false
          schema:
            type: string
            format: date-time
            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        - in: query
          name: endDate
          required: false
          schema:
            type: string
            format: date-time
            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadActivitiesMetricsByLeadOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lead-activities/opportunity-list:
    post:
      summary: List activities for one opportunity card
      description: "Returns the paginated activity timeline of one opportunity-card
        `cardId` (CRM kanban). By default the feed also folds in the activities
        of the CONTACTS linked to the card — set `includeContactActivities:
        false` for card-only events. Narrow with `categories`, `eventName` and a
        `startDate`/`endDate` range. Discover a `cardId` with `cards_list`,
        `opportunities_query` or `cards_list_by_lead`."
      operationId: leadActivitiesOpportunityList
      tags:
        - lead-activities
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LeadActivitiesOpportunityListInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadActivitiesOpportunityListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lead-activities/opportunity-create:
    post:
      summary: Register a manual activity on an opportunity card
      description: Records a MANUAL activity on one opportunity card — the "I just
        called them / left a note" entry that shows up in the card timeline.
        `type` is `call` | `whatsapp` | `meeting` | `task` | `note` and
        `description` is required (1–5000 chars); optional `scheduledAt` back-
        or forward-dates the entry. The activity is automatically attributed to
        the card primary lead and primary company. This only RECORDS what
        happened; to schedule work someone still owes, create a task with
        `tasks_create`.
      operationId: leadActivitiesOpportunityCreate
      tags:
        - lead-activities
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LeadActivitiesOpportunityCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadActivitiesOpportunityCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lead-activities/filter-options:
    get:
      summary: Get the available activity filter values
      description: Returns the values that actually occur in the workspace activity
        stream, each with a count, grouped as `offers`, `pages`, `funnels`,
        `products`, `tags`, `messages`, `pipelines` and `flows`. Optional
        `startDate`/`endDate` restrict the window. Call this before filtering
        activities so the filter is built from ids that exist, instead of
        guessing.
      operationId: leadActivitiesFilterOptions
      tags:
        - lead-activities
      parameters:
        - in: query
          name: startDate
          required: false
          schema:
            type: string
            format: date-time
            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        - in: query
          name: endDate
          required: false
          schema:
            type: string
            format: date-time
            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadActivitiesFilterOptionsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lead-activities/actor-summary:
    get:
      summary: Get the activity summary of one actor
      description: "Returns the productivity snapshot of ONE actor by `personId` (the
        user id behind an attendant — read it from the `personId` of
        `attendants_list`, not the attendant `id`): their attendant record,
        activity totals (`total`, `last7Days`, `last30Days`), a closed 30-day
        daily `timeseries`, `topEventTypes`, `peakHour`, `lastActivityAt`, their
        opportunity book (`open`, `wonLast30Days`, `wonValueLast30Days` in
        CENTS) and a `recent` event list. Visibility mirrors `attendants_list`:
        a plain attendant can only read its OWN summary and gets 403 for anyone
        else."
      operationId: leadActivitiesActorSummary
      tags:
        - lead-activities
      parameters:
        - in: query
          name: personId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadActivitiesActorSummaryOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /leads/filter-schema:
    get:
      summary: Get legacy lead-filter schema
      description: Returns fields and operators for legacy lead-filter APIs. Do not
        use this schema for `leads_search`; inspect that operation input schema
        instead.
      operationId: leadsFilterSchema
      tags:
        - leads
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadsFilterSchemaOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /leads/search:
    post:
      summary: Search leads
      description: Returns paginated leads using the newer unified segment-style
        filter model, with optional list scoping and explicit AND/OR filter
        trees. `filters` is required; pass `[]` to search all leads. `perPage`
        accepts 1-100. Use this operation input schema, not
        `leads_filter_schema`, for valid fields and operators. Results are LITE
        records and do NOT include custom-field values (campos customizados); to
        read the custom fields of a specific lead, take its id and call
        `leads_get`, which returns them in `customValues`.
      operationId: leadsSearch
      tags:
        - leads
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LeadsSearchInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadsSearchOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /leads/exists-by-email:
    get:
      summary: Check whether a lead already exists by email
      description: Checks whether a lead with the given email already exists in the
        current workspace.
      operationId: leadsExistsByEmail
      tags:
        - leads
      parameters:
        - in: query
          name: email
          required: true
          schema:
            type: string
            minLength: 5
            maxLength: 255
            format: email
            pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadsExistsByEmailOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /leads/get:
    get:
      summary: Get one lead
      description: "Fetches the full CRM detail view of one lead by `leadId`,
        INCLUDING that lead's custom-field values (campos customizados) in the
        `customValues` array — each entry carries `displayName`, `groupName`,
        `fieldType`, and the resolved `value`. This is the only leads tool that
        returns those values: `leads_search` returns lite records WITHOUT them.
        So whenever a question can only be answered from a specific lead's
        custom field, resolve the lead first (e.g. with `leads_search`) and then
        call this tool to read its `customValues`. Use `custom_fields_list` to
        discover which custom fields exist in the workspace (field
        definitions/metadata); use this tool to read the actual per-lead
        values."
      operationId: leadsGet
      tags:
        - leads
      parameters:
        - in: query
          name: leadId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /leads/context:
    post:
      summary: Load the full context of one lead
      description: "One call that loads everything known about a lead: core profile,
        custom-field values (with field descriptions), tags, lists, opportunity
        cards with past loss reasons, notes, activity timeline, purchases
        (platform payments + external sales + LTV), page/funnel captures with
        UTMs, form/quiz submissions with answers and scores, messaging
        (aggregate conversation counters — sent, read, received,
        delivered-but-unread — plus recent thread messages and per-channel
        broadcast sends), scheduled calls and tasks, members-area access and
        course progress, automation flow instances, and extras (webinar
        registrations, temperature history, companies, AI conversation signal,
        voice/WhatsApp calls). Prefer this as the FIRST call when attending or
        analysing a specific lead. Use `sections` to fetch a subset, `since`
        (ISO date-time) to restrict temporal sections, and `limitPerSection`
        (default 20, max 100) to control volume; temporal lists report
        `totalCount` (state sections like tags, custom fields and opportunities
        return in full) so you can detect truncation and drill into the
        dedicated tools (e.g. `lead_activities_list_by_lead`,
        `cards_list_by_lead`, `leads_payments`) for full pagination. If the lead
        was merged, the response follows to the surviving lead and sets
        `resolvedFrom`."
      operationId: leadsContext
      tags:
        - leads
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LeadsContextInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadsContextOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /leads/payments:
    get:
      summary: Get lead payments and products
      description: Returns payment and product information associated with one lead.
      operationId: leadsPayments
      tags:
        - leads
      parameters:
        - in: query
          name: leadId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadsPaymentsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /leads/common-products:
    post:
      summary: Get common products from leads
      description: Returns products commonly associated with a lead cohort selected by
        unified filters and optional explicit lead ids.
      operationId: leadsCommonProducts
      tags:
        - leads
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LeadsCommonProductsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadsCommonProductsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /leads/invoices:
    post:
      summary: Get invoices from leads
      description: Returns invoices associated with a lead cohort selected by filters,
        explicit lead ids, and optional product ids.
      operationId: leadsInvoices
      tags:
        - leads
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LeadsInvoicesInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadsInvoicesOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /leads/origins:
    get:
      summary: List distinct lead origins
      description: Returns the distinct lead origins currently present in the workspace.
      operationId: leadsOrigins
      tags:
        - leads
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadsOriginsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /leads/sub-origins:
    get:
      summary: List distinct lead sub-origins
      description: Returns the distinct lead sub-origins currently present in the workspace.
      operationId: leadsSubOrigins
      tags:
        - leads
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadsSubOriginsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /leads/origins-tree:
    get:
      summary: List origins with sub-origin groupings
      description: Returns distinct lead origins grouped with their associated sub-origins.
      operationId: leadsOriginsTree
      tags:
        - leads
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadsOriginsTreeOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /leads/payments-utm-autocomplete:
    get:
      summary: Get UTM autocomplete values from leads and payments
      description: Returns UTM autocomplete values derived from lead and payment data
        in the current workspace.
      operationId: leadsPaymentsUtmAutocomplete
      tags:
        - leads
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LeadsPaymentsUtmAutocompleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lists-segments/lists-list:
    get:
      summary: List manual lists
      description: "Returns paginated manual lists from the newer lists model,
        including list source, lead count, and update time. This is the picker
        for resolving a list name into a `listId` — e.g. before setting the
        `manual` trigger's `list` scope with `flows_step_triggers_set`, or any
        other tool that needs a real list. Call it with `search` set to the name
        the user gave. If `data` comes back non-empty, confirm the match: only
        use an entry whose `name` the user would recognize as the list they
        meant — a substring hit is not proof of intent. If `data` comes back
        empty, the exact list was NOT found — check `suggestions`
        (similarly-named lists ranked by closeness) and offer those to the user
        instead of guessing. If `suggestions` is also empty, say plainly that no
        matching list exists rather than inventing a `listId`."
      operationId: listsList
      tags:
        - lists-segments
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: search
          required: false
          schema:
            type: string
            maxLength: 255
        - in: query
          name: favorite
          required: false
          schema:
            type: boolean
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lists-segments/lists-create:
    post:
      summary: Create a manual list
      description: Creates a manual list in the newer lists model with a name and
        nullable emoji.
      operationId: listsCreate
      tags:
        - lists-segments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ListsCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListsCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lists-segments/lists-get:
    get:
      summary: Get one manual list
      description: Fetches one manual list by `listId` from the newer lists model.
      operationId: listsGet
      tags:
        - lists-segments
      parameters:
        - in: query
          name: listId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lists-segments/lists-update:
    post:
      summary: Update a manual list
      description: Updates the display name and/or emoji of a manual list in the newer
        lists model.
      operationId: listsUpdate
      tags:
        - lists-segments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ListsUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListsUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lists-segments/lists-delete:
    delete:
      summary: Delete a manual list
      description: Deletes a manual list from the newer lists model.
      operationId: listsDelete
      tags:
        - lists-segments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ListsDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListsDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lists-segments/lists-update-leads:
    delete:
      summary: Update leads in a manual list
      description: Adds, removes, or clears lead membership in a manual list. Supports
        bulk membership updates with inline lead-count maintenance.
      operationId: listsUpdateLeads
      tags:
        - lists-segments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ListsUpdateLeadsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListsUpdateLeadsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lists-segments/lists-get-leads:
    get:
      summary: List manual list leads
      description: Returns paginated lightweight leads from a manual list in the newer
        lists model, optionally filtered by search text.
      operationId: listsGetLeads
      tags:
        - lists-segments
      parameters:
        - in: query
          name: listId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: search
          required: false
          schema:
            type: string
            maxLength: 255
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListsGetLeadsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lists-segments/segments-list:
    get:
      summary: List dynamic segments
      description: Returns paginated dynamic segments with their synced backing list
        metadata and engagement rate.
      operationId: segmentsList
      tags:
        - lists-segments
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: search
          required: false
          schema:
            type: string
            maxLength: 255
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SegmentsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lists-segments/segments-create:
    post:
      summary: Create a dynamic segment
      description: Creates a new segment shell in the newer segments model. Filters
        are usually defined in a follow-up step.
      operationId: segmentsCreate
      tags:
        - lists-segments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SegmentsCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SegmentsCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lists-segments/segments-preview-count:
    post:
      summary: Preview segment size
      description: Estimates how many leads would match a set of segment filters
        before saving them.
      operationId: segmentsPreviewCount
      tags:
        - lists-segments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SegmentsPreviewCountInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SegmentsPreviewCountOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lists-segments/segments-timeseries:
    post:
      summary: Get segment lead timeseries
      description: Returns lead-count timeseries buckets for a segment-style filter
        tree over a date range.
      operationId: segmentsTimeseries
      tags:
        - lists-segments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SegmentsTimeseriesInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SegmentsTimeseriesOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lists-segments/segments-categories-metrics:
    post:
      summary: Get segment lead categories
      description: Returns origin and temperature distributions for leads matched by a
        segment-style filter tree.
      operationId: segmentsCategoriesMetrics
      tags:
        - lists-segments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SegmentsCategoriesMetricsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SegmentsCategoriesMetricsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lists-segments/segments-get:
    get:
      summary: Get one dynamic segment
      description: Fetches one segment with its synced backing list metadata.
      operationId: segmentsGet
      tags:
        - lists-segments
      parameters:
        - in: query
          name: segmentId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SegmentsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lists-segments/segments-update:
    post:
      summary: Update a dynamic segment
      description: Updates the display name and/or emoji of a segment. Its synced list
        metadata follows the same labels.
      operationId: segmentsUpdate
      tags:
        - lists-segments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SegmentsUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SegmentsUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lists-segments/segments-delete:
    delete:
      summary: Delete a dynamic segment
      description: Deletes a segment and its synced list membership from the newer
        segments model.
      operationId: segmentsDelete
      tags:
        - lists-segments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SegmentsDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SegmentsDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lists-segments/segments-get-filters:
    get:
      summary: Get segment filters
      description: Returns the current filter tree for a segment.
      operationId: segmentsGetFilters
      tags:
        - lists-segments
      parameters:
        - in: query
          name: segmentId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SegmentsGetFiltersOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lists-segments/segments-upsert-filters:
    delete:
      summary: Replace segment filters
      description: Replaces the full filter tree of a segment with a new set of filters.
      operationId: segmentsUpsertFilters
      tags:
        - lists-segments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SegmentsUpsertFiltersInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SegmentsUpsertFiltersOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lists-segments/segments-reload:
    post:
      summary: Request segment reload
      description: Requests a membership refresh for a segment so its synced list
        reflects the latest filter definition.
      operationId: segmentsReload
      tags:
        - lists-segments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SegmentsReloadInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SegmentsReloadOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lists-segments/segments-get-leads:
    get:
      summary: List dynamic segment leads
      description: Returns paginated lightweight leads from the synced list of a
        segment, optionally filtered by search text.
      operationId: segmentsGetLeads
      tags:
        - lists-segments
      parameters:
        - in: query
          name: segmentId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: search
          required: false
          schema:
            type: string
            maxLength: 255
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SegmentsGetLeadsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-automations/stage-automations-list:
    get:
      summary: List stage automations
      description: Lists the automations that move cards OUT of one stage. Requires
        `fromStageId` — automations are indexed by their source stage, there is
        no list-all variant. Each row carries `targetStageId`,
        `allowMoveBackward`, `isActive` and the triggers that fire it.
      operationId: stageAutomationsList
      tags:
        - opportunity-automations
      parameters:
        - in: query
          name: fromStageId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StageAutomationsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-automations/stage-automations-get:
    get:
      summary: Get one stage automation
      description: Fetches one stage automation by id, including its trigger list.
      operationId: stageAutomationsGet
      tags:
        - opportunity-automations
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StageAutomationsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-automations/stage-automations-create:
    post:
      summary: Create a stage automation
      description: 'Creates an automation that moves a card from `fromStageId` to
        `targetStageId` when any of its `triggers` fires, over a CLOSED
        vocabulary of 7 legacy events. It does NOT cover meetings, scheduling,
        forms, tags or anything else in the flows catalogue — for any of those,
        and for every event the user names that is not in the list below, use
        `managed_flows_upsert` with `type: "gatilho_passagem"` instead. At least
        one trigger is required; `eventType` is one of `pix_generated`,
        `boleto_generated`, `cart_abandonment`, `purchase_completed`,
        `email_opened`, `whatsapp_reply`, `lead_field_updated`, with an optional
        `config` narrowing it (`offerIds`, `paymentType` = pix|boleto|credit,
        `fieldName`). Of those, only `paymentType` and `fieldName` (one LEAD
        field, for `lead_field_updated`) justify preferring this tool —
        `gatilho_passagem` narrows by `offerIds` just as well.
        `allowMoveBackward` lets the automation move a card to an EARLIER stage;
        leave it off to only ever advance. Optional `name` is a display label.'
      operationId: stageAutomationsCreate
      tags:
        - opportunity-automations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/StageAutomationsCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StageAutomationsCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-automations/stage-automations-update:
    post:
      summary: Update a stage automation
      description: "Patches an automation `name`, `allowMoveBackward` or `isActive`.
        Use `isActive: false` to pause it without losing the trigger set. The
        stages it connects (`fromStageId`/`targetStageId`) are NOT editable here
        — recreate the automation to repoint it; sending them has no effect."
      operationId: stageAutomationsUpdate
      tags:
        - opportunity-automations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/StageAutomationsUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StageAutomationsUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-automations/stage-automations-delete:
    delete:
      summary: Delete a stage automation
      description: "Deletes a stage automation and its triggers. Destructive; prefer
        `stage_automations_update` with `isActive: false` to pause it. The
        endpoint returns no body — this tool answers `{ ok: true }` on success."
      operationId: stageAutomationsDelete
      tags:
        - opportunity-automations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/StageAutomationsDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StageAutomationsDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-automations/stage-automations-triggers-replace:
    post:
      summary: Replace the triggers of a stage automation
      description: 'Replaces the FULL trigger list of one automation — send every
        trigger you want to keep, at least one. Each entry is `{ eventType,
        config? }` with the same closed 7-event vocabulary as
        `stage_automations_create`; an event outside it belongs in a
        `managed_flows_upsert` with `type: "gatilho_passagem"`, not here.
        Triggers omitted from the list are removed.'
      operationId: stageAutomationsTriggersReplace
      tags:
        - opportunity-automations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/StageAutomationsTriggersReplaceInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StageAutomationsTriggersReplaceOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-automations/stage-rules-get:
    get:
      summary: Get the passage rules of a stage
      description: 'Returns the passage rules of one stage as `{ rules }`, or `{
        rules: null }` when the stage has none configured (which means "nothing
        blocks a move"). Rules are what makes `cards_move` fail with a 409
        listing unmet conditions: `requiredOn` + `requiredFields`, `wipOn` +
        `wipLimit` + `wipMode`, and `directionOn` + `direction`.'
      operationId: stageRulesGet
      tags:
        - opportunity-automations
      parameters:
        - in: query
          name: stageId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StageRulesGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-automations/stage-rules-list-by-pipeline:
    get:
      summary: List the passage rules of a pipeline
      description: Returns the passage rules of every stage of one pipeline in a
        single call. Stages with no rules configured are simply absent from the
        array. Use this before planning a batch of moves so you know which
        columns will reject them.
      operationId: stageRulesListByPipeline
      tags:
        - opportunity-automations
      parameters:
        - in: query
          name: pipelineId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StageRulesListByPipelineOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-automations/stage-rules-upsert:
    post:
      summary: Set the passage rules of a stage
      description: Creates or replaces the passage rules of one stage. ALL fields are
        required — this is a full replace, not a patch, so read
        `stage_rules_get` first and resend the values you want to keep.
        `requiredOn` + `requiredFields` demand fields be filled before a card
        leaves; `wipOn` + `wipLimit` (1–9999) + `wipMode` cap how many open
        cards the stage holds (`warn` only flags, `block` actually rejects the
        move and the list import); `directionOn` + `direction` restrict movement
        (`any`, `forward`, `one_step`, `terminal`).
      operationId: stageRulesUpsert
      tags:
        - opportunity-automations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/StageRulesUpsertInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StageRulesUpsertOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-automations/stage-rules-open-count:
    get:
      summary: Get the open-card count used by the WIP rule
      description: Returns `{ count }` = how many OPEN cards the stage currently
        holds, which is the exact number the WIP rule compares against
        `wipLimit`. This is not the same as the card count from `stages_list`,
        which follows the caller kanban filters. Use it to check headroom before
        moving or importing cards into a `block`-mode stage.
      operationId: stageRulesOpenCount
      tags:
        - opportunity-automations
      parameters:
        - in: query
          name: stageId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StageRulesOpenCountOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-automations/managed-flows-list-by-stage:
    get:
      summary: List the managed flows of a stage
      description: Lists the managed automations owned by one stage. Each entry has a
        `type` — `entrada_externa` (an external event creates a card here),
        `gatilho_passagem` (an event moves an existing card here), `atribuicao`
        (assigns an attendant), `acao_delay` (runs an action after a delay) —
        plus the underlying `flowId`, its `mode`, `config` and execution
        `stats`.
      operationId: managedFlowsListByStage
      tags:
        - opportunity-automations
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ManagedFlowsListByStageOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-automations/managed-flows-list-by-pipeline:
    get:
      summary: List the managed flows of a pipeline
      description: Same rows as `managed_flows_list_by_stage` but for the whole
        pipeline in one query, each carrying its `stageId` so they can be
        grouped by column. This is the board behind "Modo automação". A pipeline
        belonging to another workspace returns an empty array rather than an
        error.
      operationId: managedFlowsListByPipeline
      tags:
        - opportunity-automations
      parameters:
        - in: query
          name: pipelineId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ManagedFlowsListByPipelineOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-automations/managed-flows-upsert:
    post:
      summary: Create or update a managed flow on a stage
      description: 'Creates (or replaces) one managed automation on a stage and
        returns `{ managedFlowId, flowId }`. The body is discriminated by
        `type`: `atribuicao` takes `strategy` (`auto` | `fixo`) plus `teamId`
        (see `teams_list`), `temperature` or a fixed `attendantId`;
        `entrada_externa` takes either `eventName` (any event of the flows
        catalogue, with optional `offerIds`/`scopes`/`value`) or `funnelIds`
        (lead captured by a funnel creates a card here); `gatilho_passagem`
        takes `eventName` plus optional `fieldConstraint`, `agingDays`,
        `offerIds`, `webhookUrl` (an https:// URL that also receives the
        opportunity when the card moves), `scopes`, and is THE tool for "when X
        happens, move the opportunity to this stage" whatever X is — a booked
        meeting, a reply, a tag; `eventName` for both of these MUST come from
        `flows_triggers_catalog`, never invented, and the user must see that
        entry `label` (e.g. "Reunião Agendada"), never the raw `eventName`; the
        catalogue is wider than this endpoint accepts, so skip entries of the
        `mass` group (and, for `gatilho_passagem`, the received-webhook event) —
        sending one is a 400; narrow it with that entry `scopes`, resolving
        entity ids through the matching picker tool instead of guessing;
        `acao_delay` takes `delayHours` (0–8760), a `label`, and an `actionKind`
        from the Matriz catalogue (`notifyOwner`, `addTag`, `removeTag`,
        `addToList`, `removeFromList`, `createTask`, `scheduleCall`,
        `updateCardFields`, `markWonLost`, `sendWhatsapp`, `sendInstagram`,
        `sendEmail`, `sendSms`, `sendVoice`, `httpRequest`,
        `presetGoogleCalendar`, `presetCalendly`) with that action flat fields
        alongside it. `projectId` is optional everywhere — the server resolves
        the workspace default project when it is omitted.'
      operationId: managedFlowsUpsert
      tags:
        - opportunity-automations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ManagedFlowsUpsertInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ManagedFlowsUpsertOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-automations/managed-flows-set-active:
    post:
      summary: Activate or pause a managed flow
      description: "Turns one managed automation on or off without deleting it, via
        `active: true|false`. This is the reversible counterpart of
        `managed_flows_delete` and the right way to stop an automation
        temporarily."
      operationId: managedFlowsSetActive
      tags:
        - opportunity-automations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ManagedFlowsSetActiveInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ManagedFlowsSetActiveOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-automations/managed-flows-delete:
    delete:
      summary: Delete a managed flow
      description: "Deletes a managed automation and the flow behind it. Destructive
        and not undoable — prefer `managed_flows_set_active` with `active:
        false` when the automation may be needed again."
      operationId: managedFlowsDelete
      tags:
        - opportunity-automations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ManagedFlowsDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ManagedFlowsDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-bulk-actions/opportunities-bulk-move:
    post:
      summary: Move many opportunity cards
      description: 'Moves a whole card selection to `targetStageId`. Targeting is
        either `cardIds` (an explicit non-empty list) OR `allMatching: true`
        with a `scope` — `{ pipelineId, stageId?, filters? }`, where `filters`
        is the same kanban filter set as `cards_list`. The two are mutually
        exclusive and one of them is required; sending both, or neither, is a
        400. Returns `{ mode: "sync", affected }` when the selection is at most
        200 cards, or `{ mode: "async", jobId }` above that — poll
        `opportunities_bulk_job_status` with that `jobId` until it finishes.
        Unlike `cards_move`, this takes no position anchors — the cards land at
        the end of the destination stage.'
      operationId: opportunitiesBulkMove
      tags:
        - opportunity-bulk-actions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OpportunitiesBulkMoveInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OpportunitiesBulkMoveOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-bulk-actions/opportunities-bulk-assign-attendants:
    post:
      summary: Assign attendants to many cards
      description: 'Replaces the attendant set on a whole card selection.
        `assignments` needs at least one entry of `{ attendantId,
        attendantTypeId?, isPrimary?, commissionType?, commissionPercentBp?,
        commissionFixedCents? }` — resolve ids with `attendants_list` and
        `attendant_types_list`. Commission percentages are BASIS POINTS (525 =
        5.25%) and fixed amounts are CENTS. Targeting is either `cardIds` (an
        explicit non-empty list) OR `allMatching: true` with a `scope` — `{
        pipelineId, stageId?, filters? }`, where `filters` is the same kanban
        filter set as `cards_list`. The two are mutually exclusive and one of
        them is required; sending both, or neither, is a 400. Returns `{ mode:
        "sync", affected }` when the selection is at most 200 cards, or `{ mode:
        "async", jobId }` above that — poll `opportunities_bulk_job_status` with
        that `jobId` until it finishes.'
      operationId: opportunitiesBulkAssignAttendants
      tags:
        - opportunity-bulk-actions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OpportunitiesBulkAssignAttendantsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OpportunitiesBulkMoveOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-bulk-actions/opportunities-bulk-apply-tags:
    post:
      summary: Apply tags to many opportunity cards
      description: 'Adds `tagIds` (at least one, from `tags_list`) to a whole card
        selection. This ADDS tags, it never removes the ones already there —
        there is no bulk tag-removal endpoint; use `cards_remove_tags` per card
        for that. Targeting is either `cardIds` (an explicit non-empty list) OR
        `allMatching: true` with a `scope` — `{ pipelineId, stageId?, filters?
        }`, where `filters` is the same kanban filter set as `cards_list`. The
        two are mutually exclusive and one of them is required; sending both, or
        neither, is a 400. Returns `{ mode: "sync", affected }` when the
        selection is at most 200 cards, or `{ mode: "async", jobId }` above that
        — poll `opportunities_bulk_job_status` with that `jobId` until it
        finishes.'
      operationId: opportunitiesBulkApplyTags
      tags:
        - opportunity-bulk-actions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OpportunitiesBulkApplyTagsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OpportunitiesBulkMoveOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-bulk-actions/opportunities-bulk-set-temperature:
    post:
      summary: Set the temperature of many cards
      description: 'Sets `temperature` (`hot` | `warm` | `cold` | `frozen`, or `null`
        to clear it) on a whole card selection. Targeting is either `cardIds`
        (an explicit non-empty list) OR `allMatching: true` with a `scope` — `{
        pipelineId, stageId?, filters? }`, where `filters` is the same kanban
        filter set as `cards_list`. The two are mutually exclusive and one of
        them is required; sending both, or neither, is a 400. Returns `{ mode:
        "sync", affected }` when the selection is at most 200 cards, or `{ mode:
        "async", jobId }` above that — poll `opportunities_bulk_job_status` with
        that `jobId` until it finishes.'
      operationId: opportunitiesBulkSetTemperature
      tags:
        - opportunity-bulk-actions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OpportunitiesBulkSetTemperatureInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OpportunitiesBulkMoveOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-bulk-actions/opportunities-bulk-set-priority:
    post:
      summary: Set the priority of many cards
      description: 'Sets `priority` on a whole card selection. Unlike temperature,
        priority is not nullable — it always has a value. Targeting is either
        `cardIds` (an explicit non-empty list) OR `allMatching: true` with a
        `scope` — `{ pipelineId, stageId?, filters? }`, where `filters` is the
        same kanban filter set as `cards_list`. The two are mutually exclusive
        and one of them is required; sending both, or neither, is a 400. Returns
        `{ mode: "sync", affected }` when the selection is at most 200 cards, or
        `{ mode: "async", jobId }` above that — poll
        `opportunities_bulk_job_status` with that `jobId` until it finishes.'
      operationId: opportunitiesBulkSetPriority
      tags:
        - opportunity-bulk-actions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OpportunitiesBulkSetPriorityInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OpportunitiesBulkMoveOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-bulk-actions/opportunities-bulk-set-value:
    post:
      summary: Set the value of many cards
      description: 'Sets `value` on a whole card selection. The value is an INTEGER IN
        CENTS (19990 = R$ 199,90), not a decimal; `null` clears it. Targeting is
        either `cardIds` (an explicit non-empty list) OR `allMatching: true`
        with a `scope` — `{ pipelineId, stageId?, filters? }`, where `filters`
        is the same kanban filter set as `cards_list`. The two are mutually
        exclusive and one of them is required; sending both, or neither, is a
        400. Returns `{ mode: "sync", affected }` when the selection is at most
        200 cards, or `{ mode: "async", jobId }` above that — poll
        `opportunities_bulk_job_status` with that `jobId` until it finishes.'
      operationId: opportunitiesBulkSetValue
      tags:
        - opportunity-bulk-actions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OpportunitiesBulkSetValueInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OpportunitiesBulkMoveOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-bulk-actions/opportunities-bulk-set-closing-date:
    post:
      summary: Set the expected closing date of many cards
      description: 'Sets `expectedClosingDate` (a calendar date, `YYYY-MM-DD`, or
        `null` to clear it) on a whole card selection. This is the date the
        forecast buckets an open deal by, so clearing it drops those cards out
        of `pipelines_forecast`. Targeting is either `cardIds` (an explicit
        non-empty list) OR `allMatching: true` with a `scope` — `{ pipelineId,
        stageId?, filters? }`, where `filters` is the same kanban filter set as
        `cards_list`. The two are mutually exclusive and one of them is
        required; sending both, or neither, is a 400. Returns `{ mode: "sync",
        affected }` when the selection is at most 200 cards, or `{ mode:
        "async", jobId }` above that — poll `opportunities_bulk_job_status` with
        that `jobId` until it finishes.'
      operationId: opportunitiesBulkSetClosingDate
      tags:
        - opportunity-bulk-actions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OpportunitiesBulkSetClosingDateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OpportunitiesBulkMoveOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-bulk-actions/opportunities-bulk-set-custom-field:
    post:
      summary: Set an opportunity custom field on many cards
      description: 'Sets one custom field (`customFieldId` from `custom_fields_list`
        with `entityType: "opportunities"`) on a whole card selection. `value`
        is raw and coerced by field type: string for text/select, number for
        number, ISO string for date, boolean for boolean, string array for
        multi_select — and `null` CLEARS the stored value. Targeting is either
        `cardIds` (an explicit non-empty list) OR `allMatching: true` with a
        `scope` — `{ pipelineId, stageId?, filters? }`, where `filters` is the
        same kanban filter set as `cards_list`. The two are mutually exclusive
        and one of them is required; sending both, or neither, is a 400. Returns
        `{ mode: "sync", affected }` when the selection is at most 200 cards, or
        `{ mode: "async", jobId }` above that — poll
        `opportunities_bulk_job_status` with that `jobId` until it finishes.'
      operationId: opportunitiesBulkSetCustomField
      tags:
        - opportunity-bulk-actions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OpportunitiesBulkSetCustomFieldInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OpportunitiesBulkMoveOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-bulk-actions/opportunities-bulk-create-next-action:
    post:
      summary: Create a follow-up task on many cards
      description: 'Creates ONE follow-up task per card across a whole selection:
        `type` (`task` | `call` | `whatsapp` | `meeting`), `title`, optional
        `description`, `deadline` and `attendantId`. Same tasks that
        `tasks_list` returns. Use `tasks_create_batch` instead when each task
        differs per card. Targeting is either `cardIds` (an explicit non-empty
        list) OR `allMatching: true` with a `scope` — `{ pipelineId, stageId?,
        filters? }`, where `filters` is the same kanban filter set as
        `cards_list`. The two are mutually exclusive and one of them is
        required; sending both, or neither, is a 400. Returns `{ mode: "sync",
        affected }` when the selection is at most 200 cards, or `{ mode:
        "async", jobId }` above that — poll `opportunities_bulk_job_status` with
        that `jobId` until it finishes.'
      operationId: opportunitiesBulkCreateNextAction
      tags:
        - opportunity-bulk-actions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OpportunitiesBulkCreateNextActionInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OpportunitiesBulkMoveOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-bulk-actions/opportunities-bulk-delete:
    delete:
      summary: Delete many opportunity cards
      description: 'Deletes a whole card selection. Highly destructive and not
        undoable — confirm the exact selection with `cards_list` or
        `opportunities_query` first, and prefer marking the cards `won`/`lost`
        (via `cards_update`) when they still matter for reporting. Targeting is
        either `cardIds` (an explicit non-empty list) OR `allMatching: true`
        with a `scope` — `{ pipelineId, stageId?, filters? }`, where `filters`
        is the same kanban filter set as `cards_list`. The two are mutually
        exclusive and one of them is required; sending both, or neither, is a
        400. Returns `{ mode: "sync", affected }` when the selection is at most
        200 cards, or `{ mode: "async", jobId }` above that — poll
        `opportunities_bulk_job_status` with that `jobId` until it finishes.'
      operationId: opportunitiesBulkDelete
      tags:
        - opportunity-bulk-actions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OpportunitiesBulkDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OpportunitiesBulkMoveOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-bulk-actions/opportunities-bulk-job-status:
    get:
      summary: Get the status of a bulk opportunity job
      description: 'Polls the background job returned as `jobId` by any
        `opportunities_bulk_*` tool that answered `mode: "async"`, reporting its
        progress and outcome. A `jobId` from another workspace, or one that
        already expired from the queue, returns not-found.'
      operationId: opportunitiesBulkJobStatus
      tags:
        - opportunity-bulk-actions
      parameters:
        - in: query
          name: jobId
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OpportunitiesBulkJobStatusOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-bulk-actions/opportunities-bulk-job-history:
    get:
      summary: List past bulk opportunity jobs
      description: Returns the most recent async bulk-action jobs of the workspace
        (default 20, max 100) with their status, progress, metadata and result.
        Use it to audit what a previous mass action actually did, or to recover
        a `jobId` that was not kept. Only ASYNC runs appear here — a selection
        that ran in `sync` mode leaves no job record.
      operationId: opportunitiesBulkJobHistory
      tags:
        - opportunity-bulk-actions
      parameters:
        - in: query
          name: limit
          required: false
          schema:
            default: 20
            type: integer
            minimum: 1
            maximum: 100
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OpportunitiesBulkJobHistoryOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-tasks/tasks-list:
    post:
      summary: List opportunity tasks
      description: 'Returns the paginated "Próximas ações" (follow-up tasks) of the
        workspace. Filters: `search` (free text over task title/description,
        card, pipeline, attendant and contact), `types` (`call` | `whatsapp` |
        `meeting` | `task`), `statuses` (`open` | `scheduled` | `resolved` |
        `cancelled`), `attendantIds`, `includeUnassigned` (ORed with
        `attendantIds`, so "attendant X plus the unassigned ones" is one call),
        `pipelineIds`, `opportunityCardId`, and a `startDate`/`endDate` range
        over the task DEADLINE. Each row carries `opportunityCardId`,
        `opportunityCardTitle`, `pipelineName`, `attendantName` and
        `contactName`, so the list alone is enough to report on follow-ups
        without fetching each card. A plain attendant session only sees its own
        tasks.'
      operationId: tasksList
      tags:
        - opportunity-tasks
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TasksListInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TasksListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-tasks/tasks-summary:
    post:
      summary: Get opportunity task counters
      description: Returns `{ total, open, resolved, overdue }` for the SAME filter
        set as `tasks_list` (minus `statuses`, which is omitted on purpose — the
        four numbers already are the status breakdown of one selection).
        Optional `overdueBefore` is the instant after which a deadline counts as
        late (defaults to server `now()`), and `allDayStart` is the caller local
        midnight, so all-day tasks due today are not reported as overdue. Use
        for headline numbers instead of paging through `tasks_list`.
      operationId: tasksSummary
      tags:
        - opportunity-tasks
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TasksSummaryInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TasksSummaryOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-tasks/tasks-get:
    get:
      summary: Get one opportunity task
      description: Fetches one task by id, with its card/pipeline/attendant/contact
        context, `outcome`, `outcomeNote` and attachment. A plain attendant
        session can only read its own tasks — someone else id returns not-found
        rather than the row.
      operationId: tasksGet
      tags:
        - opportunity-tasks
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TasksGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-tasks/tasks-create:
    post:
      summary: Create an opportunity task
      description: Creates a follow-up task. `opportunityCardId` is REQUIRED — a task
        always hangs off an opportunity card, there is no standalone/lead-only
        task. `title` is required; `type` is `call` | `whatsapp` | `meeting` |
        `task`, `status` defaults to `open`, `deadline` is a date-time, and
        `attendantId` (from `attendants_list`) is who owes the action. Creating
        a task also writes a `leadTaskCreated` entry into the card activity
        timeline. To attach a file, `attachmentUrl`/`attachmentName` must
        already point at an uploaded file — this tool cannot upload one.
      operationId: tasksCreate
      tags:
        - opportunity-tasks
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TasksCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TasksGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-tasks/tasks-update:
    post:
      summary: Update or close an opportunity task
      description: 'Patches a task and is also how a task is CLOSED: send `{ status:
        "resolved", outcome: true|false, outcomeNote: "..." }` — `outcome` is
        the tri-state result (true = happened/answered, false = did not happen,
        null = not registered), relabelled per `type` in the UI ("Atendeu" for a
        call, "Respondeu" for WhatsApp). Reopening is `{ status: "open" }`. Each
        transition writes the matching
        `leadTaskResolved`/`leadTaskReopened`/`leadTaskUpdated` activity on the
        card. Send `attachmentUrl: null` to drop the attachment. Returns only `{
        success }` — read the row back with `tasks_get`. A plain attendant
        session can only update its own tasks.'
      operationId: tasksUpdate
      tags:
        - opportunity-tasks
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TasksUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TasksUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-tasks/tasks-delete:
    delete:
      summary: Delete an opportunity task
      description: 'Deletes a task outright and records a `leadTaskDeleted` activity
        on the card. Destructive and restricted to owner/admin — every other
        role gets 403, by design. To close a task while keeping the history, use
        `tasks_update` with `status: "resolved"` instead.'
      operationId: tasksDelete
      tags:
        - opportunity-tasks
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TasksDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TasksDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-tasks/tasks-create-batch:
    post:
      summary: Create several opportunity tasks
      description: Creates many tasks in one call — each entry takes the same fields
        as `tasks_create`, so they may target different cards and attendants.
        Returns the created `ids`. Unlike `tasks_create`, this path does NOT
        write per-card `leadTaskCreated` activities. To create ONE task across a
        whole card selection instead, use
        `opportunities_bulk_create_next_action`.
      operationId: tasksCreateBatch
      tags:
        - opportunity-tasks
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TasksCreateBatchInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TasksCreateBatchOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /opportunity-tasks/tasks-convert-to-scheduled:
    post:
      summary: Link a task to a scheduled call
      description: Attaches an existing appointment to a task, turning the follow-up
        "ligar para o lead" into the booked call that fulfils it. Takes the task
        `id` plus the `scheduledCallId` of an appointment created with
        `scheduled_calls_create`. A plain attendant session can only convert its
        own tasks.
      operationId: tasksConvertToScheduled
      tags:
        - opportunity-tasks
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TasksConvertToScheduledInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TasksConvertToScheduledOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/list:
    get:
      summary: List pipelines
      description: Returns all sales pipelines in the workspace with their ordered
        stages and dependency metrics. Use to discover pipeline and stage ids
        before working with cards.
      operationId: pipelinesList
      tags:
        - pipelines
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelinesListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/create:
    post:
      summary: Create a pipeline
      description: Creates a new pipeline. Only `name` is required; optionally seeds
        initial `stages` (each `{ name, color?, metaPixelEvent? }`), assigns
        `attendantTypeIds`/`attendantIds`, and sets a `groupName` (the board
        grouping label). `color` is NOT settable here — set it afterwards with
        `pipelines_update`. Automatic lead entry (checkout paid / funnel capture
        → card) is NOT configured here — create a managed "Entrada externa" flow
        with `managed_flows_upsert`. The pipeline starts active (not archived).
      operationId: pipelinesCreate
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PipelinesCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelinesCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/update:
    post:
      summary: Update a pipeline
      description: "Updates pipeline `name`, `description`, `color`, `groupName` (the
        board grouping label; `null` ungroups it), `archived` state, or the
        assigned `attendantTypeIds`/`attendantIds` (each is a full replace). Set
        `archived: true` to hide the board without deleting it. Behaviour
        settings (auto-assign, SLA, commission, routing) are NOT here — they
        live in `pipelines_settings_update`."
      operationId: pipelinesUpdate
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PipelinesUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelinesUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/delete:
    delete:
      summary: Delete a pipeline
      description: Deletes a pipeline and removes its stages and cards from the active
        board. Destructive; prefer archiving via update when the board may be
        needed later.
      operationId: pipelinesDelete
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PipelinesDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelinesDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/attendant-types-get:
    get:
      summary: Get pipeline attendant types
      description: Returns the attendant types configured for a pipeline, with their
        display order and default commission, used when assigning typed
        attendants to cards.
      operationId: pipelinesAttendantTypesGet
      tags:
        - pipelines
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelinesAttendantTypesGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/attendant-types-set:
    post:
      summary: Set pipeline attendant types
      description: Replaces the full set of attendant types for a pipeline, including
        their order and default commission.
      operationId: pipelinesAttendantTypesSet
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PipelinesAttendantTypesSetInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelinesAttendantTypesSetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/stages-list:
    post:
      summary: List pipeline stages
      description: Returns the ordered stages of a pipeline with per-stage card count
        and total value. Accepts the same kanban filters as `cards_list` —
        including the additive advanced `conditions` — and applies them to BOTH
        the aggregate and the rows, so the stage totals always match the cards
        `cards_list` returns for the same filters. Note the counts follow those
        filters; for the raw open-card count the WIP rule uses, call
        `stage_rules_open_count`.
      operationId: stagesList
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/StagesListInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StagesListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/stages-create:
    post:
      summary: Create a stage
      description: Adds a stage (column) to a pipeline, taking `name` plus optional
        `color` (hex) and `metaPixelEvent`. Stages define the ordered steps of
        the board; win/loss is tracked on the card status, not on stages — there
        is no "won"/"lost" stage type. The stage is appended last; use
        `stages_reorder` to place it. Passage rules and automations are
        configured separately (`stage_rules_upsert`, `managed_flows_upsert`).
      operationId: stagesCreate
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/StagesCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StagesCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/stages-update:
    post:
      summary: Update a stage
      description: Updates a stage `name`, `color` or `metaPixelEvent`. A stage has NO
        type/kind field — it cannot be marked as a won/lost column, and sending
        one is silently discarded. Send `null` to clear `color` or
        `metaPixelEvent`. Automatic lead entry into a stage (checkout paid /
        funnel capture → card) is NOT set here — use `managed_flows_upsert` to
        create a managed "Entrada externa" flow.
      operationId: stagesUpdate
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/StagesUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StagesUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/stages-delete:
    delete:
      summary: Delete a stage
      description: Deletes a stage and removes the cards it contains from the active
        board. Destructive; move cards out first if they must be kept.
      operationId: stagesDelete
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/StagesDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StagesDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/stages-reorder:
    post:
      summary: Reorder pipeline stages
      description: Replaces the stage order of a pipeline. Provide the full list of
        stage ids in the desired order.
      operationId: stagesReorder
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/StagesReorderInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StagesReorderOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/cards-list:
    post:
      summary: List opportunity cards
      description: "Returns paginated cards filtered by pipeline and stage. Full
        kanban filter set: `search`, `attendantIds`, `productNames`,
        `funnelNames`, `temperatures`, `priorities`, `tagIds`, `leadIds`,
        `companyIds`, `offerIds`, `origins`, `referredBy`, `valueMin`/`valueMax`
        (CENTS), `expectedClosingDateFrom`/`To`, `status` (`open` | `won` |
        `lost`; omit for all), and the forecast cut (`forecastEligible`,
        `forecastIncludeWon`). What the flat filters cannot express — nested
        AND/OR, custom fields, task/activity conditions — goes in `conditions`,
        the same advanced filter DTO documented on `opportunities_query`; it is
        ADDITIVE (intersected with the flat filters above). A plain attendant
        session only ever sees its own cards."
      operationId: cardsList
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CardsListInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CardsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/cards-list-by-lead:
    get:
      summary: List a lead opportunity cards
      description: Returns every opportunity card that references a given lead across
        all pipelines.
      operationId: cardsListByLead
      tags:
        - pipelines
      parameters:
        - in: query
          name: leadId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CardsListByLeadOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/cards-get:
    get:
      summary: Get one opportunity card
      description: Fetches the full detail of one card, including its leads,
        companies, attendants, value, and stage.
      operationId: cardsGet
      tags:
        - pipelines
      parameters:
        - in: query
          name: cardId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CardsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/cards-create:
    post:
      summary: Create an opportunity card
      description: Creates a card in a pipeline stage. Requires `pipelineId`,
        `stageId`, and at least one lead in `leadIds`. `value` is an INTEGER IN
        CENTS (19990 = R$ 199,90), never a decimal or a string. Also accepts
        `title`, `probability` (0–100, the forecast weight), `priority`,
        `temperature`, `expectedClosingDate`, `origin`, `referredBy`,
        `productIds`, `offerIds`, `companyIds`, `funnelId`, `isRecurring` and
        `customFieldValues` (`[{ customFieldId, value }]`, ids from
        `custom_fields_list`). The FIRST entry of `attendantIds` is the
        responsible attendant and MUST already belong to the pipeline —
        otherwise the call fails with 400. When `attendantIds` is omitted
        entirely and the pipeline has auto-assign on with a strategy other than
        `manual`, the attendant is picked automatically.
      operationId: cardsCreate
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CardsCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CardsCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/cards-update:
    post:
      summary: Update an opportunity card
      description: "Updates card fields: `title`, `value` (INTEGER IN CENTS),
        `probability` (0–100, the forecast weight), `priority`, `temperature`,
        `expectedClosingDate`, `origin`, `referredBy`, `isRecurring`,
        `funnelId`, and the linked
        `leadIds`/`companyIds`/`productIds`/`offerIds` (each a full replace).
        `responsibleAttendantId` sets who owes the NEXT ACTION — it is a
        different thing from `cards_assign_attendants`, which sets the
        commission roles on the card. Closing the deal goes through `status`:
        `won` clears any loss reason; `lost` REQUIRES a `lossReason` (max 500
        chars, and if the pipeline has `restrictLossReasons` on it must be one
        of the pipeline preset reasons — otherwise a free-text reason is
        accepted and auto-registered into that list), with `lossObservation` as
        the optional note; reopening to `open` clears both. To read a card back
        use `cards_get`."
      operationId: cardsUpdate
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CardsUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CardsUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/cards-delete:
    delete:
      summary: Delete an opportunity card
      description: Deletes one opportunity card. Destructive; prefer setting `status`
        to `won`/`lost` via update to keep the card for reporting.
      operationId: cardsDelete
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CardsDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CardsDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/cards-move:
    post:
      summary: Move an opportunity card
      description: Moves a card to a stage. Omit anchors to drop it at the stage end,
        or pass `beforeCardId`/`afterCardId` to position it relative to a
        neighbour. The move can be rejected by stage passage rules, returning
        which conditions were not met.
      operationId: cardsMove
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CardsMoveInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CardsMoveOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/cards-assign-attendants:
    post:
      summary: Assign attendants to a card
      description: Replaces the full attendant set on a card. Each assignment can set
        a type, primary flag, and commission. Pass an empty list to clear all
        attendants.
      operationId: cardsAssignAttendants
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CardsAssignAttendantsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CardsAssignAttendantsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/cards-import-from-lists:
    post:
      summary: Import cards from lists
      description: Creates cards in a pipeline stage from the leads of one or more V2
        lists. Dispatches sync (≤200 leads) or async (returns `jobId` for
        polling). The destination stage WIP rule is enforced server-side — a 409
        with `violations[0].type === "wip"` is returned when block mode is
        exceeded.
      operationId: cardsImportFromLists
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CardsImportFromListsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CardsImportFromListsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/cards-history:
    get:
      summary: Get card stage history
      description: Returns the stage-movement history of one card, including from/to
        stages and who moved it.
      operationId: cardsHistory
      tags:
        - pipelines
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CardsHistoryOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/cards-at-risk:
    get:
      summary: List at-risk opportunities
      description: Returns open cards idle beyond an `idleDays` threshold (default 14,
        max 365), optionally scoped by `pipelineId` and `attendantId`, capped by
        `limit` (max 50). Each row carries `daysIdle`, `pipelineName`,
        `ownerName`, `value` (CENTS) and the flags `noNextAction` (nothing
        scheduled) and `isFrozen`. Idleness is measured from the last lead
        activity, falling back to the card creation date. Use for follow-up
        triage; a plain attendant session gets its own cards plus the unassigned
        ones, and its `attendantId` filter is ignored.
      operationId: cardsAtRisk
      tags:
        - pipelines
      parameters:
        - in: query
          name: viewAsAttendantId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: pipelineId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: attendantId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: idleDays
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 365
        - in: query
          name: limit
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 50
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CardsAtRiskOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/settings-get:
    get:
      summary: Get pipeline settings
      description: "Returns a pipeline configuration: auto-assign, SLA idle threshold,
        notification toggles, lost reasons, win requirements, defaults, and card
        display."
      operationId: pipelinesSettingsGet
      tags:
        - pipelines
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelinesSettingsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/settings-update:
    post:
      summary: Update pipeline settings
      description: Patches a pipeline configuration — only the keys sent change.
        Covers auto-assign (`autoAssign`, `autoAssignStrategy`, `teamId` from
        `teams_list`), SLA (`slaEnabled`, `slaInactivityDays`,
        `slaTargetStageId`), notifications
        (`notifyOnCreated`/`Moved`/`Won`/`Lost`), win requirements
        (`requireValueOnWon`, `requireExpectedDateOnWon`), the loss vocabulary
        (`lostReasons` plus `restrictLossReasons`, which forbids free-text
        reasons on `cards_update`), card defaults (`defaultPriority`,
        `defaultTemperature`, `defaultCurrency`), commission
        (`commissionEarnOn`, clawback, installments, splits, tiers, visibility),
        routing (`routingMode`, caps, reassign, sticky, working hours/days,
        criteria), and the board presentation (`cardDisplay`, `drawerLayout`).
        Pipeline identity (name, color, group, archived) is NOT here — that is
        `pipelines_update`. Automatic lead entry (checkout paid / funnel capture
        → card) is NOT here either — use `managed_flows_upsert` to create a
        managed "Entrada externa" flow.
      operationId: pipelinesSettingsUpdate
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PipelinesSettingsUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelinesSettingsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/analytics:
    get:
      summary: Get pipeline analytics
      description: Returns conversion and value analytics for one pipeline, including
        per-stage breakdown and win/loss performance.
      operationId: pipelinesAnalytics
      tags:
        - pipelines
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelinesAnalyticsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/opportunities-query:
    post:
      summary: Query opportunity cards with the advanced filter
      description: 'Runs the UNIFIED opportunity filter and returns `{ count, cardIds
        }` — ids only, never full cards, and `count` is the total ignoring
        pagination. Use it to answer "how many / which cards match X" across a
        whole workspace, or as the selection step before `cards_get`. `filters`
        is a FLAT array of nodes linked by `parentId` (never a nested object):
        each node is `{ field, operator, negation, parentId, order, value* }`,
        where `field` is one of `title`, `value`, `isRecurring`, `priority`,
        `temperature`, `status`, `origin`, `referredBy`, `lossReason`,
        `createdAt`, `updatedAt`, `expectedClosingDate`, `wonAt`, `lostAt`,
        `productId`, `offerId`, `pipelineId`, `stageId`, `funnelId`,
        `responsibleAttendantId`, `tagId`, `attendantId`, `companyId`, `leadId`,
        `customFieldText`/`Number`/`Date`/`Boolean`/`Select` (with
        `customFieldId`), `taskStatus`, `taskType`, `taskDeadline`,
        `hasOpenTask`, `children` (a group node — give it an `id` and point its
        children `parentId` at it, otherwise the tree collapses to a flat AND)
        or `lead` (carries a nested lead sub-filter). The value goes in the slot
        matching the field type: `valueString`, `valueNumber`, `valueDate`,
        `valueBool` or `valueUuid`. Optional `pipelineId` scopes the query;
        `limit` (max 200) and `offset` page the id list. To get the matching
        cards themselves in one call instead, pass the same array as
        `conditions` to `cards_list`.'
      operationId: opportunitiesQuery
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OpportunitiesQueryInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OpportunitiesQueryOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/cards-insights:
    get:
      summary: Get the 360 insights of one card
      description: 'Returns the cross-domain read of one card contact: a `snapshot`,
        `purchaseBehavior`, `recentPurchases`, `recentActivities`,
        `activeFunnels`, a `messaging` summary and a `membersArea` summary. This
        is the "who am I talking to" briefing an attendant opens before a call —
        it aggregates payments, funnels, messaging and members data that would
        otherwise take several calls.'
      operationId: cardsInsights
      tags:
        - pipelines
      parameters:
        - in: query
          name: cardId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CardsInsightsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/cards-apply-tags:
    post:
      summary: Apply tags to an opportunity card
      description: Adds `tagIds` (from `tags_list`) to one card and returns how many
        were `applied` — tags the card already had are not counted and not
        duplicated. Tags already on the card are kept; this never replaces the
        set. Applying at least one tag also writes an `opportunityTagApplied`
        entry on the card activity timeline.
      operationId: cardsApplyTags
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CardsApplyTagsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CardsApplyTagsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/cards-remove-tags:
    post:
      summary: Remove tags from an opportunity card
      description: Removes `tagIds` from one card and returns how many were `deleted`;
        ids the card did not carry are simply ignored. Removing at least one tag
        writes an `opportunityTagRemoved` entry on the card activity timeline.
        This removes the tag FROM THE CARD — the tag itself keeps existing in
        the workspace.
      operationId: cardsRemoveTags
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CardsRemoveTagsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CardsRemoveTagsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/cards-attendant-commission-update:
    post:
      summary: Set the commission of one attendant on a card
      description: "Overrides the commission of ONE attendant already assigned to a
        card, without touching the rest of the assignment set (which is what
        `cards_assign_attendants` would replace). All three fields are required:
        `commissionType` (`percentage` | `fixed` | `null` to clear),
        `commissionPercentBp` in BASIS POINTS (525 = 5.25%) and
        `commissionFixedCents` in CENTS — send `null` for the one that does not
        apply."
      operationId: cardsAttendantCommissionUpdate
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CardsAttendantCommissionUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CardsAttendantCommissionUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/cards-import-job-status:
    get:
      summary: Get the status of a card import job
      description: Polls the background job returned as `jobId` by
        `cards_import_from_lists` when it dispatched asynchronously (over 200
        leads). Without this the async branch of that tool was a dead end — it
        handed back an id nothing could read. A job from another workspace, or
        one already expired, returns not-found.
      operationId: cardsImportJobStatus
      tags:
        - pipelines
      parameters:
        - in: query
          name: jobId
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CardsImportJobStatusOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/forecast:
    post:
      summary: Get the weekly forecast of a pipeline
      description: "Returns the revenue forecast of one pipeline bucketed by ISO week
        (Monday), all amounts in CENTS. Per week: `openCount`/`openValue` (raw
        sum of open deals), `openWeightedValue` (Σ value × probability/100),
        `wonCount`/`wonValue` (full value — a won deal is not weighted) and
        `forecastValue` = weighted open + won. An OPEN deal only appears once it
        has both an `expectedClosingDate` and a `probability`; a won deal is
        anchored on its expected date, falling back to `wonAt`. Accepts the same
        kanban filters (and additive `conditions`) as `cards_list`, so the
        projection respects the board filters."
      operationId: pipelinesForecast
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PipelinesForecastInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelinesForecastOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/commissions-list:
    get:
      summary: List the accrued commissions of a pipeline
      description: "Returns the commission ledger of one pipeline: one row per card ×
        attendant with `earnOn` (`won` | `contract` | `first_payment`),
        `baseCents`, the rate applied (`commissionType` + `commissionPercentBp`
        in basis points or `commissionFixedCents`), the resulting `amountCents`
        and a `status` of `pending` | `confirmed` | `reversed`. Read-only —
        commissions are accrued by the engine, not written through the API.
        Management-only: a plain attendant gets 403."
      operationId: pipelinesCommissionsList
      tags:
        - pipelines
      parameters:
        - in: query
          name: pipelineId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelinesCommissionsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/handoffs-list:
    get:
      summary: List the handoff rules of a pipeline
      description: Lists the HANDOFF rules of a pipeline — "when a card moves from
        stage A to stage B, hand it to role X with this checklist". Each row has
        `fromStageId`, `toStageId`, `assignToRole`, the `checklist` items and
        `isActive`.
      operationId: pipelinesHandoffsList
      tags:
        - pipelines
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelinesHandoffsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/handoff-create:
    post:
      summary: Create a handoff rule
      description: "Creates a handoff rule on a pipeline: `fromStageId` → `toStageId`,
        `assignToRole` (a role label, max 32 chars) and a `checklist` of short
        strings (max 80 chars each) the receiving attendant must run through.
        `isActive` defaults to on. Restricted to owner/admin/editor."
      operationId: pipelinesHandoffCreate
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PipelinesHandoffCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelinesHandoffCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/handoff-update:
    post:
      summary: Update a handoff rule
      description: "Patches a handoff rule by `handoffId` (not by pipeline).
        `checklist` is a full replace when sent — resend every item you want to
        keep. Use `isActive: false` to pause the rule. Restricted to
        owner/admin/editor."
      operationId: pipelinesHandoffUpdate
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PipelinesHandoffUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelinesHandoffUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/handoff-delete:
    delete:
      summary: Delete a handoff rule
      description: "Deletes a handoff rule. Destructive; prefer
        `pipelines_handoff_update` with `isActive: false` when it may be needed
        again. Restricted to owner/admin/editor."
      operationId: pipelinesHandoffDelete
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PipelinesHandoffDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelinesHandoffDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pipelines/attendant-routing-update:
    post:
      summary: Set the routing share of an attendant in a pipeline
      description: "Tunes how the auto-assign engine distributes new cards to ONE
        attendant within ONE pipeline: `weight` (0–10, the relative share in the
        rotation — 0 takes them out without unlinking them) and `cap` (max
        concurrent cards, `null` for no cap). This only takes effect while the
        pipeline has auto-assign on — see `pipelines_settings_update`.
        Restricted to owner/admin/editor."
      operationId: pipelinesAttendantRoutingUpdate
      tags:
        - pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PipelinesAttendantRoutingUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelinesAttendantRoutingUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /proposals/proposal-templates-list:
    get:
      summary: List proposal templates
      description: "Returns paginated proposal TEMPLATES for the workspace. Filter by
        `kind` (`slide_deck` | `document`), `status` (`draft` | `active` |
        `archived`), and `search`. Pass `library: true` to also include the
        ready-made SYSTEM templates (rows with no owner) alongside the
        workspace’s own. Use this to find a template id before getting, editing,
        or consolidating it."
      operationId: proposalTemplatesList
      tags:
        - proposals
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: search
          required: false
          schema:
            type: string
        - in: query
          name: status
          required: false
          schema:
            type: string
            enum:
              - draft
              - active
              - archived
        - in: query
          name: kind
          required: false
          schema:
            type: string
            enum:
              - slide_deck
              - document
              - pdf
        - in: query
          name: library
          required: false
          schema:
            type: boolean
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProposalTemplatesListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /proposals/proposal-templates-get:
    get:
      summary: Get one proposal template
      description: Fetches one proposal template by `id`, including its ordered
        `pages` (each slide’s `name`, `position`, `source` and `compiledHtml`)
        and its `config` (reveal.js + theme). Read this before editing pages to
        obtain the existing page ids and positions.
      operationId: proposalTemplatesGet
      tags:
        - proposals
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProposalTemplatesGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /proposals/proposal-templates-create:
    post:
      summary: Create a proposal template
      description: 'Creates a proposal template. Requires `name`. Defaults to `kind:
        "slide_deck"`. Optional `title`, `description`, `config` (reveal
        transition + theme colors/font), and `status` (`active` publishes;
        defaults to `draft`). This creates an EMPTY template with no slides —
        add slides afterwards with `proposal_templates_page_upsert`, then
        generate a client-ready proposal with `proposals_consolidate`.'
      operationId: proposalTemplatesCreate
      tags:
        - proposals
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProposalTemplatesCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProposalTemplatesCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /proposals/proposal-templates-update:
    post:
      summary: Update proposal template metadata
      description: Updates a template’s metadata/config by `id` — `name`, `title`,
        `description`, `kind`, `status` (`active` publishes, `archived` hides
        it), `config`, `thumbnailUrl`. Does NOT touch slides; use
        `proposal_templates_page_upsert` for slide content. Pass
        `expectedUpdatedAt` (from `proposal_templates_get`) to reject stale
        overwrites with a conflict.
      operationId: proposalTemplatesUpdate
      tags:
        - proposals
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProposalTemplatesUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProposalTemplatesUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /proposals/proposal-templates-page-upsert:
    post:
      summary: Add or edit one template slide
      description: Adds a slide to a slide-deck template (omit `pageId`) or edits one
        (`pageId` + any of `name`, `position`, `source`, `compiledHtml`).
        `compiledHtml` is the servable HTML for that single slide and may
        contain `{{scope.field}}` tokens (`{{lead.*}}`, `{{opportunity.*}}`,
        `{{brand.*}}`, or a custom field name) that get replaced at
        consolidation. `source` is the optional GrapesJS editor JSON; for
        AI-authored decks set `compiledHtml` and omit `source`. `position`
        orders the slide. The template’s `id` selects which deck to edit.
      operationId: proposalTemplatesPageUpsert
      tags:
        - proposals
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProposalTemplatesPageUpsertInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProposalTemplatesPageUpsertOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /proposals/proposal-templates-delete:
    delete:
      summary: Delete a proposal template
      description: Soft-deletes one proposal template by `id`. It disappears from
        listings; proposals already consolidated from it keep working (they are
        frozen snapshots).
      operationId: proposalTemplatesDelete
      tags:
        - proposals
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProposalTemplatesDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProposalTemplatesDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /proposals/consolidate:
    post:
      summary: Consolidate a proposal for a client
      description: "Turns a template into a CONSOLIDATED proposal for a specific CRM
        context: pass `templateId` plus `opportunityId` (and/or `leadId`) whose
        data fills the `{{lead.*}}`/`{{opportunity.*}}`/custom-field tokens. The
        result is a frozen snapshot served at a public link
        (`/proposals/p/:slug`) — returns the `slug`, `title`, and `status`.
        Re-consolidating makes a new proposal; it never alters the template."
      operationId: proposalsConsolidate
      tags:
        - proposals
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProposalsConsolidateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProposalsConsolidateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /proposals/list:
    get:
      summary: List consolidated proposals
      description: Returns paginated CONSOLIDATED proposals (the ones already
        generated for clients — not templates). Filter by `status` (`draft` |
        `sent` | `viewed` | `accepted` | `rejected` | `expired`), `search`, and
        `opportunityId`. Each row links back to its lead/opportunity/template
        and carries the public link status.
      operationId: proposalsList
      tags:
        - proposals
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: search
          required: false
          schema:
            type: string
        - in: query
          name: status
          required: false
          schema:
            type: string
            enum:
              - draft
              - sent
              - viewed
              - accepted
              - rejected
              - expired
        - in: query
          name: opportunityId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: leadId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProposalsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /proposals/get:
    get:
      summary: Get one consolidated proposal
      description: Fetches one consolidated proposal by `id`, including its `slug`,
        `status`, resolved `variables`, and view/acceptance timestamps.
      operationId: proposalsGet
      tags:
        - proposals
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProposalsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /scheduled-calls/list:
    get:
      summary: List scheduled calls
      description: "Lists the booked appointments (agendamentos) of the workspace.
        Filters: `attendantId`, `leadId`, `opportunityCardId`, `pipelineId`,
        `status` (`scheduled` | `confirmed` | `completed` | `cancelled` |
        `no_show`) and a `startDate`/`endDate` range over the appointment start.
        Returns the calls with their lead/attendant relations. A plain
        `atendente`/`vendedor` session only sees its OWN appointments — the
        resolved attendant overrides any `attendantId` sent in the filter."
      operationId: scheduledCallsList
      tags:
        - scheduled-calls
      parameters:
        - in: query
          name: viewAsAttendantId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: attendantId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: createdByAttendantId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: leadId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: opportunityCardId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: pipelineId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: status
          required: false
          schema:
            type: string
            enum:
              - scheduled
              - confirmed
              - completed
              - cancelled
              - no_show
        - in: query
          name: startDate
          required: false
          schema:
            type: string
            format: date-time
            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        - in: query
          name: endDate
          required: false
          schema:
            type: string
            format: date-time
            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        - in: query
          name: includeInactiveCards
          required: false
          schema:
            type: boolean
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScheduledCallsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /scheduled-calls/get:
    get:
      summary: Get one scheduled call
      description: Fetches one appointment by id with its lead and attendant
        relations, window (`startAt`/`endAt`), `status`, `subject`,
        `meetingLink` and `notes`.
      operationId: scheduledCallsGet
      tags:
        - scheduled-calls
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScheduledCallsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /scheduled-calls/create:
    post:
      summary: Book a scheduled call
      description: "Books an appointment. Requires `leadId` (from `leads_search`) and
        the window `startAt`/`endAt` (date-times). Optionally links it to an
        opportunity with `opportunityCardId`, and sets `subject`, `meetingLink`,
        `notes` and `bufferMinutes`. Who attends: pass `attendantId` (from
        `attendants_list`) to name them directly, or `appointmentScheduleId` to
        let the server resolve the attendant from that agenda; `memberId`
        provisions an attendant record on demand for a member that has none yet,
        and is ignored when `attendantId` is also sent. Booking here also emits
        `crm.scheduling.booked.v1`, syncs the attendant Google Calendar when
        connected, and sends the confirmation e-mails. IMPORTANT: this path does
        NOT check availability or slot conflicts — it books the window you give
        it. Use it for a slot already agreed with the lead; the
        availability-aware booking flow is not exposed over MCP."
      operationId: scheduledCallsCreate
      tags:
        - scheduled-calls
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ScheduledCallsCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScheduledCallsCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /scheduled-calls/update:
    post:
      summary: Reschedule or edit a scheduled call
      description: "Patches an appointment: `startAt`/`endAt` (this is how you
        RESCHEDULE), `status`, `subject`, `meetingLink`, `notes`,
        `appointmentScheduleId` or `opportunityCardId` (`null` unlinks it from
        the card). The Google Calendar event is re-synced best-effort after the
        change — a sync failure is logged and does NOT fail the call, so the
        appointment can be updated in Clickmax while the calendar copy lags. To
        CANCEL, use `scheduled_calls_cancel` rather than setting `status` here,
        so the cancellation reason and the calendar removal are handled."
      operationId: scheduledCallsUpdate
      tags:
        - scheduled-calls
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ScheduledCallsUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScheduledCallsUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /scheduled-calls/cancel:
    post:
      summary: Cancel a scheduled call
      description: Cancels an appointment with an optional `reason` (max 500 chars),
        persisted as the cancellation reason. The record is KEPT with status
        `cancelled` — it stays in `scheduled_calls_list` and in the history —
        and the Google Calendar event is removed best-effort. This is the right
        way to undo a booking; there is no hard-delete exposed over MCP.
      operationId: scheduledCallsCancel
      tags:
        - scheduled-calls
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ScheduledCallsCancelInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScheduledCallsCancelOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /scheduled-calls/manage-link:
    get:
      summary: Get the self-service link of a scheduled call
      description: Returns `{ url }` — the public HMAC-signed link the LEAD can use to
        reschedule, cancel or join the appointment on their own. Same link that
        travels in the confirmation e-mail; fetch it here to send the lead a
        fresh copy. `url` comes back null when the appointment cannot produce
        one.
      operationId: scheduledCallsManageLink
      tags:
        - scheduled-calls
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScheduledCallsManageLinkOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /tags/list:
    get:
      summary: List all CRM tags
      description: Returns the full tag inventory for the current workspace with
        `leadsCount` per tag.
      operationId: tagsList
      tags:
        - tags
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TagsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /tags/manual-list:
    get:
      summary: List manual CRM tags
      description: Returns paginated manual tags with lead counts and optional growth
        series, filtered by name and growth window.
      operationId: tagsManualList
      tags:
        - tags
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: name
          required: false
          schema:
            type: string
        - in: query
          name: growthDays
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 90
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TagsManualListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /tags/manual-leads-timeline:
    get:
      summary: List manual tag lead timeline
      description: Returns the paginated timeline of leads that received a given
        manual tag, including lead identity fields and apply timestamp.
      operationId: tagsManualLeadsTimeline
      tags:
        - tags
      parameters:
        - in: query
          name: tagId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TagsManualLeadsTimelineOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /tags/system-list:
    get:
      summary: List system tag activity groups
      description: Returns paginated system-tag activity groups derived from lead
        activity events, with event frequency and last-seen timestamp.
      operationId: tagsSystemList
      tags:
        - tags
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: search
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TagsSystemListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /tags/system-activities:
    get:
      summary: List system tag activities
      description: Returns paginated lead activity entries for one system tag event
        name, including lead identity fields and event timestamp.
      operationId: tagsSystemActivities
      tags:
        - tags
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: eventName
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TagsSystemActivitiesOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /tags/get:
    get:
      summary: Get one CRM tag
      description: Fetches one tag by `tagId`, including `leadsCount`. Use before
        updates, cloning, or deletion when the exact tag must be confirmed.
      operationId: tagsGet
      tags:
        - tags
      parameters:
        - in: query
          name: tagId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TagsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /tags/create:
    post:
      summary: Create a manual CRM tag
      description: Creates a user-managed tag. `color` must be a 6-character hex
        string without `#`. Created tags always have `system=false`.
      operationId: tagsCreate
      tags:
        - tags
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TagsCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TagsCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /tags/update:
    post:
      summary: Update a manual CRM tag
      description: Updates `name` and/or `color` for a manual tag. Fails for system tags.
      operationId: tagsUpdate
      tags:
        - tags
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TagsUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TagsUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /tags/delete:
    delete:
      summary: Delete a manual CRM tag
      description: Deletes one manual tag by `tagId`. Also removes its lead
        assignments and related kanban links. Fails for system tags.
      operationId: tagsDelete
      tags:
        - tags
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TagsDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TagsDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /tags/clone:
    post:
      summary: Clone a CRM tag
      description: Duplicates an existing tag into a new one in the same workspace.
        The cloned tag name is created as `<original name> (1)` by the backend.
      operationId: tagsClone
      tags:
        - tags
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TagsCloneInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TagsCloneOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /tags/crm-tags-apply-to-leads:
    post:
      summary: Apply one tag to many leads
      description: Assigns a single tag to many leads. Use when one label must be
        applied across a selected lead set.
      operationId: crmTagsApplyToLeads
      tags:
        - tags
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CrmTagsApplyToLeadsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CrmTagsApplyToLeadsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /tags/crm-tags-remove-from-leads:
    delete:
      summary: Remove one tag from many leads
      description: Removes a single tag from many leads. Use to undo a prior tag
        assignment without deleting the tag definition itself.
      operationId: crmTagsRemoveFromLeads
      tags:
        - tags
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CrmTagsRemoveFromLeadsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CrmTagsRemoveFromLeadsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /tags/crm-tags-batch-apply-to-leads:
    post:
      summary: Apply many tags to many leads
      description: Assigns multiple tags to multiple leads in one batch operation. Use
        for bulk classification workflows.
      operationId: crmTagsBatchApplyToLeads
      tags:
        - tags
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CrmTagsBatchApplyToLeadsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CrmTagsBatchApplyToLeadsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /checkout/set:
    post:
      summary: Associate page checkout offer
      description: Associates this page's checkout with an offer (offerId=null clears
        it). The offer must be in this workspace; pick it with the
        offers/products tools. Seeds a default checkout config.
      operationId: checkoutSet
      tags:
        - checkout
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CheckoutSetInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CheckoutSetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /checkout/get:
    get:
      summary: Get page checkout offer
      description: Returns the offer currently associated with this page's checkout
        (null if none).
      operationId: checkoutGet
      tags:
        - checkout
      parameters:
        - in: query
          name: pageId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CheckoutGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pages/list:
    get:
      summary: List pages
      description: Returns paginated editor3 pages with URLs, project slugs, editor
        version, and metrics. Use to discover builder vs external pages before
        any mutation.
      operationId: pagesList
      tags:
        - pages
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: search
          required: false
          schema:
            type: string
        - in: query
          name: type
          required: false
          schema:
            type: string
            enum:
              - advertorial
              - capture
              - quiz
              - presell
              - sales
              - checkout
              - upsell
              - downsell
              - termsPrivacy
              - thankYou
              - vsl
              - webinar
        - in: query
          name: domainId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: projectId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: onlyTemplates
          required: false
          schema:
            type: boolean
        - in: query
          name: orderBy
          required: false
          schema:
            default: createdAt
            type: string
            enum:
              - name
              - createdAt
        - in: query
          name: orderByMode
          required: false
          schema:
            type: string
            enum:
              - asc
              - desc
        - in: query
          name: offerId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: productId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: analyticsStartDate
          required: false
          schema:
            type: string
            format: date-time
            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        - in: query
          name: analyticsEndDate
          required: false
          schema:
            type: string
            format: date-time
            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagesListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pages/templates-list:
    post:
      summary: List Clickmax page templates
      description: 'Lists the Clickmax page-template catalog so you can start a page
        from a ready-made design instead of a blank one. Filter by `type` (e.g.
        `["checkout"]` to find a checkout/sales template, `["sales"]`,
        `["capture"]`, `["upsell"]`, `["downsell"]`, `["thankYou"]`), `search`,
        or `tags`. Each result has an `id` (pass it as `templateId` to
        `pages_create`) and `canUse` (false = the template needs a higher plan
        tier; pick one with `canUse: true`). Use this BEFORE creating a page
        when the user wants a page "with a checkout" or "from a template".'
      operationId: pagesTemplatesList
      tags:
        - pages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PagesTemplatesListInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagesTemplatesListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pages/create:
    post:
      summary: Create a builder page
      description: "Creates an internal builder page HOSTED ON CLICKMAX (a Clickmax
        subdomain, or a custom domain the user connected inside Clickmax). By
        default the page is blank — to ship it with real content (copy,
        sections, a working capture form) use `pages_import_html` instead of, or
        right after, this tool. To start from a Clickmax design pass
        `templateId` (resolve it with `pages_templates_list`) — the template
        content is copied into the new page. To create a page WITH A CHECKOUT,
        pass `type: \"checkout\"` + `templateId` (a checkout template) +
        `offerId`: the backend copies the template and automatically binds that
        offer into the page checkout block(s) — no manual content editing
        needed. Pass `funnelId` to attach the page to a funnel; then link it to
        a funnel node with `funnels_node_connect_page`. CLASSIFICATION RULE: use
        this ONLY for pages Clickmax will build/host. If the page ALREADY EXISTS
        at a public URL on a domain that is NOT connected in Clickmax (Framer,
        Webflow, the user's own site, any third-party domain), you MUST use
        `pages_create_external` — never this tool: a builder page for a URL you
        did not build is empty and breaks the capture-script setup. When
        registering an existing page and you have its live URL, pass it as
        `sourceUrl`: the server verifies the host is Clickmax-hosted/connected
        and rejects it otherwise, telling you to switch to
        `pages_create_external`."
      operationId: pagesCreate
      tags:
        - pages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PagesCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagesCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pages/create-external:
    post:
      summary: Create an external page
      description: Registers a third-party page URL in editor3 as an external page.
        This is the REQUIRED flow for any page that already lives at a URL on a
        domain NOT connected in Clickmax (Framer/Webflow/custom HTML/the user's
        own site) — such pages use the Clickmax Browser SDK, not the visual
        builder. Prefer this over `pages_create` whenever the user gives you an
        existing page URL you did not build in Clickmax. After creating it, link
        it to a funnel node with `funnels_node_connect_page` (auto-wires the
        redirect) and hand the install snippets from
        `pages_get_external_script`.
      operationId: pagesCreateExternal
      tags:
        - pages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PagesCreateExternalInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagesCreateExternalOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pages/recipes-list:
    get:
      summary: List page generation recipes
      description: 'Lists structural recipes for AI-authored Clickmax pages. Choose
        one recipe compatible with the target page type before generating HTML.
        Capabilities and every requiredSections entry are machine-verified by
        pages_validate_html. Every recipe section must be marked with
        data-cx-section="<section-id>"; use each id from requiredSections at
        least once so preview and import can verify the page structure.
        Sequence: recipe → page design → one manifest → context → author HTML →
        validate → draft import.'
      operationId: pagesRecipesList
      tags:
        - pages
      parameters: []
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagesRecipesListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pages/images-search:
    get:
      summary: Search stock photos for a page
      description: 'Searches real, license-clear stock photos to use inside generated
        page HTML. Returns `images[]` with `thumb` (small preview) and `full`
        (hero/section) URLs plus `credit`. Providers: `unsplash` (default; real
        topical search), `openverse` (Creative Commons; `credit.author` +
        `credit.license` MUST be rendered on the page), `picsum` (random
        placeholders, no real search — only when the user explicitly accepts a
        placeholder). USAGE: hotlink the returned URL verbatim in `<img src>`;
        never re-host it, never edit its path/params, never hand-write or guess
        a photo URL. Always set a descriptive `alt`. FALLBACK WARNING: when the
        Unsplash key is missing or its quota is exhausted the server silently
        answers with Lorem Picsum — if every result carries `credit.source` =
        "Lorem Picsum" while you asked for `unsplash`, those photos are RANDOM
        and unrelated to the query: do not present them as topical imagery; ship
        the section without a photo or ask the user for a real asset. Search
        with concrete visual terms in the page language ("mulher treinando
        academia"), never marketing abstractions ("sucesso").'
      operationId: pagesImagesSearch
      tags:
        - pages
      parameters:
        - in: query
          name: query
          required: true
          schema:
            type: string
            minLength: 1
            maxLength: 255
        - in: query
          name: provider
          required: false
          schema:
            type: string
            enum:
              - unsplash
              - openverse
              - picsum
        - in: query
          name: page
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 9007199254740991
        - in: query
          name: perPage
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 24
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagesImagesSearchOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pages/generation-context-get:
    get:
      summary: Get page generation context
      description: "Resolves one page artifact manifest (`recipeId` plus optional
        visible `designIdOrSlug`) against the target and returns inherited brand
        tokens. Reuse the exact same manifest in validation and draft import.
        TARGET: send EXACTLY ONE of `pageId` (existing page) or `placement` (new
        page) — sending both is rejected, since the page would come from one and
        the brand inheritance from the other. To inherit a funnel style on an
        existing page, pass `pageId` + `funnelId` (never a `placement` just to
        carry the funnel)."
      operationId: pagesGenerationContextGet
      tags:
        - pages
      parameters: []
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagesGenerationContextGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pages/validate-html:
    get:
      summary: Validate generated page HTML
      description: "Validates the complete artifact manifest, required section
        markers, form, checkout, brand, conversion, triggers, and target
        ownership WITHOUT writing or publishing. Fix every error, then pass the
        exact same manifest, HTML, target, and offerId to
        pages_import_html_draft; that tool requires the manifest and enforces
        the same issues. TARGET: send EXACTLY ONE of `pageId` or `placement` —
        both together is rejected here and on import; use `pageId` + `funnelId`
        to validate a re-import that should inherit a funnel style."
      operationId: pagesValidateHtml
      tags:
        - pages
      parameters: []
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagesValidateHtmlOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pages/import-html:
    post:
      summary: Create or replace a builder page from HTML
      description: |-
        Creates or replaces a Clickmax-hosted builder page from a full HTML document. Prefer `pages_import_html_draft` for generated pages. When `manifest` is supplied, this legacy-compatible endpoint enforces the same recipe capabilities and required sections as `pages_validate_html`; omitting it skips artifact-specific checks. `publish` defaults to `true`, and external MCP clients are responsible for their own confirmation policy. Every recipe section must be marked with data-cx-section="<section-id>"; use each id from requiredSections at least once so preview and import can verify the page structure.

        LEAD CAPTURE CONTRACT (rejected as `INVALID_LEAD_FORM` otherwise): Lead-capture forms must be <form data-cx-ingest-form id="..."> containing exactly one <button type="submit">, inputs limited to types checkbox, email, hidden, tel, text (single-select only), no action/method/formaction attributes, and at least one email or telephone field marked with data-cx-field="email" | "telephone" (or name="email" | "telephone"). Other supported field keys: data-cx-field="name" | "lgpdApproved"; any other key becomes a CRM custom field.

        CHECKOUT MARKER: `<div data-cx-checkout></div>` + `offerId` — the server swaps it for the real checkout block bound to that offer. Never hand-write checkout markup.

        MOTION CONTRACT: Optional entrance motion uses data-cx-motion="fade-in|fade-up|slide-left|slide-right|scale-in"; data-cx-motion-duration and data-cx-motion-delay are optional milliseconds. Motion runs once when the element enters the viewport, remains visible when unsupported, and respects reduced-motion preferences.

        INTERACTIVE COMPONENTS (already work when published — no <script> needed, just this exact markup): COUNTDOWN/TIMER: <div class="cm-stopwatch" id="unique-id" timer-type="countdown" data-end-date="YYYY-MM-DD" data-end-time="HH:MM"> containing one <div class="cm-stopwatch-item visible-block" data-unit="hours|minutes|seconds|days|weeks|months|years"><div class="cm-stopwatch-value">00</div></div> per visible unit. id must be unique on the page. Only units with the "visible-block" class are shown; the import derives the editor's data-show-<unit> flags from them.

        ACCORDION: <div class="cm-accordion-header">...</div> and a <div class="cm-accordion-content">...</div> under the same parent — toggled purely by class, no markup beyond correct nesting needed.

        POPUP: exactly ONE <div class="cm-popup not-visible"> per page (a second one never initializes) containing <div class="cm-popup-modal">. Keep "not-visible" on the root or it opens on load. NEVER style .cm-popup (no CSS rule, no style attribute): the runtime already makes it a transparent fixed full-screen layer, so any background/size there covers the whole page. Put all visual styling on .cm-popup-modal or a wrapper inside it; for a backdrop add an optional <div class="cm-popup-overlay"></div> before the modal (semi-transparent by default; if you restyle it, keep an rgba background). Close button: <div class="cm-popup-close-button">✕</div> inside the modal. Open it from anywhere with <button class="cm-button-open-popup">. Optional attributes on the modal: on-load="show", on-see="#targetId", when-click="#targetId", close-page="show".

        ORDER BUMP TOGGLE: <input class="cm-checkmark-checkbox" type="checkbox" data-orderbump-id="<offerId>"> or <button class="cm-checkmark-button" data-orderbump-id="<offerId>">; the offerId MUST match one of the ids passed to the checkout's order-bump list.

        ICON ACTION: <span class="cm-icon" action-type="open-link|scroll-to|show-or-hide|open-popup|close-popup|mark-complete"> plus the matching attribute: action-link (open-link), scroll-element (scroll-to, an id), data-show/data-hide (show-or-hide, comma-separated ids), popup-id (open-popup/close-popup), complete-element (mark-complete, an id).

        NAVIGATION: <nav class="cm-navigation"><a class="cm-navigation-item">...</a></nav>, optionally nesting <div class="cm-has-dropdown"><div class="cm-submenu">...</div></div>. In-page links use href="#<id>" matching an element with that exact, unique id — the runtime scrolls to it. Mobile toggle button is injected automatically — do not hand-write it.

        VTURB VIDEO: VTurb video: <div data-cx-vturb="<videoId>"></div> — the server resolves this into the real <vturb-smartplayer>, whose player script the published page loads on its own (a <script> tag hand-written by the author is always stripped and never boots the player). The videoId must already exist as a VTurb player on this workspace. Watch-gate: put data-vturb-timer="<seconds>" plus data-cx-show/data-cx-hide (comma-separated element ids) on the same marker — it stays as the player wrapper, so the runtime reads them there.

        VIDEO WATCH-GATE: VIDEO WATCH-GATE (optional): on a YouTube/Panda <iframe data-provider="youtube|panda" id="unique-id" data-video-id="..." data-timer="HH:MM:SS">, add data-cx-show/data-cx-hide (comma-separated element ids) to reveal/hide content once the timer elapses. Use data-cx-show/data-cx-hide, the legacy component-to-show/component-to-hide are kept only for pages built by hand in the editor.

        BRAND CSS: brand tokens are injected before your CSS — use `var(--cx-color-*)`, never raw hex (returned in `warnings`; fix by re-importing the same `pageId`).

        TARGET: send EXACTLY ONE of `pageId` (replace an existing page) or `placement` (create a new one) — both together is rejected. On a re-import that must inherit a funnel's style, pass `pageId` + `funnelId`, never a `placement` used only to carry the funnel.
      operationId: pagesImportHtml
      tags:
        - pages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PagesImportHtmlInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagesImportHtmlOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pages/import-html-draft:
    post:
      summary: Create or replace a draft page from HTML
      description: |-
        Draft-safe generated-page import. Requires the SAME `manifest` used by `pages_generation_context_get` and `pages_validate_html`, enforces its capabilities and required sections, and always forces `publish: false`. Send EXACTLY ONE of `pageId` or `placement` (both together is rejected); to inherit a funnel style on a re-import use `pageId` + `funnelId`. Every recipe section must be marked with data-cx-section="<section-id>"; use each id from requiredSections at least once so preview and import can verify the page structure. Lead-capture forms must be <form data-cx-ingest-form id="..."> containing exactly one <button type="submit">, inputs limited to types checkbox, email, hidden, tel, text (single-select only), no action/method/formaction attributes, and at least one email or telephone field marked with data-cx-field="email" | "telephone" (or name="email" | "telephone"). Other supported field keys: data-cx-field="name" | "lgpdApproved"; any other key becomes a CRM custom field. Checkout marker: `<div data-cx-checkout></div>` + `offerId`. Optional entrance motion uses data-cx-motion="fade-in|fade-up|slide-left|slide-right|scale-in"; data-cx-motion-duration and data-cx-motion-delay are optional milliseconds. Motion runs once when the element enters the viewport, remains visible when unsupported, and respects reduced-motion preferences. COUNTDOWN/TIMER: <div class="cm-stopwatch" id="unique-id" timer-type="countdown" data-end-date="YYYY-MM-DD" data-end-time="HH:MM"> containing one <div class="cm-stopwatch-item visible-block" data-unit="hours|minutes|seconds|days|weeks|months|years"><div class="cm-stopwatch-value">00</div></div> per visible unit. id must be unique on the page. Only units with the "visible-block" class are shown; the import derives the editor's data-show-<unit> flags from them.

        ACCORDION: <div class="cm-accordion-header">...</div> and a <div class="cm-accordion-content">...</div> under the same parent — toggled purely by class, no markup beyond correct nesting needed.

        POPUP: exactly ONE <div class="cm-popup not-visible"> per page (a second one never initializes) containing <div class="cm-popup-modal">. Keep "not-visible" on the root or it opens on load. NEVER style .cm-popup (no CSS rule, no style attribute): the runtime already makes it a transparent fixed full-screen layer, so any background/size there covers the whole page. Put all visual styling on .cm-popup-modal or a wrapper inside it; for a backdrop add an optional <div class="cm-popup-overlay"></div> before the modal (semi-transparent by default; if you restyle it, keep an rgba background). Close button: <div class="cm-popup-close-button">✕</div> inside the modal. Open it from anywhere with <button class="cm-button-open-popup">. Optional attributes on the modal: on-load="show", on-see="#targetId", when-click="#targetId", close-page="show".

        ORDER BUMP TOGGLE: <input class="cm-checkmark-checkbox" type="checkbox" data-orderbump-id="<offerId>"> or <button class="cm-checkmark-button" data-orderbump-id="<offerId>">; the offerId MUST match one of the ids passed to the checkout's order-bump list.

        ICON ACTION: <span class="cm-icon" action-type="open-link|scroll-to|show-or-hide|open-popup|close-popup|mark-complete"> plus the matching attribute: action-link (open-link), scroll-element (scroll-to, an id), data-show/data-hide (show-or-hide, comma-separated ids), popup-id (open-popup/close-popup), complete-element (mark-complete, an id).

        NAVIGATION: <nav class="cm-navigation"><a class="cm-navigation-item">...</a></nav>, optionally nesting <div class="cm-has-dropdown"><div class="cm-submenu">...</div></div>. In-page links use href="#<id>" matching an element with that exact, unique id — the runtime scrolls to it. Mobile toggle button is injected automatically — do not hand-write it. VTurb video: <div data-cx-vturb="<videoId>"></div> — the server resolves this into the real <vturb-smartplayer>, whose player script the published page loads on its own (a <script> tag hand-written by the author is always stripped and never boots the player). The videoId must already exist as a VTurb player on this workspace. Watch-gate: put data-vturb-timer="<seconds>" plus data-cx-show/data-cx-hide (comma-separated element ids) on the same marker — it stays as the player wrapper, so the runtime reads them there. VIDEO WATCH-GATE (optional): on a YouTube/Panda <iframe data-provider="youtube|panda" id="unique-id" data-video-id="..." data-timer="HH:MM:SS">, add data-cx-show/data-cx-hide (comma-separated element ids) to reveal/hide content once the timer elapses. Use data-cx-show/data-cx-hide, the legacy component-to-show/component-to-hide are kept only for pages built by hand in the editor.
      operationId: pagesImportHtmlDraft
      tags:
        - pages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PagesImportHtmlDraftInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagesImportHtmlOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pages/page-designs-list:
    get:
      summary: List page designs
      description: Lists curated page design languages visible to the workspace. Use
        them as read-only creative context for a page built in the mounted
        editor.
      operationId: pageDesignsList
      tags:
        - pages
      parameters: []
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PageDesignsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pages/page-designs-get:
    get:
      summary: Get a page design
      description: Gets one curated page design by id or slug as read-only creative
        context for a page built in the mounted editor.
      operationId: pageDesignsGet
      tags:
        - pages
      parameters:
        - in: query
          name: idOrSlug
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PageDesignsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pages/clone:
    post:
      summary: Clone a builder page
      description: Clones a builder page into a copy. External pages cannot be cloned,
        and non-admin users are still bound by backend ownership rules.
      operationId: pagesClone
      tags:
        - pages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PagesCloneInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagesCloneOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pages/publish:
    post:
      summary: Publish a builder page
      description: Publishes a builder page to its current URL. External pages reject
        this operation because their content lives outside editor3.
      operationId: pagesPublish
      tags:
        - pages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PagesPublishInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagesPublishOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pages/unpublish:
    post:
      summary: Unpublish a builder page
      description: Takes a builder page offline from its current published URL.
        External pages reject this operation.
      operationId: pagesUnpublish
      tags:
        - pages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PagesPublishInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagesPublishOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pages/get:
    get:
      summary: Get one page
      description: Fetches one page with project slug, current URL, editor version,
        trigger map, and external-page fields. Use before mutations or script
        generation.
      operationId: pagesGet
      tags:
        - pages
      parameters:
        - in: query
          name: pageId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CheckoutGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pages/update:
    post:
      summary: Update a page
      description: Updates page metadata. External pages may update `externalUrl` and
        `externalConfig`, but must keep their fixed path and null domain.
      operationId: pagesUpdate
      tags:
        - pages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PagesUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagesUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pages/update-config:
    post:
      summary: Update a builder page config
      description: Updates builder-page config fields such as title, favicon,
        thumbnail, and chat configs. External pages reject this operation.
      operationId: pagesUpdateConfig
      tags:
        - pages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PagesUpdateConfigInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagesPublishOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pages/delete:
    delete:
      summary: Delete a page
      description: Deletes a page. This is destructive and may fail when the page is
        still linked to active funnel structures.
      operationId: pagesDelete
      tags:
        - pages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PagesPublishInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagesDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /pages/get-external-script:
    get:
      summary: Get external-page install script
      description: "Read-only. Returns `headScript`: the Browser SDK `<head>` install
        snippet for an external `pageId` (`editorVersion: external`), with
        projectSlug/pagePath injected — the user pastes it before `</head>`.
        Only the head snippet is tool-generated (it embeds a minified loader).
        The lead-capture + redirect snippets, install steps, and docs are static
        — see the `clickmax-external-pages` skill; page metadata is in
        `pages_get`."
      operationId: pagesGetExternalScript
      tags:
        - pages
      parameters:
        - in: query
          name: pageId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagesGetExternalScriptOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /redirect-links/redirect-domains-list:
    get:
      summary: List redirect-link domains
      description: Lists the workspace's connected domains available for redirect
        links (shortened/custom links), each with its own link/click counters. A
        `domainId` from here is required by `redirect_links_create` and
        `redirect_links_bulk_create` — call this first. A workspace with no
        connected custom domain cannot create redirect links yet (there is no
        shared Clickmax short domain as a fallback); tell the user to connect
        one under domain settings.
      operationId: redirectDomainsList
      tags:
        - redirect-links
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: search
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RedirectDomainsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /redirect-links/list:
    get:
      summary: List redirect links
      description: Returns paginated redirect links (the shortened/custom links
        feature) with per-link click counters. Filter by `domainId`, `isActive`,
        or `search` (matches the path). Use this to check for an existing link,
        or before a batch create to avoid colliding `path`s on the same domain.
      operationId: redirectLinksList
      tags:
        - redirect-links
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: search
          required: false
          schema:
            type: string
        - in: query
          name: domainId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: isActive
          required: false
          schema:
            type: boolean
        - in: query
          name: orderBy
          required: false
          schema:
            default: createdAt
            type: string
            enum:
              - path
              - createdAt
        - in: query
          name: orderByMode
          required: false
          schema:
            default: desc
            type: string
            enum:
              - asc
              - desc
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RedirectLinksListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /redirect-links/get:
    get:
      summary: Get one redirect link
      description: Fetches one redirect link by id.
      operationId: redirectLinksGet
      tags:
        - redirect-links
      parameters:
        - in: query
          name: redirectLinkId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RedirectLinksGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /redirect-links/create:
    post:
      summary: Create a redirect link
      description: "Creates one shortened/custom link: visiting
        `https://<domain>{path}` 301/302-redirects to `targetUrl`. `domainId`
        must be one of the workspace's connected domains (resolve with
        `redirect_domains_list`); `path` must start with `/` and be unique on
        that domain. Use `redirect_links_bulk_create` instead when creating more
        than a couple of links at once."
      operationId: redirectLinksCreate
      tags:
        - redirect-links
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RedirectLinksCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RedirectLinksCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /redirect-links/bulk-create:
    post:
      summary: Create many redirect links at once
      description: Creates a batch of shortened/custom links in one call (max 200) —
        resolve `domainId` with `redirect_domains_list` first (a domainId is
        required on every item, links across different domains can be mixed in
        one call). Each item that fails (most commonly a duplicate `path` on its
        domain) is reported in `failed` instead of aborting the whole batch —
        always check `failed` and surface it to the user, do not assume every
        link was created.
      operationId: redirectLinksBulkCreate
      tags:
        - redirect-links
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RedirectLinksBulkCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RedirectLinksBulkCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /redirect-links/update:
    post:
      summary: Update a redirect link
      description: Updates a redirect link's `path`, `targetUrl`, `isActive`,
        `statusCode`, or scheduled target-URL swap (`scheduledUrl` +
        `scheduledAt`). Partial update — only send the fields to change.
      operationId: redirectLinksUpdate
      tags:
        - redirect-links
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RedirectLinksUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RedirectLinksUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /redirect-links/delete:
    delete:
      summary: Delete a redirect link
      description: Permanently deletes a redirect link. The path immediately stops
        redirecting; if the link was already shared, visitors get the domain
        default instead of `targetUrl`.
      operationId: redirectLinksDelete
      tags:
        - redirect-links
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RedirectLinksDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RedirectLinksDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/list:
    post:
      summary: List flows
      description: Paginated list of the workspace flows with filters (`modes`,
        `category`, `projectId`, `funnelId`, `name`, `triggerEventNames`) and
        ordering. Use to resolve a `flowId` from a flow name before operating on
        it.
      operationId: flowsList
      tags:
        - flows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FlowsListInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/get:
    get:
      summary: Get a flow
      description: "Full flow record (name, mode, category, projectId/funnelId,
        startStepId, steps). Pass `analytics: true` to include execution
        analytics. For just the step graph + edges, prefer
        `flows_structure_get`."
      operationId: flowsGet
      tags:
        - flows
      parameters:
        - in: query
          name: flowId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: analytics
          required: false
          schema:
            default: false
            type: boolean
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/create:
    post:
      summary: Create a flow
      description: "Creates an empty `draft` flow in a project. Requires `name` +
        `projectId`; optional `category`, `icon`, `goal`, `useCases`,
        `funnelId`. Add steps with `flows_step_create`. Leave `funnelId` unset
        here: for a funnel-embedded automation, create the funnel `workflow`
        node first and link this flow to it with `funnels_workflow_flow_set` (it
        owns the funnelId + syncs the funnel triggers onto the flow); for a
        standalone flow, scope its trigger with a `funnelId`/`pageId` constraint
        instead. Do not hand-set `funnelId`."
      operationId: flowsCreate
      tags:
        - flows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FlowsCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/update:
    post:
      summary: Update flow fields
      description: Edits a flow's metadata fields (`name`, `category`, `icon`, `goal`,
        `useCases`, `projectId`, `funnelId`, `startStepId`). Partial — only the
        passed fields change. Does not edit the step graph (use the
        `flows_step_*` tools).
      operationId: flowsUpdate
      tags:
        - flows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FlowsUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/delete:
    delete:
      summary: Delete a flow
      description: "Deletes a flow (soft delete): it disappears from listings,
        in-progress executions are canceled immediately, and execution
        history/metrics are preserved. Works on any mode except managed flows
        (pipeline/funnel/agenda), which are rejected. Not undoable from the UI —
        confirm with the user first. Emits `flow.deleted.v1`."
      operationId: flowsDelete
      tags:
        - flows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FlowsDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/get-mode:
    get:
      summary: Get flow mode
      description: "Returns the flow lifecycle mode: `draft` (editable) / `template` /
        `scheduled` / `active` (running) / `closed` / `archived`. Check before
        activating or editing steps — granular step writes only work on
        `draft`/`template`."
      operationId: flowsGetMode
      tags:
        - flows
      parameters:
        - in: query
          name: flowId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsGetModeOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/activate:
    post:
      summary: Activate a flow
      description: "Turns a `draft` flow ON: it starts matching its trigger events and
        processing real contacts (sending messages, applying tags, etc.).
        High-impact and outward-facing — confirm with the user first. Validate
        the graph (`flows_validate`) and make sure the trigger events are set
        before activating. Once active, step edits are blocked."
      operationId: flowsActivate
      tags:
        - flows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FlowsActivateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsActivateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/close:
    post:
      summary: Close a flow
      description: "Stops an `active`/`scheduled` flow: no new contacts enter and
        processing winds down. Returns the updated flow. Use to pause/stop a
        running automation (this is the lifecycle action — `flows_delete` is
        permanent removal)."
      operationId: flowsClose
      tags:
        - flows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FlowsCloseInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsCloseOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/archive:
    delete:
      summary: Archive a flow
      description: "Archives a flow (soft-retire): it leaves the active lists and is
        hidden from the default flow listing. Returns the updated flow. Confirm
        first — it takes the automation out of service."
      operationId: flowsArchive
      tags:
        - flows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FlowsArchiveInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsArchiveOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/structure-get:
    get:
      summary: Get flow step graph
      description: "Compact read-only view of a flow: each step (id, type, action,
        whether it is the entry) plus the routing edges (from → handle → to) and
        `startStepId`. The `trigger` step carries the flow's
        `triggerStart`/`triggerExit` event arrays (entry/exit). Call before
        connecting/editing to learn the real step ids."
      operationId: flowsStructureGet
      tags:
        - flows
      parameters:
        - in: query
          name: flowId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsStructureGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/triggers-catalog:
    get:
      summary: List trigger events
      description: "The catalog of flow trigger events: each entry has a friendly
        `label`, a `description`, the `group` it belongs to, and the `scopes`
        (`field`/`label`/`valueType`/`op`) it can be narrowed by. Use it to (1)
        translate a stored event into its friendly label before talking to the
        user, and (2) pick a valid `eventName` before calling
        `flows_step_triggers_set` — see that tool's description for how to shape
        a scope into a constraint. Never invent an event name; never show
        `eventName` to the user. For an entity scope (e.g. `mediaId`/post ->
        `instagram_posts_list`, `listId`/list -> `lists_list`), resolve the real
        id with that scope's picker tool first — never guess or fabricate one.
        For a scope with no such picker tool, only set it when the user gives
        you the concrete value(s); otherwise omit the scope."
      operationId: flowsTriggersCatalog
      tags:
        - flows
      parameters: []
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsTriggersCatalogOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/actions-catalog:
    get:
      summary: List addable flow nodes
      description: "The catalog of addable flow nodes: each entry has a stable `key`,
        a friendly `label`/`description`, the palette `section` it belongs to,
        the `stepType` to pass `flows_step_create`'s `type`, and (when
        applicable) the `action` name, `send_message` `channel`, or
        `httpRequest` preset. `comingSoon: true` means the node is a locked UI
        stub with no engine support yet — never create a step matching one of
        these. Use this before building anything beyond `delay`/`conditional` by
        hand, so the `type`/`action`/`channel` you pass is a real, executable
        combination instead of a guess."
      operationId: flowsActionsCatalog
      tags:
        - flows
      parameters: []
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsActionsCatalogOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/conditionals-catalog:
    get:
      summary: List conditional statement kinds
      description: "The catalog of `conditional` step statement kinds: each entry has
        the `type` discriminator to write in `statements[].type`, a friendly
        `label`/`description`, and `fields` (each with `field` name, `label`,
        `valueType`, optional `enumValues`, and an `entity` hint when the field
        is a real id to resolve — tag/list/page/etc. — never invent one). Use
        this before calling `flows_step_create`/`flows_step_update` for a
        `conditional` step, or before editing one's `statements`, so every
        statement matches a real, engine-executable shape instead of a guess."
      operationId: flowsConditionalsCatalog
      tags:
        - flows
      parameters: []
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsConditionalsCatalogOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/instagram-posts-list:
    get:
      summary: List Instagram posts
      description: Paginated list of the workspace's connected Instagram account posts
        (id, caption, permalink, thumbnail, counts), newest first. Use the
        returned `id` as the `mediaId` value when narrowing an
        `hermes.instagram.comment.received.v1` trigger to specific post(s) (the
        `mediaId` scope from `flows_triggers_catalog`). Pass the previous call's
        `meta.next` as `after` to page forward. Show the user enough
        (caption/thumbnail/permalink) to recognize the post before committing to
        a `mediaId` — never guess or fabricate one.
      operationId: instagramPostsList
      tags:
        - flows
      parameters:
        - in: query
          name: limit
          required: false
          schema:
            type: number
            description: Page size. Omit for the server default.
        - in: query
          name: after
          required: false
          schema:
            type: string
            description: Pagination cursor from a previous call's `meta.next`.
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/InstagramPostsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/validate:
    get:
      summary: Validate a flow
      description: "Checks a flow without changing it: missing entry trigger, dangling
        targets (pointing to a removed step), and orphan steps. Use before
        activating. Note: a step targeting the trigger step (infinite loop) is
        rejected at write time by `flows_step_connect`/`flows_step_create`, so
        it should never reach a saved graph — this check does not need to look
        for it."
      operationId: flowsValidate
      tags:
        - flows
      parameters:
        - in: query
          name: flowId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsValidateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/step-create:
    post:
      summary: Create a flow step
      description: "Adds one step to a flow (must be `draft`/`template`). Pass `type`
        and a type-specific `input` (plus `action` for action steps). For
        message nodes prefer the channel-specific tools
        (`flows_send_email`/`flows_send_sms`/`flows_send_whatsapp`/`flows_send_\
        voice`/`flows_send_telegram`/`flows_send_instagram`) — they have precise
        per-channel schemas. For any other action (`assignOpportunity`,
        `updateOpportunityCard`, `createLeadTask`, `httpRequest`, …) or logic
        node (`randomizer`, `switch`), call `flows_actions_catalog` first — it
        is the only place the valid `type`+`action` combination and `comingSoon`
        locks are documented. For a `conditional` step, call
        `flows_conditionals_catalog` first to pick a real `statements[].type`
        and its fields — never guess one. The `trigger` step is the flow entry
        (one per flow); set `triggerStart`/`triggerExit` inline only for a
        standalone flow — for a flow inside a funnel4 `workflow` node leave them
        empty, the funnel owns the triggers. Connect outputs with
        `flows_step_connect`, or inline via this tool's own `target` param.
        Never target the trigger step id: it is the entry point only, and any
        step pointing back at it makes the worker reprocess the automation from
        the start forever (infinite loop) — the backend rejects this with a
        400."
      operationId: flowsStepCreate
      tags:
        - flows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FlowsStepCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsStepCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/step-update:
    post:
      summary: Update a flow step
      description: Updates a step `input` / `action` / `dependencies` / `meta`. Does
        not change connections (use `flows_step_connect`).
      operationId: flowsStepUpdate
      tags:
        - flows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FlowsStepUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsStepUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/step-connect:
    post:
      summary: Connect a flow step output
      description: "Sets a step's output target. Requires `flowId` + `stepId` (the
        source step). Omit `handle` for a linear target; pass `handle`
        (`true`/`false` for conditional/timeout/wait, a button id for
        send_message) to wire a branch. `target: null` disconnects that output.
        Never set `target` to the flow's `trigger` step id — the trigger is the
        entry point only, and pointing anything back at it makes the worker
        reprocess the automation from the start forever (infinite loop); the
        backend rejects this with a 400, but do not attempt it."
      operationId: flowsStepConnect
      tags:
        - flows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FlowsStepConnectInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsStepConnectOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/step-triggers-set:
    post:
      summary: Set flow trigger events
      description: "Sets the flow's start (entry) and/or exit trigger events (with
        constraints) on a `trigger` step. Send only the side you are changing:
        omitting `triggerStart` or `triggerExit` preserves the current events on
        that side; pass an explicit empty array to clear a side. Within a side,
        the array you send replaces that side's events. Each constraint's `op`
        (from the matching scope in `flows_triggers_catalog`) shapes it: `EQ` —
        single value in
        `valueUuid`/`valueString`/`valueNumber`/`valueBoolean`/`valueDate`
        (matching `valueType`); `IN` — membership, `valueJson` as an array of
        values; `CONTAINS`/`NOT_CONTAINS` — free-text partial match, `valueJson`
        as an array of keywords, optional `caseSensitive` (default false).
        Standalone flows only — for a flow inside a funnel4 `workflow` node the
        triggers are owned by the funnel and this is rejected."
      operationId: flowsStepTriggersSet
      tags:
        - flows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FlowsStepTriggersSetInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsStepTriggersSetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/step-delete:
    delete:
      summary: Delete a flow step
      description: Removes one step and clears any target that pointed to it.
        Destructive. The flow must be editable.
      operationId: flowsStepDelete
      tags:
        - flows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FlowsStepDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsStepDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/send-email:
    post:
      summary: Add an email message step
      description: "Adds an EMAIL message node to a flow (Hermes transactional send).
        Three body modes — `format: text` (plain, via `content`), `format: html`
        default slots
        (eyebrow/title/subtitle/body/benefitsTitle/benefits/ctaLabel/ctaHref/ct\
        aNote/footerNote + color skin — only ever reads as \"default template,
        recolored\"), or `format: html` + `customHtml` (full custom HTML,
        replaces the slots — the only mode that actually reproduces a design).
        See the clickmax-flows skill's email-authoring reference for which mode
        to pick and how to author `customHtml`. Always try to resolve
        `emailSenderSignatureId` first with `email_sender_signatures_list` (pick
        `confirmed: true`) and pass it — never fabricate a uuid. If the
        workspace has no confirmed signature, create the node anyway WITHOUT the
        id (do not block or refuse the request) and say so plainly in your
        reply: the user has no sender email configured yet, so this message will
        not send until they add and verify one. The flow must be draft/template;
        wire the next step via `target` or flows_step_connect."
      operationId: flowsSendEmail
      tags:
        - flows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FlowsSendEmailInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsStepCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/send-sms:
    post:
      summary: Add an SMS message step
      description: Adds an SMS message node to a flow. Only a text `content` is needed
        — there is no sender/account to configure. Keep it short (SMS are billed
        per segment) and use {name}-style tokens to personalize. The flow must
        be draft/template; wire the next step via `target` or
        flows_step_connect.
      operationId: flowsSendSms
      tags:
        - flows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FlowsSendSmsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsStepCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/send-whatsapp:
    post:
      summary: Add a WhatsApp message step
      description: "Adds a WhatsApp message node to a flow (sent via GupShup/WABA).
        Two modes, and `format` is REQUIRED — there is no safe default (same
        FLOWS-1082 reasoning as `numberStrategy`): free-form text (`format:
        text`) only delivers INSIDE the 24h customer-care window (a message the
        contact sent in the last 24h) — outside it the send fails; a template
        (`format: template`, `gupshupTemplateId` + `paramMapping`) is the only
        way to reach a contact OUTSIDE that window. Because of that, `format:
        text` is REJECTED here unless `numberStrategy: context` — i.e. unless
        the flow is started by the contact's own inbound WhatsApp message, which
        is the only trigger that guarantees the window is open. Every other
        trigger (funnel, tag, schedule, checkout) needs a template: create one
        with `gupshup_templates_create`, send it for review with
        `gupshup_templates_submit`, and wire it here — the node accepts a
        template that is still `pending`, so build the automation now and tell
        the user it starts sending once Meta approves (hours to days). This is a
        DELIVERABILITY choice, not a cost one — never reason about `text` as the
        'free'/'no cost' option: the Meta conversation is billed per window
        regardless of which format opens or continues it, and that pricing model
        changes over time, so do not let it drive the format decision.
        `paramMapping` (with templates) is positional {{...}} placeholders
        resolved against the lead + flow state, in template order — use
        `gupshup_templates_get`/`gupshup_templates_list` to confirm the template
        is `approved` and get its real param count before wiring this.
        `numberStrategy` is REQUIRED — there is no safe default (guessing wrong
        sends from the wrong WhatsApp number, or the flow becomes invalid —
        FLOWS-1082 — the moment its trigger turns out not to be WhatsApp). Check
        the flow's actual trigger (`flows_structure_get`) before choosing:
        `fixed` + an explicit `gupshupAppId` (resolve it with
        `channel_instances_list`) for any trigger that is NOT itself an inbound
        WhatsApp message (funnel, tag, schedule, checkout — the common case);
        `context` ONLY when the trigger IS an inbound WhatsApp message (it
        reuses the number the trigger came from). Set `callback: true` when the
        next step waits for the contact reply or template-button click (it halts
        the instance until the interaction arrives). The flow must be
        draft/template; wire the next step via `target` or flows_step_connect."
      operationId: flowsSendWhatsapp
      tags:
        - flows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FlowsSendWhatsappInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsStepCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/send-voice:
    post:
      summary: Add a voice (URA) message step
      description: Adds a VOICE / URA message node to a flow — it plays an audio to
        the contact over a phone call. `content` is the audio URL/reference
        (record/upload it in the builder; `fileExtension` e.g. `mp3` when
        relevant). There is no sender/account to configure here. The flow must
        be draft/template; wire the next step via `target` or
        flows_step_connect.
      operationId: flowsSendVoice
      tags:
        - flows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FlowsSendVoiceInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsStepCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/send-telegram:
    post:
      summary: Add a Telegram message step
      description: "Adds a TELEGRAM message node to a flow. `content` is the body
        (`format` defaults to `text`; use image/video/audio/file with
        `fileExtension` for media — `content` is then the media URL). Always try
        to resolve `telegramBotId` (the sender bot) first with
        `channel_instances_list` (`channel: 'telegram'`, `status: 'live'`) and
        pass it — never fabricate a uuid. If the workspace has no live Telegram
        bot connected, create the node anyway WITHOUT the id (do not block or
        refuse the request) and say so plainly in your reply: the user has no
        Telegram bot connected yet, so this message will not send until they
        connect one. Set `callback: true` when the next step awaits the contact
        reply (halts the instance until the message arrives). The flow must be
        draft/template; wire the next step via `target` or flows_step_connect."
      operationId: flowsSendTelegram
      tags:
        - flows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FlowsSendTelegramInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsStepCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /flows/send-instagram:
    post:
      summary: Add an Instagram message step
      description: Adds an INSTAGRAM direct-message node to a flow (text only).
        Sending requires a connected Instagram account on the workspace, but the
        node is created/rendered regardless. `content` carries the text +
        {name}-style tokens. The flow must be draft/template; wire the next step
        via `target` or flows_step_connect.
      operationId: flowsSendInstagram
      tags:
        - flows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FlowsSendInstagramInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowsStepCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-list:
    get:
      summary: List funnels
      description: Returns paginated workspace funnels with optional search and
        ordering. Pass `projectId` to narrow the results to one project.
      operationId: funnelsList
      tags:
        - funnels4
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: projectId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: search
          required: false
          schema:
            type: string
        - in: query
          name: orderBy
          required: false
          schema:
            default: createdAt
            type: string
            enum:
              - name
              - createdAt
              - updatedAt
        - in: query
          name: orderByMode
          required: true
          schema:
            type: string
            enum:
              - asc
              - desc
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-get:
    get:
      summary: Get one funnel
      description: Fetches one funnel by id, including its project slug and a
        read-only view of its nodes and triggers (the funnel graph).
      operationId: funnelsGet
      tags:
        - funnels4
      parameters:
        - in: query
          name: funnelId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-create:
    post:
      summary: Create a funnel
      description: Creates a funnel in a project. Requires `name` and `projectId`;
        `description` and a custom `domainId` are optional (`domainId` may be
        null). ALWAYS set `objective` to the funnel's obvious business goal —
        `capture` (lead/email/phone capture), `sales` (checkout/revenue),
        `scheduling` (bookings/appointments), or `diagnosis` (quiz/assessment
        answers); use `custom` only when none fits. The objective pre-configures
        the analytics metrics shown on the funnel (the user can change them
        later). The funnel starts as a `draft` with an empty graph.
      operationId: funnelsCreate
      tags:
        - funnels4
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FunnelsCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-update:
    post:
      summary: Update a funnel
      description: "Updates a funnel's `name`, `description`, and/or `objective`
        (business goal that drives the analytics metric pre-configuration:
        `capture` | `sales` | `scheduling` | `diagnosis` | `custom`). Does not
        change the node graph."
      operationId: funnelsUpdate
      tags:
        - funnels4
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FunnelsUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-delete:
    delete:
      summary: Delete a funnel
      description: Permanently deletes a funnel. Destructive; prefer deactivate to
        take it offline.
      operationId: funnelsDelete
      tags:
        - funnels4
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FunnelsDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-publish:
    post:
      summary: Publish a funnel
      description: Publishes the given node ids, making the funnel live and setting
        `publishedAt`. Use after the funnel graph is ready in the builder.
      operationId: funnelsPublish
      tags:
        - funnels4
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FunnelsPublishInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsPublishOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-deactivate:
    post:
      summary: Deactivate a funnel
      description: Takes a live funnel offline (status `disabled`).
      operationId: funnelsDeactivate
      tags:
        - funnels4
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FunnelsDeactivateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsDeactivateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-analytics:
    get:
      summary: Get funnel analytics
      description: "Returns overview analytics for one funnel over an optional
        `startDate`/`endDate` window: visits, unique visitors, signups, buyers,
        revenue, and average ticket."
      operationId: funnelsAnalytics
      tags:
        - funnels4
      parameters:
        - in: query
          name: funnelId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: startDate
          required: false
          schema:
            type: string
            format: date-time
            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        - in: query
          name: endDate
          required: false
          schema:
            type: string
            format: date-time
            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsAnalyticsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-structure-get:
    get:
      summary: Get funnel graph structure
      description: "Compact read-only view of a funnel graph for planning edits: each
        node (id, type, pageType, slug, status, whether it has a page) with its
        triggers, plus the routing edges (from → trigger → to). Call before
        connecting/validating to learn the real node and trigger ids."
      operationId: funnelsStructureGet
      tags:
        - funnels4
      parameters:
        - in: query
          name: funnelId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsStructureGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-validate:
    get:
      summary: Validate funnel structure
      description: "Checks a funnel graph and reports problems without changing it:
        triggers pointing to a missing node (dangling), triggers with no
        destination (disconnected), orphan nodes with no connections, page and
        draft nodes still missing a linked page (`nodesMissingPage` — that
        funnel step publishes nothing until a page is linked), and
        `nodesWithUnusedPage` — nodes carrying a page their type never serves,
        so the visitor never reaches it. Use before publishing."
      operationId: funnelsValidate
      tags:
        - funnels4
      parameters:
        - in: query
          name: funnelId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsValidateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-node-create:
    post:
      summary: Create a funnel node
      description: "Adds one draft node (page, ab_test, traffic_source, conditional,
        workflow, external_link) to a funnel. Pass `title`, `slug`, `pageType`
        and, optionally, a list of `triggers` (type + label, no id); the server
        assigns ids and returns them. For an `ab_test` node OMIT `slug`: that
        slug is the live URL the test serves, shared with every page and test in
        the PROJECT, so the server draws a free one (`teste-ab-k3m9x2`) and
        returns it — pass a slug only when the user asked for a specific
        address, and expect the call to fail when it is already taken. For a
        `page` node, OMIT `triggers` to get the same full default set the manual
        page builder creates for that `pageType` (e.g. `checkout` gets
        `purchase_approved`/`purchase_declined`/`boleto_generated`/`cart_abando\
        ned`, `capture` gets `contact_captured`) — only pass `triggers`
        explicitly when you need to customize that set, and in that case call
        `funnels_page_triggers_catalog` FIRST to keep every type valid for the
        node's `pageType`; a `checkout` node never emits `button_click`, a
        `capture` node never emits `purchase_approved`. Optional
        `userHelpMessage` creates a linked annotation note. For a `page`/`quiz`
        node, triggers are defined here but connected later with
        `funnels_triggers_connect`. `traffic_source`/`ab_test`/`conditional`
        nodes do NOT route through `triggers` at all —
        `funnels_triggers_connect` silently no-ops on them; connect their single
        output with the type-specific tool instead
        (`funnels_traffic_source_update`/`funnels_abtest_variants_update`/`funn\
        els_conditional_branches_update`)."
      operationId: funnelsNodeCreate
      tags:
        - funnels4
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FunnelsNodeCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsNodeCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-sequence-create:
    post:
      summary: Create a funnel page sequence from a template
      description: "Scaffolds a full page sequence, creating all nodes and their
        inter-connections at once — the fastest way to start a standard funnel;
        connect pages to ITS nodes (do NOT also create nodes by hand, that
        orphans them). Pass the choice in the `template` field (NOT `type`):
        `sales` | `lead-magnet` | `webinar` | `tripwire` | `vsl-auto` |
        `upsell-downsell`. The funnel `objective` and its analytics metrics are
        auto-configured from the template (no need to set them); override later
        with `funnels_update` if the goal differs. Returns the created nodes
        with their trigger ids."
      operationId: funnelsSequenceCreate
      tags:
        - funnels4
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FunnelsSequenceCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsSequenceCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-triggers-connect:
    post:
      summary: Connect node triggers to targets
      description: Connects (or disconnects) triggers to destination nodes in batch.
        Each connection is `{ nodeId, triggerId, target }`; set `target` to null
        to disconnect. Use the ids from `funnels_structure_get` or a create
        call. Connections whose target node does not exist are kept on the node
        but not routed.
      operationId: funnelsTriggersConnect
      tags:
        - funnels4
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FunnelsTriggersConnectInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsTriggersConnectOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-node-triggers-update:
    post:
      summary: Update a node triggers
      description: "Edits the triggers of one node: `toDelete` removes triggers by id,
        `toCreate` adds new ones (type + label, server assigns ids). Returns the
        full resulting trigger list with ids. Use when the AI got the triggers
        wrong on create."
      operationId: funnelsNodeTriggersUpdate
      tags:
        - funnels4
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FunnelsNodeTriggersUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsNodeTriggersUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-node-connect-page:
    post:
      summary: Link an editor page to a node
      description: "Links an existing editor3 page (`pageId`) to a funnel node,
        marking it editor3-backed. If the linked page is an EXTERNAL page, this
        also wires `node.config.externalUrl` so the funnel 302-redirects
        visitors to that URL (get the install snippets with
        `pages_get_external_script`). TARGET RULES: the node must be a `page` or
        `draft` node — those are the only types a page serves, so an
        `ab_test`/`conditional`/`workflow`/`traffic_source`/`quiz` node is
        REJECTED (create a page node and connect the split/branch to it
        instead); and the page must live in the SAME project as the funnel, or
        the call is REJECTED (create the page with the funnel's `projectId`).
        ONE PAGE PER NODE: calling this twice on the same node REPLACES the
        first page instead of adding a second — the response returns
        `replacedPageId` (the page that was swapped out, `null` when the node
        was empty), so give each page its own node and check that field before
        reporting two pages as linked. Returns the node plus
        `triggersNeedingElement`: element-bound triggers (button/link/form) that
        still need an element id wired in the page editor."
      operationId: funnelsNodeConnectPage
      tags:
        - funnels4
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FunnelsNodeConnectPageInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsNodeConnectPageOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-abtest-variants-update:
    post:
      summary: Set A/B test variants
      description: Replaces the variants of an `ab_test` node. Each variant carries
        `label`, `percentage`, and an optional `connectedTo` target — connecting
        a variant means filling `connectedTo`. The server assigns ids to new
        variants and returns the full list. This is the A/B-node analog of
        `funnels_node_triggers_update`.
      operationId: funnelsAbtestVariantsUpdate
      tags:
        - funnels4
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FunnelsAbtestVariantsUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsAbtestVariantsUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-traffic-source-update:
    post:
      summary: Configure a traffic source node
      description: "Updates a `traffic_source` node: its single output target
        (`connectedTo`, set null to disconnect) and/or its `links`. A traffic
        source routes to the entry node through its config output, not through a
        trigger — this is how you connect it."
      operationId: funnelsTrafficSourceUpdate
      tags:
        - funnels4
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FunnelsTrafficSourceUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsTrafficSourceUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-conditional-branches-update:
    post:
      summary: Set conditional node branches
      description: Replaces the branches of a `conditional` node. Each
        `outcome:'true'` branch carries its `rules` (field/operator/value) +
        `matchType` (AND/OR) and a `connectedTo` target; exactly one
        `outcome:'false'` branch is the fallback/else (no rules). Branch order
        is evaluation order. The server assigns ids to new branches and rules.
        Analog of `funnels_abtest_variants_update` for conditionals.
      operationId: funnelsConditionalBranchesUpdate
      tags:
        - funnels4
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FunnelsConditionalBranchesUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsConditionalBranchesUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-workflow-exit-trigger-set:
    post:
      summary: Set a workflow node exit trigger
      description: Sets a `workflow` node's exit trigger — the event that ends a
        lead's membership in the linked flow. Pass `null` to clear. Entry
        triggers come from `funnels_triggers_connect` (page trigger INTO the
        workflow), not from here.
      operationId: funnelsWorkflowExitTriggerSet
      tags:
        - funnels4
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FunnelsWorkflowExitTriggerSetInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsWorkflowExitTriggerSetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-workflow-flow-set:
    post:
      summary: Link a Flow to a workflow node
      description: "Links, changes, or unlinks (`flowId: null`) the automation Flow of
        a `workflow` node. Resolve `flowId` with `flows_list` or create one with
        `flows_create`. Changing the flow re-syncs the workflow's triggers onto
        the new flow."
      operationId: funnelsWorkflowFlowSet
      tags:
        - funnels4
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FunnelsWorkflowFlowSetInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsWorkflowFlowSetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-workflow-automation-create:
    post:
      summary: Create a funnel-embedded automation
      description: "Adds a funnel automation triggered on lead capture, as a PARALLEL
        side-effect: adds a `workflow` node, wires the capture lead trigger into
        it WITHOUT changing the page route (the same trigger still sends the
        visitor onward — nothing is disconnected), creates a draft flow, and
        links them. A workflow is terminal: no outgoing edge, never give it an
        exit. Idempotent per capture trigger (does not stack duplicates). Pass
        `funnelId`, `projectId`, `capturePageNodeId`, `title` (no next-page
        param); returns `flowId`/`workflowNodeId`/`entryStepId` — then add the
        message with a `flows_send_*` tool connected to `entryStepId`. Full
        build flow + gotchas: clickmax-funnels skill."
      operationId: funnelsWorkflowAutomationCreate
      tags:
        - funnels4
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FunnelsWorkflowAutomationCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsWorkflowAutomationCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-node-delete:
    delete:
      summary: Delete a funnel node
      description: Removes one node from a funnel and cleans up any connections
        pointing to it. Destructive; the node and its triggers are gone. Returns
        `{ deleted }`.
      operationId: funnelsNodeDelete
      tags:
        - funnels4
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FunnelsNodeDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsNodeDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /funnels4/funnels-page-triggers-catalog:
    get:
      summary: List valid page triggers by page type
      description: The catalog of valid outbound trigger `type`s per funnel node
        `pageType` (`capture`, `sales`, `checkout`, `upsell`, `downsell`,
        `thankyou`, `advertorial`, `terms`, `custom`), each with a friendly
        `label`. Call this BEFORE
        `funnels_node_create`/`funnels_node_triggers_update` to pick triggers
        that actually match the node's `pageType` — e.g. only `checkout` pages
        emit `purchase_approved`/`boleto_generated`; only `capture`/`sales` emit
        `contact_captured`. Use the `label` when talking to the user; the tool
        call itself only accepts `type`. `custom` has no fixed contract and
        returns an empty list.
      operationId: funnelsPageTriggersCatalog
      tags:
        - funnels4
      parameters: []
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FunnelsPageTriggersCatalogOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /content/helpdesk-search:
    get:
      summary: Search the Clickmax help center
      description: "Substring search over PUBLISHED help articles, matching the term
        against title, excerpt and body only — NOT `keywords`, which the query
        ignores — and returning a paginated list with excerpts. An article is
        only reachable here when its parent feature AND module are published
        too, so a published article can still be missing from the results. This
        is the primary way to answer a user question about how Clickmax works:
        search first, then fetch the winning article with `helpdesk_article_get`
        to read its full markdown body. Covers product documentation only; it
        does not search the workspace's own data (leads, orders, funnels)."
      operationId: helpdeskSearch
      tags:
        - content
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: search
          required: true
          schema:
            type: string
            minLength: 1
        - in: query
          name: orderBy
          required: false
          schema:
            default: updatedAt
            type: string
            enum:
              - title
              - updatedAt
        - in: query
          name: orderByMode
          required: true
          schema:
            type: string
            enum:
              - asc
              - desc
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HelpdeskSearchOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /content/helpdesk-article-get:
    get:
      summary: Read a help article by id
      description: Fetches one PUBLISHED help article by id, including its full
        markdown `body`. Use after `helpdesk_search` or `helpdesk_tree` to read
        the article you picked. Unpublished articles are not served here and
        return a 404 — reach for `helpdesk_admin_articles_get` (staff only) to
        inspect a draft.
      operationId: helpdeskArticleGet
      tags:
        - content
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HelpdeskArticleGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /content/helpdesk-article-get-by-slug:
    get:
      summary: Read a help article by slug
      description: Same as `helpdesk_article_get` but keyed by the URL slug instead of
        the id. Use it when you are resolving a help deep-link the user pasted
        (article slugs are globally unique) rather than an id you already hold.
      operationId: helpdeskArticleGetBySlug
      tags:
        - content
      parameters:
        - in: query
          name: slug
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HelpdeskArticleGetBySlugOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /content/helpdesk-tree:
    get:
      summary: Browse the help center structure
      description: Returns the published help hierarchy — modules (e.g. "CRM",
        "Payments"), each with its features and their articles (ids, slugs and
        titles, without the article bodies). Use it to see what documentation
        exists or to navigate by topic when search terms are unclear; use
        `helpdesk_search` when you already have a concrete question.
      operationId: helpdeskTree
      tags:
        - content
      parameters: []
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HelpdeskTreeOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /content/helpdesk-releases-list:
    get:
      summary: List published Clickmax releases
      description: Lists the published release notes (changelog) that feed the
        product's "what's new" drawer, newest first, each with version, title,
        summary and full markdown body. Use to answer "what changed recently" or
        "what is new in version X".
      operationId: helpdeskReleasesList
      tags:
        - content
      parameters: []
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HelpdeskReleasesListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /content/helpdesk-release-latest:
    get:
      summary: Get the latest published release
      description: Returns only the most recent published release note, or null when
        none is published yet. Cheaper than `helpdesk_releases_list` when the
        user just asks what the newest version brought.
      operationId: helpdeskReleaseLatest
      tags:
        - content
      parameters: []
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HelpdeskReleaseLatestOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /channel-instances/list:
    get:
      summary: List connected messaging channels
      description: "Lists the workspace's connected messaging channels — WhatsApp
        numbers (`channel: 'gupshup'`), Telegram bots (`channel: 'telegram'`),
        and Instagram accounts (`channel: 'instagram'`) — with `id`, `status`,
        and channel-specific identity
        (`phone`/`wabaDisplayName`/`numberStatus`/`qualityRating` for WhatsApp;
        `telegramBotName`/`telegramUsername` for Telegram;
        `instagramName`/`instagramUsername` for Instagram). THIS IS THE TOOL
        that resolves `gupshupAppId` for `flows_send_whatsapp` (`numberStrategy:
        'fixed'`) and `telegramBotId` for `flows_send_telegram` — pick a row
        with the right `channel` and `status: 'live'` and use its `id`. Never
        guess or fabricate a channel instance id — call this first. Archived
        instances are excluded by default; pass `includeArchived: true` to
        include them (they cannot send)."
      operationId: channelInstancesList
      tags:
        - channel-instances
      parameters:
        - in: query
          name: includeArchived
          required: false
          schema:
            type: boolean
            description: Include archived (disconnected) instances. Defaults to false —
              archived instances cannot send.
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ChannelInstancesListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /email-sender-signatures/list:
    post:
      summary: List email sender signatures
      description: "Paginated list of the workspace's verified email sender identities
        (Postmark sender signatures) — `id`, `domain`, `name`, `emailAddress`,
        and `confirmed` (Postmark domain/signature verification status). THIS IS
        THE TOOL that resolves `emailSenderSignatureId` for `flows_send_email` —
        pick a row with `confirmed: true` (an unconfirmed signature cannot send)
        and use its `id`. Never guess or fabricate a signature id — call this
        first. Filter with `confirmed`/`domainNames` when the workspace has
        many."
      operationId: emailSenderSignaturesList
      tags:
        - email-sender-signatures
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EmailSenderSignaturesListInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmailSenderSignaturesListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /gupshup-templates/list:
    post:
      summary: List WhatsApp templates
      description: "Paginated list of the workspace's WhatsApp (GupShup) templates
        with approval `status`
        (`draft`/`pending`/`approved`/`rejected`/`failed`), `category`,
        `positionParams` (variable count/labels — this is what `paramMapping` on
        `flows_send_whatsapp` must match in length), and `buttons`. Filter by
        `name` (substring), `status`, `category`, or `channelInstanceId`. Only
        `status: 'approved'` templates reliably send outside the 24h
        customer-care window — check before wiring one into
        `flows_send_whatsapp`."
      operationId: gupshupTemplatesList
      tags:
        - gupshup-templates
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GupshupTemplatesListInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GupshupTemplatesListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /gupshup-templates/get:
    get:
      summary: Get a WhatsApp template
      description: "Full detail of one WhatsApp template by id: approval `status`,
        `positionParams` (variable labels, sized to the highest `{{n}}` in the
        body — this is how many entries `paramMapping` needs on
        `flows_send_whatsapp`), `buttons`, and `headerMediaUrl` when the header
        carries media. Use before wiring `gupshupTemplateId` into
        `flows_send_whatsapp` to confirm it is actually `approved` and to get
        the exact param count."
      operationId: gupshupTemplatesGet
      tags:
        - gupshup-templates
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            description: Template id, from `gupshup_templates_list`/`gupshup_templates_get`.
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GupshupTemplatesGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /gupshup-templates/gupshup-template-library-list:
    get:
      summary: List Meta's template library
      description: Meta's own pre-vetted template library (`UTILITY`/`AUTHENTICATION`
        only — `MARKETING` is never in the library) for the given
        `languageCode`. Importing one with `gupshup_template_library_create`
        skips the usual review wait since Meta already vetted the content. Check
        this before authoring a template from scratch with
        `gupshup_templates_create` when the use case is generic (OTP, order
        update, appointment reminder, etc.) — an exact library match is
        near-instant-approved.
      operationId: gupshupTemplateLibraryList
      tags:
        - gupshup-templates
      parameters:
        - in: query
          name: category
          required: true
          schema:
            type: string
            enum:
              - UTILITY
              - AUTHENTICATION
            description: Meta library only has UTILITY/AUTHENTICATION — no MARKETING
              library.
        - in: query
          name: languageCode
          required: true
          schema:
            type: string
            description: Language code Meta uses, e.g. "pt_BR"/"en".
        - in: query
          name: channelInstanceId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            description: "WhatsApp number (channel instance) to scope this to — resolve with
              `channel_instances_list`. Recommended whenever the workspace may
              have more than one number: omitting it falls back to the oldest
              live number, which is ambiguous the moment a 2nd number is
              connected (same class of bug as gupshupAppId/FLOWS-1082)."
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GupshupTemplateLibraryListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /gupshup-templates/gupshup-template-library-create:
    delete:
      summary: Create a WhatsApp template from Meta's library
      description: Creates a workspace WhatsApp template directly from a Meta library
        entry (`libraryTemplateName`, resolved via
        `gupshup_template_library_list`) — this SUBMITS to Meta immediately
        (unlike `gupshup_templates_create`, which only drafts locally), so only
        call it with a `libraryTemplateName` that actually came back from
        `gupshup_template_library_list`, never invented. `elementName` is your
        workspace-local name for it (6-24 chars). `category` is restricted to
        `UTILITY`/`AUTHENTICATION` (library scope).
      operationId: gupshupTemplateLibraryCreate
      tags:
        - gupshup-templates
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GupshupTemplateLibraryCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GupshupTemplateLibraryCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /gupshup-templates/create:
    post:
      summary: Draft a custom WhatsApp template
      description: "Saves a WhatsApp template as a local DRAFT — it is NOT sent to
        Meta yet (call `gupshup_templates_submit` explicitly once the user
        confirms the exact content). Dedupes by `elementName` + language:
        calling again with a name that already exists for the target connection
        returns the EXISTING template instead of creating a duplicate draft.
        This holds even for two concurrent calls with the same name — a unique
        constraint on (connection, name, language) backs it, and the loser is
        resolved to the existing template rather than erroring. Check the
        response's `created` field: `false` means nothing was created (a
        preexisting template was returned — read its `status`, it may already be
        pending/approved, not the fresh draft you asked for). Use
        `gupshup_templates_update` to change an existing template instead of
        re-creating; re-creating with the same name and DIFFERENT content never
        overwrites the existing one. Content rules Meta enforces, CHECKED HERE
        before anything is saved — a violation comes back as an error listing
        everything to fix, so you never ship a draft that Meta would reject days
        later: placeholders must be sequential starting at `{{1}}` with no gaps;
        the body may not START or END with a placeholder — always keep fixed
        text around every `{{n}}`; no 3+ consecutive braces (`{{{1}}}` is a
        common copy-paste bug, not a variable); the body cannot be only
        variables; max 10 emojis and 2 consecutive line breaks in the body, and
        no emoji/line break/formatting character in a text `header`;
        `header`/`footer` max 60 characters, body max 1024; every placeholder
        used in the body needs a real, non-empty sample value in `example`; a
        text `header` accepts AT MOST ONE placeholder (`{{1}}`) and, when it has
        one, `exampleHeader` must repeat the header with that placeholder
        replaced by a real value. Buttons follow Meta rules too (label max 25
        chars, at most 2 URL buttons, URL must be http(s) with at most one
        variable at its very end, quick replies grouped together, copy-code only
        on `MARKETING`). `AUTHENTICATION` category has a Meta-managed body (no
        free content) and needs exactly one `OTP` button. Look at
        `gupshup_templates_list`/`gupshup_templates_get` on already-approved
        templates for real shapes before inventing one. Never invent placeholder
        content, button URLs, or example values the user has not actually given
        you."
      operationId: gupshupTemplatesCreate
      tags:
        - gupshup-templates
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GupshupTemplatesCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GupshupTemplatesCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /gupshup-templates/update:
    post:
      summary: Update a draft WhatsApp template
      description: "Overwrites a template still in an editable state (`draft`/`failed`
        — never one already `pending`/`approved` at Meta) with a full
        replacement body/buttons. Content rules Meta enforces, CHECKED HERE
        before anything is saved — a violation comes back as an error listing
        everything to fix, so you never ship a draft that Meta would reject days
        later: placeholders must be sequential starting at `{{1}}` with no gaps;
        the body may not START or END with a placeholder — always keep fixed
        text around every `{{n}}`; no 3+ consecutive braces (`{{{1}}}` is a
        common copy-paste bug, not a variable); the body cannot be only
        variables; max 10 emojis and 2 consecutive line breaks in the body, and
        no emoji/line break/formatting character in a text `header`;
        `header`/`footer` max 60 characters, body max 1024; every placeholder
        used in the body needs a real, non-empty sample value in `example`; a
        text `header` accepts AT MOST ONE placeholder (`{{1}}`) and, when it has
        one, `exampleHeader` must repeat the header with that placeholder
        replaced by a real value. Buttons follow Meta rules too (label max 25
        chars, at most 2 URL buttons, URL must be http(s) with at most one
        variable at its very end, quick replies grouped together, copy-code only
        on `MARKETING`). `AUTHENTICATION` category has a Meta-managed body (no
        free content) and needs exactly one `OTP` button. Look at
        `gupshup_templates_list`/`gupshup_templates_get` on already-approved
        templates for real shapes before inventing one. Never invent placeholder
        content, button URLs, or example values the user has not actually given
        you."
      operationId: gupshupTemplatesUpdate
      tags:
        - gupshup-templates
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GupshupTemplatesUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GupshupTemplateLibraryCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /gupshup-templates/submit:
    delete:
      summary: Submit a WhatsApp template for Meta review
      description: Sends a draft template to META FOR REVIEW — an external,
        practically irreversible action (review queues take hours to days, and a
        rejected or low-quality submission can affect the number's quality
        rating). REQUIRES explicit user confirmation of the exact final content
        before calling — never submit content the agent authored/edited without
        the user reviewing it first, and never call this speculatively 'to see
        if it gets approved'. Idempotent only in the narrow sense that
        re-submitting an already-submitted template returns the existing
        `pending` status instead of erroring — it does NOT let you change the
        content by calling this again (use `gupshup_templates_update` first,
        while still editable).
      operationId: gupshupTemplatesSubmit
      tags:
        - gupshup-templates
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GupshupTemplatesSubmitInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GupshupTemplateLibraryCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /classroom/list:
    get:
      summary: List classrooms in a portal
      description: Returns classrooms for one `portalId` with member counts and
        content counts.
      operationId: classroomList
      tags:
        - classroom
      parameters:
        - in: query
          name: portalId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ClassroomListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /classroom/get:
    get:
      summary: Get one classroom
      description: Fetches one classroom by `id` with summary fields.
      operationId: classroomGet
      tags:
        - classroom
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ClassroomGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /classroom/details:
    get:
      summary: Get classroom with contents and lessons
      description: Returns one classroom with its linked contents (courses) and their
        lessons in a single response. Use when planning content changes.
      operationId: classroomDetails
      tags:
        - classroom
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ClassroomDetailsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /classroom/create:
    post:
      summary: Create a classroom in a portal
      description: Creates a new classroom under `portalId` with the given name/image.
      operationId: classroomCreate
      tags:
        - classroom
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ClassroomCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ClassroomGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /classroom/update:
    post:
      summary: Update a classroom
      description: Updates editable fields of a classroom (name, image, etc.).
      operationId: classroomUpdate
      tags:
        - classroom
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ClassroomUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ClassroomGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /classroom/add-content:
    post:
      summary: Link content (course) into a classroom
      description: Attaches one content (course) by `contentId` to one classroom `id`.
        Idempotent for the same content.
      operationId: classroomAddContent
      tags:
        - classroom
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ClassroomAddContentInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ClassroomAddContentOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /classroom/copy-members-from:
    post:
      summary: Copy members from one classroom to another
      description: Enrolls every member of the source classroom into the target
        classroom. Useful to clone access patterns.
      operationId: classroomCopyMembersFrom
      tags:
        - classroom
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ClassroomCopyMembersFromInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ClassroomCopyMembersFromOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /classroom/delete:
    delete:
      summary: Delete a classroom
      description: Permanently deletes one classroom. Removes member enrollments and
        content links; members retain portal access.
      operationId: classroomDelete
      tags:
        - classroom
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ClassroomDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ClassroomDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /content/list:
    get:
      summary: List contents (courses) in the workspace
      description: Returns paginated contents (courses) with their modules. Each
        module lists its root lessons in `modules[].lessons` and its submodules
        (ordered, with their own lessons) in `modules[].submodules[].lessons`.
        Preferred entry point for discovering courses workspace-wide — avoids
        traversing portals → classrooms → details.
      operationId: contentList
      tags:
        - content
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: search
          required: false
          schema:
            type: string
            maxLength: 255
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ContentListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /content/get:
    get:
      summary: Get one content (course)
      description: "Fetches one content by `id`, including its modules: root lessons
        in `modules[].lessons`, submodule lessons in
        `modules[].submodules[].lessons` (root lessons come first in product
        order). Pair with `member_users_get_course_progress` to inspect
        progress."
      operationId: contentGet
      tags:
        - content
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ContentGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /content/create:
    post:
      summary: Create a content (course)
      description: Creates a new content (course). Use `classroom_add_content`
        afterward to attach it to one or more classrooms.
      operationId: contentCreate
      tags:
        - content
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ContentCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ContentCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /content/update:
    post:
      summary: Update a content (course)
      description: Updates editable fields of a content (name, description, etc.).
      operationId: contentUpdate
      tags:
        - content
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ContentUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ContentUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /content/toggle-enabled:
    post:
      summary: Batch enable/disable contents
      description: Toggles the `enabled` flag for many contents in one call. `items`
        is the batch of `{ id, enabled }` pairs (`id` = content id). Reversible
        — prefer over deletion for temporary takedowns.
      operationId: contentToggleEnabled
      tags:
        - content
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ContentToggleEnabledInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ContentToggleEnabledOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /content/delete:
    delete:
      summary: Delete a content (course)
      description: Permanently deletes one content. Cascades to modules and lessons
        inside. Prefer `content_toggle_enabled` for temporary takedowns.
      operationId: contentDelete
      tags:
        - content
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ContentDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ContentDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lesson/list:
    get:
      summary: List lessons in a module
      description: Returns lessons inside one `moduleId`, ordered by position, with
        enabled state and content metadata.
      operationId: lessonList
      tags:
        - lesson
      parameters:
        - in: query
          name: moduleId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LessonListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lesson/get:
    get:
      summary: Get one lesson
      description: Fetches one lesson by `id`. Both `id` (path) and `moduleId` (query)
        are required.
      operationId: lessonGet
      tags:
        - lesson
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: moduleId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LessonGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lesson/create:
    post:
      summary: Create a lesson in a module
      description: Creates one lesson inside the given `moduleId` (path).
      operationId: lessonCreate
      tags:
        - lesson
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LessonCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LessonCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lesson/update:
    post:
      summary: Update a lesson
      description: Updates editable fields of a lesson. Requires `id` (path) and
        `moduleId` (query) plus body fields (name, url, etc.).
      operationId: lessonUpdate
      tags:
        - lesson
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LessonUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LessonUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lesson/move:
    post:
      summary: Move a lesson to another module
      description: Moves one lesson into a `targetModuleId` at the given 1-based
        `position`. Out-of-range positions are rejected.
      operationId: lessonMove
      tags:
        - lesson
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LessonMoveInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LessonMoveOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lesson/toggle-enabled:
    post:
      summary: Batch enable/disable lessons
      description: Toggles the `enabled` flag for many lessons in one call. `items` is
        the batch of `{ id, enabled }` pairs (`id` = lesson id).
      operationId: lessonToggleEnabled
      tags:
        - lesson
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LessonToggleEnabledInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LessonToggleEnabledOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /lesson/delete:
    delete:
      summary: Delete a lesson
      description: Permanently deletes one lesson. Removes related member progress
        records. Prefer `lesson_toggle_enabled` to hide a lesson that may be
        re-enabled later.
      operationId: lessonDelete
      tags:
        - lesson
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LessonDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LessonDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/list:
    post:
      summary: List enrolled member users
      description: Returns paginated member users for the workspace with the standard
        list filters (status, portal, classroom, search).
      operationId: memberUsersList
      tags:
        - member-users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberUsersListInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/get:
    get:
      summary: Get one member user by id
      description: Fetches one member user by `id`, including identity, active state,
        and portal/classroom assignments.
      operationId: memberUsersGet
      tags:
        - member-users
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/get-by-lead:
    get:
      summary: Get a member user by lead id
      description: Fetches the member-user record linked to a CRM lead. Use when only
        the CRM identity is known.
      operationId: memberUsersGetByLead
      tags:
        - member-users
      parameters:
        - in: query
          name: leadId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersGetByLeadOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/list-by-classroom:
    get:
      summary: List members enrolled in a classroom
      description: Returns member users currently enrolled in the given `classroomId`.
      operationId: memberUsersListByClassroom
      tags:
        - member-users
      parameters:
        - in: query
          name: classroomId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersListByClassroomOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/get-access-times:
    post:
      summary: Get access windows for a member
      description: Returns the time-bound access windows for one member user,
        optionally narrowed by `classroomIds`. Each window covers a `(classroom,
        content)` pair.
      operationId: memberUsersGetAccessTimes
      tags:
        - member-users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberUsersGetAccessTimesInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersGetAccessTimesOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/get-progress:
    get:
      summary: Get one member user progress
      description: Returns per-portal → per-classroom → per-course progress for a
        member user by `id`.
      operationId: memberUsersGetProgress
      tags:
        - member-users
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersGetProgressOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/get-progress-by-lead:
    get:
      summary: Get member-user progress by lead id
      description: Returns per-portal → per-classroom → per-course progress for the
        member user linked to a CRM `leadId`.
      operationId: memberUsersGetProgressByLead
      tags:
        - member-users
      parameters:
        - in: query
          name: leadId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersGetProgressByLeadOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/get-course-progress:
    get:
      summary: Get one course progress for a member
      description: Returns the modules + per-lesson progress for one `courseId` under
        one member-user `id`. Use after `member_users_get_progress` for
        drill-down.
      operationId: memberUsersGetCourseProgress
      tags:
        - member-users
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: courseId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersGetCourseProgressOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/get-certificate-code:
    get:
      summary: Get certificate code for member + course
      description: Returns the completion certificate code for a member user's
        progress on one course, if earned.
      operationId: memberUsersGetCertificateCode
      tags:
        - member-users
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: courseId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersGetCertificateCodeOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/create:
    post:
      summary: Create one member user
      description: Creates one member user with email, name, and optional
        portal/classroom assignments. Returns the new record.
      operationId: memberUsersCreate
      tags:
        - member-users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberUsersCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/bulk-create:
    post:
      summary: Create many member users
      description: Creates many member users in one batch. Returns counts of
        `successful`/`failed` and per-record `errors`. CSV import is
        intentionally not exposed; use this for programmatic bulk creation.
      operationId: memberUsersBulkCreate
      tags:
        - member-users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberUsersBulkCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersBulkCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/update:
    post:
      summary: Update a member user
      description: Updates editable fields of a member user (name, email, phone, etc.).
      operationId: memberUsersUpdate
      tags:
        - member-users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberUsersUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/enable:
    post:
      summary: Enable a member user
      description: Activates one member user so they can log in. Idempotent.
      operationId: memberUsersEnable
      tags:
        - member-users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberUsersEnableInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersEnableOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/disable:
    post:
      summary: Disable a member user
      description: Deactivates one member user, revoking login without deleting
        history. Preferred over deletion when access only needs to be revoked.
      operationId: memberUsersDisable
      tags:
        - member-users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberUsersDisableInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersDisableOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/bulk-enable:
    post:
      summary: Bulk enable member users
      description: Activates many member users by `memberUserIds`. Returns per-id results.
      operationId: memberUsersBulkEnable
      tags:
        - member-users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberUsersBulkEnableInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersBulkEnableOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/bulk-disable:
    post:
      summary: Bulk disable member users
      description: Deactivates many member users by `memberUserIds`. Returns per-id results.
      operationId: memberUsersBulkDisable
      tags:
        - member-users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberUsersBulkDisableInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersBulkDisableOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/bulk-update-portals:
    post:
      summary: Bulk add/remove members to portals
      description: Adds or removes many member users to/from many portals in one call.
        `action` = `add` or `remove`.
      operationId: memberUsersBulkUpdatePortals
      tags:
        - member-users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberUsersBulkUpdatePortalsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersBulkUpdatePortalsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/bulk-update-classrooms:
    post:
      summary: Bulk add/remove members to classrooms
      description: Adds or removes many member users to/from many classrooms in one
        call. `action` = `add` or `remove`.
      operationId: memberUsersBulkUpdateClassrooms
      tags:
        - member-users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberUsersBulkUpdateClassroomsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersBulkUpdateClassroomsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/add-to-classroom:
    post:
      summary: Add one member to one classroom
      description: Enrolls one member user (`memberUserId` in body) into one
        `classroomId` (in path).
      operationId: memberUsersAddToClassroom
      tags:
        - member-users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberUsersAddToClassroomInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersAddToClassroomOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/remove-from-classroom:
    delete:
      summary: Remove one member from one classroom
      description: Unenrolls one member user from one classroom. Member retains login
        if still in another classroom/portal.
      operationId: memberUsersRemoveFromClassroom
      tags:
        - member-users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberUsersRemoveFromClassroomInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersRemoveFromClassroomOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/send-access-link:
    post:
      summary: Email a portal access link to a member
      description: Sends one member user the login URL for one portal via email.
        Useful after creation or reassignment.
      operationId: memberUsersSendAccessLink
      tags:
        - member-users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberUsersSendAccessLinkInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersSendAccessLinkOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/bulk-send-access-link:
    post:
      summary: Bulk email portal access links
      description: Sends portal access link emails to many member users for one
        `portalId`. Returns per-id results.
      operationId: memberUsersBulkSendAccessLink
      tags:
        - member-users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberUsersBulkSendAccessLinkInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersBulkSendAccessLinkOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/extend-access:
    post:
      summary: Extend access windows for a member
      description: Extends time-bound access windows for one member user across one or
        more `(classroom, content)` pairs. Body `items` is the array of windows
        to extend; each has `classroomId`, `contentId`, `accessDuration`,
        `accessUnit`.
      operationId: memberUsersExtendAccess
      tags:
        - member-users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberUsersExtendAccessInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersExtendAccessOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/reset-access:
    delete:
      summary: Reset access windows for a member
      description: Resets time-bound access windows for one member user across one or
        more `(classroom, content)` pairs. Destructive — clears the consumed
        window. Use `member_users_extend_access` when you only need to add time.
      operationId: memberUsersResetAccess
      tags:
        - member-users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberUsersResetAccessInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersResetAccessOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /member-users/delete:
    delete:
      summary: Delete a member user
      description: Permanently deletes one member user. Cascades to enrollments,
        progress, and access-time records. Prefer `member_users_disable` to
        revoke login without losing history.
      operationId: memberUsersDelete
      tags:
        - member-users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MemberUsersDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MemberUsersDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /module/list:
    get:
      summary: List modules of a course
      description: Returns modules for one content (course) `contentId`, ordered by
        position.
      operationId: moduleList
      tags:
        - module
      parameters:
        - in: query
          name: contentId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ModuleListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /module/get:
    get:
      summary: Get one module
      description: Fetches one module by `id` with summary fields.
      operationId: moduleGet
      tags:
        - module
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ModuleGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /module/create:
    post:
      summary: Create a module
      description: Creates a new module inside one content (course) `contentId`.
      operationId: moduleCreate
      tags:
        - module
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ModuleCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ModuleCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /module/update:
    post:
      summary: Update a module
      description: Updates editable fields of a module (name, etc.).
      operationId: moduleUpdate
      tags:
        - module
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ModuleUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ModuleUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /module/organize-positions:
    post:
      summary: Reorder modules within a course
      description: Sets the position ordering for modules in a course. `items` is the
        full target ordering, each entry `{ moduleId, position }` with 1-based
        positions.
      operationId: moduleOrganizePositions
      tags:
        - module
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ModuleOrganizePositionsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ModuleOrganizePositionsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /module/organize-lesson-positions:
    post:
      summary: Reorder lessons within a module
      description: Sets the position ordering for the lessons at the root of one
        module `id` (lessons not inside a submodule; submodule lessons keep
        their own ordering). `items` is the full target ordering, each entry `{
        lessonId, position }` with 1-based positions.
      operationId: moduleOrganizeLessonPositions
      tags:
        - module
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ModuleOrganizeLessonPositionsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ModuleOrganizeLessonPositionsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /module/delete:
    delete:
      summary: Delete a module
      description: Permanently deletes one module. Cascades to all lessons inside the
        module.
      operationId: moduleDelete
      tags:
        - module
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ModuleDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ModuleDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /portal-members/list:
    get:
      summary: List members of a portal
      description: Returns paginated members enrolled in one `portalId`, supporting
        list filters (search, status).
      operationId: portalMembersList
      tags:
        - portal-members
      parameters:
        - in: query
          name: portalId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: search
          required: false
          schema:
            type: string
        - in: query
          name: active
          required: false
          schema:
            type: boolean
        - in: query
          name: orderBy
          required: false
          schema:
            default: createdAt
            type: string
            enum:
              - memberUserName
              - memberUserEmail
              - createdAt
        - in: query
          name: orderByMode
          required: true
          schema:
            type: string
            enum:
              - asc
              - desc
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PortalMembersListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /portal-members/add:
    post:
      summary: Add one member to a portal
      description: Enrolls one member user (`memberUserId` in body) into one
        `portalId` (in path). Does not enroll into classrooms automatically.
      operationId: portalMembersAdd
      tags:
        - portal-members
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PortalMembersAddInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PortalMembersAddOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /portal-members/bulk-add:
    post:
      summary: Bulk add many members to a portal
      description: Adds many member users to one `portalId` in a single call. Returns
        counts of `successful`/`failed` and per-member errors.
      operationId: portalMembersBulkAdd
      tags:
        - portal-members
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PortalMembersBulkAddInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PortalMembersBulkAddOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /portal-members/remove:
    delete:
      summary: Remove one member from a portal
      description: Unenrolls one member user from one portal. Cascades to classroom
        enrollments within that portal. Member retains login if still in another
        portal.
      operationId: portalMembersRemove
      tags:
        - portal-members
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PortalMembersRemoveInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PortalMembersRemoveOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /portals/list:
    post:
      summary: List member-area portals
      description: Returns workspace portals with id, name, subdomain, status, and
        theme info, supporting list filters.
      operationId: portalsList
      tags:
        - portals
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PortalsListInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PortalsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /portals/get:
    get:
      summary: Get one portal
      description: Fetches one portal by `id`, including subdomain, theme, status, and
        image references.
      operationId: portalsGet
      tags:
        - portals
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PortalsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /portals/check-subdomain:
    get:
      summary: Check if a subdomain is available
      description: Returns whether the given `subdomain` is free for portal
        creation/rename. Always call before `portals_create` or `portals_update`
        on `subdomain` to avoid conflicts.
      operationId: portalsCheckSubdomain
      tags:
        - portals
      parameters:
        - in: query
          name: subdomain
          required: true
          schema:
            type: string
            minLength: 1
            maxLength: 100
            pattern: ^[a-z-]+$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PortalsCheckSubdomainOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /portals/create:
    post:
      summary: Create a member-area portal
      description: Creates a new portal with the given name, subdomain, and theme.
        Subdomain must be unique across the workspace — pre-flight with
        `portals_check_subdomain`.
      operationId: portalsCreate
      tags:
        - portals
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PortalsCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PortalsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /portals/update:
    post:
      summary: Update a portal
      description: Updates editable fields of a portal (name, subdomain, theme,
        status). Changing `subdomain` requires pre-flight with
        `portals_check_subdomain`.
      operationId: portalsUpdate
      tags:
        - portals
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PortalsUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PortalsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /portals/delete:
    delete:
      summary: Delete a portal
      description: Permanently deletes one portal. Cascades to member assignments and
        content links — prefer changing portal status when end-customers may
        still need access.
      operationId: portalsDelete
      tags:
        - portals
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PortalsDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PortalsDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /buyers/cards-list:
    get:
      summary: List the workspace SaaS-billing cards
      description: Returns the workspace's saved payment cards used to pay for its own
        Clickmax SaaS subscription and addons. Card numbers are masked.
      operationId: buyersCardsList
      tags:
        - buyers
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BuyersCardsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /buyers/purchases-list:
    get:
      summary: List active SaaS plan + addon purchases
      description: Returns the workspace's active Clickmax SaaS plan and addon
        purchases. Use to understand commitments held against the buyer's cards
        before deletion or default changes.
      operationId: buyersPurchasesList
      tags:
        - buyers
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BuyersPurchasesListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /buyers/card-set-default:
    post:
      summary: Set the default SaaS-billing card
      description: Promotes one saved card to default for new Clickmax SaaS charges.
        Idempotent for the same `cardId`; flipping the default unsets the
        previous one.
      operationId: buyersCardSetDefault
      tags:
        - buyers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BuyersCardSetDefaultInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BuyersCardSetDefaultOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /buyers/card-delete:
    delete:
      summary: Delete a SaaS-billing card
      description: Permanently removes one saved card by `id`. If the deleted card was
        the default and other cards exist, the platform picks a replacement.
        Confirm there are no critical commitments via `buyers_purchases_list`
        first.
      operationId: buyersCardDelete
      tags:
        - buyers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BuyersCardDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BuyersCardDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /checkouts/set-order-bump:
    post:
      summary: Set order bumps on a checkout page
      description: "Configures which offers appear as order bumps on a checkout
        `pageId` (the page created with `pages_create` type='checkout' and
        linked to a funnel node). Order bumps are themselves offer ids — pass
        the offer ids to show as bumps in `orderBumpIds`. This is a FULL REPLACE
        of the page's bump list: send the complete set every call; send `[]` to
        remove all bumps. Setting a non-empty list also makes the bump section
        visible on the checkout automatically. `mainOfferId` is OPTIONAL: omit
        it to keep the offer already bound to the page, pass a new offer id to
        switch the main product, or `null` to clear it — the main offer is
        normally set at page creation, so usually only `orderBumpIds` is needed.
        Only the offer-linkage is changed; page style/copy stay intact."
      operationId: checkoutsSetOrderBump
      tags:
        - checkouts
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CheckoutsSetOrderBumpInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CheckoutsSetOrderBumpOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /dashboard/get:
    get:
      summary: Get headline dashboard KPIs
      description: Returns top-level transaction metrics plus workspace `balance` and
        `accountBalance`, scoped by `range`, `status`, `projectId`, `productId`,
        and subscription `client`.
      operationId: dashboardGet
      tags:
        - dashboard
      parameters:
        - in: query
          name: productId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: client
          required: false
          schema:
            type: string
        - in: query
          name: status
          required: false
          schema:
            type: string
            enum:
              - all
              - pending
              - paid
              - canceled
              - refunded
              - chargedBack
              - dispute
              - failed
              - refunding
              - refund_rejected
        - in: query
          name: range
          required: true
          schema:
            type: string
            enum:
              - month
              - twoWeeks
              - oneWeek
              - yesterday
              - today
              - all
        - in: query
          name: projectId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DashboardGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /dashboard/filters:
    get:
      summary: Get dashboard filter lookups
      description: Returns the available filter values for the dashboard (clients,
        projects, products, statuses). Use to discover valid filter inputs
        before calling other dashboard tools.
      operationId: dashboardFilters
      tags:
        - dashboard
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DashboardFiltersOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /dashboard/transactions-list:
    get:
      summary: List dashboard transactions (paginated)
      description: Returns paginated transactions with offer info, supporting the full
        filter shape (`range`, `status`, `projectId`, `productId`, `client`,
        `column`, `order`, optional `subscriptionId`).
      operationId: dashboardTransactionsList
      tags:
        - dashboard
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: productId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: client
          required: false
          schema:
            type: string
        - in: query
          name: status
          required: false
          schema:
            type: string
            enum:
              - all
              - pending
              - paid
              - canceled
              - refunded
              - chargedBack
              - dispute
              - failed
              - refunding
              - refund_rejected
        - in: query
          name: subscriptionId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: range
          required: true
          schema:
            type: string
            enum:
              - month
              - twoWeeks
              - oneWeek
              - yesterday
              - today
              - all
        - in: query
          name: projectId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: column
          required: false
          schema:
            type: string
        - in: query
          name: order
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DashboardTransactionsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /dashboard/subscriptions-list:
    get:
      summary: List dashboard subscriptions (paginated)
      description: Returns paginated subscriptions with offer info, supporting the
        dashboard filter shape. Useful for surfacing active/canceled
        subscription cohorts.
      operationId: dashboardSubscriptionsList
      tags:
        - dashboard
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: productId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: client
          required: false
          schema:
            type: string
        - in: query
          name: status
          required: false
          schema:
            type: string
            enum:
              - all
              - pending
              - paid
              - canceled
              - refunded
              - chargedBack
              - dispute
              - failed
              - refunding
              - refund_rejected
        - in: query
          name: subscriptionId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: range
          required: true
          schema:
            type: string
            enum:
              - month
              - twoWeeks
              - oneWeek
              - yesterday
              - today
              - all
        - in: query
          name: projectId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: column
          required: false
          schema:
            type: string
        - in: query
          name: order
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DashboardSubscriptionsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /dashboard/affiliates-list:
    get:
      summary: List affiliate-attributed transactions
      description: Returns paginated transactions attributed to affiliates, supporting
        the dashboard filter shape.
      operationId: dashboardAffiliatesList
      tags:
        - dashboard
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: range
          required: true
          schema:
            type: string
            enum:
              - month
              - twoWeeks
              - oneWeek
              - yesterday
              - today
              - all
        - in: query
          name: projectId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: productId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: client
          required: false
          schema:
            type: string
        - in: query
          name: status
          required: false
          schema:
            type: string
            enum:
              - all
              - pending
              - paid
              - canceled
              - refunded
              - chargedBack
              - dispute
              - failed
              - refunding
              - refund_rejected
        - in: query
          name: column
          required: false
          schema:
            type: string
        - in: query
          name: order
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DashboardAffiliatesListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /dashboard/my-sales:
    post:
      summary: Query my-sales with full filter body
      description: "Returns the my-sales table using the full filter body (supports
        complex filters and array-valued fields). Prefer this over
        `dashboard_transactions_list` when filters are complex. Pass
        `includeAggregations: false` whenever you only need the ROWS: the
        `aggregations` object costs ~15 full scans and is skipped entirely. If
        you only need the KPIs, call `dashboard_my_sales_aggregations` instead
        of paging rows."
      operationId: dashboardMySales
      tags:
        - dashboard
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DashboardMySalesInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DashboardMySalesOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /dashboard/my-sales-aggregations:
    post:
      summary: Get my-sales KPIs without the rows
      description: 'Returns only the my-sales aggregations for a filter set: revenue
        and net revenue, counts by status (paid/failed/refunded/canceled),
        distinct buyers, average ticket, pending PIX/boleto, cart abandonment,
        deduplicated recovery buckets, and reason/UTM breakdowns. Seller-scoped,
        matching what the sales screen shows. Use this for any "how many / how
        much" question instead of paging `dashboard_my_sales`. Accepts no
        pagination or sorting: the answer does not depend on them.'
      operationId: dashboardMySalesAggregations
      tags:
        - dashboard
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DashboardMySalesAggregationsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DashboardMySalesAggregationsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /dashboard/external-sales:
    post:
      summary: Query external sales
      description: Returns sales captured via external gateways/integrations using the
        external-sales filter body. Some fields are gateway-specific.
      operationId: dashboardExternalSales
      tags:
        - dashboard
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DashboardExternalSalesInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DashboardExternalSalesOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /dashboard/external-sales-chart:
    post:
      summary: Get external sales chart data
      description: Returns time-bucketed totals for external sales. `defaults`
        controls the bucket; `filters` accepts the external-sales filter shape.
      operationId: dashboardExternalSalesChart
      tags:
        - dashboard
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DashboardExternalSalesChartInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DashboardExternalSalesChartOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /insights/top-offers:
    post:
      summary: Rank top offers/products by revenue
      description: Ranks the seller's offers or products by PAID revenue and quantity
        in a window (default last 30 days). Use for "what sold most / best
        offers / best products" instead of paging raw sales rows. `groupBy` =
        `offer` (default) or `product`; `limit` caps the ranking. Revenue
        reconciles with the my-sales panel for the same period.
      operationId: insightsTopOffers
      tags:
        - insights
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InsightsTopOffersInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/InsightsTopOffersOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /insights/order-bump-attach:
    post:
      summary: Get order-bump attach rate
      description: "Order-bump attach rate: for each order bump, the paid orders that
        included it divided by the paid orders of its main offer (one row per
        bump/main-offer pair), with `attached`/`eligible` counts, `attachRate`,
        and bump revenue. Default last 30 days. This is a rate over eligible
        orders, not the revenue share of bumps."
      operationId: insightsOrderBumpAttach
      tags:
        - insights
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InsightsOrderBumpAttachInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/InsightsOrderBumpAttachOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /insights/trend:
    post:
      summary: Get period-over-period sales trend
      description: Period-over-period sales trend of PAID revenue, average ticket, and
        sales count, comparing the current window against the immediately
        preceding window of equal length (default last 30 days). Each metric
        returns `current`/`previous`/`difference`/`percentage`. Does not include
        conversion rate (not part of the sales domain).
      operationId: insightsTrend
      tags:
        - insights
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InsightsTrendInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/InsightsTrendOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /plans/upgrade-list:
    get:
      summary: List available upgrade plans
      description: Returns the Clickmax SaaS plans the workspace can switch into from
        the current plan.
      operationId: plansUpgradeList
      tags:
        - plans
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlansUpgradeListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /plans/user-summary:
    get:
      summary: Get current plan summary + usage
      description: Returns the current Clickmax SaaS subscription summary along with
        usage metrics in a single response.
      operationId: plansUserSummary
      tags:
        - plans
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlansUserSummaryOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /plans/user-metrics:
    get:
      summary: Get current plan usage metrics
      description: Returns the usage metrics counted against the current billing
        period (sales, leads, messages, etc.).
      operationId: plansUserMetrics
      tags:
        - plans
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlansUserMetricsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /plans/invoice-summary:
    get:
      summary: Get current invoice summary
      description: Returns the current Clickmax SaaS invoice summary including
        projected fees and line items.
      operationId: plansInvoiceSummary
      tags:
        - plans
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlansInvoiceSummaryOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /plans/transaction-history:
    get:
      summary: List Clickmax plan transaction history
      description: Returns past Clickmax-platform billing transactions for the
        workspace (separate from end-customer transactions).
      operationId: plansTransactionHistory
      tags:
        - plans
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlansTransactionHistoryOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /plans/pending-changes:
    get:
      summary: List pending plan cancel/pause requests
      description: Returns pending cancellation or pause requests on the Clickmax SaaS
        subscription that have not yet taken effect.
      operationId: plansPendingChanges
      tags:
        - plans
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlansPendingChangesOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /plans/cancel-preview:
    get:
      summary: Preview the impact of canceling the current plan
      description: Returns the projected dollar impact and scheduled expiration if the
        workspace cancels its current Clickmax SaaS subscription. Run before
        `plans_cancel_current_plan` to surface prorated impact.
      operationId: plansCancelPreview
      tags:
        - plans
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlansCancelPreviewOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /plans/cancel-current-plan:
    delete:
      summary: Schedule cancellation of the current workspace's Clickmax SaaS plan
      description: "Schedules cancellation of the acting workspace's Clickmax SaaS
        plan. Requires a structured `reason` (and `reasonDescription` when the
        reason is `other`); `type` chooses between keeping the account and
        deleting it. Scoped to the caller's own workspace only — it cannot
        target other tenants. The plan is NOT cancelled immediately: it stays
        active until `scheduledFor`, during which support can still revert it.
        The window is shortened when a renewal charge is imminent, and
        `executedImmediately` is true when there was no room for a window at
        all. Always report `scheduledFor` back to the user instead of saying the
        plan was cancelled."
      operationId: plansCancelCurrentPlan
      tags:
        - plans
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PlansCancelCurrentPlanInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlansCancelCurrentPlanOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /recovery/recoverable-revenue:
    post:
      summary: Get recoverable revenue aggregate
      description: "Returns aggregated recoverable revenue: deduplicated recovery
        buckets (failed, canceled, refunded, pixPending, boletoPending,
        cartAbandonment) with value + count, plus the canceled/refunded/failed
        reason breakdowns and the cart-abandonment stage breakdown."
      operationId: recoveryRecoverableRevenue
      tags:
        - recovery
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RecoveryRecoverableRevenueInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RecoveryRecoverableRevenueOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /reports/subscriptions:
    post:
      summary: Get subscriptions report
      description: Returns per-subscription rows for a workspace, filterable by
        subscription `ids` and/or a `startDate`/`endDate` window. Prefer
        narrowing the window on large workspaces.
      operationId: reportsSubscriptions
      tags:
        - reports
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ReportsSubscriptionsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ReportsSubscriptionsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /reports/transactions:
    post:
      summary: Get transactions report
      description: Returns per-transaction rows for a workspace, filterable by
        transaction `ids` and/or a `startDate`/`endDate` window. For aggregated
        time-series, prefer `transactions_chart` from the transactions module.
      operationId: reportsTransactions
      tags:
        - reports
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ReportsTransactionsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ReportsTransactionsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /subscription/subscriptions-get:
    get:
      summary: Get subscription details
      description: Fetches one subscription by `id`, including status, gateway
        references, payment instrument, and billing metadata.
      operationId: subscriptionsGet
      tags:
        - subscription
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SubscriptionsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /subscription/subscriptions-list:
    post:
      summary: List subscriptions with filters
      description: "Returns paginated subscriptions for the workspace, accepting the
        full subscriptions filter body (status, range, project/product/client,
        pagination, sort). Pass `includeAggregations: false` whenever you only
        need the ROWS: the 16 KPI fields cost 2 full scans of the workspace and
        are skipped entirely. If you only need the KPIs, call
        `subscriptions_aggregations` instead of paging rows."
      operationId: subscriptionsList
      tags:
        - subscription
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SubscriptionsListInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SubscriptionsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /subscription/subscriptions-aggregations:
    post:
      summary: Get subscription KPIs
      description: Returns only the subscription KPI object (revenue, net revenue,
        subscriber count, active/cancelled/trial counts, MRR, churn rate,
        defaulters) for a filter slice. The body takes no pagination or sort —
        the numbers cover the whole slice, so never page `subscriptions_list` to
        add them up.
      operationId: subscriptionsAggregations
      tags:
        - subscription
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SubscriptionsAggregationsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SubscriptionsAggregationsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /subscription/subscriptions-chart:
    post:
      summary: Get subscriptions chart data
      description: Returns time-bucketed subscription totals. `defaults` controls the
        bucket; `filters` uses the subscriptions filter shape (without
        pagination).
      operationId: subscriptionsChart
      tags:
        - subscription
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SubscriptionsChartInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SubscriptionsChartOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /subscription/subscriptions-update-card:
    post:
      summary: Swap the payment card on a subscription
      description: Updates the card driving the subscription billing to `cardId`.
        Idempotent for the same card. The subscription continues active under
        the new instrument.
      operationId: subscriptionsUpdateCard
      tags:
        - subscription
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SubscriptionsUpdateCardInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SubscriptionsUpdateCardOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /subscription/subscriptions-cancel:
    delete:
      summary: Cancel one subscription
      description: Cancels one subscription by `id`. Optional `cancellationReason`
        (classified enum) and `cancellationReasonDescription` (free-text).
        Permanent at the processor.
      operationId: subscriptionsCancel
      tags:
        - subscription
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SubscriptionsCancelInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SubscriptionsCancelOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /transactions/get:
    get:
      summary: Get one transaction
      description: Fetches a single payment-state record by transaction `id`,
        including status, processor metadata, and refund history.
      operationId: transactionsGet
      tags:
        - transactions
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TransactionsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /transactions/list:
    get:
      summary: List workspace transactions
      description: Returns the workspace transactions list. Server-side pagination is
        not exposed by this endpoint; expect a bounded recent window.
      operationId: transactionsList
      tags:
        - transactions
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TransactionsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /transactions/debt:
    get:
      summary: Get accrued platform-fee debt
      description: Returns the current accrued platform-fee debt for the workspace.
        Reflects outstanding balance, not historical fee totals.
      operationId: transactionsDebt
      tags:
        - transactions
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TransactionsDebtOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /transactions/failure-breakdown:
    post:
      summary: Diagnose failed transactions by reason
      description: Answers 'why are my sales failing?'. Aggregates FAILED transactions
        by a stable failure `code` (card_declined, insufficient_funds,
        invalid_cvv, expired_card, card_data_error, auth_3ds, fraud_suspected,
        integration_error, unknown) with count and recoverable value, sorted by
        value. `isPlatformFault` flags a code that is our bug (not a legitimate
        bank decline). Defaults to the LAST 30 DAYS; pass `from`/`to` (ISO
        date-time) for another window, plus optional product/offer/project
        filters. This is NOT about platform-fee debt — use `transactions_debt`
        for that. Translate each `code` into user-facing text and a next action
        via the failure-diagnosis skill.
      operationId: transactionsFailureBreakdown
      tags:
        - transactions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransactionsFailureBreakdownInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TransactionsFailureBreakdownOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /transactions/chart:
    post:
      summary: Get transactions chart data
      description: Returns time-bucketed totals for transactions. `defaults` controls
        the time bucket; `filters` accepts the dashboard sales filter shape
        (without pagination).
      operationId: transactionsChart
      tags:
        - transactions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransactionsChartInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TransactionsChartOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /transactions/sales-get-details:
    get:
      summary: Get sale details
      description: Returns the commercial sale record by sale `id`, including
        product/offer references and aggregated payment state. Prefer this over
        the transaction view for sales-side reasoning.
      operationId: salesGetDetails
      tags:
        - transactions
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SalesGetDetailsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /transactions/sales-get-buyer:
    get:
      summary: Get buyer info for a sale
      description: Returns buyer identity and contact info for a sale. Separate from
        `sales_get_details` because buyer records live in a different store.
      operationId: salesGetBuyer
      tags:
        - transactions
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SalesGetBuyerOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /transactions/sales-get-utms:
    get:
      summary: Get UTM attribution for a sale
      description: Returns UTM source/medium/campaign data attached to the originating
        sale, for attribution analysis.
      operationId: salesGetUtms
      tags:
        - transactions
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SalesGetUtmsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /transactions/sales-get-external-details:
    get:
      summary: Get external sale details
      description: Returns details for a sale captured via an external
        gateway/integration. Some fields are gateway-specific and not directly
        comparable to internal sales.
      operationId: salesGetExternalDetails
      tags:
        - transactions
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SalesGetExternalDetailsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /transactions/refund:
    delete:
      summary: Refund one transaction
      description: Issues a refund for a single transaction. Optional
        `cancellationReason` classifies the refund (e.g. `fraud`, `duplicated`,
        `requested_by_customer`); `cancellationReasonDescription` is a free-text
        note. Permanent at the processor.
      operationId: transactionsRefund
      tags:
        - transactions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransactionsRefundInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TransactionsRefundOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /wallet/sellers-status:
    get:
      summary: Get seller readiness to sell and receive
      description: "Returns whether the workspace seller is ready to sell and receive:
        `sellerStatus` (account state) and `bankAccountStatus`
        (receiving-account approval), plus a `reason` when pending/reproved. Use
        this to answer whether everything is set up to start selling/receiving.
        Clickmax processes payments natively — never suggest an external
        gateway."
      operationId: sellersStatus
      tags:
        - wallet
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SellersStatusOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /wallet/statement:
    get:
      summary: Get wallet balances and statement (extrato)
      description: Returns the seller wallet balances (available, pending/"a receber",
        under-review, anticipatable) plus the paginated statement of movements
        (sales, refunds, chargebacks, anticipations, cashouts). Use
        `page`/`perPage` to browse history.
      operationId: walletStatement
      tags:
        - wallet
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: integer
            minimum: 1
            maximum: 9007199254740991
        - in: query
          name: perPage
          required: false
          schema:
            default: 15
            type: integer
            minimum: 1
            maximum: 100
        - in: query
          name: gatewaySellerId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: from
          required: false
          schema:
            type: string
            pattern: ^\d{4}-\d{2}-\d{2}$
        - in: query
          name: to
          required: false
          schema:
            type: string
            pattern: ^\d{4}-\d{2}-\d{2}$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WalletStatementOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /wallet/withdraws:
    get:
      summary: List wallet withdrawals (saques)
      description: Returns the paginated history of wallet withdrawals/cashouts with
        `status` (pending/completed/canceled/failed), `amount`, `fee`, and
        timestamps. Use `page`/`perPage` to browse.
      operationId: walletWithdraws
      tags:
        - wallet
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WalletWithdrawsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /products/list:
    get:
      summary: List products in a workspace
      description: Returns workspace products with offer summaries, archive state, and
        `totalOffersCount`. Optional `projectId` narrows the list to a single
        project.
      operationId: productsList
      tags:
        - products
      parameters:
        - in: query
          name: projectId
          required: false
          schema:
            anyOf:
              - type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              - type: string
                minLength: 0
                maxLength: 1
        - in: query
          name: includeAffiliated
          required: false
          schema:
            type: boolean
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProductsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /products/get:
    get:
      summary: Get one product
      description: Fetches one product by `id`, including its offers with pricing,
        currency, checkout state, and transaction/coupon flags. Use
        `checkoutType` to filter offers by `internal` or `external` checkout.
      operationId: productsGet
      tags:
        - products
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: checkoutType
          required: false
          schema:
            type: string
            enum:
              - internal
              - external
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProductsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /products/create:
    post:
      summary: Create a product with its initial offer
      description: 'Creates a new product in a project and an initial offer with the
        provided pricing. Returns both `product` and `offer`. Pricing fields
        apply to the initial offer. `productCategory` is constrained by
        `productClass`: a physical product ("Produto físico") accepts ONLY the
        physical categories (Chás, Cosméticos, Livros, Nootrópicos,
        Nutracêuticos) and also requires `quantityItems` plus an active Ticto
        payment setup; every other class accepts ONLY the remaining categories.
        Mixing the two sets fails.'
      operationId: productsCreate
      tags:
        - products
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProductsCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProductsCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /products/archive:
    post:
      summary: Archive a product
      description: Archives a product to hide it from the active catalog while
        preserving its history. Reversible via `products_unarchive`. Prefer this
        over deletion when the product was already used.
      operationId: productsArchive
      tags:
        - products
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProductsArchiveInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProductsArchiveOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /products/unarchive:
    post:
      summary: Unarchive a product
      description: Restores a previously archived product back into the active catalog.
      operationId: productsUnarchive
      tags:
        - products
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProductsUnarchiveInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProductsUnarchiveOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /products/external-products-list:
    get:
      summary: List external products in a workspace
      description: Returns paginated products imported from an external checkout
        platform (Hotmart, Hubla, Kiwify, Eduzz, Ticto, …) — the simplified sale
        records Clickmax mirrors for trigger matching and reporting, NOT the
        workspace's own Clickmax products (use `products_list` for those).
        Filter by `platform` and/or a `search` term over the name. Read-only.
      operationId: externalProductsList
      tags:
        - products
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: platform
          required: false
          schema:
            type: string
            enum:
              - braip
              - cartpanda
              - eduzz
              - green
              - guru
              - hotmart
              - hubla
              - kirvano
              - kiwify
              - lastlink
              - monetizze
              - pagarme
              - perfectpay
              - principia
              - stripe
              - ticto
              - tmb
              - voomp
              - whop
              - yampi
              - yever
        - in: query
          name: search
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExternalProductsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /products/external-products-get:
    get:
      summary: Get one external product
      description: Fetches a single external product by `id` (the Clickmax
        `ExternalProducts.id`, not the platform's own `externalId`). Returns its
        platform, name, price, currency, and `externalId`. Resolve the `id` from
        `external_products_list`. Read-only.
      operationId: externalProductsGet
      tags:
        - products
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExternalProductsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /products/delete:
    delete:
      summary: Delete a product
      description: Permanently deletes one product and its offers. Fails when any
        offer has transactions. Prefer `products_archive` for products that were
        already in use.
      operationId: productsDelete
      tags:
        - products
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProductsDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProductsDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /deliverables/offers-add-membership-delivery:
    post:
      summary: Deliver a members-area classroom on an offer
      description: Connects a Clickmax members-area classroom as the delivery of an
        offer, so buyers of that offer are granted access to that classroom.
        Pass the `offerId` (a product's main offer id — resolve it via the
        product/offer tools) plus the members-area `portalId` and `classroomId`.
        This is how you wire 'this membership/course is what the product
        delivers'. An offer can hold several deliverables; this adds the
        internal-membership one (it does not remove existing ones).
      operationId: offersAddMembershipDelivery
      tags:
        - deliverables
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OffersAddMembershipDeliveryInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OffersAddMembershipDeliveryOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /deliverables/offers-add-link-delivery:
    post:
      summary: Deliver external link(s) on an offer
      description: Connects one or more external links (each `{ title, url }`) as the
        delivery of an offer, so buyers of that offer receive those links as
        their deliverable. Pass the `offerId` (a product's main offer id —
        resolve it via the product/offer tools) plus `links`. Use this when the
        deliverable the user already has lives at an external URL (a hosted PDF,
        a Google Drive/Notion page, a third-party course area) — as opposed to a
        Clickmax members-area classroom, which uses
        `offers_add_membership_delivery`. `url` must be a valid http(s) URL. An
        offer can hold several deliverables; this adds a `link` deliverable and
        does not remove existing ones.
      operationId: offersAddLinkDelivery
      tags:
        - deliverables
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OffersAddLinkDeliveryInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OffersAddMembershipDeliveryOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /deliverables/offers-add-file-delivery:
    post:
      summary: Deliver an uploaded file on an offer
      description: Connects an uploaded file (e.g. a PDF) as the delivery of an offer,
        so buyers of that offer receive that file as their deliverable. Pass the
        `offerId` (a product's main offer id) plus the file's public `url` (from
        an upload) and a `title` (its display name); `description` is optional.
        Use this for a file the user uploaded or already hosts as a direct
        download — as opposed to a plain external link
        (`offers_add_link_delivery`) or a Clickmax members-area classroom
        (`offers_add_membership_delivery`). `url` must be a valid http(s) URL.
        An offer can hold several deliverables; this adds a `file` deliverable
        and does not remove existing ones.
      operationId: offersAddFileDelivery
      tags:
        - deliverables
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OffersAddFileDeliveryInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OffersAddMembershipDeliveryOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /offers/get:
    get:
      summary: Get one offer
      description: Fetches one offer by `id`, including pricing, currency, payment
        methods, checkout config, status, and lifecycle metadata.
      operationId: offersGet
      tags:
        - offers
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OffersGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /offers/get-incomplete-reason:
    get:
      summary: Diagnose why an offer is not active-ready
      description: Returns the list of blockers preventing an offer from going to
        `active` (e.g. missing description, support contact, deliverables,
        seller status). Use before `offers_send_to_approval` to predict
        rejection.
      operationId: offersGetIncompleteReason
      tags:
        - offers
      parameters:
        - in: query
          name: id
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OffersGetIncompleteReasonOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /offers/list-support-emails:
    get:
      summary: List the workspace support emails
      description: Lists the support emails registered in the workspace, each with its
        id and whether it is verified (`verifiedAt`). Use this to find a
        verified support-email id to attach to an offer via `offers_update`
        (`offerSupportEmailId`), or to check whether one the user just
        registered has been verified yet.
      operationId: offersListSupportEmails
      tags:
        - offers
      parameters: []
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OffersListSupportEmailsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /offers/create-support-email:
    post:
      summary: Register a custom support email
      description: Registers a custom support email for the workspace and sends a
        verification link to that address. The email is NOT usable until the
        user opens their inbox and clicks the link (out-of-band). After they
        confirm, call `offers_list_support_emails` to get its id once
        `verifiedAt` is set, then attach it to an offer via `offers_update`
        (`offerSupportEmailId`). Offers without a custom support email fall back
        to the account owner's email, so only do this when the user wants a
        different support address.
      operationId: offersCreateSupportEmail
      tags:
        - offers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OffersCreateSupportEmailInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OffersCreateSupportEmailOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /offers/resend-support-email-validation:
    post:
      summary: Resend support-email verification
      description: Resends the verification link for a previously registered support
        email (by `offerSupportEmailId`, from `offers_list_support_emails`). Use
        when the user did not receive or lost the first verification email.
      operationId: offersResendSupportEmailValidation
      tags:
        - offers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OffersResendSupportEmailValidationInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OffersResendSupportEmailValidationOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /offers/create:
    post:
      summary: Create a secondary offer on a product
      description: Creates a new non-main offer for an existing product. The product
        already has a main offer created with it; use this to add alternative
        price points or checkout variants. `isMain` is always false here.
      operationId: offersCreate
      tags:
        - offers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OffersCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OffersCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /offers/clone-main-offer:
    post:
      summary: Clone the main offer of a product
      description: Duplicates the main offer of a given product into a new offer
        within the same product, copying most fields. Preferred safe way to
        create alternative pricing/checkout variants from the canonical offer.
      operationId: offersCloneMainOffer
      tags:
        - offers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OffersCloneMainOfferInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OffersCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /offers/update:
    post:
      summary: Update an offer
      description: "Updates editable fields of an offer (pricing, currency, payment
        methods, descriptions, checkout config). Existing checkout URLs continue
        to point at the same offer id. NOTE: `bannerDesktop`/`bannerMobile` are
        the checkout's promotional banner art — they are NOT the product's main
        image. Never set them to satisfy a 'product image' / 'imagem do produto'
        request; the product image has its own upload flow (the offer's
        product-image slot), not this field."
      operationId: offersUpdate
      tags:
        - offers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OffersUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OffersCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /offers/set-product-image:
    post:
      summary: Set the product's main image
      description: Sets the MAIN IMAGE of a product — the offer's product image
        (thumbnail) shown on the checkout and sales pages. Use this whenever the
        user wants to add or change 'the product image' / 'a imagem do produto'.
        Pass the offer id and `imageUrl` = the public URL of an image the user
        just uploaded (e.g. the answer of an `image` question). Do NOT use
        `offers_update` for this, and NEVER put a product image into
        `bannerDesktop`/`bannerMobile` — those are separate promotional
        checkout-banner art. Returns the final product-image URL.
      operationId: offersSetProductImage
      tags:
        - offers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OffersSetProductImageInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OffersSetProductImageOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /offers/send-to-approval:
    post:
      summary: Send an offer to approval
      description: Submits a `draft` offer for compliance review. Run
        `offers_get_incomplete_reason` first to verify the offer meets the
        activation requirements.
      operationId: offersSendToApproval
      tags:
        - offers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OffersSendToApprovalInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OffersCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /offers/archive:
    post:
      summary: Archive an offer
      description: Archives an offer so it is hidden from active checkout flows.
        Reversible via `offers_unarchive`. Prefer this over deletion when the
        offer was already used.
      operationId: offersArchive
      tags:
        - offers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OffersArchiveInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OffersCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /offers/unarchive:
    post:
      summary: Unarchive an offer
      description: Restores a previously archived offer back into the active checkout flow.
      operationId: offersUnarchive
      tags:
        - offers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OffersUnarchiveInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OffersCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /offers/delete:
    delete:
      summary: Delete an offer
      description: Permanently deletes one offer. Fails when the offer has
        transactions. Prefer `offers_archive` for offers already linked to
        funnels or checkout flows.
      operationId: offersDelete
      tags:
        - offers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OffersDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OffersDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /brands/brand-save-draft:
    post:
      summary: Save brand draft (incremental patch)
      description: Patch the workspace brand draft with new fields. Non-destructive.
        Call after every user answer in the wizard. The brand id is taken from
        the binding scope of the wizard specialist.
      operationId: brandSaveDraft
      tags:
        - brands
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BrandSaveDraftInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BrandSaveDraftOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /brands/brand-mark-ready:
    post:
      summary: Publish brand draft
      description: Publishes the current brand draft (sets status=ready). Use only
        when the user has provided at minimum businessName, voiceTone, and at
        least one of audience or USP.
      operationId: brandMarkReady
      tags:
        - brands
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BrandMarkReadyInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BrandSaveDraftOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /packs/list:
    get:
      summary: List packs
      description: Returns paginated packs owned by the workspace, with optional
        search, ordering, and filters. Use to find a pack id before editing or
        sharing.
      operationId: packsList
      tags:
        - packs
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: projectId
          required: false
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: order
          required: false
          schema:
            type: string
            enum:
              - asc
              - desc
        - in: query
          name: column
          required: false
          schema:
            default: createdAt
            type: string
            enum:
              - name
              - isActive
              - createdAt
              - updatedAt
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PacksListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /packs/get:
    get:
      summary: Get one pack
      description: "Fetches a pack by id with its full contents: funnels, pages,
        flows, and affiliated offers (with commission and affiliation state).
        Read this before append/remove or before sharing."
      operationId: packsGet
      tags:
        - packs
      parameters:
        - in: query
          name: packId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PacksGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /packs/import-preview:
    get:
      summary: Preview a pack import
      description: "Returns what would be created if the pack were imported:
        funnels/pages/flows/offers and the dependencies that need resolution
        (provider channels, lists, external page URLs). Read before
        `packs_import`."
      operationId: packsImportPreview
      tags:
        - packs
      parameters:
        - in: query
          name: packId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PacksImportPreviewOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /packs/snapshot-get:
    get:
      summary: Get a pack snapshot status
      description: "Returns the gate status and validation issues of a snapshot
        version: `draft`, `validating` (gate running async), `valid`,
        `warnings`, or `blocked`. Poll this after `packs_snapshot_publish` until
        it leaves `validating`. funnels4 only."
      operationId: packsSnapshotGet
      tags:
        - packs
      parameters:
        - in: query
          name: packId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: version
          required: true
          schema:
            type: integer
            minimum: 1
            maximum: 9007199254740991
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PacksSnapshotGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /packs/snapshot-drift:
    get:
      summary: Check pack snapshot drift
      description: Reports whether the pack source (funnels/pages/flows) changed since
        the latest snapshot was taken, plus the latest snapshot version.
        `drifted=true` means you should `packs_resnapshot` before sharing.
        funnels4 only.
      operationId: packsSnapshotDrift
      tags:
        - packs
      parameters:
        - in: query
          name: packId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PacksSnapshotDriftOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /packs/imported-list:
    get:
      summary: List imported packs
      description: Returns paginated records of packs this workspace imported, with
        import status (`pending`, `success`, `partial`, `failed`) and the
        destination project. Use to track an in-flight `packs_import`.
      operationId: packsImportedList
      tags:
        - packs
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: projectId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PacksImportedListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /packs/imported-get:
    get:
      summary: Get one imported pack
      description: Fetches a single imported-pack record by id, including the
        per-asset status (pages/funnels/flows/offers). Use to inspect a
        `partial`/`failed` import.
      operationId: packsImportedGet
      tags:
        - packs
      parameters:
        - in: query
          name: packId
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PacksImportedGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /packs/create:
    post:
      summary: Create a pack
      description: Creates an empty pack in a project. Requires `projectId` and
        `name`; `description`, `category`, `level`, `thumbnailUrl`, and
        `funnelsEngine` (funnels3/funnels4) are optional. Add contents afterward
        with `packs_append`.
      operationId: packsCreate
      tags:
        - packs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PacksCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PacksCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /packs/update:
    post:
      summary: Update pack metadata
      description: Updates pack metadata (name, description, category, level,
        thumbnail, active state, etc.). Does not change pack contents — use
        `packs_append`/`packs_remove` for that.
      operationId: packsUpdate
      tags:
        - packs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PacksUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PacksUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /packs/append:
    post:
      summary: Add contents to a pack
      description: Adds funnels, pages, flows, and/or offers to a pack. For funnels4,
        `funnelModes` chooses per-funnel `full` (pages + automations) or
        `skeleton` (structure only); `includeProducts` also affiliates the
        funnel offers. Appending changes the source → run `packs_resnapshot`
        before re-sharing.
      operationId: packsAppend
      tags:
        - packs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PacksAppendInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PacksAppendOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /packs/remove:
    post:
      summary: Remove contents from a pack
      description: Removes funnels, pages, flows, and/or offers from a pack. Removing
        changes the source → run `packs_resnapshot` before re-sharing.
      operationId: packsRemove
      tags:
        - packs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PacksRemoveInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PacksRemoveOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /packs/commission-update:
    post:
      summary: Set an offer commission in a pack
      description: Updates the affiliate commission for one offer in a pack. Identify
        the offer by `packId` + `offerId`; `commission` is the affiliate's
        percentage.
      operationId: packsCommissionUpdate
      tags:
        - packs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PacksCommissionUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PacksUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /packs/affiliation-offer-update:
    post:
      summary: Update a pack offer affiliation
      description: "Updates a pack offer affiliation: its `commission` and/or
        `isActive` flag. Identify the offer by `packId` + `offerId`. Inactive
        affiliations block sharing (the snapshot gate flags `offer_inactive`)."
      operationId: packsAffiliationOfferUpdate
      tags:
        - packs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PacksAffiliationOfferUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PacksUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /packs/delete:
    delete:
      summary: Delete a pack
      description: Permanently deletes a pack (soft-delete of the pack record).
        Destructive; the pack stops being importable. Does not delete the
        underlying funnels/pages/flows it referenced.
      operationId: packsDelete
      tags:
        - packs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PacksDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PacksDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /packs/resnapshot:
    post:
      summary: Re-snapshot a pack
      description: Generates a new immutable snapshot version from the pack current
        contents. Run after editing the pack (or when `packs_snapshot_drift`
        reports `drifted`) and before `packs_snapshot_publish`. funnels4 only.
      operationId: packsResnapshot
      tags:
        - packs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PacksResnapshotInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PacksResnapshotOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /packs/snapshot-publish:
    post:
      summary: Publish (share) a pack snapshot
      description: Runs the publication gate on a snapshot version and, if it passes,
        promotes it as the importable (shared) version. The gate validates
        referential integrity, media/blobs, and offer affiliation, then runs a
        dry-run hydration. Returns immediately with `validating`; poll
        `packs_snapshot_get` until `valid`/`warnings` (publishable) or
        `blocked`. funnels4 only.
      operationId: packsSnapshotPublish
      tags:
        - packs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PacksSnapshotPublishInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PacksSnapshotPublishOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /packs/import:
    post:
      summary: Import a pack
      description: "Imports a published pack into a destination `projectId`, cloning
        its funnels/pages/flows and affiliating its offers. Heavy operation that
        creates assets and runs asynchronously: returns an import `id` whose
        progress is tracked via `packs_imported_get`. Pass
        `resolutions`/`externalPageUrls`/`overrideFlowsIds` for dependencies the
        preview flagged; unresolved deps yield a `partial` import. Read
        `packs_import_preview` first."
      operationId: packsImport
      tags:
        - packs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PacksImportInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PacksImportOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /projects/filters:
    get:
      summary: List lightweight project filters
      description: Returns a lightweight list of workspace projects with id, name,
        slug, image icon URL, and active status. Use for selection/autocomplete
        flows.
      operationId: projectsFilters
      tags:
        - projects
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectsFiltersOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /projects/list:
    get:
      summary: List workspace projects
      description: Returns paginated workspace projects with dependency metrics and
        filters such as search, active state, import state, and ordering.
      operationId: projectsList
      tags:
        - projects
      parameters:
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: number
            minimum: 1
        - in: query
          name: perPage
          required: false
          schema:
            default: 10
            type: number
            minimum: 1
            maximum: 2000
        - in: query
          name: search
          required: false
          schema:
            type: string
        - in: query
          name: isActive
          required: false
          schema:
            default: true
            type: boolean
        - in: query
          name: isImported
          required: false
          schema:
            type: boolean
        - in: query
          name: orderBy
          required: false
          schema:
            default: createdAt
            type: string
            enum:
              - active
              - name
              - slug
              - createdAt
        - in: query
          name: orderByMode
          required: false
          schema:
            default: desc
            type: string
            enum:
              - asc
              - desc
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /projects/get:
    get:
      summary: Get one project by slug
      description: Fetches a single project by slug, including dependency counts for
        pages, funnels, and cloakers.
      operationId: projectsGet
      tags:
        - projects
      parameters:
        - in: query
          name: slug
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectsGetOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /projects/create:
    post:
      summary: Create a new project
      description: Creates a new project from `projectName`. The backend generates a
        unique slug automatically.
      operationId: projectsCreate
      tags:
        - projects
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProjectsCreateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectsCreateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /projects/update:
    post:
      summary: Rename a project
      description: Updates the display name of an existing project identified by slug.
      operationId: projectsUpdate
      tags:
        - projects
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProjectsUpdateInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectsUpdateOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /projects/set-default:
    post:
      summary: Set the default project
      description: Sets the workspace default project by slug. Returns whether the
        slug existed and was applied.
      operationId: projectsSetDefault
      tags:
        - projects
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProjectsSetDefaultInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectsSetDefaultOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /projects/delete:
    delete:
      summary: Delete a project
      description: Deletes a project by slug. This is broad cleanup that can cascade
        across related project assets and should be used cautiously.
      operationId: projectsDelete
      tags:
        - projects
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProjectsDeleteInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectsDeleteOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /vturb/status:
    get:
      summary: Check the Vturb integration status
      description: "Read-only. Tells whether this workspace has a Vturb account
        connected (`connected`) plus the integration summary (`status`:
        pending/active/invalid, `lastValidatedAt`, `createdAt`). CALL THIS FIRST
        before any other vturb_* tool: every metric tool fails with a
        precondition error when there is no connection. When `connected` is
        false, do NOT ask the user for an API key here — no tool accepts it.
        Instead tell them to connect in the Clickmax app under Integrações →
        Explorar integrações → Vturb, where they paste the API key; the Vturb
        block in the page editor offers the same thing as a shortcut while
        building a page. When `status` is `invalid` the key was revoked or
        expired at Vturb and must be replaced in that same Integrações screen.
        Each workspace can have exactly one Vturb account."
      operationId: vturbStatus
      tags:
        - vturb
      parameters: []
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VturbStatusOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /vturb/players-list:
    get:
      summary: List Vturb videos (players)
      description: 'Read-only. Lists the videos (players) of the connected Vturb
        account with `id`, `name`, `duration` (seconds), `pitchTime` (the second
        where the offer is made) and `posterUrl`. Use it to resolve a video the
        user names in prose ("minha VSL principal") into the `playerId` required
        by `vturb_player_stats` and `vturb_player_live_users` — those tools only
        accept ids, so this is the mandatory second step after `vturb_status`.
        `pitchTime` vs `duration` matters when judging metrics: engagement is
        measured up to the pitch, so a pitch late in the video mechanically
        lowers it.'
      operationId: vturbPlayersList
      tags:
        - vturb
      parameters: []
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VturbPlayersListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /vturb/player-stats:
    get:
      summary: Get performance metrics for a Vturb video
      description: 'Read-only. Core VSL performance metrics for one video over a date
        range: `plays`, `uniqueDevices`, `finishes`, `clicks`, `conversions`,
        plus the rates `conversionRate`, `playRate` and `engagementRate`. Use
        for any "how is my VSL doing / is it converting / where am I losing
        people" question. RATES ARE FRACTIONS (0.42 = 42%) — multiply by 100
        before showing them. `playRate` = who pressed play over who loaded the
        page; `engagementRate` = average watch time up to `pitchTime`, so read
        it together with the `pitchTime`/`duration` from `vturb_players_list`.
        `conversionRate` here is conversions over plays as tracked BY VTURB, so
        it can diverge from Clickmax sales data — never present the two as the
        same number. Data is cached ~5 min upstream, so it is not real-time; for
        that use `vturb_player_live_users`.'
      operationId: vturbPlayerStats
      tags:
        - vturb
      parameters:
        - in: query
          name: playerId
          required: true
          schema:
            type: string
            minLength: 1
            maxLength: 128
        - in: query
          name: startDate
          required: true
          schema:
            type: string
            format: date
            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
        - in: query
          name: endDate
          required: true
          schema:
            type: string
            format: date
            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
        - in: query
          name: videoDuration
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 9007199254740991
        - in: query
          name: pitchTime
          required: false
          schema:
            type: integer
            minimum: 0
            maximum: 9007199254740991
        - in: query
          name: timezone
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VturbPlayerStatsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /vturb/player-live-users:
    get:
      summary: Get live viewers of a Vturb video
      description: 'Read-only. Near-real-time audience for one video: `total` viewers
        plus a `byDomain` breakdown, counting people who ENTERED the page in the
        last `minutes` window (default 60) — it does not prove they are still
        watching, so phrase it as "entraram nos últimos N minutos", never "estão
        assistindo agora". Use for "quantas pessoas estão na minha VSL agora" or
        to confirm a launch/campaign is receiving traffic. For performance
        analysis over a period use `vturb_player_stats` instead.'
      operationId: vturbPlayerLiveUsers
      tags:
        - vturb
      parameters:
        - in: query
          name: playerId
          required: true
          schema:
            type: string
            minLength: 1
            maxLength: 128
        - in: query
          name: minutes
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 1440
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VturbPlayerLiveUsersOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /vturb/ab-tests-list:
    get:
      summary: List Vturb A/B tests
      description: 'Read-only. Lists the A/B tests (Vturb calls them comparison
        groups) of the connected account: `id`, `name`, `variants` (each with
        `playerId`, `trafficPercentage`, `locked`), `startedAt`, `finishedAt`
        and `running`. Use it to answer "qual variante ganhou / meu teste A/B
        está rodando" and to get the `abTestId` + `playerId`s required by
        `vturb_ab_test_stats`. `running: true` means the test is STILL SPLITTING
        TRAFFIC — report partial numbers as a trend, never as a final winner.
        Optional `startDate`/`endDate` filter by when the test was CREATED, not
        by the metric window.'
      operationId: vturbAbTestsList
      tags:
        - vturb
      parameters:
        - in: query
          name: startDate
          required: false
          schema:
            type: string
            format: date
            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
        - in: query
          name: endDate
          required: false
          schema:
            type: string
            format: date
            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
        - in: query
          name: timezone
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VturbAbTestsListOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /vturb/ab-test-stats:
    post:
      summary: Compare variants of a Vturb A/B test
      description: "Read-only. Side-by-side metrics for the variants of one A/B test —
        the tool that actually picks a winner. Pass `abTestId` and up to 2
        `playerIds` (both from `vturb_ab_tests_list`; the upstream compares at
        most 2 per call). Returns per variant: `views`, `plays`, `finishes`,
        `clicks`, `conversions`, the rates
        `playRate`/`conversionRate`/`engagementRate`/`pitchRetentionRate` (ALL
        fractions 0..1 — multiply by 100), `revenue` and `revenuePerVisitor` in
        usd/brl/eur, plus `retentionCurve` (viewers still watching at each
        second). DECIDE BY `revenuePerVisitor`, not by `conversionRate`: a
        variant can convert less and still earn more per visitor. Omit
        `startDate`/`endDate` to let each variant use its own start in the test
        — the fair window when variants entered at different times. Use
        `retentionCurve` to find where viewers drop off and to choose the second
        for the progressive-reveal CTA."
      operationId: vturbAbTestStats
      tags:
        - vturb
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/VturbAbTestStatsInput"
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VturbAbTestStatsOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
  /whoami/whoami:
    get:
      summary: Get current Clickmax identity
      description: "Returns a compact snapshot of the authenticated Clickmax user and
        the current workspace context for this MCP session, plus `sender` — the
        identity to use whenever THIS USER is the sender of something a
        lead/customer sees (email logo and footer address, page/proposal
        branding): `sender.logoUrl` (workspace brand logo, else profile photo),
        `sender.name` (business name, else the person's name) and
        `sender.addressLine` (business name + registered address). Use these
        instead of any Clickmax logo/address; a null field means the account has
        not set it — say so instead of inventing one."
      operationId: whoami
      tags:
        - whoami
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WhoamiOutput"
        4XX:
          description: Invalid request input
        5XX:
          description: Internal or upstream service error
components:
  schemas:
    AnalyticsDashboardsCatalogOutput:
      type: object
      properties:
        groups:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              label:
                type: string
            required:
              - id
              - label
            additionalProperties: false
        widgets:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              group:
                type: string
              label:
                type: string
              description:
                type: string
              config:
                type: object
                properties:
                  entity:
                    type: string
                    enum:
                      - deal
                      - activity
                      - lead
                      - meeting
                  reportType:
                    type: string
                    enum:
                      - performance
                      - conversion
                      - duration
                      - progress
                      - products
                      - ticket
                      - completion
                      - overdue
                      - stagetime
                      - funnel
                      - stageConversion
                      - forecast
                      - forecastUpcoming
                      - stageflow
                      - teamOverview
                      - followup
                      - lossBreakdown
                      - leadTime
                      - meetingHandoff
                  measure:
                    type: string
                    enum:
                      - count
                      - value
                  viewBy:
                    type: string
                    enum:
                      - created
                      - won
                      - lost
                      - scheduled
                      - awaiting
                      - held
                      - noShow
                      - meetingOutcomes
                  interval:
                    type: string
                    enum:
                      - daily
                      - weekly
                      - monthly
                  segmentBy:
                    type: string
                    enum:
                      - none
                      - status
                      - pipeline
                      - stage
                      - attendant
                      - scheduler
                      - temperature
                      - priority
                      - type
                      - origin
                      - product
                      - lossReason
                      - customField
                      - tag
                      - cardTag
                      - utmSource
                      - utmMedium
                      - utmCampaign
                      - utmContent
                      - utmTerm
                      - captureLink
                  chartType:
                    type: string
                    enum:
                      - bar
                      - line
                      - pie
                      - number
                      - ranking
                      - list
                      - table
                      - pace
                      - tracking
                  segmentOverTime:
                    type: boolean
                  scopeCustomFieldId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  scopeCustomFieldValue:
                    type: string
                    maxLength: 500
                  scopeTagIds:
                    maxItems: 8
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                required:
                  - entity
                  - reportType
                  - measure
                  - viewBy
                  - interval
                  - segmentBy
                  - chartType
                additionalProperties: false
            required:
              - id
              - group
              - label
              - description
              - config
            additionalProperties: false
        templates:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              description:
                type: string
              widgets:
                type: array
                items:
                  type: object
                  properties:
                    entity:
                      type: string
                      enum:
                        - deal
                        - activity
                        - lead
                        - meeting
                    reportType:
                      type: string
                      enum:
                        - performance
                        - conversion
                        - duration
                        - progress
                        - products
                        - ticket
                        - completion
                        - overdue
                        - stagetime
                        - funnel
                        - stageConversion
                        - forecast
                        - forecastUpcoming
                        - stageflow
                        - teamOverview
                        - followup
                        - lossBreakdown
                        - leadTime
                        - meetingHandoff
                    measure:
                      type: string
                      enum:
                        - count
                        - value
                    viewBy:
                      type: string
                      enum:
                        - created
                        - won
                        - lost
                        - scheduled
                        - awaiting
                        - held
                        - noShow
                        - meetingOutcomes
                    interval:
                      type: string
                      enum:
                        - daily
                        - weekly
                        - monthly
                    segmentBy:
                      type: string
                      enum:
                        - none
                        - status
                        - pipeline
                        - stage
                        - attendant
                        - scheduler
                        - temperature
                        - priority
                        - type
                        - origin
                        - product
                        - lossReason
                        - customField
                        - tag
                        - cardTag
                        - utmSource
                        - utmMedium
                        - utmCampaign
                        - utmContent
                        - utmTerm
                        - captureLink
                    chartType:
                      type: string
                      enum:
                        - bar
                        - line
                        - pie
                        - number
                        - ranking
                        - list
                        - table
                        - pace
                        - tracking
                    segmentOverTime:
                      type: boolean
                    scopeCustomFieldId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    scopeCustomFieldValue:
                      type: string
                      maxLength: 500
                    scopeTagIds:
                      maxItems: 8
                      type: array
                      items:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    title:
                      type: string
                    heading:
                      type: string
                    size:
                      type: object
                      properties:
                        w:
                          type: integer
                          minimum: 3
                          maximum: 12
                        h:
                          type: integer
                          minimum: 1
                          maximum: 8
                      required:
                        - w
                        - h
                      additionalProperties: false
                  required:
                    - entity
                    - reportType
                    - measure
                    - viewBy
                    - interval
                    - segmentBy
                    - chartType
                  additionalProperties: false
            required:
              - id
              - name
              - description
              - widgets
            additionalProperties: false
        limits:
          type: object
          properties:
            dashboards:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            widgetsPerDashboard:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
          required:
            - dashboards
            - widgetsPerDashboard
          additionalProperties: false
      required:
        - groups
        - widgets
        - templates
        - limits
      additionalProperties: false
    AnalyticsDashboardsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              config:
                type: object
                properties:
                  widgets:
                    maxItems: 40
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        title:
                          type: string
                          maxLength: 255
                        heading:
                          type: string
                          maxLength: 255
                        entity:
                          type: string
                          enum:
                            - deal
                            - activity
                            - lead
                            - meeting
                        reportType:
                          type: string
                          enum:
                            - performance
                            - conversion
                            - duration
                            - progress
                            - products
                            - ticket
                            - completion
                            - overdue
                            - stagetime
                            - funnel
                            - stageConversion
                            - forecast
                            - forecastUpcoming
                            - stageflow
                            - teamOverview
                            - followup
                            - lossBreakdown
                            - leadTime
                            - meetingHandoff
                        measure:
                          type: string
                          enum:
                            - count
                            - value
                        viewBy:
                          type: string
                          enum:
                            - created
                            - won
                            - lost
                            - scheduled
                            - awaiting
                            - held
                            - noShow
                            - meetingOutcomes
                        interval:
                          type: string
                          enum:
                            - daily
                            - weekly
                            - monthly
                        segmentBy:
                          type: string
                          enum:
                            - none
                            - status
                            - pipeline
                            - stage
                            - attendant
                            - scheduler
                            - temperature
                            - priority
                            - type
                            - origin
                            - product
                            - lossReason
                            - customField
                            - tag
                            - cardTag
                            - utmSource
                            - utmMedium
                            - utmCampaign
                            - utmContent
                            - utmTerm
                            - captureLink
                        chartType:
                          type: string
                          enum:
                            - bar
                            - line
                            - pie
                            - number
                            - ranking
                            - list
                            - table
                            - pace
                            - tracking
                        pipelineId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        cutStageId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        customFieldId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        tagIds:
                          maxItems: 8
                          type: array
                          items:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        segmentOverTime:
                          type: boolean
                        scopeCustomFieldId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        scopeCustomFieldValue:
                          type: string
                          maxLength: 500
                        scopeTagIds:
                          maxItems: 8
                          type: array
                          items:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        scopeCardCustomFieldId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        scopeCardCustomFieldValue:
                          type: string
                          maxLength: 500
                        scopeCardTagIds:
                          maxItems: 8
                          type: array
                          items:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        meetingAttendantField:
                          type: string
                          enum:
                            - attendant
                            - scheduler
                        distinctByOpportunity:
                          type: boolean
                        leadTimeDateFrom:
                          anyOf:
                            - type: string
                              format: date-time
                              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            - type: "null"
                        leadTimeDateTo:
                          anyOf:
                            - type: string
                              format: date-time
                              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            - type: "null"
                        businessDaysOnly:
                          type: boolean
                        scopeAttendantIds:
                          maxItems: 40
                          type: array
                          items:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        teamColumns:
                          maxItems: 30
                          type: array
                          items:
                            type: string
                            maxLength: 40
                        teamFormulas:
                          maxItems: 5
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 40
                              label:
                                type: string
                                minLength: 1
                                maxLength: 40
                              left:
                                type: string
                                minLength: 1
                                maxLength: 40
                              op:
                                type: string
                                enum:
                                  - divide
                                  - multiply
                                  - add
                                  - subtract
                              right:
                                type: string
                                minLength: 1
                                maxLength: 40
                              format:
                                type: string
                                enum:
                                  - ratio
                                  - percent
                                  - number
                                  - money
                            required:
                              - id
                              - label
                              - left
                              - op
                              - right
                              - format
                            additionalProperties: false
                        barGrouped:
                          type: boolean
                        teamGoalColumn:
                          type: string
                          maxLength: 40
                        size:
                          type: object
                          properties:
                            w:
                              type: integer
                              minimum: 3
                              maximum: 12
                            h:
                              type: integer
                              minimum: 1
                              maximum: 8
                          required:
                            - w
                            - h
                          additionalProperties: false
                      required:
                        - id
                        - entity
                        - reportType
                        - measure
                        - viewBy
                        - interval
                        - segmentBy
                        - chartType
                      additionalProperties: false
                  filters:
                    type: object
                    properties:
                      pipelineIds:
                        maxItems: 100
                        type: array
                        items:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      stageIds:
                        maxItems: 100
                        type: array
                        items:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      attendantIds:
                        maxItems: 100
                        type: array
                        items:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      statuses:
                        maxItems: 3
                        type: array
                        items:
                          type: string
                          enum:
                            - open
                            - won
                            - lost
                      temperatures:
                        maxItems: 4
                        type: array
                        items:
                          type: string
                          enum:
                            - hot
                            - warm
                            - cold
                            - frozen
                      priorities:
                        maxItems: 4
                        type: array
                        items:
                          type: string
                          enum:
                            - high
                            - medium
                            - low
                            - none
                      taskStatuses:
                        maxItems: 4
                        type: array
                        items:
                          type: string
                          enum:
                            - open
                            - scheduled
                            - resolved
                            - cancelled
                      taskTypes:
                        maxItems: 4
                        type: array
                        items:
                          type: string
                          enum:
                            - call
                            - whatsapp
                            - meeting
                            - task
                      origins:
                        maxItems: 100
                        type: array
                        items:
                          type: string
                          maxLength: 255
                      dateFrom:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          - type: "null"
                      dateTo:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          - type: "null"
                      valueMin:
                        anyOf:
                          - type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          - type: "null"
                      valueMax:
                        anyOf:
                          - type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          - type: "null"
                    additionalProperties: false
                  periodPreset:
                    type: string
                    enum:
                      - all
                      - today
                      - yesterday
                      - last24h
                      - last7d
                      - last14d
                      - last30d
                      - last90d
                      - currentMonth
                      - month
                      - custom
                  showGoals:
                    type: boolean
                  conditions:
                    maxItems: 200
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          anyOf:
                            - type: string
                              format: uuid
                              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                            - type: "null"
                        field:
                          type: string
                          enum:
                            - title
                            - value
                            - isRecurring
                            - priority
                            - temperature
                            - status
                            - origin
                            - referredBy
                            - lossReason
                            - createdAt
                            - updatedAt
                            - expectedClosingDate
                            - wonAt
                            - lostAt
                            - productId
                            - offerId
                            - pipelineId
                            - stageId
                            - funnelId
                            - responsibleAttendantId
                            - tagId
                            - attendantId
                            - companyId
                            - leadId
                            - customFieldText
                            - customFieldNumber
                            - customFieldDate
                            - customFieldBoolean
                            - customFieldSelect
                            - taskStatus
                            - taskType
                            - taskDeadline
                            - hasOpenTask
                            - children
                            - lead
                        operator:
                          type: string
                          enum:
                            - childrenAnd
                            - childrenOr
                            - equals
                            - contains
                            - startsWith
                            - endsWith
                            - greaterThan
                            - greaterThanOrEqual
                            - lessThan
                            - lessThanOrEqual
                            - in
                            - isNotEmpty
                        negation:
                          type: boolean
                        parentId:
                          anyOf:
                            - type: string
                              format: uuid
                              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                            - type: "null"
                        order:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        valueString:
                          anyOf:
                            - type: string
                            - type: "null"
                        valueNumber:
                          anyOf:
                            - type: number
                            - type: "null"
                        valueDate:
                          anyOf:
                            - type: string
                            - type: "null"
                        valueBool:
                          anyOf:
                            - type: boolean
                            - type: "null"
                        valueUuid:
                          anyOf:
                            - type: string
                              format: uuid
                              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                            - type: "null"
                        customFieldId:
                          anyOf:
                            - type: string
                              format: uuid
                              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                            - type: "null"
                      required:
                        - field
                        - operator
                        - negation
                        - order
                      additionalProperties: false
                  live:
                    type: object
                    properties:
                      enabled:
                        type: boolean
                      triggers:
                        maxItems: 10
                        type: array
                        items:
                          type: string
                          enum:
                            - lead-created
                            - deal-created
                            - deal-won
                            - deal-lost
                            - meeting-scheduled
                    required:
                      - enabled
                      - triggers
                    additionalProperties: false
                required:
                  - widgets
                  - filters
                additionalProperties: false
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - id
              - name
              - config
              - ownerId
              - createdAt
              - updatedAt
            additionalProperties: false
        meta:
          type: object
          properties:
            count:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            limit:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
          required:
            - count
            - limit
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    AnalyticsDashboardsCreateFromTemplateInput:
      type: object
      properties:
        templateId:
          type: string
          minLength: 1
        name:
          type: string
          minLength: 1
          maxLength: 255
        pipelineId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - templateId
    AnalyticsDashboardsCreateFromTemplateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
        config:
          type: object
          properties:
            widgets:
              maxItems: 40
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  title:
                    type: string
                    maxLength: 255
                  heading:
                    type: string
                    maxLength: 255
                  entity:
                    type: string
                    enum:
                      - deal
                      - activity
                      - lead
                      - meeting
                  reportType:
                    type: string
                    enum:
                      - performance
                      - conversion
                      - duration
                      - progress
                      - products
                      - ticket
                      - completion
                      - overdue
                      - stagetime
                      - funnel
                      - stageConversion
                      - forecast
                      - forecastUpcoming
                      - stageflow
                      - teamOverview
                      - followup
                      - lossBreakdown
                      - leadTime
                      - meetingHandoff
                  measure:
                    type: string
                    enum:
                      - count
                      - value
                  viewBy:
                    type: string
                    enum:
                      - created
                      - won
                      - lost
                      - scheduled
                      - awaiting
                      - held
                      - noShow
                      - meetingOutcomes
                  interval:
                    type: string
                    enum:
                      - daily
                      - weekly
                      - monthly
                  segmentBy:
                    type: string
                    enum:
                      - none
                      - status
                      - pipeline
                      - stage
                      - attendant
                      - scheduler
                      - temperature
                      - priority
                      - type
                      - origin
                      - product
                      - lossReason
                      - customField
                      - tag
                      - cardTag
                      - utmSource
                      - utmMedium
                      - utmCampaign
                      - utmContent
                      - utmTerm
                      - captureLink
                  chartType:
                    type: string
                    enum:
                      - bar
                      - line
                      - pie
                      - number
                      - ranking
                      - list
                      - table
                      - pace
                      - tracking
                  pipelineId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  cutStageId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  customFieldId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  tagIds:
                    maxItems: 8
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  segmentOverTime:
                    type: boolean
                  scopeCustomFieldId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  scopeCustomFieldValue:
                    type: string
                    maxLength: 500
                  scopeTagIds:
                    maxItems: 8
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  scopeCardCustomFieldId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  scopeCardCustomFieldValue:
                    type: string
                    maxLength: 500
                  scopeCardTagIds:
                    maxItems: 8
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  meetingAttendantField:
                    type: string
                    enum:
                      - attendant
                      - scheduler
                  distinctByOpportunity:
                    type: boolean
                  leadTimeDateFrom:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: "null"
                  leadTimeDateTo:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: "null"
                  businessDaysOnly:
                    type: boolean
                  scopeAttendantIds:
                    maxItems: 40
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  teamColumns:
                    maxItems: 30
                    type: array
                    items:
                      type: string
                      maxLength: 40
                  teamFormulas:
                    maxItems: 5
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          minLength: 1
                          maxLength: 40
                        label:
                          type: string
                          minLength: 1
                          maxLength: 40
                        left:
                          type: string
                          minLength: 1
                          maxLength: 40
                        op:
                          type: string
                          enum:
                            - divide
                            - multiply
                            - add
                            - subtract
                        right:
                          type: string
                          minLength: 1
                          maxLength: 40
                        format:
                          type: string
                          enum:
                            - ratio
                            - percent
                            - number
                            - money
                      required:
                        - id
                        - label
                        - left
                        - op
                        - right
                        - format
                      additionalProperties: false
                  barGrouped:
                    type: boolean
                  teamGoalColumn:
                    type: string
                    maxLength: 40
                  size:
                    type: object
                    properties:
                      w:
                        type: integer
                        minimum: 3
                        maximum: 12
                      h:
                        type: integer
                        minimum: 1
                        maximum: 8
                    required:
                      - w
                      - h
                    additionalProperties: false
                required:
                  - id
                  - entity
                  - reportType
                  - measure
                  - viewBy
                  - interval
                  - segmentBy
                  - chartType
                additionalProperties: false
            filters:
              type: object
              properties:
                pipelineIds:
                  maxItems: 100
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                stageIds:
                  maxItems: 100
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                attendantIds:
                  maxItems: 100
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                statuses:
                  maxItems: 3
                  type: array
                  items:
                    type: string
                    enum:
                      - open
                      - won
                      - lost
                temperatures:
                  maxItems: 4
                  type: array
                  items:
                    type: string
                    enum:
                      - hot
                      - warm
                      - cold
                      - frozen
                priorities:
                  maxItems: 4
                  type: array
                  items:
                    type: string
                    enum:
                      - high
                      - medium
                      - low
                      - none
                taskStatuses:
                  maxItems: 4
                  type: array
                  items:
                    type: string
                    enum:
                      - open
                      - scheduled
                      - resolved
                      - cancelled
                taskTypes:
                  maxItems: 4
                  type: array
                  items:
                    type: string
                    enum:
                      - call
                      - whatsapp
                      - meeting
                      - task
                origins:
                  maxItems: 100
                  type: array
                  items:
                    type: string
                    maxLength: 255
                dateFrom:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    - type: "null"
                dateTo:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    - type: "null"
                valueMin:
                  anyOf:
                    - type: integer
                      minimum: -9007199254740991
                      maximum: 9007199254740991
                    - type: "null"
                valueMax:
                  anyOf:
                    - type: integer
                      minimum: -9007199254740991
                      maximum: 9007199254740991
                    - type: "null"
              additionalProperties: false
            periodPreset:
              type: string
              enum:
                - all
                - today
                - yesterday
                - last24h
                - last7d
                - last14d
                - last30d
                - last90d
                - currentMonth
                - month
                - custom
            showGoals:
              type: boolean
            conditions:
              maxItems: 200
              type: array
              items:
                type: object
                properties:
                  id:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  field:
                    type: string
                    enum:
                      - title
                      - value
                      - isRecurring
                      - priority
                      - temperature
                      - status
                      - origin
                      - referredBy
                      - lossReason
                      - createdAt
                      - updatedAt
                      - expectedClosingDate
                      - wonAt
                      - lostAt
                      - productId
                      - offerId
                      - pipelineId
                      - stageId
                      - funnelId
                      - responsibleAttendantId
                      - tagId
                      - attendantId
                      - companyId
                      - leadId
                      - customFieldText
                      - customFieldNumber
                      - customFieldDate
                      - customFieldBoolean
                      - customFieldSelect
                      - taskStatus
                      - taskType
                      - taskDeadline
                      - hasOpenTask
                      - children
                      - lead
                  operator:
                    type: string
                    enum:
                      - childrenAnd
                      - childrenOr
                      - equals
                      - contains
                      - startsWith
                      - endsWith
                      - greaterThan
                      - greaterThanOrEqual
                      - lessThan
                      - lessThanOrEqual
                      - in
                      - isNotEmpty
                  negation:
                    type: boolean
                  parentId:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  order:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  valueString:
                    anyOf:
                      - type: string
                      - type: "null"
                  valueNumber:
                    anyOf:
                      - type: number
                      - type: "null"
                  valueDate:
                    anyOf:
                      - type: string
                      - type: "null"
                  valueBool:
                    anyOf:
                      - type: boolean
                      - type: "null"
                  valueUuid:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  customFieldId:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                required:
                  - field
                  - operator
                  - negation
                  - order
                additionalProperties: false
            live:
              type: object
              properties:
                enabled:
                  type: boolean
                triggers:
                  maxItems: 10
                  type: array
                  items:
                    type: string
                    enum:
                      - lead-created
                      - deal-created
                      - deal-won
                      - deal-lost
                      - meeting-scheduled
              required:
                - enabled
                - triggers
              additionalProperties: false
          required:
            - widgets
            - filters
          additionalProperties: false
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - name
        - config
        - ownerId
        - createdAt
        - updatedAt
      additionalProperties: false
    AnalyticsDashboardsComposeInput:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
        sections:
          minItems: 1
          maxItems: 12
          type: array
          items:
            type: object
            properties:
              heading:
                type: string
                minLength: 1
                maxLength: 255
              widgets:
                maxItems: 40
                type: array
                items:
                  type: object
                  properties:
                    presetId:
                      type: string
                      minLength: 1
                    widget:
                      type: object
                      properties:
                        entity:
                          type: string
                          enum:
                            - deal
                            - activity
                            - lead
                            - meeting
                        reportType:
                          type: string
                          enum:
                            - performance
                            - conversion
                            - duration
                            - progress
                            - products
                            - ticket
                            - completion
                            - overdue
                            - stagetime
                            - funnel
                            - stageConversion
                            - forecast
                            - forecastUpcoming
                            - stageflow
                            - teamOverview
                            - followup
                            - lossBreakdown
                            - leadTime
                            - meetingHandoff
                        measure:
                          type: string
                          enum:
                            - count
                            - value
                        viewBy:
                          type: string
                          enum:
                            - created
                            - won
                            - lost
                            - scheduled
                            - awaiting
                            - held
                            - noShow
                            - meetingOutcomes
                        interval:
                          type: string
                          enum:
                            - daily
                            - weekly
                            - monthly
                        segmentBy:
                          type: string
                          enum:
                            - none
                            - status
                            - pipeline
                            - stage
                            - attendant
                            - scheduler
                            - temperature
                            - priority
                            - type
                            - origin
                            - product
                            - lossReason
                            - customField
                            - tag
                            - cardTag
                            - utmSource
                            - utmMedium
                            - utmCampaign
                            - utmContent
                            - utmTerm
                            - captureLink
                        chartType:
                          type: string
                          enum:
                            - bar
                            - line
                            - pie
                            - number
                            - ranking
                            - list
                            - table
                            - pace
                            - tracking
                        segmentOverTime:
                          type: boolean
                        scopeCustomFieldId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        scopeCustomFieldValue:
                          type: string
                          maxLength: 500
                        scopeTagIds:
                          maxItems: 8
                          type: array
                          items:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      required:
                        - entity
                        - reportType
                        - measure
                        - viewBy
                        - interval
                        - segmentBy
                        - chartType
                    title:
                      type: string
                      maxLength: 255
                    pipelineId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    size:
                      type: object
                      properties:
                        w:
                          type: integer
                          minimum: 3
                          maximum: 12
                        h:
                          type: integer
                          minimum: 1
                          maximum: 8
                      required:
                        - w
                        - h
                    customFieldId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    tagIds:
                      maxItems: 8
                      type: array
                      items:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            required:
              - widgets
        pipelineId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        filters:
          type: object
          properties:
            pipelineIds:
              maxItems: 100
              type: array
              items:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            stageIds:
              maxItems: 100
              type: array
              items:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            attendantIds:
              maxItems: 100
              type: array
              items:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            statuses:
              maxItems: 3
              type: array
              items:
                type: string
                enum:
                  - open
                  - won
                  - lost
            temperatures:
              maxItems: 4
              type: array
              items:
                type: string
                enum:
                  - hot
                  - warm
                  - cold
                  - frozen
            priorities:
              maxItems: 4
              type: array
              items:
                type: string
                enum:
                  - high
                  - medium
                  - low
                  - none
            taskStatuses:
              maxItems: 4
              type: array
              items:
                type: string
                enum:
                  - open
                  - scheduled
                  - resolved
                  - cancelled
            taskTypes:
              maxItems: 4
              type: array
              items:
                type: string
                enum:
                  - call
                  - whatsapp
                  - meeting
                  - task
            origins:
              maxItems: 100
              type: array
              items:
                type: string
                maxLength: 255
            dateFrom:
              anyOf:
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                - type: "null"
            dateTo:
              anyOf:
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                - type: "null"
            valueMin:
              anyOf:
                - type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                - type: "null"
            valueMax:
              anyOf:
                - type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                - type: "null"
        periodPreset:
          type: string
          enum:
            - all
            - today
            - yesterday
            - last24h
            - last7d
            - last14d
            - last30d
            - last90d
            - currentMonth
            - month
            - custom
        showGoals:
          type: boolean
        conditions:
          maxItems: 200
          type: array
          items:
            type: object
            properties:
              id:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              field:
                type: string
                enum:
                  - title
                  - value
                  - isRecurring
                  - priority
                  - temperature
                  - status
                  - origin
                  - referredBy
                  - lossReason
                  - createdAt
                  - updatedAt
                  - expectedClosingDate
                  - wonAt
                  - lostAt
                  - productId
                  - offerId
                  - pipelineId
                  - stageId
                  - funnelId
                  - responsibleAttendantId
                  - tagId
                  - attendantId
                  - companyId
                  - leadId
                  - customFieldText
                  - customFieldNumber
                  - customFieldDate
                  - customFieldBoolean
                  - customFieldSelect
                  - taskStatus
                  - taskType
                  - taskDeadline
                  - hasOpenTask
                  - children
                  - lead
              operator:
                type: string
                enum:
                  - childrenAnd
                  - childrenOr
                  - equals
                  - contains
                  - startsWith
                  - endsWith
                  - greaterThan
                  - greaterThanOrEqual
                  - lessThan
                  - lessThanOrEqual
                  - in
                  - isNotEmpty
              negation:
                type: boolean
              parentId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              order:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              valueString:
                anyOf:
                  - type: string
                  - type: "null"
              valueNumber:
                anyOf:
                  - type: number
                  - type: "null"
              valueDate:
                anyOf:
                  - type: string
                  - type: "null"
              valueBool:
                anyOf:
                  - type: boolean
                  - type: "null"
              valueUuid:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              customFieldId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
            required:
              - field
              - operator
              - negation
              - order
        autoSize:
          type: boolean
      required:
        - name
        - sections
    AnalyticsDashboardsCreateInput:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
        config:
          type: object
          properties:
            widgets:
              maxItems: 40
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  title:
                    type: string
                    maxLength: 255
                  heading:
                    type: string
                    maxLength: 255
                  entity:
                    type: string
                    enum:
                      - deal
                      - activity
                      - lead
                      - meeting
                  reportType:
                    type: string
                    enum:
                      - performance
                      - conversion
                      - duration
                      - progress
                      - products
                      - ticket
                      - completion
                      - overdue
                      - stagetime
                      - funnel
                      - stageConversion
                      - forecast
                      - forecastUpcoming
                      - stageflow
                      - teamOverview
                      - followup
                      - lossBreakdown
                      - leadTime
                      - meetingHandoff
                  measure:
                    type: string
                    enum:
                      - count
                      - value
                  viewBy:
                    type: string
                    enum:
                      - created
                      - won
                      - lost
                      - scheduled
                      - awaiting
                      - held
                      - noShow
                      - meetingOutcomes
                  interval:
                    type: string
                    enum:
                      - daily
                      - weekly
                      - monthly
                  segmentBy:
                    type: string
                    enum:
                      - none
                      - status
                      - pipeline
                      - stage
                      - attendant
                      - scheduler
                      - temperature
                      - priority
                      - type
                      - origin
                      - product
                      - lossReason
                      - customField
                      - tag
                      - cardTag
                      - utmSource
                      - utmMedium
                      - utmCampaign
                      - utmContent
                      - utmTerm
                      - captureLink
                  chartType:
                    type: string
                    enum:
                      - bar
                      - line
                      - pie
                      - number
                      - ranking
                      - list
                      - table
                      - pace
                      - tracking
                  pipelineId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  cutStageId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  customFieldId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  tagIds:
                    maxItems: 8
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  segmentOverTime:
                    type: boolean
                  scopeCustomFieldId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  scopeCustomFieldValue:
                    type: string
                    maxLength: 500
                  scopeTagIds:
                    maxItems: 8
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  scopeCardCustomFieldId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  scopeCardCustomFieldValue:
                    type: string
                    maxLength: 500
                  scopeCardTagIds:
                    maxItems: 8
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  meetingAttendantField:
                    type: string
                    enum:
                      - attendant
                      - scheduler
                  distinctByOpportunity:
                    type: boolean
                  leadTimeDateFrom:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: "null"
                  leadTimeDateTo:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: "null"
                  businessDaysOnly:
                    type: boolean
                  scopeAttendantIds:
                    maxItems: 40
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  teamColumns:
                    maxItems: 30
                    type: array
                    items:
                      type: string
                      maxLength: 40
                  teamFormulas:
                    maxItems: 5
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          minLength: 1
                          maxLength: 40
                        label:
                          type: string
                          minLength: 1
                          maxLength: 40
                        left:
                          type: string
                          minLength: 1
                          maxLength: 40
                        op:
                          type: string
                          enum:
                            - divide
                            - multiply
                            - add
                            - subtract
                        right:
                          type: string
                          minLength: 1
                          maxLength: 40
                        format:
                          type: string
                          enum:
                            - ratio
                            - percent
                            - number
                            - money
                      required:
                        - id
                        - label
                        - left
                        - op
                        - right
                        - format
                  barGrouped:
                    type: boolean
                  teamGoalColumn:
                    type: string
                    maxLength: 40
                  size:
                    type: object
                    properties:
                      w:
                        type: integer
                        minimum: 3
                        maximum: 12
                      h:
                        type: integer
                        minimum: 1
                        maximum: 8
                    required:
                      - w
                      - h
                required:
                  - id
                  - entity
                  - reportType
                  - measure
                  - viewBy
                  - interval
                  - segmentBy
                  - chartType
            filters:
              type: object
              properties:
                pipelineIds:
                  maxItems: 100
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                stageIds:
                  maxItems: 100
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                attendantIds:
                  maxItems: 100
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                statuses:
                  maxItems: 3
                  type: array
                  items:
                    type: string
                    enum:
                      - open
                      - won
                      - lost
                temperatures:
                  maxItems: 4
                  type: array
                  items:
                    type: string
                    enum:
                      - hot
                      - warm
                      - cold
                      - frozen
                priorities:
                  maxItems: 4
                  type: array
                  items:
                    type: string
                    enum:
                      - high
                      - medium
                      - low
                      - none
                taskStatuses:
                  maxItems: 4
                  type: array
                  items:
                    type: string
                    enum:
                      - open
                      - scheduled
                      - resolved
                      - cancelled
                taskTypes:
                  maxItems: 4
                  type: array
                  items:
                    type: string
                    enum:
                      - call
                      - whatsapp
                      - meeting
                      - task
                origins:
                  maxItems: 100
                  type: array
                  items:
                    type: string
                    maxLength: 255
                dateFrom:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    - type: "null"
                dateTo:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    - type: "null"
                valueMin:
                  anyOf:
                    - type: integer
                      minimum: -9007199254740991
                      maximum: 9007199254740991
                    - type: "null"
                valueMax:
                  anyOf:
                    - type: integer
                      minimum: -9007199254740991
                      maximum: 9007199254740991
                    - type: "null"
            periodPreset:
              type: string
              enum:
                - all
                - today
                - yesterday
                - last24h
                - last7d
                - last14d
                - last30d
                - last90d
                - currentMonth
                - month
                - custom
            showGoals:
              type: boolean
            conditions:
              maxItems: 200
              type: array
              items:
                type: object
                properties:
                  id:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  field:
                    type: string
                    enum:
                      - title
                      - value
                      - isRecurring
                      - priority
                      - temperature
                      - status
                      - origin
                      - referredBy
                      - lossReason
                      - createdAt
                      - updatedAt
                      - expectedClosingDate
                      - wonAt
                      - lostAt
                      - productId
                      - offerId
                      - pipelineId
                      - stageId
                      - funnelId
                      - responsibleAttendantId
                      - tagId
                      - attendantId
                      - companyId
                      - leadId
                      - customFieldText
                      - customFieldNumber
                      - customFieldDate
                      - customFieldBoolean
                      - customFieldSelect
                      - taskStatus
                      - taskType
                      - taskDeadline
                      - hasOpenTask
                      - children
                      - lead
                  operator:
                    type: string
                    enum:
                      - childrenAnd
                      - childrenOr
                      - equals
                      - contains
                      - startsWith
                      - endsWith
                      - greaterThan
                      - greaterThanOrEqual
                      - lessThan
                      - lessThanOrEqual
                      - in
                      - isNotEmpty
                  negation:
                    type: boolean
                  parentId:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  order:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  valueString:
                    anyOf:
                      - type: string
                      - type: "null"
                  valueNumber:
                    anyOf:
                      - type: number
                      - type: "null"
                  valueDate:
                    anyOf:
                      - type: string
                      - type: "null"
                  valueBool:
                    anyOf:
                      - type: boolean
                      - type: "null"
                  valueUuid:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  customFieldId:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                required:
                  - field
                  - operator
                  - negation
                  - order
            live:
              type: object
              properties:
                enabled:
                  type: boolean
                triggers:
                  maxItems: 10
                  type: array
                  items:
                    type: string
                    enum:
                      - lead-created
                      - deal-created
                      - deal-won
                      - deal-lost
                      - meeting-scheduled
              required:
                - enabled
                - triggers
          required:
            - widgets
            - filters
      required:
        - name
        - config
    AnalyticsDashboardsUpdateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          minLength: 1
          maxLength: 255
        config:
          type: object
          properties:
            widgets:
              maxItems: 40
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  title:
                    type: string
                    maxLength: 255
                  heading:
                    type: string
                    maxLength: 255
                  entity:
                    type: string
                    enum:
                      - deal
                      - activity
                      - lead
                      - meeting
                  reportType:
                    type: string
                    enum:
                      - performance
                      - conversion
                      - duration
                      - progress
                      - products
                      - ticket
                      - completion
                      - overdue
                      - stagetime
                      - funnel
                      - stageConversion
                      - forecast
                      - forecastUpcoming
                      - stageflow
                      - teamOverview
                      - followup
                      - lossBreakdown
                      - leadTime
                      - meetingHandoff
                  measure:
                    type: string
                    enum:
                      - count
                      - value
                  viewBy:
                    type: string
                    enum:
                      - created
                      - won
                      - lost
                      - scheduled
                      - awaiting
                      - held
                      - noShow
                      - meetingOutcomes
                  interval:
                    type: string
                    enum:
                      - daily
                      - weekly
                      - monthly
                  segmentBy:
                    type: string
                    enum:
                      - none
                      - status
                      - pipeline
                      - stage
                      - attendant
                      - scheduler
                      - temperature
                      - priority
                      - type
                      - origin
                      - product
                      - lossReason
                      - customField
                      - tag
                      - cardTag
                      - utmSource
                      - utmMedium
                      - utmCampaign
                      - utmContent
                      - utmTerm
                      - captureLink
                  chartType:
                    type: string
                    enum:
                      - bar
                      - line
                      - pie
                      - number
                      - ranking
                      - list
                      - table
                      - pace
                      - tracking
                  pipelineId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  cutStageId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  customFieldId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  tagIds:
                    maxItems: 8
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  segmentOverTime:
                    type: boolean
                  scopeCustomFieldId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  scopeCustomFieldValue:
                    type: string
                    maxLength: 500
                  scopeTagIds:
                    maxItems: 8
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  scopeCardCustomFieldId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  scopeCardCustomFieldValue:
                    type: string
                    maxLength: 500
                  scopeCardTagIds:
                    maxItems: 8
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  meetingAttendantField:
                    type: string
                    enum:
                      - attendant
                      - scheduler
                  distinctByOpportunity:
                    type: boolean
                  leadTimeDateFrom:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: "null"
                  leadTimeDateTo:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: "null"
                  businessDaysOnly:
                    type: boolean
                  scopeAttendantIds:
                    maxItems: 40
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  teamColumns:
                    maxItems: 30
                    type: array
                    items:
                      type: string
                      maxLength: 40
                  teamFormulas:
                    maxItems: 5
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          minLength: 1
                          maxLength: 40
                        label:
                          type: string
                          minLength: 1
                          maxLength: 40
                        left:
                          type: string
                          minLength: 1
                          maxLength: 40
                        op:
                          type: string
                          enum:
                            - divide
                            - multiply
                            - add
                            - subtract
                        right:
                          type: string
                          minLength: 1
                          maxLength: 40
                        format:
                          type: string
                          enum:
                            - ratio
                            - percent
                            - number
                            - money
                      required:
                        - id
                        - label
                        - left
                        - op
                        - right
                        - format
                  barGrouped:
                    type: boolean
                  teamGoalColumn:
                    type: string
                    maxLength: 40
                  size:
                    type: object
                    properties:
                      w:
                        type: integer
                        minimum: 3
                        maximum: 12
                      h:
                        type: integer
                        minimum: 1
                        maximum: 8
                    required:
                      - w
                      - h
                required:
                  - id
                  - entity
                  - reportType
                  - measure
                  - viewBy
                  - interval
                  - segmentBy
                  - chartType
            filters:
              type: object
              properties:
                pipelineIds:
                  maxItems: 100
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                stageIds:
                  maxItems: 100
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                attendantIds:
                  maxItems: 100
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                statuses:
                  maxItems: 3
                  type: array
                  items:
                    type: string
                    enum:
                      - open
                      - won
                      - lost
                temperatures:
                  maxItems: 4
                  type: array
                  items:
                    type: string
                    enum:
                      - hot
                      - warm
                      - cold
                      - frozen
                priorities:
                  maxItems: 4
                  type: array
                  items:
                    type: string
                    enum:
                      - high
                      - medium
                      - low
                      - none
                taskStatuses:
                  maxItems: 4
                  type: array
                  items:
                    type: string
                    enum:
                      - open
                      - scheduled
                      - resolved
                      - cancelled
                taskTypes:
                  maxItems: 4
                  type: array
                  items:
                    type: string
                    enum:
                      - call
                      - whatsapp
                      - meeting
                      - task
                origins:
                  maxItems: 100
                  type: array
                  items:
                    type: string
                    maxLength: 255
                dateFrom:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    - type: "null"
                dateTo:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    - type: "null"
                valueMin:
                  anyOf:
                    - type: integer
                      minimum: -9007199254740991
                      maximum: 9007199254740991
                    - type: "null"
                valueMax:
                  anyOf:
                    - type: integer
                      minimum: -9007199254740991
                      maximum: 9007199254740991
                    - type: "null"
            periodPreset:
              type: string
              enum:
                - all
                - today
                - yesterday
                - last24h
                - last7d
                - last14d
                - last30d
                - last90d
                - currentMonth
                - month
                - custom
            showGoals:
              type: boolean
            conditions:
              maxItems: 200
              type: array
              items:
                type: object
                properties:
                  id:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  field:
                    type: string
                    enum:
                      - title
                      - value
                      - isRecurring
                      - priority
                      - temperature
                      - status
                      - origin
                      - referredBy
                      - lossReason
                      - createdAt
                      - updatedAt
                      - expectedClosingDate
                      - wonAt
                      - lostAt
                      - productId
                      - offerId
                      - pipelineId
                      - stageId
                      - funnelId
                      - responsibleAttendantId
                      - tagId
                      - attendantId
                      - companyId
                      - leadId
                      - customFieldText
                      - customFieldNumber
                      - customFieldDate
                      - customFieldBoolean
                      - customFieldSelect
                      - taskStatus
                      - taskType
                      - taskDeadline
                      - hasOpenTask
                      - children
                      - lead
                  operator:
                    type: string
                    enum:
                      - childrenAnd
                      - childrenOr
                      - equals
                      - contains
                      - startsWith
                      - endsWith
                      - greaterThan
                      - greaterThanOrEqual
                      - lessThan
                      - lessThanOrEqual
                      - in
                      - isNotEmpty
                  negation:
                    type: boolean
                  parentId:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  order:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  valueString:
                    anyOf:
                      - type: string
                      - type: "null"
                  valueNumber:
                    anyOf:
                      - type: number
                      - type: "null"
                  valueDate:
                    anyOf:
                      - type: string
                      - type: "null"
                  valueBool:
                    anyOf:
                      - type: boolean
                      - type: "null"
                  valueUuid:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  customFieldId:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                required:
                  - field
                  - operator
                  - negation
                  - order
            live:
              type: object
              properties:
                enabled:
                  type: boolean
                triggers:
                  maxItems: 10
                  type: array
                  items:
                    type: string
                    enum:
                      - lead-created
                      - deal-created
                      - deal-won
                      - deal-lost
                      - meeting-scheduled
              required:
                - enabled
                - triggers
          required:
            - widgets
            - filters
      required:
        - id
    AnalyticsDashboardsDeleteInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    AnalyticsDashboardsDeleteOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    AnalyticsDashboardsSettingsUpdateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        filters:
          type: object
          properties:
            pipelineIds:
              maxItems: 100
              type: array
              items:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            stageIds:
              maxItems: 100
              type: array
              items:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            attendantIds:
              maxItems: 100
              type: array
              items:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            statuses:
              maxItems: 3
              type: array
              items:
                type: string
                enum:
                  - open
                  - won
                  - lost
            temperatures:
              maxItems: 4
              type: array
              items:
                type: string
                enum:
                  - hot
                  - warm
                  - cold
                  - frozen
            priorities:
              maxItems: 4
              type: array
              items:
                type: string
                enum:
                  - high
                  - medium
                  - low
                  - none
            taskStatuses:
              maxItems: 4
              type: array
              items:
                type: string
                enum:
                  - open
                  - scheduled
                  - resolved
                  - cancelled
            taskTypes:
              maxItems: 4
              type: array
              items:
                type: string
                enum:
                  - call
                  - whatsapp
                  - meeting
                  - task
            origins:
              maxItems: 100
              type: array
              items:
                type: string
                maxLength: 255
            dateFrom:
              anyOf:
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                - type: "null"
            dateTo:
              anyOf:
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                - type: "null"
            valueMin:
              anyOf:
                - type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                - type: "null"
            valueMax:
              anyOf:
                - type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                - type: "null"
        periodPreset:
          type: string
          enum:
            - all
            - today
            - yesterday
            - last24h
            - last7d
            - last14d
            - last30d
            - last90d
            - currentMonth
            - month
            - custom
        showGoals:
          type: boolean
        conditions:
          maxItems: 200
          type: array
          items:
            type: object
            properties:
              id:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              field:
                type: string
                enum:
                  - title
                  - value
                  - isRecurring
                  - priority
                  - temperature
                  - status
                  - origin
                  - referredBy
                  - lossReason
                  - createdAt
                  - updatedAt
                  - expectedClosingDate
                  - wonAt
                  - lostAt
                  - productId
                  - offerId
                  - pipelineId
                  - stageId
                  - funnelId
                  - responsibleAttendantId
                  - tagId
                  - attendantId
                  - companyId
                  - leadId
                  - customFieldText
                  - customFieldNumber
                  - customFieldDate
                  - customFieldBoolean
                  - customFieldSelect
                  - taskStatus
                  - taskType
                  - taskDeadline
                  - hasOpenTask
                  - children
                  - lead
              operator:
                type: string
                enum:
                  - childrenAnd
                  - childrenOr
                  - equals
                  - contains
                  - startsWith
                  - endsWith
                  - greaterThan
                  - greaterThanOrEqual
                  - lessThan
                  - lessThanOrEqual
                  - in
                  - isNotEmpty
              negation:
                type: boolean
              parentId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              order:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              valueString:
                anyOf:
                  - type: string
                  - type: "null"
              valueNumber:
                anyOf:
                  - type: number
                  - type: "null"
              valueDate:
                anyOf:
                  - type: string
                  - type: "null"
              valueBool:
                anyOf:
                  - type: boolean
                  - type: "null"
              valueUuid:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              customFieldId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
            required:
              - field
              - operator
              - negation
              - order
        live:
          type: object
          properties:
            enabled:
              type: boolean
            triggers:
              maxItems: 10
              type: array
              items:
                type: string
                enum:
                  - lead-created
                  - deal-created
                  - deal-won
                  - deal-lost
                  - meeting-scheduled
          required:
            - enabled
            - triggers
      required:
        - id
    AnalyticsDashboardsWidgetAddInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        presetId:
          type: string
          minLength: 1
        widget:
          type: object
          properties:
            entity:
              type: string
              enum:
                - deal
                - activity
                - lead
                - meeting
            reportType:
              type: string
              enum:
                - performance
                - conversion
                - duration
                - progress
                - products
                - ticket
                - completion
                - overdue
                - stagetime
                - funnel
                - stageConversion
                - forecast
                - forecastUpcoming
                - stageflow
                - teamOverview
                - followup
                - lossBreakdown
                - leadTime
                - meetingHandoff
            measure:
              type: string
              enum:
                - count
                - value
            viewBy:
              type: string
              enum:
                - created
                - won
                - lost
                - scheduled
                - awaiting
                - held
                - noShow
                - meetingOutcomes
            interval:
              type: string
              enum:
                - daily
                - weekly
                - monthly
            segmentBy:
              type: string
              enum:
                - none
                - status
                - pipeline
                - stage
                - attendant
                - scheduler
                - temperature
                - priority
                - type
                - origin
                - product
                - lossReason
                - customField
                - tag
                - cardTag
                - utmSource
                - utmMedium
                - utmCampaign
                - utmContent
                - utmTerm
                - captureLink
            chartType:
              type: string
              enum:
                - bar
                - line
                - pie
                - number
                - ranking
                - list
                - table
                - pace
                - tracking
            segmentOverTime:
              type: boolean
            scopeCustomFieldId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            scopeCustomFieldValue:
              type: string
              maxLength: 500
            scopeTagIds:
              maxItems: 8
              type: array
              items:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          required:
            - entity
            - reportType
            - measure
            - viewBy
            - interval
            - segmentBy
            - chartType
        heading:
          type: string
          minLength: 1
          maxLength: 255
        title:
          type: string
          maxLength: 255
        pipelineId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        position:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        size:
          type: object
          properties:
            w:
              type: integer
              minimum: 3
              maximum: 12
            h:
              type: integer
              minimum: 1
              maximum: 8
          required:
            - w
            - h
        customFieldId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        tagIds:
          maxItems: 8
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    AnalyticsDashboardsWidgetUpdateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        widgetId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        entity:
          type: string
          enum:
            - deal
            - activity
            - lead
            - meeting
        reportType:
          type: string
          enum:
            - performance
            - conversion
            - duration
            - progress
            - products
            - ticket
            - completion
            - overdue
            - stagetime
            - funnel
            - stageConversion
            - forecast
            - forecastUpcoming
            - stageflow
            - teamOverview
            - followup
            - lossBreakdown
            - leadTime
            - meetingHandoff
        measure:
          type: string
          enum:
            - count
            - value
        viewBy:
          type: string
          enum:
            - created
            - won
            - lost
            - scheduled
            - awaiting
            - held
            - noShow
            - meetingOutcomes
        interval:
          type: string
          enum:
            - daily
            - weekly
            - monthly
        segmentBy:
          type: string
          enum:
            - none
            - status
            - pipeline
            - stage
            - attendant
            - scheduler
            - temperature
            - priority
            - type
            - origin
            - product
            - lossReason
            - customField
            - tag
            - cardTag
            - utmSource
            - utmMedium
            - utmCampaign
            - utmContent
            - utmTerm
            - captureLink
        chartType:
          type: string
          enum:
            - bar
            - line
            - pie
            - number
            - ranking
            - list
            - table
            - pace
            - tracking
        segmentOverTime:
          type: boolean
        scopeCustomFieldId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        scopeCustomFieldValue:
          type: string
          maxLength: 500
        scopeTagIds:
          maxItems: 8
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        size:
          type: object
          properties:
            w:
              type: integer
              minimum: 3
              maximum: 12
            h:
              type: integer
              minimum: 1
              maximum: 8
          required:
            - w
            - h
        customFieldId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        tagIds:
          maxItems: 8
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        title:
          type: string
          maxLength: 255
        pipelineId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        heading:
          type: string
          minLength: 1
          maxLength: 255
      required:
        - id
        - widgetId
    AnalyticsDashboardsWidgetRemoveInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        widgetId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
        - widgetId
    AnalyticsDashboardsWidgetMoveInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        widgetId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        position:
          type: integer
          minimum: 0
          maximum: 9007199254740991
      required:
        - id
        - widgetId
        - position
    AnalyticsDashboardsRunInput:
      type: object
      properties:
        viewAsAttendantId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        config:
          type: object
          properties:
            widgets:
              maxItems: 40
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  title:
                    type: string
                    maxLength: 255
                  heading:
                    type: string
                    maxLength: 255
                  entity:
                    type: string
                    enum:
                      - deal
                      - activity
                      - lead
                      - meeting
                  reportType:
                    type: string
                    enum:
                      - performance
                      - conversion
                      - duration
                      - progress
                      - products
                      - ticket
                      - completion
                      - overdue
                      - stagetime
                      - funnel
                      - stageConversion
                      - forecast
                      - forecastUpcoming
                      - stageflow
                      - teamOverview
                      - followup
                      - lossBreakdown
                      - leadTime
                      - meetingHandoff
                  measure:
                    type: string
                    enum:
                      - count
                      - value
                  viewBy:
                    type: string
                    enum:
                      - created
                      - won
                      - lost
                      - scheduled
                      - awaiting
                      - held
                      - noShow
                      - meetingOutcomes
                  interval:
                    type: string
                    enum:
                      - daily
                      - weekly
                      - monthly
                  segmentBy:
                    type: string
                    enum:
                      - none
                      - status
                      - pipeline
                      - stage
                      - attendant
                      - scheduler
                      - temperature
                      - priority
                      - type
                      - origin
                      - product
                      - lossReason
                      - customField
                      - tag
                      - cardTag
                      - utmSource
                      - utmMedium
                      - utmCampaign
                      - utmContent
                      - utmTerm
                      - captureLink
                  chartType:
                    type: string
                    enum:
                      - bar
                      - line
                      - pie
                      - number
                      - ranking
                      - list
                      - table
                      - pace
                      - tracking
                  pipelineId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  cutStageId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  customFieldId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  tagIds:
                    maxItems: 8
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  segmentOverTime:
                    type: boolean
                  scopeCustomFieldId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  scopeCustomFieldValue:
                    type: string
                    maxLength: 500
                  scopeTagIds:
                    maxItems: 8
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  scopeCardCustomFieldId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  scopeCardCustomFieldValue:
                    type: string
                    maxLength: 500
                  scopeCardTagIds:
                    maxItems: 8
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  meetingAttendantField:
                    type: string
                    enum:
                      - attendant
                      - scheduler
                  distinctByOpportunity:
                    type: boolean
                  leadTimeDateFrom:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: "null"
                  leadTimeDateTo:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: "null"
                  businessDaysOnly:
                    type: boolean
                  scopeAttendantIds:
                    maxItems: 40
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  teamColumns:
                    maxItems: 30
                    type: array
                    items:
                      type: string
                      maxLength: 40
                  teamFormulas:
                    maxItems: 5
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          minLength: 1
                          maxLength: 40
                        label:
                          type: string
                          minLength: 1
                          maxLength: 40
                        left:
                          type: string
                          minLength: 1
                          maxLength: 40
                        op:
                          type: string
                          enum:
                            - divide
                            - multiply
                            - add
                            - subtract
                        right:
                          type: string
                          minLength: 1
                          maxLength: 40
                        format:
                          type: string
                          enum:
                            - ratio
                            - percent
                            - number
                            - money
                      required:
                        - id
                        - label
                        - left
                        - op
                        - right
                        - format
                  barGrouped:
                    type: boolean
                  teamGoalColumn:
                    type: string
                    maxLength: 40
                  size:
                    type: object
                    properties:
                      w:
                        type: integer
                        minimum: 3
                        maximum: 12
                      h:
                        type: integer
                        minimum: 1
                        maximum: 8
                    required:
                      - w
                      - h
                required:
                  - id
                  - entity
                  - reportType
                  - measure
                  - viewBy
                  - interval
                  - segmentBy
                  - chartType
            filters:
              type: object
              properties:
                pipelineIds:
                  maxItems: 100
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                stageIds:
                  maxItems: 100
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                attendantIds:
                  maxItems: 100
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                statuses:
                  maxItems: 3
                  type: array
                  items:
                    type: string
                    enum:
                      - open
                      - won
                      - lost
                temperatures:
                  maxItems: 4
                  type: array
                  items:
                    type: string
                    enum:
                      - hot
                      - warm
                      - cold
                      - frozen
                priorities:
                  maxItems: 4
                  type: array
                  items:
                    type: string
                    enum:
                      - high
                      - medium
                      - low
                      - none
                taskStatuses:
                  maxItems: 4
                  type: array
                  items:
                    type: string
                    enum:
                      - open
                      - scheduled
                      - resolved
                      - cancelled
                taskTypes:
                  maxItems: 4
                  type: array
                  items:
                    type: string
                    enum:
                      - call
                      - whatsapp
                      - meeting
                      - task
                origins:
                  maxItems: 100
                  type: array
                  items:
                    type: string
                    maxLength: 255
                dateFrom:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    - type: "null"
                dateTo:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    - type: "null"
                valueMin:
                  anyOf:
                    - type: integer
                      minimum: -9007199254740991
                      maximum: 9007199254740991
                    - type: "null"
                valueMax:
                  anyOf:
                    - type: integer
                      minimum: -9007199254740991
                      maximum: 9007199254740991
                    - type: "null"
            periodPreset:
              type: string
              enum:
                - all
                - today
                - yesterday
                - last24h
                - last7d
                - last14d
                - last30d
                - last90d
                - currentMonth
                - month
                - custom
            showGoals:
              type: boolean
            conditions:
              maxItems: 200
              type: array
              items:
                type: object
                properties:
                  id:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  field:
                    type: string
                    enum:
                      - title
                      - value
                      - isRecurring
                      - priority
                      - temperature
                      - status
                      - origin
                      - referredBy
                      - lossReason
                      - createdAt
                      - updatedAt
                      - expectedClosingDate
                      - wonAt
                      - lostAt
                      - productId
                      - offerId
                      - pipelineId
                      - stageId
                      - funnelId
                      - responsibleAttendantId
                      - tagId
                      - attendantId
                      - companyId
                      - leadId
                      - customFieldText
                      - customFieldNumber
                      - customFieldDate
                      - customFieldBoolean
                      - customFieldSelect
                      - taskStatus
                      - taskType
                      - taskDeadline
                      - hasOpenTask
                      - children
                      - lead
                  operator:
                    type: string
                    enum:
                      - childrenAnd
                      - childrenOr
                      - equals
                      - contains
                      - startsWith
                      - endsWith
                      - greaterThan
                      - greaterThanOrEqual
                      - lessThan
                      - lessThanOrEqual
                      - in
                      - isNotEmpty
                  negation:
                    type: boolean
                  parentId:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  order:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  valueString:
                    anyOf:
                      - type: string
                      - type: "null"
                  valueNumber:
                    anyOf:
                      - type: number
                      - type: "null"
                  valueDate:
                    anyOf:
                      - type: string
                      - type: "null"
                  valueBool:
                    anyOf:
                      - type: boolean
                      - type: "null"
                  valueUuid:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  customFieldId:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                required:
                  - field
                  - operator
                  - negation
                  - order
            live:
              type: object
              properties:
                enabled:
                  type: boolean
                triggers:
                  maxItems: 10
                  type: array
                  items:
                    type: string
                    enum:
                      - lead-created
                      - deal-created
                      - deal-won
                      - deal-lost
                      - meeting-scheduled
              required:
                - enabled
                - triggers
          required:
            - widgets
            - filters
      required:
        - config
    AnalyticsDashboardsRunOutput:
      type: object
      properties:
        widgets:
          type: array
          items:
            type: object
            properties:
              widgetId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              result:
                type: object
                properties:
                  measure:
                    type: string
                    enum:
                      - count
                      - value
                  buckets:
                    type: array
                    items:
                      type: object
                      properties:
                        key:
                          type: string
                        label:
                          type: string
                      required:
                        - key
                        - label
                      additionalProperties: false
                  series:
                    type: array
                    items:
                      type: object
                      properties:
                        key:
                          type: string
                        label:
                          type: string
                        points:
                          type: array
                          items:
                            type: object
                            properties:
                              bucketKey:
                                type: string
                              value:
                                type: number
                            required:
                              - bucketKey
                              - value
                            additionalProperties: false
                      required:
                        - key
                        - label
                        - points
                      additionalProperties: false
                  summary:
                    type: object
                    properties:
                      total:
                        type: number
                      measure:
                        type: string
                        enum:
                          - count
                          - value
                    required:
                      - total
                      - measure
                    additionalProperties: false
                required:
                  - measure
                  - buckets
                  - series
                  - summary
                additionalProperties: false
              status:
                type: string
                enum:
                  - ok
                  - error
              ignoredFilters:
                type: array
                items:
                  type: string
                  enum:
                    - pipelineIds
                    - stageIds
                    - attendantIds
                    - statuses
                    - temperatures
                    - priorities
                    - taskStatuses
                    - taskTypes
                    - origins
                    - dateFrom
                    - dateTo
                    - valueMin
                    - valueMax
              ignoredAdvancedFilter:
                type: boolean
              pace:
                type: object
                properties:
                  target:
                    type: number
                  achieved:
                    type: number
                  achievedPercent:
                    type: number
                  remaining:
                    type: number
                  expectedToday:
                    type: number
                  paceGap:
                    type: number
                  dailyNeeded:
                    anyOf:
                      - type: number
                      - type: "null"
                  projection:
                    anyOf:
                      - type: number
                      - type: "null"
                  status:
                    type: string
                    enum:
                      - ahead
                      - on_track
                      - attention
                      - critical
                required:
                  - target
                  - achieved
                  - achievedPercent
                  - remaining
                  - expectedToday
                  - paceGap
                  - status
                additionalProperties: false
            required:
              - widgetId
              - result
            additionalProperties: false
      required:
        - widgets
      additionalProperties: false
    AnalyticsFunnelInput:
      type: object
      properties:
        funnelIds:
          default: []
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        projectSlugs:
          default: []
          type: array
          items:
            type: string
        startDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        endDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
    AnalyticsFunnelOutput:
      type: object
      properties:
        steps:
          type: object
          properties:
            totalVisitors:
              type: number
            totalLeads:
              type: number
            totalMessagesSent:
              type: number
            totalEngagedContacts:
              type: number
            totalOfferViews:
              type: number
            totalProductsSold:
              type: number
            totalInSales:
              type: number
            averageTicket:
              type: number
          required:
            - totalVisitors
            - totalLeads
            - totalMessagesSent
            - totalEngagedContacts
            - totalOfferViews
            - totalProductsSold
            - totalInSales
            - averageTicket
          additionalProperties: false
        stats:
          type: object
          properties:
            totalVisitors:
              type: number
            totalLeads:
              type: number
            totalMessagesSent:
              type: number
            totalEngagedContacts:
              type: number
            totalOfferViews:
              type: number
            totalProductsSold:
              type: number
            totalInSales:
              type: number
            averageTicket:
              type: number
          required:
            - totalVisitors
            - totalLeads
            - totalMessagesSent
            - totalEngagedContacts
            - totalOfferViews
            - totalProductsSold
            - totalInSales
            - averageTicket
          additionalProperties: false
        salesHistory:
          type: array
          items:
            type: object
            properties:
              label:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              leads:
                type: number
              transactions:
                type: number
              messagesSent:
                type: number
              averageTicket:
                type: number
            required:
              - label
              - leads
              - transactions
              - messagesSent
              - averageTicket
            additionalProperties: false
        contactFunnel:
          type: object
          properties:
            totalContacts:
              type: number
            engagedContacts:
              type: number
            buyers:
              type: number
            stages:
              type: object
              properties:
                captured:
                  type: number
                engaged:
                  type: number
                salesActivity:
                  type: number
                purchased:
                  type: number
              required:
                - captured
                - engaged
                - salesActivity
                - purchased
              additionalProperties: false
            history:
              type: array
              items:
                type: object
                properties:
                  label:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  totalContacts:
                    type: number
                  engagedContacts:
                    type: number
                  buyers:
                    type: number
                required:
                  - label
                  - totalContacts
                  - engagedContacts
                  - buyers
                additionalProperties: false
          required:
            - totalContacts
            - engagedContacts
            - buyers
            - stages
            - history
          additionalProperties: false
      required:
        - steps
        - stats
        - salesHistory
        - contactFunnel
      additionalProperties: false
    AnalyticsTotalSalesInput:
      type: object
      properties:
        projectSlugs:
          default: []
          type: array
          items:
            type: string
        startDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        endDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
    AnalyticsTotalSalesOutput:
      type: object
      properties:
        totalProductsSold:
          type: number
        totalInSales:
          type: number
        totalExternalSales:
          type: number
        totalRevenue:
          type: number
        externalBreakdown:
          type: array
          items:
            type: object
            properties:
              platform:
                type: string
              total:
                type: number
            required:
              - platform
              - total
            additionalProperties: false
      required:
        - totalProductsSold
        - totalInSales
        - totalExternalSales
        - totalRevenue
        - externalBreakdown
      additionalProperties: false
    AnalyticsRecentActivitiesInput:
      type: object
      properties:
        page:
          default: 1
          type: number
          minimum: 1
        perPage:
          default: 10
          type: number
          minimum: 1
          maximum: 2000
        search:
          type: string
          minLength: 1
          maxLength: 200
        categories:
          type: array
          items:
            type: string
            enum:
              - Lead
              - Tag
              - Email
              - Chat
              - Checkout
              - PageView
              - Cart
              - PaymentFailedOrExpired
              - MemberArea
              - Opportunity
        eventName:
          type: array
          items:
            anyOf:
              - type: string
                enum:
                  - members.area.accessed.v1
              - type: string
                enum:
                  - members.banner.clicked.v1
              - type: string
                enum:
                  - members.lesson.completed.v1
              - type: string
                enum:
                  - members.module.completed.v1
              - type: string
                enum:
                  - members.course.completed.v1
              - type: string
                enum:
                  - checkout.transaction.created.v1
              - type: string
                enum:
                  - checkout.transaction.paid.v1
              - type: string
                enum:
                  - checkout.trial.started.v1
              - type: string
                enum:
                  - checkout.transaction.error.v1
              - type: string
                enum:
                  - checkout.page.access.v1
              - type: string
                enum:
                  - checkout.subscription.created.v1
              - type: string
                enum:
                  - checkout.boleto.generated.v1
              - type: string
                enum:
                  - checkout.pix.generated.v1
              - type: string
                enum:
                  - checkout.chargeback.requested.v1
              - type: string
                enum:
                  - checkout.refund.requested.v1
              - type: string
                enum:
                  - checkout.subscription.card.changed.v1
              - type: string
                enum:
                  - checkout.subscription.canceled.v1
              - type: string
                enum:
                  - cx.subscription.cancellation.requested.v1
              - type: string
                enum:
                  - cx.subscription.canceled.v1
              - type: string
                enum:
                  - cx.subscription.cancellation.reverted.v1
              - type: string
                enum:
                  - trial.expired.v1
              - type: string
                enum:
                  - cart.abandonment.v1
              - type: string
                enum:
                  - overdue.boleto.v1
              - type: string
                enum:
                  - pix.expired.v1
              - type: string
                enum:
                  - card.refused.v1
              - type: string
                enum:
                  - checkout.attempt.v1
              - type: string
                enum:
                  - crm.lead.submission.created.v1
              - type: string
                enum:
                  - crm.tag.lead.apply.v1
              - type: string
                enum:
                  - crm.tag.lead.remove.v1
              - type: string
                enum:
                  - crm.lead.created.v1
              - type: string
                enum:
                  - crm.lead.birthday.reminder.v1
              - type: string
                enum:
                  - crm.lead.captured.v1
              - type: string
                enum:
                  - crm.lead.manual.updated.v1
              - type: string
                enum:
                  - crm.lead.upsert.v2
              - type: string
                enum:
                  - crm.lead.message.preferences.update.v1
              - type: string
                enum:
                  - crm.scheduling.booked.v1
              - type: string
                enum:
                  - crm.scheduling.rescheduled.v1
              - type: string
                enum:
                  - crm.scheduling.confirmed.v1
              - type: string
                enum:
                  - crm.scheduling.completed.v1
              - type: string
                enum:
                  - crm.scheduling.no_show.v1
              - type: string
                enum:
                  - crm.scheduling.cancelled.v1
              - type: string
                enum:
                  - crm.scheduling.recording.available.v1
              - type: string
                enum:
                  - crm.opportunity.card.created.v1
              - type: string
                enum:
                  - crm.opportunity.card.moved.v1
              - type: string
                enum:
                  - crm.opportunity.card.updated.v1
              - type: string
                enum:
                  - crm.opportunity.card.attendants.assigned.v1
              - type: string
                enum:
                  - hermes.email.delivered.v1
              - type: string
                enum:
                  - hermes.email.failed.v1
              - type: string
                enum:
                  - hermes.email.opened.v1
              - type: string
                enum:
                  - hermes.telegram.chat.start.v1
              - type: string
                enum:
                  - hermes.gupshup.interaction.template.button.v1
              - type: string
                enum:
                  - flow.conversation-silent-triggers.activated.v1
              - type: string
                enum:
                  - flow.whatsapp-window-triggers.activated.v1
              - type: string
                enum:
                  - hermes.email.message.status.v1
              - type: string
                enum:
                  - hermes.message.received.v1
              - type: string
                enum:
                  - hermes.webchat.message.received.v1
              - type: string
                enum:
                  - hermes.webchat.handoff.requested.v1
              - type: string
                enum:
                  - hermes.telegram.message.received.v1
              - type: string
                enum:
                  - hermes.telegram.message.status.v1
              - type: string
                enum:
                  - hermes.gupshup.interaction.message.received.v1
              - type: string
                enum:
                  - hermes.instagram.message.received.v1
              - type: string
                enum:
                  - hermes.instagram.message.sent.v1
              - type: string
                enum:
                  - hermes.instagram.message.status.v1
              - type: string
                enum:
                  - hermes.instagram.comment.received.v1
              - type: string
                enum:
                  - hermes.instagram.story.reply.received.v1
              - type: string
                enum:
                  - hermes.gupshup.media.recovered.v1
              - type: string
                enum:
                  - hermes.telegram.media.recovered.v1
              - type: string
                enum:
                  - hermes.instagram.media.recovered.v1
              - type: string
                enum:
                  - hermes.gupshup.message.status.v1
              - type: string
                enum:
                  - hermes.gupshup.message.echo.v1
              - type: string
                enum:
                  - hermes.livechat.audio.transcribed.v1
              - type: string
                enum:
                  - hermes.livechat.template.send.failed.v1
              - type: string
                enum:
                  - hermes.flow.ghost.created.v1
              - type: string
                enum:
                  - hermes.thread.message.mirrored.v1
              - type: string
                enum:
                  - hermes.thread.reaction.updated.v1
              - type: string
                enum:
                  - hermes.livechat.app.health.changed.v1
              - type: string
                enum:
                  - flow.instagram-window-triggers.activated.v1
              - type: string
                enum:
                  - hermes.instagram.interaction.button.v1
              - type: string
                enum:
                  - hermes.voice.call.completed.v1
              - type: string
                enum:
                  - hermes.voice.call.recording.available.v1
              - type: string
                enum:
                  - hermes.voice.call.disposition.updated.v1
              - type: string
                enum:
                  - flow.triggered.v1
              - type: string
                enum:
                  - external.sale.paid.v1
              - type: string
                enum:
                  - crm.opportunity.card.attendants.updated.v1
              - type: string
                enum:
                  - crm.opportunity.card.status.changed.v1
              - type: string
                enum:
                  - crm.opportunity.card.responsible.changed.v1
              - type: string
                enum:
                  - crm.opportunity.card.archived.v1
              - type: string
                enum:
                  - crm.opportunity.card.contact.linked.v1
              - type: string
                enum:
                  - crm.opportunity.card.contact.unlinked.v1
              - type: string
                enum:
                  - crm.opportunity.card.company.linked.v1
              - type: string
                enum:
                  - crm.opportunity.card.company.unlinked.v1
              - type: string
                enum:
                  - crm.opportunity.card.attachment.added.v1
              - type: string
                enum:
                  - crm.opportunity.card.attachment.removed.v1
              - type: string
                enum:
                  - crm.opportunity.card.commission.changed.v1
              - type: string
                enum:
                  - crm.opportunity.card.custom_field.changed.v1
              - type: string
                enum:
                  - meet.report.ready.v1
              - type: string
                enum:
                  - hubla.purchase.approved.v1
              - type: string
                enum:
                  - hubla.refund.v1
              - type: string
                enum:
                  - hubla.cart.abandonment.v1
              - type: string
                enum:
                  - hubla.payment.failed.v1
              - type: string
                enum:
                  - hubla.invoice.expired.v1
              - type: string
                enum:
                  - hubla.subscription.created.v1
              - type: string
                enum:
                  - hubla.subscription.canceled.v1
              - type: string
                enum:
                  - kirvano.purchase.approved.v1
              - type: string
                enum:
                  - kirvano.payment.failed.v1
              - type: string
                enum:
                  - kirvano.refund.v1
              - type: string
                enum:
                  - kirvano.chargeback.v1
              - type: string
                enum:
                  - kirvano.cart.abandonment.v1
              - type: string
                enum:
                  - kirvano.pix.generated.v1
              - type: string
                enum:
                  - kirvano.pix.expired.v1
              - type: string
                enum:
                  - kirvano.boleto.generated.v1
              - type: string
                enum:
                  - kirvano.boleto.expired.v1
              - type: string
                enum:
                  - kirvano.subscription.created.v1
              - type: string
                enum:
                  - kirvano.subscription.renewed.v1
              - type: string
                enum:
                  - kirvano.subscription.canceled.v1
              - type: string
                enum:
                  - kirvano.subscription.expired.v1
              - type: string
                enum:
                  - hotmart.purchase.approved.v1
              - type: string
                enum:
                  - hotmart.purchase.refunded.v1
              - type: string
                enum:
                  - hotmart.purchase.chargeback.v1
              - type: string
                enum:
                  - hotmart.purchase.canceled.v1
              - type: string
                enum:
                  - hotmart.purchase.expired.v1
              - type: string
                enum:
                  - hotmart.purchase.delayed.v1
              - type: string
                enum:
                  - hotmart.billet.printed.v1
              - type: string
                enum:
                  - hotmart.cart.abandonment.v1
              - type: string
                enum:
                  - hotmart.subscription.canceled.v1
              - type: string
                enum:
                  - hotmart.subscription.switch.v1
              - type: string
                enum:
                  - hotmart.club.first.access.v1
              - type: string
                enum:
                  - hotmart.club.module.completed.v1
              - type: string
                enum:
                  - guru.subscription.active.v1
              - type: string
                enum:
                  - guru.subscription.past_due.v1
              - type: string
                enum:
                  - guru.subscription.canceled.v1
              - type: string
                enum:
                  - guru.subscription.expired.v1
              - type: string
                enum:
                  - guru.subscription.trial.v1
              - type: string
                enum:
                  - guru.cart.abandonment.v1
              - type: string
                enum:
                  - guru.transaction.waiting_payment.v1
              - type: string
                enum:
                  - guru.transaction.approved.v1
              - type: string
                enum:
                  - guru.transaction.delayed.v1
              - type: string
                enum:
                  - guru.transaction.blocked.v1
              - type: string
                enum:
                  - guru.transaction.billet_printed.v1
              - type: string
                enum:
                  - guru.transaction.canceled.v1
              - type: string
                enum:
                  - guru.transaction.analyzing.v1
              - type: string
                enum:
                  - guru.transaction.recovering.v1
              - type: string
                enum:
                  - guru.transaction.expired.v1
              - type: string
                enum:
                  - guru.transaction.chargeback.v1
              - type: string
                enum:
                  - guru.transaction.refunded.v1
              - type: string
                enum:
                  - guru.transaction.rejected.v1
              - type: string
                enum:
                  - guru.transaction.trial.v1
              - type: string
                enum:
                  - yampi.order.paid.v1
              - type: string
                enum:
                  - yampi.order.created.v1
              - type: string
                enum:
                  - yampi.cart.abandonment.v1
              - type: string
                enum:
                  - yampi.payment.refused.v1
              - type: string
                enum:
                  - yampi.order.refunded.v1
              - type: string
                enum:
                  - yampi.order.canceled.v1
              - type: string
                enum:
                  - ticto-webhook.cart.abandonment.v1
              - type: string
                enum:
                  - ticto-webhook.order.authorized.v1
              - type: string
                enum:
                  - ticto-webhook.order.waiting_payment.v1
              - type: string
                enum:
                  - ticto-webhook.order.refused.v1
              - type: string
                enum:
                  - ticto-webhook.order.refunded.v1
              - type: string
                enum:
                  - ticto-webhook.order.chargeback.v1
              - type: string
                enum:
                  - ticto-webhook.order.claimed.v1
              - type: string
                enum:
                  - ticto-webhook.order.closed.v1
              - type: string
                enum:
                  - ticto-webhook.order.bank_slip_created.v1
              - type: string
                enum:
                  - ticto-webhook.order.bank_slip_delayed.v1
              - type: string
                enum:
                  - ticto-webhook.order.pix_created.v1
              - type: string
                enum:
                  - ticto-webhook.order.pix_expired.v1
              - type: string
                enum:
                  - ticto-webhook.order.trial.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.trial_started.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.trial_ended.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.canceled.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.delayed.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.uncanceled.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.extended.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.card_exchanged.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.all_charges_paid.v1
              - type: string
                enum:
                  - yever.order.created.v1
              - type: string
                enum:
                  - yever.order.paid.v1
              - type: string
                enum:
                  - yever.order.refunded.v1
              - type: string
                enum:
                  - yever.order.charged_back.v1
              - type: string
                enum:
                  - yever.order.canceled.v1
              - type: string
                enum:
                  - yever.order.sent.v1
              - type: string
                enum:
                  - yever.cart.abandonment.v1
              - type: string
                enum:
                  - yever.subscription.created.v1
              - type: string
                enum:
                  - yever.subscription.renewal_succeeded.v1
              - type: string
                enum:
                  - yever.subscription.renewal_failed.v1
              - type: string
                enum:
                  - yever.subscription.active.v1
              - type: string
                enum:
                  - yever.subscription.paused.v1
              - type: string
                enum:
                  - yever.subscription.canceled.v1
              - type: string
                enum:
                  - yever.subscription.finished.v1
              - type: string
                enum:
                  - yever.cashback.created.v1
              - type: string
                enum:
                  - yever.cashback.used.v1
              - type: string
                enum:
                  - yever.cashback.expired.v1
              - type: string
                enum:
                  - yever.cashback.expiring_soon.v1
              - type: string
                enum:
                  - yever.cashback.canceled.v1
              - type: string
                enum:
                  - yever.cashback.restored.v1
              - type: string
                enum:
                  - whop-webhook.payment.created.v1
              - type: string
                enum:
                  - whop-webhook.payment.authorized.v1
              - type: string
                enum:
                  - whop-webhook.payment.pending.v1
              - type: string
                enum:
                  - whop-webhook.payment.succeeded.v1
              - type: string
                enum:
                  - whop-webhook.payment.failed.v1
              - type: string
                enum:
                  - whop-webhook.payment.canceled.v1
              - type: string
                enum:
                  - whop-webhook.refund.created.v1
              - type: string
                enum:
                  - whop-webhook.refund.updated.v1
              - type: string
                enum:
                  - whop-webhook.dispute.created.v1
              - type: string
                enum:
                  - whop-webhook.membership.activated.v1
              - type: string
                enum:
                  - whop-webhook.membership.deactivated.v1
              - type: string
                enum:
                  - whop-webhook.membership.trial_ending_soon.v1
              - type: string
                enum:
                  - whop-webhook.membership.cancel_scheduled.v1
              - type: string
                enum:
                  - whop-webhook.membership.cancel_unscheduled.v1
              - type: string
                enum:
                  - whop-webhook.invoice.created.v1
              - type: string
                enum:
                  - whop-webhook.invoice.paid.v1
              - type: string
                enum:
                  - whop-webhook.invoice.past_due.v1
              - type: string
                enum:
                  - whop-webhook.invoice.marked_uncollectible.v1
              - type: string
                enum:
                  - whop-webhook.invoice.voided.v1
              - type: string
                enum:
                  - lastlink.purchase.approved.v1
              - type: string
                enum:
                  - lastlink.purchase.canceled.v1
              - type: string
                enum:
                  - lastlink.invoice.created.v1
              - type: string
                enum:
                  - lastlink.invoice.expired.v1
              - type: string
                enum:
                  - lastlink.refund.v1
              - type: string
                enum:
                  - lastlink.refund.requested.v1
              - type: string
                enum:
                  - lastlink.refund.period_over.v1
              - type: string
                enum:
                  - lastlink.chargeback.v1
              - type: string
                enum:
                  - lastlink.cart.abandonment.v1
              - type: string
                enum:
                  - lastlink.subscription.renewed.v1
              - type: string
                enum:
                  - lastlink.subscription.renewal_pending.v1
              - type: string
                enum:
                  - lastlink.subscription.canceled.v1
              - type: string
                enum:
                  - lastlink.subscription.expired.v1
              - type: string
                enum:
                  - lastlink.product.access.started.v1
              - type: string
                enum:
                  - lastlink.product.access.ended.v1
              - type: string
                enum:
                  - voomp.sale.paid.v1
              - type: string
                enum:
                  - voomp.sale.refused.v1
              - type: string
                enum:
                  - voomp.sale.refunded.v1
              - type: string
                enum:
                  - voomp.sale.chargeback.v1
              - type: string
                enum:
                  - voomp.sale.unpaid.v1
              - type: string
                enum:
                  - voomp.sale.waiting_payment.v1
              - type: string
                enum:
                  - voomp.sale.due_days.v1
              - type: string
                enum:
                  - voomp.cart.abandonment.v1
              - type: string
                enum:
                  - voomp.subscription.paid.v1
              - type: string
                enum:
                  - voomp.subscription.unpaid.v1
              - type: string
                enum:
                  - voomp.subscription.trialing.v1
              - type: string
                enum:
                  - voomp.subscription.pending_payment.v1
              - type: string
                enum:
                  - voomp.subscription.ended.v1
              - type: string
                enum:
                  - voomp.subscription.canceled.v1
              - type: string
                enum:
                  - asaas.payment.confirmed.v1
              - type: string
                enum:
                  - asaas.payment.received.v1
              - type: string
                enum:
                  - asaas.payment.overdue.v1
              - type: string
                enum:
                  - asaas.payment.refunded.v1
              - type: string
                enum:
                  - asaas.payment.chargeback_requested.v1
              - type: string
                enum:
                  - asaas.payment.credit_card_capture_refused.v1
              - type: string
                enum:
                  - asaas.subscription.created.v1
              - type: string
                enum:
                  - asaas.subscription.inactivated.v1
              - type: string
                enum:
                  - asaas.subscription.deleted.v1
              - type: string
                enum:
                  - tmb.sale.approved.v1
              - type: string
                enum:
                  - tmb.sale.canceled.v1
              - type: string
                enum:
                  - tmb.checkout.installments_selection.v1
              - type: string
                enum:
                  - tmb.checkout.token.v1
              - type: string
                enum:
                  - tmb.checkout.liveness_proof.v1
              - type: string
                enum:
                  - tmb.checkout.documentation_started.v1
              - type: string
                enum:
                  - tmb.checkout.document_attached.v1
              - type: string
                enum:
                  - tmb.checkout.selfie_attached.v1
              - type: string
                enum:
                  - tmb.checkout.address_proof_attached.v1
              - type: string
                enum:
                  - tmb.checkout.awaiting_signature.v1
              - type: string
                enum:
                  - tmb.checkout.awaiting_payment.v1
              - type: string
                enum:
                  - principia.purchase.confirmed.v1
              - type: string
                enum:
                  - principia.purchase.canceled.v1
              - type: string
                enum:
                  - principia.payment.declined.v1
              - type: string
                enum:
                  - principia.financing.denied.v1
              - type: string
                enum:
                  - principia.invoice.created.v1
              - type: string
                enum:
                  - principia.invoice.expired.v1
              - type: string
                enum:
                  - principia.cart.abandonment.v1
              - type: string
                enum:
                  - principia.guarantor.needed.v1
        funnelIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        projectIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offerIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        pageIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        tagIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        messageIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        pipelineIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        flowIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        actorIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        startDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        endDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        isRecurrentOffers:
          type: boolean
    AnalyticsRecentActivitiesOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              leadId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              opportunityId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              leadTaskId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              companyId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              category:
                type: string
              eventName:
                type: string
              isTrigger:
                type: boolean
              funnelId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              projectId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              pageId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              offerId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              productId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              externalProductId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              tagId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              buyerId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              transactionId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              subscriptionId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              messageId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              portalId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              lessonId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              moduleId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              courseId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              flowId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              pipelineId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              meta:
                allOf:
                  - anyOf:
                      - {}
                      - type: "null"
                  - {}
              aggregateId:
                anyOf:
                  - type: string
                  - type: "null"
              version:
                anyOf:
                  - type: number
                  - type: "null"
              actorId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              actorType:
                anyOf:
                  - anyOf:
                      - type: string
                        const: user
                      - type: string
                        const: system
                      - type: string
                        const: automation
                      - type: "null"
                        const: null
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              leadName:
                type: string
              actorName:
                type: string
            required:
              - id
              - ownerId
              - name
              - category
              - eventName
              - isTrigger
              - meta
              - createdAt
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    AnalyticsTopProductsInput:
      type: object
      properties:
        limit:
          default: 5
          type: integer
          minimum: 1
          maximum: 100
        funnelIds:
          default: []
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        startDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        endDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
    AnalyticsTopProductsOutput:
      type: object
      properties:
        totalProductsRegistered:
          type: number
        totalProductsSold:
          type: number
        topProducts:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              totalSales:
                type: number
              yearSales:
                type: number
              lastSaleMonth:
                type: string
              lastSaleYear:
                type: string
              totalNumberSales:
                type: number
            required:
              - name
              - totalSales
              - yearSales
              - lastSaleMonth
              - lastSaleYear
              - totalNumberSales
            additionalProperties: false
      required:
        - totalProductsRegistered
        - totalProductsSold
        - topProducts
      additionalProperties: false
    AnalyticsSalesPagesInput:
      type: object
      properties:
        projectSlugs:
          default: []
          type: array
          items:
            type: string
        funnelIds:
          default: []
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        limit:
          default: 5
          type: number
          minimum: 1
          maximum: 20
    AnalyticsSalesPagesOutput:
      type: object
      properties:
        summary:
          type: object
          properties:
            totalPages:
              type: number
            totalVisits:
              type: number
            averageAccess:
              type: number
          required:
            - totalPages
            - totalVisits
            - averageAccess
          additionalProperties: false
        pages:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              funnelName:
                anyOf:
                  - type: string
                  - type: "null"
              totalVisits:
                type: number
              monthlyViews:
                type: array
                items:
                  type: object
                  properties:
                    label:
                      type: string
                    year:
                      type: number
                    count:
                      type: number
                  required:
                    - label
                    - year
                    - count
                  additionalProperties: false
            required:
              - id
              - name
              - totalVisits
              - monthlyViews
            additionalProperties: false
      required:
        - summary
        - pages
      additionalProperties: false
    AnalyticsFlowsOverviewInput:
      type: object
      properties:
        projectSlugs:
          default: []
          type: array
          items:
            type: string
        startDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        endDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
    AnalyticsFlowsOverviewOutput:
      type: object
      properties:
        totalExecutions:
          type: number
        activeFlows:
          type: number
        topFlows:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              executions:
                type: number
              reach:
                type: number
            required:
              - name
              - executions
              - reach
            additionalProperties: false
      required:
        - totalExecutions
        - activeFlows
        - topFlows
      additionalProperties: false
    AnalyticsLeadsOverviewOutput:
      type: object
      properties:
        totalFlows:
          type: number
        totalEngagedContacts:
          type: number
        averageEngagementPercentage:
          type: number
        lists:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              totalContacts:
                type: number
              engagementPercentage:
                type: number
            required:
              - id
              - name
              - totalContacts
              - engagementPercentage
            additionalProperties: false
      required:
        - totalFlows
        - totalEngagedContacts
        - averageEngagementPercentage
        - lists
      additionalProperties: false
    AnalyticsSalesMetricsInput:
      type: object
      properties:
        projectSlugs:
          default: []
          type: array
          items:
            type: string
        funnelIds:
          default: []
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        startDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        endDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        previousStartDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        previousEndDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
    AnalyticsSalesMetricsOutput:
      type: object
      properties:
        totalAmount:
          type: number
        salesConversionPercentage:
          type: number
          minimum: 0
          maximum: 1
        totalProductsSold:
          type: number
          minimum: 0
        totalViews:
          type: number
          minimum: 0
        products:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              totalSales:
                type: number
                minimum: 0
              totalProductsSold:
                type: number
                minimum: 0
              averageOrderValue:
                type: number
                minimum: 0
              salesConversionPercentage:
                type: number
                minimum: 0
              transactions:
                type: array
                items:
                  type: object
                  properties:
                    amount:
                      type: number
                    createdAt:
                      type: string
                  required:
                    - amount
                    - createdAt
                  additionalProperties: false
            required:
              - id
              - name
              - totalSales
              - totalProductsSold
              - averageOrderValue
              - salesConversionPercentage
              - transactions
            additionalProperties: false
        topConversionProduct:
          type: object
          properties:
            id:
              type: string
            name:
              type: string
            salesConversionPercentage:
              type: number
              minimum: 0
          required:
            - id
            - name
            - salesConversionPercentage
          additionalProperties: false
        previousPeriodGrowth:
          type: number
      required:
        - totalAmount
        - salesConversionPercentage
        - totalProductsSold
        - totalViews
        - products
        - previousPeriodGrowth
      additionalProperties: false
    AnalyticsLeadsMetricsInput:
      type: object
      properties:
        projectSlugs:
          default: []
          type: array
          items:
            type: string
        funnelIds:
          default: []
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        pageIds:
          default: []
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        startDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        endDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        previousStartDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        previousEndDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
    AnalyticsLeadsMetricsOutput:
      type: object
      properties:
        totalViews:
          type: number
          minimum: 0
        totalLeads:
          type: number
          minimum: 0
        totalEngagedContacts:
          type: number
          minimum: 0
        leadsPerMonth:
          type: array
          items:
            type: object
            properties:
              label:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              leads:
                type: number
            required:
              - label
              - leads
            additionalProperties: false
        leadConversionPercentage:
          type: number
          minimum: 0
          maximum: 1
        previousLeadConversionPercentage:
          type: number
          minimum: 0
          maximum: 1
        leadAveragePrice:
          type: object
          properties:
            averageAmount:
              type: number
              minimum: 0
            totalTransactions:
              type: number
              minimum: 0
            totalAmount:
              type: number
              minimum: 0
          required:
            - averageAmount
            - totalTransactions
            - totalAmount
          additionalProperties: false
        previousLeadAveragePrice:
          type: object
          properties:
            averageAmount:
              type: number
              minimum: 0
            totalTransactions:
              type: number
              minimum: 0
            totalAmount:
              type: number
              minimum: 0
          required:
            - averageAmount
            - totalTransactions
            - totalAmount
          additionalProperties: false
      required:
        - totalViews
        - totalLeads
        - totalEngagedContacts
        - leadsPerMonth
        - leadConversionPercentage
        - previousLeadConversionPercentage
        - leadAveragePrice
        - previousLeadAveragePrice
      additionalProperties: false
    AnalyticsMessagesMetricsInput:
      type: object
      properties:
        projectSlugs:
          default: []
          type: array
          items:
            type: string
        funnelIds:
          default: []
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        startDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        endDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        previousStartDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        previousEndDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
    AnalyticsMessagesMetricsOutput:
      type: object
      properties:
        totalMessagesSent:
          type: number
          minimum: 0
        contactsEngagedPercentage:
          type: number
          minimum: 0
          maximum: 1
        previousContactsEngagedPercentage:
          type: number
          minimum: 0
          maximum: 1
        hotLeadsPercentage:
          type: number
          minimum: 0
          maximum: 1
        totalContactsEngaged:
          type: object
          properties:
            totalEngaged:
              type: number
              minimum: 0
            mail:
              type: object
              properties:
                totalEngaged:
                  type: number
                  minimum: 0
                engagedPercentage:
                  type: number
                  minimum: 0
                  maximum: 1
              required:
                - totalEngaged
                - engagedPercentage
              additionalProperties: false
            whatsApp:
              type: object
              properties:
                totalEngaged:
                  type: number
                  minimum: 0
                engagedPercentage:
                  type: number
                  minimum: 0
                  maximum: 1
              required:
                - totalEngaged
                - engagedPercentage
              additionalProperties: false
            telegram:
              type: object
              properties:
                totalEngaged:
                  type: number
                  minimum: 0
                engagedPercentage:
                  type: number
                  minimum: 0
                  maximum: 1
              required:
                - totalEngaged
                - engagedPercentage
              additionalProperties: false
          required:
            - totalEngaged
            - mail
            - whatsApp
            - telegram
          additionalProperties: false
      required:
        - totalMessagesSent
        - contactsEngagedPercentage
        - previousContactsEngagedPercentage
        - hotLeadsPercentage
        - totalContactsEngaged
      additionalProperties: false
    AttendantsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              email:
                anyOf:
                  - type: string
                  - type: "null"
              phone:
                anyOf:
                  - type: string
                  - type: "null"
              personId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              role:
                type: string
                enum:
                  - atendente
                  - vendedor
                  - coordenador
              isAiAgent:
                type: boolean
              meetingRoomUrl:
                anyOf:
                  - type: string
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              attendantTypes:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                    color:
                      anyOf:
                        - type: string
                        - type: "null"
                    emoji:
                      anyOf:
                        - type: string
                        - type: "null"
                  required:
                    - id
                    - name
                  additionalProperties: false
              pipelines:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                  required:
                    - id
                    - name
                  additionalProperties: false
              totalCards:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              openCards:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              wonCards:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              lostCards:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              wonValue:
                type: number
              scheduledCallsCount:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              commissionValue:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              seatRole:
                anyOf:
                  - anyOf:
                      - type: string
                        const: owner
                      - type: string
                        const: admin
                      - type: "null"
                        const: null
                  - type: "null"
              avatarUrl:
                anyOf:
                  - type: string
                  - type: "null"
            required:
              - id
              - name
              - ownerId
              - role
              - isAiAgent
              - createdAt
              - updatedAt
              - attendantTypes
              - pipelines
              - totalCards
              - openCards
              - wonCards
              - lostCards
              - wonValue
              - scheduledCallsCount
              - commissionValue
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    AttendantsCreateInput:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
        email:
          type: string
          minLength: 5
          maxLength: 255
          format: email
          pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
        password:
          type: string
          minLength: 6
          maxLength: 128
        role:
          type: string
          enum:
            - atendente
            - vendedor
            - coordenador
      required:
        - name
        - email
        - password
    AttendantsCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
        email:
          anyOf:
            - type: string
            - type: "null"
        phone:
          anyOf:
            - type: string
            - type: "null"
        personId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        role:
          type: string
          enum:
            - atendente
            - vendedor
            - coordenador
        isAiAgent:
          type: boolean
        meetingRoomUrl:
          anyOf:
            - type: string
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - name
        - ownerId
        - role
        - isAiAgent
        - createdAt
        - updatedAt
      additionalProperties: false
    AttendantsUpdateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          minLength: 1
          maxLength: 255
        email:
          anyOf:
            - type: string
              format: email
              pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
            - type: "null"
        phone:
          anyOf:
            - type: string
              maxLength: 32
            - type: "null"
        role:
          type: string
          enum:
            - atendente
            - vendedor
            - coordenador
        meetingRoomUrl:
          anyOf:
            - type: string
              maxLength: 2000
              pattern: ^https?:\/\/.+
            - type: "null"
      required:
        - id
    AttendantsUpdateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
        email:
          anyOf:
            - type: string
            - type: "null"
        phone:
          anyOf:
            - type: string
            - type: "null"
        personId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        role:
          type: string
          enum:
            - atendente
            - vendedor
            - coordenador
        isAiAgent:
          type: boolean
        meetingRoomUrl:
          anyOf:
            - type: string
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - name
        - ownerId
        - role
        - isAiAgent
        - createdAt
        - updatedAt
      additionalProperties: false
    AttendantsDeleteInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    AttendantsDeleteOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    AttendantTypesListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              description:
                anyOf:
                  - type: string
                  - type: "null"
              color:
                anyOf:
                  - type: string
                  - type: "null"
              emoji:
                anyOf:
                  - type: string
                  - type: "null"
              displayOrder:
                type: number
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              memberCount:
                type: number
            required:
              - id
              - name
              - displayOrder
              - ownerId
              - createdAt
              - updatedAt
              - memberCount
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    AttendantTypesCreateInput:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
        color:
          type: string
          maxLength: 7
        emoji:
          type: string
          maxLength: 10
      required:
        - name
    AttendantTypesCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
        description:
          anyOf:
            - type: string
            - type: "null"
        color:
          anyOf:
            - type: string
            - type: "null"
        emoji:
          anyOf:
            - type: string
            - type: "null"
        displayOrder:
          type: number
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        memberCount:
          type: number
      required:
        - id
        - name
        - displayOrder
        - ownerId
        - createdAt
        - updatedAt
        - memberCount
      additionalProperties: false
    AttendantTypesUpdateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
        color:
          type: string
          maxLength: 7
        emoji:
          type: string
          maxLength: 10
      required:
        - id
    AttendantTypesUpdateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
        description:
          anyOf:
            - type: string
            - type: "null"
        color:
          anyOf:
            - type: string
            - type: "null"
        emoji:
          anyOf:
            - type: string
            - type: "null"
        displayOrder:
          type: number
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        memberCount:
          type: number
      required:
        - id
        - name
        - displayOrder
        - ownerId
        - createdAt
        - updatedAt
        - memberCount
      additionalProperties: false
    AttendantTypesDeleteInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    AttendantTypesDeleteOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    AttendantTypesReorderInput:
      type: object
      properties:
        attendantTypeIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - attendantTypeIds
    AttendantTypesReorderOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              description:
                anyOf:
                  - type: string
                  - type: "null"
              color:
                anyOf:
                  - type: string
                  - type: "null"
              emoji:
                anyOf:
                  - type: string
                  - type: "null"
              displayOrder:
                type: number
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              memberCount:
                type: number
            required:
              - id
              - name
              - displayOrder
              - ownerId
              - createdAt
              - updatedAt
              - memberCount
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    AttendantsSetTypesInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        attendantTypeIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
        - attendantTypeIds
    AttendantsSetTypesOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              attendantId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              attendantTypeId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              attendantTypeName:
                type: string
            required:
              - id
              - attendantId
              - attendantTypeId
              - createdAt
              - attendantTypeName
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    TeamsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
                maxLength: 255
              slug:
                type: string
                maxLength: 100
              description:
                anyOf:
                  - type: string
                  - type: "null"
              logoUrl:
                anyOf:
                  - type: string
                    pattern: ^https:\/\/.+$
                  - type: "null"
              brandColor:
                anyOf:
                  - type: string
                    maxLength: 7
                  - type: "null"
              distributionMode:
                type: string
                enum:
                  - weighted
                  - strict
              queueCursorMemberId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              strictRespectCaps:
                type: boolean
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              totalMembers:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              memberTypeCounts:
                type: array
                items:
                  type: object
                  properties:
                    attendantTypeId:
                      anyOf:
                        - type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        - type: "null"
                    name:
                      type: string
                    color:
                      anyOf:
                        - type: string
                        - type: "null"
                    emoji:
                      anyOf:
                        - type: string
                        - type: "null"
                    count:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                  required:
                    - name
                    - count
                  additionalProperties: false
              appointmentSchedules:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                      maxLength: 255
                    description:
                      anyOf:
                        - type: string
                        - type: "null"
                    duration:
                      type: integer
                      minimum: 5
                      maximum: 480
                    color:
                      anyOf:
                        - type: string
                          maxLength: 7
                        - type: "null"
                    isPersonal:
                      type: boolean
                    slug:
                      type: string
                      minLength: 3
                      maxLength: 48
                    isPublic:
                      type: boolean
                    attendantId:
                      anyOf:
                        - type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        - type: "null"
                    bufferMinutes:
                      type: integer
                      minimum: 0
                      maximum: 240
                    minNoticeMinutes:
                      type: integer
                      minimum: 0
                      maximum: 43200
                    teamId:
                      anyOf:
                        - type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        - type: "null"
                    schedulingType:
                      type: string
                      enum:
                        - individual
                        - round_robin
                    defaultTemperature:
                      type: string
                      enum:
                        - hot
                        - warm
                        - cold
                    pipelineId:
                      anyOf:
                        - type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        - type: "null"
                    stageId:
                      anyOf:
                        - type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        - type: "null"
                    maxBookingsPerDay:
                      anyOf:
                        - type: integer
                          minimum: 1
                          maximum: 9007199254740991
                        - type: "null"
                    maxBookingsPerMemberPerDay:
                      anyOf:
                        - type: integer
                          minimum: 1
                          maximum: 9007199254740991
                        - type: "null"
                    maxAdvanceDays:
                      anyOf:
                        - type: integer
                          minimum: 1
                          maximum: 9007199254740991
                        - type: "null"
                    rollingWindowEnabled:
                      type: boolean
                    rollingWindowThresholdPercent:
                      type: integer
                      minimum: 1
                      maximum: 100
                    rollingWindowStepDays:
                      type: integer
                      minimum: 1
                      maximum: 30
                    confirmationMessage:
                      anyOf:
                        - type: string
                        - type: "null"
                    collectFields:
                      anyOf:
                        - type: array
                          items:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        - type: "null"
                    confirmationButtons:
                      anyOf:
                        - type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 64
                              label:
                                type: string
                                minLength: 1
                                maxLength: 80
                              type:
                                type: string
                                enum:
                                  - link
                                  - whatsapp
                                  - email
                                  - download
                              value:
                                type: string
                                minLength: 1
                                maxLength: 2000
                              variant:
                                type: string
                                enum:
                                  - primary
                                  - secondary
                            required:
                              - id
                              - label
                              - type
                              - value
                              - variant
                            additionalProperties: false
                        - type: "null"
                    redirectUrl:
                      anyOf:
                        - type: string
                        - type: "null"
                    pixelId:
                      anyOf:
                        - type: string
                        - type: "null"
                    redirectDelaySeconds:
                      anyOf:
                        - type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        - type: "null"
                    bookingFields:
                      anyOf:
                        - type: array
                          items:
                            type: object
                            properties:
                              field:
                                type: string
                                enum:
                                  - name
                                  - email
                                  - secondaryEmail
                                  - telephone
                                  - whatsappNumber
                                  - instagram
                                  - linkedin
                                  - twitterX
                                  - tiktok
                                  - youtube
                                  - observations
                                  - city
                                  - state
                                  - document
                                  - birthday
                                  - custom
                              customFieldId:
                                type: string
                                format: uuid
                                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              required:
                                type: boolean
                            required:
                              - field
                              - required
                            additionalProperties: false
                        - type: "null"
                    emailLayoutTemplateId:
                      anyOf:
                        - type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        - type: "null"
                    meetingLocationMode:
                      type: string
                      enum:
                        - google_meet
                        - attendant_room
                        - fixed_link
                    meetingLocationUrl:
                      anyOf:
                        - type: string
                        - type: "null"
                    ownerId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    createdAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    updatedAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  required:
                    - id
                    - name
                    - duration
                    - isPersonal
                    - slug
                    - isPublic
                    - bufferMinutes
                    - minNoticeMinutes
                    - schedulingType
                    - defaultTemperature
                    - rollingWindowEnabled
                    - rollingWindowThresholdPercent
                    - rollingWindowStepDays
                    - meetingLocationMode
                    - ownerId
                    - createdAt
                    - updatedAt
                  additionalProperties: false
            required:
              - id
              - name
              - slug
              - distributionMode
              - strictRespectCaps
              - ownerId
              - createdAt
              - updatedAt
              - totalMembers
              - memberTypeCounts
              - appointmentSchedules
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    CustomFieldsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              entityType:
                type: string
                enum:
                  - leads
                  - opportunities
              fieldName:
                type: string
              displayName:
                type: string
              fieldType:
                type: string
                enum:
                  - text
                  - number
                  - date
                  - boolean
                  - currency
                  - percentage
                  - select
                  - multi_select
                  - radio
                  - formula
                  - file
                  - json
                  - link
                  - rating
                  - textarea
              description:
                anyOf:
                  - type: string
                  - type: "null"
              required:
                type: boolean
              unique:
                type: boolean
              defaultValue:
                anyOf:
                  - {}
                  - type: "null"
              options:
                anyOf:
                  - {}
                  - type: "null"
              isActive:
                type: boolean
              isSystem:
                type: boolean
              order:
                type: number
              groupName:
                anyOf:
                  - type: string
                  - type: "null"
              showInList:
                type: boolean
              showInDetail:
                type: boolean
              showInCreate:
                type: boolean
              searchable:
                type: boolean
              showOnCard:
                type: boolean
              pinned:
                type: boolean
              filterable:
                type: boolean
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - ownerId
              - entityType
              - fieldName
              - displayName
              - fieldType
              - required
              - unique
              - isActive
              - isSystem
              - order
              - showInList
              - showInDetail
              - showInCreate
              - searchable
              - showOnCard
              - pinned
              - filterable
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    CustomFieldsCreateInput:
      type: object
      properties:
        entityType:
          type: string
          enum:
            - leads
            - opportunities
        fieldName:
          type: string
          minLength: 1
          maxLength: 100
        displayName:
          type: string
          minLength: 1
          maxLength: 200
        fieldType:
          type: string
          enum:
            - text
            - number
            - date
            - boolean
            - currency
            - percentage
            - select
            - multi_select
            - radio
            - formula
            - file
            - json
            - link
            - rating
            - textarea
        description:
          type: string
          maxLength: 500
        required:
          type: boolean
        unique:
          type: boolean
        defaultValue: {}
        options:
          anyOf:
            - type: array
              items:
                type: object
                properties:
                  label:
                    type: string
                  value:
                    type: string
                required:
                  - label
                  - value
            - type: "null"
        formula:
          type: string
        isActive:
          type: boolean
        isSystem:
          type: boolean
        order:
          type: number
        groupName:
          type: string
          maxLength: 100
        showInList:
          type: boolean
        showInDetail:
          type: boolean
        showInCreate:
          type: boolean
        showOnCard:
          type: boolean
        pinned:
          type: boolean
        filterable:
          type: boolean
      required:
        - entityType
        - fieldName
        - displayName
        - fieldType
    CustomFieldsCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        entityType:
          type: string
          enum:
            - leads
            - opportunities
        fieldName:
          type: string
        displayName:
          type: string
        fieldType:
          type: string
          enum:
            - text
            - number
            - date
            - boolean
            - currency
            - percentage
            - select
            - multi_select
            - radio
            - formula
            - file
            - json
            - link
            - rating
            - textarea
        description:
          anyOf:
            - type: string
            - type: "null"
        required:
          type: boolean
        unique:
          type: boolean
        defaultValue:
          anyOf:
            - {}
            - type: "null"
        options:
          anyOf:
            - {}
            - type: "null"
        isActive:
          type: boolean
        isSystem:
          type: boolean
        order:
          type: number
        groupName:
          anyOf:
            - type: string
            - type: "null"
        showInList:
          type: boolean
        showInDetail:
          type: boolean
        showInCreate:
          type: boolean
        searchable:
          type: boolean
        showOnCard:
          type: boolean
        pinned:
          type: boolean
        filterable:
          type: boolean
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - ownerId
        - entityType
        - fieldName
        - displayName
        - fieldType
        - required
        - unique
        - isActive
        - isSystem
        - order
        - showInList
        - showInDetail
        - showInCreate
        - searchable
        - showOnCard
        - pinned
        - filterable
        - createdAt
        - updatedAt
      additionalProperties: false
    CustomFieldsUpdateInput:
      type: object
      properties:
        customFieldId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        entityType:
          type: string
          enum:
            - leads
            - opportunities
        fieldName:
          type: string
          minLength: 1
          maxLength: 100
        displayName:
          type: string
          minLength: 1
          maxLength: 200
        fieldType:
          type: string
          enum:
            - text
            - number
            - date
            - boolean
            - currency
            - percentage
            - select
            - multi_select
            - radio
            - formula
            - file
            - json
            - link
            - rating
            - textarea
        description:
          type: string
          maxLength: 500
        required:
          type: boolean
        unique:
          type: boolean
        defaultValue: {}
        options:
          anyOf:
            - type: array
              items:
                type: object
                properties:
                  label:
                    type: string
                  value:
                    type: string
                required:
                  - label
                  - value
            - type: "null"
        formula:
          type: string
        isActive:
          type: boolean
        isSystem:
          type: boolean
        order:
          type: number
        groupName:
          type: string
          maxLength: 100
        showInList:
          type: boolean
        showInDetail:
          type: boolean
        showInCreate:
          type: boolean
        showOnCard:
          type: boolean
        pinned:
          type: boolean
        filterable:
          type: boolean
      required:
        - customFieldId
    CustomFieldsUpdateOutput:
      type: object
      properties:
        ok:
          type: boolean
      required:
        - ok
      additionalProperties: false
    FormsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              projectId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              name:
                type: string
              title:
                type: string
              description:
                anyOf:
                  - type: string
                  - type: "null"
              slug:
                type: string
              status:
                type: string
                enum:
                  - draft
                  - active
                  - paused
              kind:
                type: string
                enum:
                  - form
                  - quiz
              schema:
                anyOf:
                  - type: object
                    properties:
                      version:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      id:
                        type: string
                      name:
                        type: string
                      title:
                        type: string
                      description:
                        type: string
                      fields:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            type:
                              type: string
                              enum:
                                - text
                                - email
                                - phone
                                - number
                                - currency
                                - textarea
                                - select
                                - multi
                                - rating
                                - switch
                                - date
                            label:
                              type: string
                            placeholder:
                              type: string
                            helpText:
                              type: string
                            required:
                              type: boolean
                            options:
                              type: array
                              items:
                                anyOf:
                                  - type: string
                                  - type: object
                                    properties:
                                      label:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                      - label
                                      - value
                                    additionalProperties: false
                            mapping:
                              type: object
                              properties:
                                scope:
                                  type: string
                                  enum:
                                    - lead
                                    - custom
                                    - opportunity
                                    - none
                                target:
                                  type: string
                              required:
                                - scope
                              additionalProperties: false
                          required:
                            - id
                            - type
                            - label
                            - required
                            - mapping
                          additionalProperties: false
                      steps:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            title:
                              type: string
                            description:
                              type: string
                            fieldIds:
                              type: array
                              items:
                                type: string
                            advanceRule:
                              type: string
                              enum:
                                - always
                                - required
                                - logic
                            transition:
                              type: string
                              enum:
                                - slide
                                - fade
                                - none
                          required:
                            - id
                            - title
                            - fieldIds
                          additionalProperties: false
                      theme:
                        type: object
                        properties:
                          presetId:
                            type: string
                            maxLength: 64
                          headerBg:
                            type: string
                            maxLength: 200
                          headerText:
                            type: string
                            maxLength: 200
                          headerSubText:
                            type: string
                            maxLength: 200
                          logoBg:
                            type: string
                            maxLength: 200
                          logoText:
                            type: string
                            maxLength: 200
                          pageBg:
                            type: string
                            maxLength: 200
                          cardBg:
                            type: string
                            maxLength: 200
                          cardBorder:
                            type: string
                            maxLength: 200
                          inputBg:
                            type: string
                            maxLength: 200
                          inputBorder:
                            type: string
                            maxLength: 200
                          labelColor:
                            type: string
                            maxLength: 200
                          placeholder:
                            type: string
                            maxLength: 200
                          btnBg:
                            type: string
                            maxLength: 200
                          btnText:
                            type: string
                            maxLength: 200
                          cardR:
                            type: string
                            maxLength: 200
                          inputR:
                            type: string
                            maxLength: 200
                          btnR:
                            type: string
                            maxLength: 200
                          font:
                            type: string
                            maxLength: 200
                          inputStyle:
                            type: string
                            enum:
                              - filled
                              - bordered
                              - underline
                          quizDesign:
                            type: object
                            properties:
                              templateId:
                                type: string
                                maxLength: 64
                              primaryColor:
                                type: string
                                maxLength: 200
                              radiusKey:
                                type: string
                                maxLength: 32
                              fontKey:
                                type: string
                                maxLength: 32
                              bgMode:
                                type: string
                                maxLength: 32
                              textColor:
                                type: string
                                maxLength: 200
                              progressStyle:
                                type: string
                                maxLength: 32
                            additionalProperties: false
                        required:
                          - headerBg
                          - headerText
                          - headerSubText
                          - logoBg
                          - logoText
                          - pageBg
                          - cardBg
                          - cardBorder
                          - inputBg
                          - inputBorder
                          - labelColor
                          - placeholder
                          - btnBg
                          - btnText
                          - cardR
                          - inputR
                          - btnR
                          - font
                          - inputStyle
                        additionalProperties: false
                      settings:
                        type: object
                        properties:
                          dedupRule:
                            type: string
                            enum:
                              - merge
                              - new
                          addToListId:
                            type: string
                          applyTagIds:
                            type: array
                            items:
                              type: string
                          notifications:
                            type: object
                            properties:
                              emails:
                                type: array
                                items:
                                  type: string
                              browserPush:
                                type: boolean
                              triggerAutomation:
                                type: boolean
                            additionalProperties: false
                          redirectUrl:
                            type: string
                            maxLength: 2048
                            pattern: ^([Hh][Tt][Tt][Pp][Ss]?:\/\/.*)?$
                          successMessage:
                            type: string
                          submitLabel:
                            type: string
                          showLgpd:
                            type: boolean
                          lgpdRequired:
                            type: boolean
                          originTag:
                            type: string
                          assigneeId:
                            type: string
                          pipelineId:
                            type: string
                          pipelineStageId:
                            type: string
                          statusOnCapture:
                            type: string
                          statusOnComplete:
                            type: string
                          tagByResult:
                            type: boolean
                          tagPrefix:
                            type: string
                          dedupKey:
                            type: string
                            enum:
                              - email
                              - phone
                              - email_phone
                          mergeStrategy:
                            type: string
                            enum:
                              - incoming
                              - existing
                              - recent
                          tagDuplicates:
                            type: boolean
                          slug:
                            type: string
                          shareMode:
                            type: string
                            enum:
                              - page
                              - embed
                              - popup
                          embedWidth:
                            type: string
                          embedHeight:
                            type: string
                          seoTitle:
                            type: string
                          seoDescription:
                            type: string
                          allowIndexing:
                            type: boolean
                          ogTitle:
                            type: string
                            maxLength: 120
                          ogDescription:
                            type: string
                            maxLength: 300
                          ogImageUrl:
                            type: string
                            maxLength: 2048
                            pattern: ^([Hh][Tt][Tt][Pp][Ss]?:\/\/.*)?$
                          hideProgress:
                            type: boolean
                          resetOnBack:
                            type: boolean
                          lgpdText:
                            type: string
                          slackWebhookUrl:
                            type: string
                          externalWebhookUrl:
                            type: string
                        required:
                          - dedupRule
                        additionalProperties: false
                    required:
                      - version
                      - name
                      - title
                      - fields
                      - steps
                      - theme
                      - settings
                    additionalProperties: false
                  - type: object
                    properties:
                      version:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      id:
                        type: string
                      kind:
                        type: string
                        enum:
                          - quiz
                      name:
                        type: string
                      title:
                        type: string
                      description:
                        type: string
                      steps:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            order:
                              type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            name:
                              type: string
                            blocks:
                              type: array
                              items:
                                anyOf:
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - text
                                      body:
                                        type: string
                                      align:
                                        type: string
                                        enum:
                                          - left
                                          - center
                                    required:
                                      - id
                                      - type
                                      - body
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - description
                                      body:
                                        type: string
                                      align:
                                        type: string
                                        enum:
                                          - left
                                          - center
                                    required:
                                      - id
                                      - type
                                      - body
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - image
                                      url:
                                        type: string
                                      alt:
                                        type: string
                                      layout:
                                        type: string
                                        enum:
                                          - center
                                          - split
                                    required:
                                      - id
                                      - type
                                      - url
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - video
                                      url:
                                        type: string
                                      title:
                                        type: string
                                      autoplay:
                                        type: boolean
                                      soundLabel:
                                        type: string
                                    required:
                                      - id
                                      - type
                                      - url
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - spacer
                                      size:
                                        type: string
                                        enum:
                                          - sm
                                          - md
                                          - lg
                                    required:
                                      - id
                                      - type
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - options
                                      title:
                                        type: string
                                      label:
                                        type: string
                                      options:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                            label:
                                              type: string
                                            value:
                                              type: string
                                            imageUrl:
                                              type: string
                                            goto:
                                              type: string
                                            score:
                                              type: number
                                          required:
                                            - id
                                            - label
                                          additionalProperties: false
                                      layout:
                                        type: string
                                        enum:
                                          - list
                                          - grid2
                                          - grid3
                                      direction:
                                        type: string
                                        enum:
                                          - vertical
                                          - horizontal
                                      disposition:
                                        type: string
                                        enum:
                                          - text
                                          - image-text
                                          - image-cover
                                      required:
                                        type: boolean
                                      multiple:
                                        type: boolean
                                      redirectOnButtonOnly:
                                        type: boolean
                                      mapping:
                                        type: object
                                        properties:
                                          scope:
                                            type: string
                                            enum:
                                              - lead
                                              - custom
                                              - opportunity
                                              - none
                                          target:
                                            type: string
                                        required:
                                          - scope
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - options
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - scale
                                      title:
                                        type: string
                                      label:
                                        type: string
                                      min:
                                        type: number
                                      max:
                                        type: number
                                      minLabel:
                                        type: string
                                      maxLabel:
                                        type: string
                                      required:
                                        type: boolean
                                      mapping:
                                        type: object
                                        properties:
                                          scope:
                                            type: string
                                            enum:
                                              - lead
                                              - custom
                                              - opportunity
                                              - none
                                          target:
                                            type: string
                                        required:
                                          - scope
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - number
                                      title:
                                        type: string
                                      label:
                                        type: string
                                      placeholder:
                                        type: string
                                      required:
                                        type: boolean
                                      min:
                                        type: number
                                      max:
                                        type: number
                                      mapping:
                                        type: object
                                        properties:
                                          scope:
                                            type: string
                                            enum:
                                              - lead
                                              - custom
                                              - opportunity
                                              - none
                                          target:
                                            type: string
                                        required:
                                          - scope
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - currency
                                      title:
                                        type: string
                                      label:
                                        type: string
                                      placeholder:
                                        type: string
                                      required:
                                        type: boolean
                                      currencyCode:
                                        type: string
                                      mapping:
                                        type: object
                                        properties:
                                          scope:
                                            type: string
                                            enum:
                                              - lead
                                              - custom
                                              - opportunity
                                              - none
                                          target:
                                            type: string
                                        required:
                                          - scope
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - measure
                                      kind:
                                        type: string
                                        enum:
                                          - weight
                                          - height
                                      title:
                                        type: string
                                      label:
                                        type: string
                                      defaultValue:
                                        type: number
                                      min:
                                        type: number
                                      max:
                                        type: number
                                      step:
                                        type: number
                                      allowUnitToggle:
                                        type: boolean
                                      required:
                                        type: boolean
                                      mapping:
                                        type: object
                                        properties:
                                          scope:
                                            type: string
                                            enum:
                                              - lead
                                              - custom
                                              - opportunity
                                              - none
                                          target:
                                            type: string
                                        required:
                                          - scope
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - kind
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - button
                                      label:
                                        type: string
                                      action:
                                        type: string
                                        enum:
                                          - next
                                          - goto
                                          - url
                                      target:
                                        type: string
                                      variant:
                                        type: string
                                        enum:
                                          - solid
                                          - outline
                                          - ghost
                                          - link
                                    required:
                                      - id
                                      - type
                                      - label
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - capture
                                      title:
                                        type: string
                                      fields:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                            fieldType:
                                              type: string
                                              enum:
                                                - text
                                                - email
                                                - phone
                                                - number
                                                - currency
                                                - textarea
                                                - select
                                                - multi
                                                - rating
                                                - switch
                                                - date
                                            label:
                                              type: string
                                            placeholder:
                                              type: string
                                            required:
                                              type: boolean
                                            mapping:
                                              type: object
                                              properties:
                                                scope:
                                                  type: string
                                                  enum:
                                                    - lead
                                                    - custom
                                                    - opportunity
                                                    - none
                                                target:
                                                  type: string
                                              required:
                                                - scope
                                              additionalProperties: false
                                          required:
                                            - id
                                            - fieldType
                                            - label
                                            - required
                                            - mapping
                                          additionalProperties: false
                                      submitLabel:
                                        type: string
                                    required:
                                      - id
                                      - type
                                      - fields
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - alert
                                      body:
                                        type: string
                                      title:
                                        type: string
                                      variant:
                                        type: string
                                        enum:
                                          - info
                                          - success
                                          - warning
                                          - error
                                    required:
                                      - id
                                      - type
                                      - body
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - offer
                                      offerId:
                                        type: string
                                      productName:
                                        type: string
                                      offerName:
                                        type: string
                                      priceLabel:
                                        type: string
                                      imageUrl:
                                        type: string
                                      checkoutUrl:
                                        type: string
                                      ctaLabel:
                                        type: string
                                    required:
                                      - id
                                      - type
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - loading
                                      label:
                                        type: string
                                      durationMs:
                                        type: number
                                      goto:
                                        type: string
                                    required:
                                      - id
                                      - type
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - metrics
                                      title:
                                        type: string
                                      items:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                            value:
                                              type: string
                                            label:
                                              type: string
                                          required:
                                            - id
                                            - value
                                            - label
                                          additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - items
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - results
                                      title:
                                        type: string
                                      items:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                            title:
                                              type: string
                                            description:
                                              type: string
                                          required:
                                            - id
                                            - title
                                          additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - items
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - testimonials
                                      title:
                                        type: string
                                      items:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                            name:
                                              type: string
                                            role:
                                              type: string
                                            quote:
                                              type: string
                                            avatarUrl:
                                              type: string
                                            rating:
                                              type: number
                                          required:
                                            - id
                                            - name
                                            - quote
                                          additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - items
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - beforeAfter
                                      title:
                                        type: string
                                      beforeUrl:
                                        type: string
                                      afterUrl:
                                        type: string
                                      beforeLabel:
                                        type: string
                                      afterLabel:
                                        type: string
                                    required:
                                      - id
                                      - type
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - faq
                                      title:
                                        type: string
                                      items:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                            question:
                                              type: string
                                            answer:
                                              type: string
                                          required:
                                            - id
                                            - question
                                            - answer
                                          additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - items
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - checklist
                                      title:
                                        type: string
                                      items:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                            text:
                                              type: string
                                          required:
                                            - id
                                            - text
                                          additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - items
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - pricing
                                      title:
                                        type: string
                                      planName:
                                        type: string
                                      price:
                                        type: string
                                      period:
                                        type: string
                                      badge:
                                        type: string
                                      highlight:
                                        type: boolean
                                      features:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                            text:
                                              type: string
                                          required:
                                            - id
                                            - text
                                          additionalProperties: false
                                      ctaLabel:
                                        type: string
                                      ctaUrl:
                                        type: string
                                    required:
                                      - id
                                      - type
                                      - features
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                      displayRule:
                                        type: object
                                        properties:
                                          when:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                field:
                                                  type: string
                                                op:
                                                  type: string
                                                  enum:
                                                    - eq
                                                    - neq
                                                    - contains
                                                    - in
                                                    - gt
                                                    - gte
                                                    - lt
                                                    - lte
                                                    - exists
                                                value: {}
                                              required:
                                                - field
                                                - op
                                              additionalProperties: false
                                        required:
                                          - when
                                        additionalProperties: false
                                      type:
                                        type: string
                                        enum:
                                          - resultChart
                                      title:
                                        type: string
                                      caption:
                                        type: string
                                      chartType:
                                        type: string
                                        enum:
                                          - line
                                          - bar
                                          - pie
                                      points:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                            label:
                                              type: string
                                            value:
                                              type: number
                                          required:
                                            - id
                                            - label
                                            - value
                                          additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - points
                                    additionalProperties: false
                            next:
                              type: string
                          required:
                            - id
                            - order
                            - blocks
                          additionalProperties: false
                      theme:
                        type: object
                        properties:
                          presetId:
                            type: string
                            maxLength: 64
                          headerBg:
                            type: string
                            maxLength: 200
                          headerText:
                            type: string
                            maxLength: 200
                          headerSubText:
                            type: string
                            maxLength: 200
                          logoBg:
                            type: string
                            maxLength: 200
                          logoText:
                            type: string
                            maxLength: 200
                          pageBg:
                            type: string
                            maxLength: 200
                          cardBg:
                            type: string
                            maxLength: 200
                          cardBorder:
                            type: string
                            maxLength: 200
                          inputBg:
                            type: string
                            maxLength: 200
                          inputBorder:
                            type: string
                            maxLength: 200
                          labelColor:
                            type: string
                            maxLength: 200
                          placeholder:
                            type: string
                            maxLength: 200
                          btnBg:
                            type: string
                            maxLength: 200
                          btnText:
                            type: string
                            maxLength: 200
                          cardR:
                            type: string
                            maxLength: 200
                          inputR:
                            type: string
                            maxLength: 200
                          btnR:
                            type: string
                            maxLength: 200
                          font:
                            type: string
                            maxLength: 200
                          inputStyle:
                            type: string
                            enum:
                              - filled
                              - bordered
                              - underline
                          quizDesign:
                            type: object
                            properties:
                              templateId:
                                type: string
                                maxLength: 64
                              primaryColor:
                                type: string
                                maxLength: 200
                              radiusKey:
                                type: string
                                maxLength: 32
                              fontKey:
                                type: string
                                maxLength: 32
                              bgMode:
                                type: string
                                maxLength: 32
                              textColor:
                                type: string
                                maxLength: 200
                              progressStyle:
                                type: string
                                maxLength: 32
                            additionalProperties: false
                        required:
                          - headerBg
                          - headerText
                          - headerSubText
                          - logoBg
                          - logoText
                          - pageBg
                          - cardBg
                          - cardBorder
                          - inputBg
                          - inputBorder
                          - labelColor
                          - placeholder
                          - btnBg
                          - btnText
                          - cardR
                          - inputR
                          - btnR
                          - font
                          - inputStyle
                        additionalProperties: false
                      settings:
                        type: object
                        properties:
                          dedupRule:
                            type: string
                            enum:
                              - merge
                              - new
                          addToListId:
                            type: string
                          applyTagIds:
                            type: array
                            items:
                              type: string
                          notifications:
                            type: object
                            properties:
                              emails:
                                type: array
                                items:
                                  type: string
                              browserPush:
                                type: boolean
                              triggerAutomation:
                                type: boolean
                            additionalProperties: false
                          redirectUrl:
                            type: string
                            maxLength: 2048
                            pattern: ^([Hh][Tt][Tt][Pp][Ss]?:\/\/.*)?$
                          successMessage:
                            type: string
                          submitLabel:
                            type: string
                          showLgpd:
                            type: boolean
                          lgpdRequired:
                            type: boolean
                          originTag:
                            type: string
                          assigneeId:
                            type: string
                          pipelineId:
                            type: string
                          pipelineStageId:
                            type: string
                          statusOnCapture:
                            type: string
                          statusOnComplete:
                            type: string
                          tagByResult:
                            type: boolean
                          tagPrefix:
                            type: string
                          dedupKey:
                            type: string
                            enum:
                              - email
                              - phone
                              - email_phone
                          mergeStrategy:
                            type: string
                            enum:
                              - incoming
                              - existing
                              - recent
                          tagDuplicates:
                            type: boolean
                          slug:
                            type: string
                          shareMode:
                            type: string
                            enum:
                              - page
                              - embed
                              - popup
                          embedWidth:
                            type: string
                          embedHeight:
                            type: string
                          seoTitle:
                            type: string
                          seoDescription:
                            type: string
                          allowIndexing:
                            type: boolean
                          ogTitle:
                            type: string
                            maxLength: 120
                          ogDescription:
                            type: string
                            maxLength: 300
                          ogImageUrl:
                            type: string
                            maxLength: 2048
                            pattern: ^([Hh][Tt][Tt][Pp][Ss]?:\/\/.*)?$
                          hideProgress:
                            type: boolean
                          resetOnBack:
                            type: boolean
                          lgpdText:
                            type: string
                          slackWebhookUrl:
                            type: string
                          externalWebhookUrl:
                            type: string
                        required:
                          - dedupRule
                        additionalProperties: false
                      qualification:
                        type: array
                        items:
                          type: object
                          properties:
                            when:
                              type: array
                              items:
                                type: object
                                properties:
                                  field:
                                    type: string
                                  op:
                                    type: string
                                    enum:
                                      - eq
                                      - neq
                                      - contains
                                      - in
                                      - gt
                                      - gte
                                      - lt
                                      - lte
                                      - exists
                                  value: {}
                                required:
                                  - field
                                  - op
                                additionalProperties: false
                            applyTagIds:
                              type: array
                              items:
                                type: string
                            addToListId:
                              type: string
                          required:
                            - when
                          additionalProperties: false
                      formulas:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            expression:
                              type: string
                          required:
                            - id
                            - name
                            - expression
                          additionalProperties: false
                    required:
                      - version
                      - kind
                      - name
                      - title
                      - steps
                      - theme
                      - settings
                    additionalProperties: false
              funnelId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              pageId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              domainId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              pathSlug:
                anyOf:
                  - type: string
                    maxLength: 255
                  - type: "null"
              color:
                anyOf:
                  - type: string
                    maxLength: 7
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              publicUrl:
                type: string
                format: uri
              pageUrl:
                anyOf:
                  - type: string
                    format: uri
                  - type: "null"
              submissionsCount:
                type: number
            required:
              - id
              - ownerId
              - name
              - title
              - slug
              - status
              - kind
              - schema
              - createdAt
              - updatedAt
              - publicUrl
              - submissionsCount
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    FormsGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        projectId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        name:
          type: string
        title:
          type: string
        description:
          anyOf:
            - type: string
            - type: "null"
        slug:
          type: string
        status:
          type: string
          enum:
            - draft
            - active
            - paused
        kind:
          type: string
          enum:
            - form
            - quiz
        schema:
          anyOf:
            - type: object
              properties:
                version:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                id:
                  type: string
                name:
                  type: string
                title:
                  type: string
                description:
                  type: string
                fields:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                      type:
                        type: string
                        enum:
                          - text
                          - email
                          - phone
                          - number
                          - currency
                          - textarea
                          - select
                          - multi
                          - rating
                          - switch
                          - date
                      label:
                        type: string
                      placeholder:
                        type: string
                      helpText:
                        type: string
                      required:
                        type: boolean
                      options:
                        type: array
                        items:
                          anyOf:
                            - type: string
                            - type: object
                              properties:
                                label:
                                  type: string
                                value:
                                  type: string
                              required:
                                - label
                                - value
                              additionalProperties: false
                      mapping:
                        type: object
                        properties:
                          scope:
                            type: string
                            enum:
                              - lead
                              - custom
                              - opportunity
                              - none
                          target:
                            type: string
                        required:
                          - scope
                        additionalProperties: false
                    required:
                      - id
                      - type
                      - label
                      - required
                      - mapping
                    additionalProperties: false
                steps:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                      title:
                        type: string
                      description:
                        type: string
                      fieldIds:
                        type: array
                        items:
                          type: string
                      advanceRule:
                        type: string
                        enum:
                          - always
                          - required
                          - logic
                      transition:
                        type: string
                        enum:
                          - slide
                          - fade
                          - none
                    required:
                      - id
                      - title
                      - fieldIds
                    additionalProperties: false
                theme:
                  type: object
                  properties:
                    presetId:
                      type: string
                      maxLength: 64
                    headerBg:
                      type: string
                      maxLength: 200
                    headerText:
                      type: string
                      maxLength: 200
                    headerSubText:
                      type: string
                      maxLength: 200
                    logoBg:
                      type: string
                      maxLength: 200
                    logoText:
                      type: string
                      maxLength: 200
                    pageBg:
                      type: string
                      maxLength: 200
                    cardBg:
                      type: string
                      maxLength: 200
                    cardBorder:
                      type: string
                      maxLength: 200
                    inputBg:
                      type: string
                      maxLength: 200
                    inputBorder:
                      type: string
                      maxLength: 200
                    labelColor:
                      type: string
                      maxLength: 200
                    placeholder:
                      type: string
                      maxLength: 200
                    btnBg:
                      type: string
                      maxLength: 200
                    btnText:
                      type: string
                      maxLength: 200
                    cardR:
                      type: string
                      maxLength: 200
                    inputR:
                      type: string
                      maxLength: 200
                    btnR:
                      type: string
                      maxLength: 200
                    font:
                      type: string
                      maxLength: 200
                    inputStyle:
                      type: string
                      enum:
                        - filled
                        - bordered
                        - underline
                    quizDesign:
                      type: object
                      properties:
                        templateId:
                          type: string
                          maxLength: 64
                        primaryColor:
                          type: string
                          maxLength: 200
                        radiusKey:
                          type: string
                          maxLength: 32
                        fontKey:
                          type: string
                          maxLength: 32
                        bgMode:
                          type: string
                          maxLength: 32
                        textColor:
                          type: string
                          maxLength: 200
                        progressStyle:
                          type: string
                          maxLength: 32
                      additionalProperties: false
                  required:
                    - headerBg
                    - headerText
                    - headerSubText
                    - logoBg
                    - logoText
                    - pageBg
                    - cardBg
                    - cardBorder
                    - inputBg
                    - inputBorder
                    - labelColor
                    - placeholder
                    - btnBg
                    - btnText
                    - cardR
                    - inputR
                    - btnR
                    - font
                    - inputStyle
                  additionalProperties: false
                settings:
                  type: object
                  properties:
                    dedupRule:
                      type: string
                      enum:
                        - merge
                        - new
                    addToListId:
                      type: string
                    applyTagIds:
                      type: array
                      items:
                        type: string
                    notifications:
                      type: object
                      properties:
                        emails:
                          type: array
                          items:
                            type: string
                        browserPush:
                          type: boolean
                        triggerAutomation:
                          type: boolean
                      additionalProperties: false
                    redirectUrl:
                      type: string
                      maxLength: 2048
                      pattern: ^([Hh][Tt][Tt][Pp][Ss]?:\/\/.*)?$
                    successMessage:
                      type: string
                    submitLabel:
                      type: string
                    showLgpd:
                      type: boolean
                    lgpdRequired:
                      type: boolean
                    originTag:
                      type: string
                    assigneeId:
                      type: string
                    pipelineId:
                      type: string
                    pipelineStageId:
                      type: string
                    statusOnCapture:
                      type: string
                    statusOnComplete:
                      type: string
                    tagByResult:
                      type: boolean
                    tagPrefix:
                      type: string
                    dedupKey:
                      type: string
                      enum:
                        - email
                        - phone
                        - email_phone
                    mergeStrategy:
                      type: string
                      enum:
                        - incoming
                        - existing
                        - recent
                    tagDuplicates:
                      type: boolean
                    slug:
                      type: string
                    shareMode:
                      type: string
                      enum:
                        - page
                        - embed
                        - popup
                    embedWidth:
                      type: string
                    embedHeight:
                      type: string
                    seoTitle:
                      type: string
                    seoDescription:
                      type: string
                    allowIndexing:
                      type: boolean
                    ogTitle:
                      type: string
                      maxLength: 120
                    ogDescription:
                      type: string
                      maxLength: 300
                    ogImageUrl:
                      type: string
                      maxLength: 2048
                      pattern: ^([Hh][Tt][Tt][Pp][Ss]?:\/\/.*)?$
                    hideProgress:
                      type: boolean
                    resetOnBack:
                      type: boolean
                    lgpdText:
                      type: string
                    slackWebhookUrl:
                      type: string
                    externalWebhookUrl:
                      type: string
                  required:
                    - dedupRule
                  additionalProperties: false
              required:
                - version
                - name
                - title
                - fields
                - steps
                - theme
                - settings
              additionalProperties: false
            - type: object
              properties:
                version:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                id:
                  type: string
                kind:
                  type: string
                  enum:
                    - quiz
                name:
                  type: string
                title:
                  type: string
                description:
                  type: string
                steps:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                      order:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      name:
                        type: string
                      blocks:
                        type: array
                        items:
                          anyOf:
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - text
                                body:
                                  type: string
                                align:
                                  type: string
                                  enum:
                                    - left
                                    - center
                              required:
                                - id
                                - type
                                - body
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - description
                                body:
                                  type: string
                                align:
                                  type: string
                                  enum:
                                    - left
                                    - center
                              required:
                                - id
                                - type
                                - body
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - image
                                url:
                                  type: string
                                alt:
                                  type: string
                                layout:
                                  type: string
                                  enum:
                                    - center
                                    - split
                              required:
                                - id
                                - type
                                - url
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - video
                                url:
                                  type: string
                                title:
                                  type: string
                                autoplay:
                                  type: boolean
                                soundLabel:
                                  type: string
                              required:
                                - id
                                - type
                                - url
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - spacer
                                size:
                                  type: string
                                  enum:
                                    - sm
                                    - md
                                    - lg
                              required:
                                - id
                                - type
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - options
                                title:
                                  type: string
                                label:
                                  type: string
                                options:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      label:
                                        type: string
                                      value:
                                        type: string
                                      imageUrl:
                                        type: string
                                      goto:
                                        type: string
                                      score:
                                        type: number
                                    required:
                                      - id
                                      - label
                                    additionalProperties: false
                                layout:
                                  type: string
                                  enum:
                                    - list
                                    - grid2
                                    - grid3
                                direction:
                                  type: string
                                  enum:
                                    - vertical
                                    - horizontal
                                disposition:
                                  type: string
                                  enum:
                                    - text
                                    - image-text
                                    - image-cover
                                required:
                                  type: boolean
                                multiple:
                                  type: boolean
                                redirectOnButtonOnly:
                                  type: boolean
                                mapping:
                                  type: object
                                  properties:
                                    scope:
                                      type: string
                                      enum:
                                        - lead
                                        - custom
                                        - opportunity
                                        - none
                                    target:
                                      type: string
                                  required:
                                    - scope
                                  additionalProperties: false
                              required:
                                - id
                                - type
                                - options
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - scale
                                title:
                                  type: string
                                label:
                                  type: string
                                min:
                                  type: number
                                max:
                                  type: number
                                minLabel:
                                  type: string
                                maxLabel:
                                  type: string
                                required:
                                  type: boolean
                                mapping:
                                  type: object
                                  properties:
                                    scope:
                                      type: string
                                      enum:
                                        - lead
                                        - custom
                                        - opportunity
                                        - none
                                    target:
                                      type: string
                                  required:
                                    - scope
                                  additionalProperties: false
                              required:
                                - id
                                - type
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - number
                                title:
                                  type: string
                                label:
                                  type: string
                                placeholder:
                                  type: string
                                required:
                                  type: boolean
                                min:
                                  type: number
                                max:
                                  type: number
                                mapping:
                                  type: object
                                  properties:
                                    scope:
                                      type: string
                                      enum:
                                        - lead
                                        - custom
                                        - opportunity
                                        - none
                                    target:
                                      type: string
                                  required:
                                    - scope
                                  additionalProperties: false
                              required:
                                - id
                                - type
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - currency
                                title:
                                  type: string
                                label:
                                  type: string
                                placeholder:
                                  type: string
                                required:
                                  type: boolean
                                currencyCode:
                                  type: string
                                mapping:
                                  type: object
                                  properties:
                                    scope:
                                      type: string
                                      enum:
                                        - lead
                                        - custom
                                        - opportunity
                                        - none
                                    target:
                                      type: string
                                  required:
                                    - scope
                                  additionalProperties: false
                              required:
                                - id
                                - type
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - measure
                                kind:
                                  type: string
                                  enum:
                                    - weight
                                    - height
                                title:
                                  type: string
                                label:
                                  type: string
                                defaultValue:
                                  type: number
                                min:
                                  type: number
                                max:
                                  type: number
                                step:
                                  type: number
                                allowUnitToggle:
                                  type: boolean
                                required:
                                  type: boolean
                                mapping:
                                  type: object
                                  properties:
                                    scope:
                                      type: string
                                      enum:
                                        - lead
                                        - custom
                                        - opportunity
                                        - none
                                    target:
                                      type: string
                                  required:
                                    - scope
                                  additionalProperties: false
                              required:
                                - id
                                - type
                                - kind
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - button
                                label:
                                  type: string
                                action:
                                  type: string
                                  enum:
                                    - next
                                    - goto
                                    - url
                                target:
                                  type: string
                                variant:
                                  type: string
                                  enum:
                                    - solid
                                    - outline
                                    - ghost
                                    - link
                              required:
                                - id
                                - type
                                - label
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - capture
                                title:
                                  type: string
                                fields:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      fieldType:
                                        type: string
                                        enum:
                                          - text
                                          - email
                                          - phone
                                          - number
                                          - currency
                                          - textarea
                                          - select
                                          - multi
                                          - rating
                                          - switch
                                          - date
                                      label:
                                        type: string
                                      placeholder:
                                        type: string
                                      required:
                                        type: boolean
                                      mapping:
                                        type: object
                                        properties:
                                          scope:
                                            type: string
                                            enum:
                                              - lead
                                              - custom
                                              - opportunity
                                              - none
                                          target:
                                            type: string
                                        required:
                                          - scope
                                        additionalProperties: false
                                    required:
                                      - id
                                      - fieldType
                                      - label
                                      - required
                                      - mapping
                                    additionalProperties: false
                                submitLabel:
                                  type: string
                              required:
                                - id
                                - type
                                - fields
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - alert
                                body:
                                  type: string
                                title:
                                  type: string
                                variant:
                                  type: string
                                  enum:
                                    - info
                                    - success
                                    - warning
                                    - error
                              required:
                                - id
                                - type
                                - body
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - offer
                                offerId:
                                  type: string
                                productName:
                                  type: string
                                offerName:
                                  type: string
                                priceLabel:
                                  type: string
                                imageUrl:
                                  type: string
                                checkoutUrl:
                                  type: string
                                ctaLabel:
                                  type: string
                              required:
                                - id
                                - type
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - loading
                                label:
                                  type: string
                                durationMs:
                                  type: number
                                goto:
                                  type: string
                              required:
                                - id
                                - type
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - metrics
                                title:
                                  type: string
                                items:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      value:
                                        type: string
                                      label:
                                        type: string
                                    required:
                                      - id
                                      - value
                                      - label
                                    additionalProperties: false
                              required:
                                - id
                                - type
                                - items
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - results
                                title:
                                  type: string
                                items:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      title:
                                        type: string
                                      description:
                                        type: string
                                    required:
                                      - id
                                      - title
                                    additionalProperties: false
                              required:
                                - id
                                - type
                                - items
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - testimonials
                                title:
                                  type: string
                                items:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      name:
                                        type: string
                                      role:
                                        type: string
                                      quote:
                                        type: string
                                      avatarUrl:
                                        type: string
                                      rating:
                                        type: number
                                    required:
                                      - id
                                      - name
                                      - quote
                                    additionalProperties: false
                              required:
                                - id
                                - type
                                - items
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - beforeAfter
                                title:
                                  type: string
                                beforeUrl:
                                  type: string
                                afterUrl:
                                  type: string
                                beforeLabel:
                                  type: string
                                afterLabel:
                                  type: string
                              required:
                                - id
                                - type
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - faq
                                title:
                                  type: string
                                items:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      question:
                                        type: string
                                      answer:
                                        type: string
                                    required:
                                      - id
                                      - question
                                      - answer
                                    additionalProperties: false
                              required:
                                - id
                                - type
                                - items
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - checklist
                                title:
                                  type: string
                                items:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      text:
                                        type: string
                                    required:
                                      - id
                                      - text
                                    additionalProperties: false
                              required:
                                - id
                                - type
                                - items
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - pricing
                                title:
                                  type: string
                                planName:
                                  type: string
                                price:
                                  type: string
                                period:
                                  type: string
                                badge:
                                  type: string
                                highlight:
                                  type: boolean
                                features:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      text:
                                        type: string
                                    required:
                                      - id
                                      - text
                                    additionalProperties: false
                                ctaLabel:
                                  type: string
                                ctaUrl:
                                  type: string
                              required:
                                - id
                                - type
                                - features
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                        additionalProperties: false
                                  required:
                                    - when
                                  additionalProperties: false
                                type:
                                  type: string
                                  enum:
                                    - resultChart
                                title:
                                  type: string
                                caption:
                                  type: string
                                chartType:
                                  type: string
                                  enum:
                                    - line
                                    - bar
                                    - pie
                                points:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      label:
                                        type: string
                                      value:
                                        type: number
                                    required:
                                      - id
                                      - label
                                      - value
                                    additionalProperties: false
                              required:
                                - id
                                - type
                                - points
                              additionalProperties: false
                      next:
                        type: string
                    required:
                      - id
                      - order
                      - blocks
                    additionalProperties: false
                theme:
                  type: object
                  properties:
                    presetId:
                      type: string
                      maxLength: 64
                    headerBg:
                      type: string
                      maxLength: 200
                    headerText:
                      type: string
                      maxLength: 200
                    headerSubText:
                      type: string
                      maxLength: 200
                    logoBg:
                      type: string
                      maxLength: 200
                    logoText:
                      type: string
                      maxLength: 200
                    pageBg:
                      type: string
                      maxLength: 200
                    cardBg:
                      type: string
                      maxLength: 200
                    cardBorder:
                      type: string
                      maxLength: 200
                    inputBg:
                      type: string
                      maxLength: 200
                    inputBorder:
                      type: string
                      maxLength: 200
                    labelColor:
                      type: string
                      maxLength: 200
                    placeholder:
                      type: string
                      maxLength: 200
                    btnBg:
                      type: string
                      maxLength: 200
                    btnText:
                      type: string
                      maxLength: 200
                    cardR:
                      type: string
                      maxLength: 200
                    inputR:
                      type: string
                      maxLength: 200
                    btnR:
                      type: string
                      maxLength: 200
                    font:
                      type: string
                      maxLength: 200
                    inputStyle:
                      type: string
                      enum:
                        - filled
                        - bordered
                        - underline
                    quizDesign:
                      type: object
                      properties:
                        templateId:
                          type: string
                          maxLength: 64
                        primaryColor:
                          type: string
                          maxLength: 200
                        radiusKey:
                          type: string
                          maxLength: 32
                        fontKey:
                          type: string
                          maxLength: 32
                        bgMode:
                          type: string
                          maxLength: 32
                        textColor:
                          type: string
                          maxLength: 200
                        progressStyle:
                          type: string
                          maxLength: 32
                      additionalProperties: false
                  required:
                    - headerBg
                    - headerText
                    - headerSubText
                    - logoBg
                    - logoText
                    - pageBg
                    - cardBg
                    - cardBorder
                    - inputBg
                    - inputBorder
                    - labelColor
                    - placeholder
                    - btnBg
                    - btnText
                    - cardR
                    - inputR
                    - btnR
                    - font
                    - inputStyle
                  additionalProperties: false
                settings:
                  type: object
                  properties:
                    dedupRule:
                      type: string
                      enum:
                        - merge
                        - new
                    addToListId:
                      type: string
                    applyTagIds:
                      type: array
                      items:
                        type: string
                    notifications:
                      type: object
                      properties:
                        emails:
                          type: array
                          items:
                            type: string
                        browserPush:
                          type: boolean
                        triggerAutomation:
                          type: boolean
                      additionalProperties: false
                    redirectUrl:
                      type: string
                      maxLength: 2048
                      pattern: ^([Hh][Tt][Tt][Pp][Ss]?:\/\/.*)?$
                    successMessage:
                      type: string
                    submitLabel:
                      type: string
                    showLgpd:
                      type: boolean
                    lgpdRequired:
                      type: boolean
                    originTag:
                      type: string
                    assigneeId:
                      type: string
                    pipelineId:
                      type: string
                    pipelineStageId:
                      type: string
                    statusOnCapture:
                      type: string
                    statusOnComplete:
                      type: string
                    tagByResult:
                      type: boolean
                    tagPrefix:
                      type: string
                    dedupKey:
                      type: string
                      enum:
                        - email
                        - phone
                        - email_phone
                    mergeStrategy:
                      type: string
                      enum:
                        - incoming
                        - existing
                        - recent
                    tagDuplicates:
                      type: boolean
                    slug:
                      type: string
                    shareMode:
                      type: string
                      enum:
                        - page
                        - embed
                        - popup
                    embedWidth:
                      type: string
                    embedHeight:
                      type: string
                    seoTitle:
                      type: string
                    seoDescription:
                      type: string
                    allowIndexing:
                      type: boolean
                    ogTitle:
                      type: string
                      maxLength: 120
                    ogDescription:
                      type: string
                      maxLength: 300
                    ogImageUrl:
                      type: string
                      maxLength: 2048
                      pattern: ^([Hh][Tt][Tt][Pp][Ss]?:\/\/.*)?$
                    hideProgress:
                      type: boolean
                    resetOnBack:
                      type: boolean
                    lgpdText:
                      type: string
                    slackWebhookUrl:
                      type: string
                    externalWebhookUrl:
                      type: string
                  required:
                    - dedupRule
                  additionalProperties: false
                qualification:
                  type: array
                  items:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                          additionalProperties: false
                      applyTagIds:
                        type: array
                        items:
                          type: string
                      addToListId:
                        type: string
                    required:
                      - when
                    additionalProperties: false
                formulas:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                      name:
                        type: string
                      expression:
                        type: string
                    required:
                      - id
                      - name
                      - expression
                    additionalProperties: false
              required:
                - version
                - kind
                - name
                - title
                - steps
                - theme
                - settings
              additionalProperties: false
        funnelId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        pageId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        domainId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        pathSlug:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        color:
          anyOf:
            - type: string
              maxLength: 7
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        publicUrl:
          type: string
          format: uri
        pageUrl:
          anyOf:
            - type: string
              format: uri
            - type: "null"
      required:
        - id
        - ownerId
        - name
        - title
        - slug
        - status
        - kind
        - schema
        - createdAt
        - updatedAt
        - publicUrl
      additionalProperties: false
    FormsCreateInput:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
        projectId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        title:
          type: string
          maxLength: 255
        description:
          anyOf:
            - type: string
            - type: "null"
        status:
          type: string
          enum:
            - draft
            - active
            - paused
        kind:
          type: string
          enum:
            - form
            - quiz
        schema:
          anyOf:
            - type: object
              properties:
                version:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                id:
                  type: string
                name:
                  type: string
                title:
                  type: string
                description:
                  type: string
                fields:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                      type:
                        type: string
                        enum:
                          - text
                          - email
                          - phone
                          - number
                          - currency
                          - textarea
                          - select
                          - multi
                          - rating
                          - switch
                          - date
                      label:
                        type: string
                      placeholder:
                        type: string
                      helpText:
                        type: string
                      required:
                        type: boolean
                      options:
                        type: array
                        items:
                          anyOf:
                            - type: string
                            - type: object
                              properties:
                                label:
                                  type: string
                                value:
                                  type: string
                              required:
                                - label
                                - value
                      mapping:
                        type: object
                        properties:
                          scope:
                            type: string
                            enum:
                              - lead
                              - custom
                              - opportunity
                              - none
                          target:
                            type: string
                        required:
                          - scope
                    required:
                      - id
                      - type
                      - label
                      - required
                      - mapping
                steps:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                      title:
                        type: string
                      description:
                        type: string
                      fieldIds:
                        type: array
                        items:
                          type: string
                      advanceRule:
                        type: string
                        enum:
                          - always
                          - required
                          - logic
                      transition:
                        type: string
                        enum:
                          - slide
                          - fade
                          - none
                    required:
                      - id
                      - title
                      - fieldIds
                theme:
                  type: object
                  properties:
                    presetId:
                      type: string
                      maxLength: 64
                    headerBg:
                      type: string
                      maxLength: 200
                    headerText:
                      type: string
                      maxLength: 200
                    headerSubText:
                      type: string
                      maxLength: 200
                    logoBg:
                      type: string
                      maxLength: 200
                    logoText:
                      type: string
                      maxLength: 200
                    pageBg:
                      type: string
                      maxLength: 200
                    cardBg:
                      type: string
                      maxLength: 200
                    cardBorder:
                      type: string
                      maxLength: 200
                    inputBg:
                      type: string
                      maxLength: 200
                    inputBorder:
                      type: string
                      maxLength: 200
                    labelColor:
                      type: string
                      maxLength: 200
                    placeholder:
                      type: string
                      maxLength: 200
                    btnBg:
                      type: string
                      maxLength: 200
                    btnText:
                      type: string
                      maxLength: 200
                    cardR:
                      type: string
                      maxLength: 200
                    inputR:
                      type: string
                      maxLength: 200
                    btnR:
                      type: string
                      maxLength: 200
                    font:
                      type: string
                      maxLength: 200
                    inputStyle:
                      type: string
                      enum:
                        - filled
                        - bordered
                        - underline
                    quizDesign:
                      type: object
                      properties:
                        templateId:
                          type: string
                          maxLength: 64
                        primaryColor:
                          type: string
                          maxLength: 200
                        radiusKey:
                          type: string
                          maxLength: 32
                        fontKey:
                          type: string
                          maxLength: 32
                        bgMode:
                          type: string
                          maxLength: 32
                        textColor:
                          type: string
                          maxLength: 200
                        progressStyle:
                          type: string
                          maxLength: 32
                  required:
                    - headerBg
                    - headerText
                    - headerSubText
                    - logoBg
                    - logoText
                    - pageBg
                    - cardBg
                    - cardBorder
                    - inputBg
                    - inputBorder
                    - labelColor
                    - placeholder
                    - btnBg
                    - btnText
                    - cardR
                    - inputR
                    - btnR
                    - font
                    - inputStyle
                settings:
                  type: object
                  properties:
                    dedupRule:
                      type: string
                      enum:
                        - merge
                        - new
                    addToListId:
                      type: string
                    applyTagIds:
                      type: array
                      items:
                        type: string
                    notifications:
                      type: object
                      properties:
                        emails:
                          type: array
                          items:
                            type: string
                        browserPush:
                          type: boolean
                        triggerAutomation:
                          type: boolean
                    redirectUrl:
                      type: string
                      maxLength: 2048
                      pattern: ^([Hh][Tt][Tt][Pp][Ss]?:\/\/.*)?$
                    successMessage:
                      type: string
                    submitLabel:
                      type: string
                    showLgpd:
                      type: boolean
                    lgpdRequired:
                      type: boolean
                    originTag:
                      type: string
                    assigneeId:
                      type: string
                    pipelineId:
                      type: string
                    pipelineStageId:
                      type: string
                    statusOnCapture:
                      type: string
                    statusOnComplete:
                      type: string
                    tagByResult:
                      type: boolean
                    tagPrefix:
                      type: string
                    dedupKey:
                      type: string
                      enum:
                        - email
                        - phone
                        - email_phone
                    mergeStrategy:
                      type: string
                      enum:
                        - incoming
                        - existing
                        - recent
                    tagDuplicates:
                      type: boolean
                    slug:
                      type: string
                    shareMode:
                      type: string
                      enum:
                        - page
                        - embed
                        - popup
                    embedWidth:
                      type: string
                    embedHeight:
                      type: string
                    seoTitle:
                      type: string
                    seoDescription:
                      type: string
                    allowIndexing:
                      type: boolean
                    ogTitle:
                      type: string
                      maxLength: 120
                    ogDescription:
                      type: string
                      maxLength: 300
                    ogImageUrl:
                      type: string
                      maxLength: 2048
                      pattern: ^([Hh][Tt][Tt][Pp][Ss]?:\/\/.*)?$
                    hideProgress:
                      type: boolean
                    resetOnBack:
                      type: boolean
                    lgpdText:
                      type: string
                    slackWebhookUrl:
                      type: string
                    externalWebhookUrl:
                      type: string
                  required:
                    - dedupRule
              required:
                - version
                - name
                - title
                - fields
                - steps
                - theme
                - settings
            - type: object
              properties:
                version:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                id:
                  type: string
                kind:
                  type: string
                  enum:
                    - quiz
                name:
                  type: string
                title:
                  type: string
                description:
                  type: string
                steps:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                      order:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      name:
                        type: string
                      blocks:
                        type: array
                        items:
                          anyOf:
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - text
                                body:
                                  type: string
                                align:
                                  type: string
                                  enum:
                                    - left
                                    - center
                              required:
                                - id
                                - type
                                - body
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - description
                                body:
                                  type: string
                                align:
                                  type: string
                                  enum:
                                    - left
                                    - center
                              required:
                                - id
                                - type
                                - body
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - image
                                url:
                                  type: string
                                alt:
                                  type: string
                                layout:
                                  type: string
                                  enum:
                                    - center
                                    - split
                              required:
                                - id
                                - type
                                - url
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - video
                                url:
                                  type: string
                                title:
                                  type: string
                                autoplay:
                                  type: boolean
                                soundLabel:
                                  type: string
                              required:
                                - id
                                - type
                                - url
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - spacer
                                size:
                                  type: string
                                  enum:
                                    - sm
                                    - md
                                    - lg
                              required:
                                - id
                                - type
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - options
                                title:
                                  type: string
                                label:
                                  type: string
                                options:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      label:
                                        type: string
                                      value:
                                        type: string
                                      imageUrl:
                                        type: string
                                      goto:
                                        type: string
                                      score:
                                        type: number
                                    required:
                                      - id
                                      - label
                                layout:
                                  type: string
                                  enum:
                                    - list
                                    - grid2
                                    - grid3
                                direction:
                                  type: string
                                  enum:
                                    - vertical
                                    - horizontal
                                disposition:
                                  type: string
                                  enum:
                                    - text
                                    - image-text
                                    - image-cover
                                required:
                                  type: boolean
                                multiple:
                                  type: boolean
                                redirectOnButtonOnly:
                                  type: boolean
                                mapping:
                                  type: object
                                  properties:
                                    scope:
                                      type: string
                                      enum:
                                        - lead
                                        - custom
                                        - opportunity
                                        - none
                                    target:
                                      type: string
                                  required:
                                    - scope
                              required:
                                - id
                                - type
                                - options
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - scale
                                title:
                                  type: string
                                label:
                                  type: string
                                min:
                                  type: number
                                max:
                                  type: number
                                minLabel:
                                  type: string
                                maxLabel:
                                  type: string
                                required:
                                  type: boolean
                                mapping:
                                  type: object
                                  properties:
                                    scope:
                                      type: string
                                      enum:
                                        - lead
                                        - custom
                                        - opportunity
                                        - none
                                    target:
                                      type: string
                                  required:
                                    - scope
                              required:
                                - id
                                - type
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - number
                                title:
                                  type: string
                                label:
                                  type: string
                                placeholder:
                                  type: string
                                required:
                                  type: boolean
                                min:
                                  type: number
                                max:
                                  type: number
                                mapping:
                                  type: object
                                  properties:
                                    scope:
                                      type: string
                                      enum:
                                        - lead
                                        - custom
                                        - opportunity
                                        - none
                                    target:
                                      type: string
                                  required:
                                    - scope
                              required:
                                - id
                                - type
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - currency
                                title:
                                  type: string
                                label:
                                  type: string
                                placeholder:
                                  type: string
                                required:
                                  type: boolean
                                currencyCode:
                                  type: string
                                mapping:
                                  type: object
                                  properties:
                                    scope:
                                      type: string
                                      enum:
                                        - lead
                                        - custom
                                        - opportunity
                                        - none
                                    target:
                                      type: string
                                  required:
                                    - scope
                              required:
                                - id
                                - type
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - measure
                                kind:
                                  type: string
                                  enum:
                                    - weight
                                    - height
                                title:
                                  type: string
                                label:
                                  type: string
                                defaultValue:
                                  type: number
                                min:
                                  type: number
                                max:
                                  type: number
                                step:
                                  type: number
                                allowUnitToggle:
                                  type: boolean
                                required:
                                  type: boolean
                                mapping:
                                  type: object
                                  properties:
                                    scope:
                                      type: string
                                      enum:
                                        - lead
                                        - custom
                                        - opportunity
                                        - none
                                    target:
                                      type: string
                                  required:
                                    - scope
                              required:
                                - id
                                - type
                                - kind
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - button
                                label:
                                  type: string
                                action:
                                  type: string
                                  enum:
                                    - next
                                    - goto
                                    - url
                                target:
                                  type: string
                                variant:
                                  type: string
                                  enum:
                                    - solid
                                    - outline
                                    - ghost
                                    - link
                              required:
                                - id
                                - type
                                - label
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - capture
                                title:
                                  type: string
                                fields:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      fieldType:
                                        type: string
                                        enum:
                                          - text
                                          - email
                                          - phone
                                          - number
                                          - currency
                                          - textarea
                                          - select
                                          - multi
                                          - rating
                                          - switch
                                          - date
                                      label:
                                        type: string
                                      placeholder:
                                        type: string
                                      required:
                                        type: boolean
                                      mapping:
                                        type: object
                                        properties:
                                          scope:
                                            type: string
                                            enum:
                                              - lead
                                              - custom
                                              - opportunity
                                              - none
                                          target:
                                            type: string
                                        required:
                                          - scope
                                    required:
                                      - id
                                      - fieldType
                                      - label
                                      - required
                                      - mapping
                                submitLabel:
                                  type: string
                              required:
                                - id
                                - type
                                - fields
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - alert
                                body:
                                  type: string
                                title:
                                  type: string
                                variant:
                                  type: string
                                  enum:
                                    - info
                                    - success
                                    - warning
                                    - error
                              required:
                                - id
                                - type
                                - body
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - offer
                                offerId:
                                  type: string
                                productName:
                                  type: string
                                offerName:
                                  type: string
                                priceLabel:
                                  type: string
                                imageUrl:
                                  type: string
                                checkoutUrl:
                                  type: string
                                ctaLabel:
                                  type: string
                              required:
                                - id
                                - type
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - loading
                                label:
                                  type: string
                                durationMs:
                                  type: number
                                goto:
                                  type: string
                              required:
                                - id
                                - type
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - metrics
                                title:
                                  type: string
                                items:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      value:
                                        type: string
                                      label:
                                        type: string
                                    required:
                                      - id
                                      - value
                                      - label
                              required:
                                - id
                                - type
                                - items
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - results
                                title:
                                  type: string
                                items:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      title:
                                        type: string
                                      description:
                                        type: string
                                    required:
                                      - id
                                      - title
                              required:
                                - id
                                - type
                                - items
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - testimonials
                                title:
                                  type: string
                                items:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      name:
                                        type: string
                                      role:
                                        type: string
                                      quote:
                                        type: string
                                      avatarUrl:
                                        type: string
                                      rating:
                                        type: number
                                    required:
                                      - id
                                      - name
                                      - quote
                              required:
                                - id
                                - type
                                - items
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - beforeAfter
                                title:
                                  type: string
                                beforeUrl:
                                  type: string
                                afterUrl:
                                  type: string
                                beforeLabel:
                                  type: string
                                afterLabel:
                                  type: string
                              required:
                                - id
                                - type
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - faq
                                title:
                                  type: string
                                items:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      question:
                                        type: string
                                      answer:
                                        type: string
                                    required:
                                      - id
                                      - question
                                      - answer
                              required:
                                - id
                                - type
                                - items
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - checklist
                                title:
                                  type: string
                                items:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      text:
                                        type: string
                                    required:
                                      - id
                                      - text
                              required:
                                - id
                                - type
                                - items
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - pricing
                                title:
                                  type: string
                                planName:
                                  type: string
                                price:
                                  type: string
                                period:
                                  type: string
                                badge:
                                  type: string
                                highlight:
                                  type: boolean
                                features:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      text:
                                        type: string
                                    required:
                                      - id
                                      - text
                                ctaLabel:
                                  type: string
                                ctaUrl:
                                  type: string
                              required:
                                - id
                                - type
                                - features
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - resultChart
                                title:
                                  type: string
                                caption:
                                  type: string
                                chartType:
                                  type: string
                                  enum:
                                    - line
                                    - bar
                                    - pie
                                points:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      label:
                                        type: string
                                      value:
                                        type: number
                                    required:
                                      - id
                                      - label
                                      - value
                              required:
                                - id
                                - type
                                - points
                      next:
                        type: string
                    required:
                      - id
                      - order
                      - blocks
                theme:
                  type: object
                  properties:
                    presetId:
                      type: string
                      maxLength: 64
                    headerBg:
                      type: string
                      maxLength: 200
                    headerText:
                      type: string
                      maxLength: 200
                    headerSubText:
                      type: string
                      maxLength: 200
                    logoBg:
                      type: string
                      maxLength: 200
                    logoText:
                      type: string
                      maxLength: 200
                    pageBg:
                      type: string
                      maxLength: 200
                    cardBg:
                      type: string
                      maxLength: 200
                    cardBorder:
                      type: string
                      maxLength: 200
                    inputBg:
                      type: string
                      maxLength: 200
                    inputBorder:
                      type: string
                      maxLength: 200
                    labelColor:
                      type: string
                      maxLength: 200
                    placeholder:
                      type: string
                      maxLength: 200
                    btnBg:
                      type: string
                      maxLength: 200
                    btnText:
                      type: string
                      maxLength: 200
                    cardR:
                      type: string
                      maxLength: 200
                    inputR:
                      type: string
                      maxLength: 200
                    btnR:
                      type: string
                      maxLength: 200
                    font:
                      type: string
                      maxLength: 200
                    inputStyle:
                      type: string
                      enum:
                        - filled
                        - bordered
                        - underline
                    quizDesign:
                      type: object
                      properties:
                        templateId:
                          type: string
                          maxLength: 64
                        primaryColor:
                          type: string
                          maxLength: 200
                        radiusKey:
                          type: string
                          maxLength: 32
                        fontKey:
                          type: string
                          maxLength: 32
                        bgMode:
                          type: string
                          maxLength: 32
                        textColor:
                          type: string
                          maxLength: 200
                        progressStyle:
                          type: string
                          maxLength: 32
                  required:
                    - headerBg
                    - headerText
                    - headerSubText
                    - logoBg
                    - logoText
                    - pageBg
                    - cardBg
                    - cardBorder
                    - inputBg
                    - inputBorder
                    - labelColor
                    - placeholder
                    - btnBg
                    - btnText
                    - cardR
                    - inputR
                    - btnR
                    - font
                    - inputStyle
                settings:
                  type: object
                  properties:
                    dedupRule:
                      type: string
                      enum:
                        - merge
                        - new
                    addToListId:
                      type: string
                    applyTagIds:
                      type: array
                      items:
                        type: string
                    notifications:
                      type: object
                      properties:
                        emails:
                          type: array
                          items:
                            type: string
                        browserPush:
                          type: boolean
                        triggerAutomation:
                          type: boolean
                    redirectUrl:
                      type: string
                      maxLength: 2048
                      pattern: ^([Hh][Tt][Tt][Pp][Ss]?:\/\/.*)?$
                    successMessage:
                      type: string
                    submitLabel:
                      type: string
                    showLgpd:
                      type: boolean
                    lgpdRequired:
                      type: boolean
                    originTag:
                      type: string
                    assigneeId:
                      type: string
                    pipelineId:
                      type: string
                    pipelineStageId:
                      type: string
                    statusOnCapture:
                      type: string
                    statusOnComplete:
                      type: string
                    tagByResult:
                      type: boolean
                    tagPrefix:
                      type: string
                    dedupKey:
                      type: string
                      enum:
                        - email
                        - phone
                        - email_phone
                    mergeStrategy:
                      type: string
                      enum:
                        - incoming
                        - existing
                        - recent
                    tagDuplicates:
                      type: boolean
                    slug:
                      type: string
                    shareMode:
                      type: string
                      enum:
                        - page
                        - embed
                        - popup
                    embedWidth:
                      type: string
                    embedHeight:
                      type: string
                    seoTitle:
                      type: string
                    seoDescription:
                      type: string
                    allowIndexing:
                      type: boolean
                    ogTitle:
                      type: string
                      maxLength: 120
                    ogDescription:
                      type: string
                      maxLength: 300
                    ogImageUrl:
                      type: string
                      maxLength: 2048
                      pattern: ^([Hh][Tt][Tt][Pp][Ss]?:\/\/.*)?$
                    hideProgress:
                      type: boolean
                    resetOnBack:
                      type: boolean
                    lgpdText:
                      type: string
                    slackWebhookUrl:
                      type: string
                    externalWebhookUrl:
                      type: string
                  required:
                    - dedupRule
                qualification:
                  type: array
                  items:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                      applyTagIds:
                        type: array
                        items:
                          type: string
                      addToListId:
                        type: string
                    required:
                      - when
                formulas:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                      name:
                        type: string
                      expression:
                        type: string
                    required:
                      - id
                      - name
                      - expression
              required:
                - version
                - kind
                - name
                - title
                - steps
                - theme
                - settings
        funnelId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        pageId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        domainId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        pathSlug:
          anyOf:
            - type: string
              minLength: 1
              maxLength: 255
              pattern: ^[a-zA-Z0-9_-]+$
            - type: "null"
        color:
          anyOf:
            - type: string
              maxLength: 7
            - type: "null"
      required:
        - name
    FormsUpdateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          minLength: 1
          maxLength: 255
        projectId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        title:
          type: string
          maxLength: 255
        description:
          anyOf:
            - type: string
            - type: "null"
        status:
          type: string
          enum:
            - draft
            - active
            - paused
        kind:
          type: string
          enum:
            - form
            - quiz
        funnelId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        pageId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        domainId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        pathSlug:
          anyOf:
            - type: string
              minLength: 1
              maxLength: 255
              pattern: ^[a-zA-Z0-9_-]+$
            - type: "null"
        color:
          anyOf:
            - type: string
              maxLength: 7
            - type: "null"
        slug:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[a-zA-Z0-9_-]+$
        expectedUpdatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
    FormsReplaceSchemaInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        schema:
          anyOf:
            - type: object
              properties:
                version:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                id:
                  type: string
                name:
                  type: string
                title:
                  type: string
                description:
                  type: string
                fields:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                      type:
                        type: string
                        enum:
                          - text
                          - email
                          - phone
                          - number
                          - currency
                          - textarea
                          - select
                          - multi
                          - rating
                          - switch
                          - date
                      label:
                        type: string
                      placeholder:
                        type: string
                      helpText:
                        type: string
                      required:
                        type: boolean
                      options:
                        type: array
                        items:
                          anyOf:
                            - type: string
                            - type: object
                              properties:
                                label:
                                  type: string
                                value:
                                  type: string
                              required:
                                - label
                                - value
                      mapping:
                        type: object
                        properties:
                          scope:
                            type: string
                            enum:
                              - lead
                              - custom
                              - opportunity
                              - none
                          target:
                            type: string
                        required:
                          - scope
                    required:
                      - id
                      - type
                      - label
                      - required
                      - mapping
                steps:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                      title:
                        type: string
                      description:
                        type: string
                      fieldIds:
                        type: array
                        items:
                          type: string
                      advanceRule:
                        type: string
                        enum:
                          - always
                          - required
                          - logic
                      transition:
                        type: string
                        enum:
                          - slide
                          - fade
                          - none
                    required:
                      - id
                      - title
                      - fieldIds
                theme:
                  type: object
                  properties:
                    presetId:
                      type: string
                      maxLength: 64
                    headerBg:
                      type: string
                      maxLength: 200
                    headerText:
                      type: string
                      maxLength: 200
                    headerSubText:
                      type: string
                      maxLength: 200
                    logoBg:
                      type: string
                      maxLength: 200
                    logoText:
                      type: string
                      maxLength: 200
                    pageBg:
                      type: string
                      maxLength: 200
                    cardBg:
                      type: string
                      maxLength: 200
                    cardBorder:
                      type: string
                      maxLength: 200
                    inputBg:
                      type: string
                      maxLength: 200
                    inputBorder:
                      type: string
                      maxLength: 200
                    labelColor:
                      type: string
                      maxLength: 200
                    placeholder:
                      type: string
                      maxLength: 200
                    btnBg:
                      type: string
                      maxLength: 200
                    btnText:
                      type: string
                      maxLength: 200
                    cardR:
                      type: string
                      maxLength: 200
                    inputR:
                      type: string
                      maxLength: 200
                    btnR:
                      type: string
                      maxLength: 200
                    font:
                      type: string
                      maxLength: 200
                    inputStyle:
                      type: string
                      enum:
                        - filled
                        - bordered
                        - underline
                    quizDesign:
                      type: object
                      properties:
                        templateId:
                          type: string
                          maxLength: 64
                        primaryColor:
                          type: string
                          maxLength: 200
                        radiusKey:
                          type: string
                          maxLength: 32
                        fontKey:
                          type: string
                          maxLength: 32
                        bgMode:
                          type: string
                          maxLength: 32
                        textColor:
                          type: string
                          maxLength: 200
                        progressStyle:
                          type: string
                          maxLength: 32
                  required:
                    - headerBg
                    - headerText
                    - headerSubText
                    - logoBg
                    - logoText
                    - pageBg
                    - cardBg
                    - cardBorder
                    - inputBg
                    - inputBorder
                    - labelColor
                    - placeholder
                    - btnBg
                    - btnText
                    - cardR
                    - inputR
                    - btnR
                    - font
                    - inputStyle
                settings:
                  type: object
                  properties:
                    dedupRule:
                      type: string
                      enum:
                        - merge
                        - new
                    addToListId:
                      type: string
                    applyTagIds:
                      type: array
                      items:
                        type: string
                    notifications:
                      type: object
                      properties:
                        emails:
                          type: array
                          items:
                            type: string
                        browserPush:
                          type: boolean
                        triggerAutomation:
                          type: boolean
                    redirectUrl:
                      type: string
                      maxLength: 2048
                      pattern: ^([Hh][Tt][Tt][Pp][Ss]?:\/\/.*)?$
                    successMessage:
                      type: string
                    submitLabel:
                      type: string
                    showLgpd:
                      type: boolean
                    lgpdRequired:
                      type: boolean
                    originTag:
                      type: string
                    assigneeId:
                      type: string
                    pipelineId:
                      type: string
                    pipelineStageId:
                      type: string
                    statusOnCapture:
                      type: string
                    statusOnComplete:
                      type: string
                    tagByResult:
                      type: boolean
                    tagPrefix:
                      type: string
                    dedupKey:
                      type: string
                      enum:
                        - email
                        - phone
                        - email_phone
                    mergeStrategy:
                      type: string
                      enum:
                        - incoming
                        - existing
                        - recent
                    tagDuplicates:
                      type: boolean
                    slug:
                      type: string
                    shareMode:
                      type: string
                      enum:
                        - page
                        - embed
                        - popup
                    embedWidth:
                      type: string
                    embedHeight:
                      type: string
                    seoTitle:
                      type: string
                    seoDescription:
                      type: string
                    allowIndexing:
                      type: boolean
                    ogTitle:
                      type: string
                      maxLength: 120
                    ogDescription:
                      type: string
                      maxLength: 300
                    ogImageUrl:
                      type: string
                      maxLength: 2048
                      pattern: ^([Hh][Tt][Tt][Pp][Ss]?:\/\/.*)?$
                    hideProgress:
                      type: boolean
                    resetOnBack:
                      type: boolean
                    lgpdText:
                      type: string
                    slackWebhookUrl:
                      type: string
                    externalWebhookUrl:
                      type: string
                  required:
                    - dedupRule
              required:
                - version
                - name
                - title
                - fields
                - steps
                - theme
                - settings
            - type: object
              properties:
                version:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                id:
                  type: string
                kind:
                  type: string
                  enum:
                    - quiz
                name:
                  type: string
                title:
                  type: string
                description:
                  type: string
                steps:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                      order:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      name:
                        type: string
                      blocks:
                        type: array
                        items:
                          anyOf:
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - text
                                body:
                                  type: string
                                align:
                                  type: string
                                  enum:
                                    - left
                                    - center
                              required:
                                - id
                                - type
                                - body
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - description
                                body:
                                  type: string
                                align:
                                  type: string
                                  enum:
                                    - left
                                    - center
                              required:
                                - id
                                - type
                                - body
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - image
                                url:
                                  type: string
                                alt:
                                  type: string
                                layout:
                                  type: string
                                  enum:
                                    - center
                                    - split
                              required:
                                - id
                                - type
                                - url
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - video
                                url:
                                  type: string
                                title:
                                  type: string
                                autoplay:
                                  type: boolean
                                soundLabel:
                                  type: string
                              required:
                                - id
                                - type
                                - url
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - spacer
                                size:
                                  type: string
                                  enum:
                                    - sm
                                    - md
                                    - lg
                              required:
                                - id
                                - type
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - options
                                title:
                                  type: string
                                label:
                                  type: string
                                options:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      label:
                                        type: string
                                      value:
                                        type: string
                                      imageUrl:
                                        type: string
                                      goto:
                                        type: string
                                      score:
                                        type: number
                                    required:
                                      - id
                                      - label
                                layout:
                                  type: string
                                  enum:
                                    - list
                                    - grid2
                                    - grid3
                                direction:
                                  type: string
                                  enum:
                                    - vertical
                                    - horizontal
                                disposition:
                                  type: string
                                  enum:
                                    - text
                                    - image-text
                                    - image-cover
                                required:
                                  type: boolean
                                multiple:
                                  type: boolean
                                redirectOnButtonOnly:
                                  type: boolean
                                mapping:
                                  type: object
                                  properties:
                                    scope:
                                      type: string
                                      enum:
                                        - lead
                                        - custom
                                        - opportunity
                                        - none
                                    target:
                                      type: string
                                  required:
                                    - scope
                              required:
                                - id
                                - type
                                - options
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - scale
                                title:
                                  type: string
                                label:
                                  type: string
                                min:
                                  type: number
                                max:
                                  type: number
                                minLabel:
                                  type: string
                                maxLabel:
                                  type: string
                                required:
                                  type: boolean
                                mapping:
                                  type: object
                                  properties:
                                    scope:
                                      type: string
                                      enum:
                                        - lead
                                        - custom
                                        - opportunity
                                        - none
                                    target:
                                      type: string
                                  required:
                                    - scope
                              required:
                                - id
                                - type
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - number
                                title:
                                  type: string
                                label:
                                  type: string
                                placeholder:
                                  type: string
                                required:
                                  type: boolean
                                min:
                                  type: number
                                max:
                                  type: number
                                mapping:
                                  type: object
                                  properties:
                                    scope:
                                      type: string
                                      enum:
                                        - lead
                                        - custom
                                        - opportunity
                                        - none
                                    target:
                                      type: string
                                  required:
                                    - scope
                              required:
                                - id
                                - type
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - currency
                                title:
                                  type: string
                                label:
                                  type: string
                                placeholder:
                                  type: string
                                required:
                                  type: boolean
                                currencyCode:
                                  type: string
                                mapping:
                                  type: object
                                  properties:
                                    scope:
                                      type: string
                                      enum:
                                        - lead
                                        - custom
                                        - opportunity
                                        - none
                                    target:
                                      type: string
                                  required:
                                    - scope
                              required:
                                - id
                                - type
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - measure
                                kind:
                                  type: string
                                  enum:
                                    - weight
                                    - height
                                title:
                                  type: string
                                label:
                                  type: string
                                defaultValue:
                                  type: number
                                min:
                                  type: number
                                max:
                                  type: number
                                step:
                                  type: number
                                allowUnitToggle:
                                  type: boolean
                                required:
                                  type: boolean
                                mapping:
                                  type: object
                                  properties:
                                    scope:
                                      type: string
                                      enum:
                                        - lead
                                        - custom
                                        - opportunity
                                        - none
                                    target:
                                      type: string
                                  required:
                                    - scope
                              required:
                                - id
                                - type
                                - kind
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - button
                                label:
                                  type: string
                                action:
                                  type: string
                                  enum:
                                    - next
                                    - goto
                                    - url
                                target:
                                  type: string
                                variant:
                                  type: string
                                  enum:
                                    - solid
                                    - outline
                                    - ghost
                                    - link
                              required:
                                - id
                                - type
                                - label
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - capture
                                title:
                                  type: string
                                fields:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      fieldType:
                                        type: string
                                        enum:
                                          - text
                                          - email
                                          - phone
                                          - number
                                          - currency
                                          - textarea
                                          - select
                                          - multi
                                          - rating
                                          - switch
                                          - date
                                      label:
                                        type: string
                                      placeholder:
                                        type: string
                                      required:
                                        type: boolean
                                      mapping:
                                        type: object
                                        properties:
                                          scope:
                                            type: string
                                            enum:
                                              - lead
                                              - custom
                                              - opportunity
                                              - none
                                          target:
                                            type: string
                                        required:
                                          - scope
                                    required:
                                      - id
                                      - fieldType
                                      - label
                                      - required
                                      - mapping
                                submitLabel:
                                  type: string
                              required:
                                - id
                                - type
                                - fields
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - alert
                                body:
                                  type: string
                                title:
                                  type: string
                                variant:
                                  type: string
                                  enum:
                                    - info
                                    - success
                                    - warning
                                    - error
                              required:
                                - id
                                - type
                                - body
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - offer
                                offerId:
                                  type: string
                                productName:
                                  type: string
                                offerName:
                                  type: string
                                priceLabel:
                                  type: string
                                imageUrl:
                                  type: string
                                checkoutUrl:
                                  type: string
                                ctaLabel:
                                  type: string
                              required:
                                - id
                                - type
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - loading
                                label:
                                  type: string
                                durationMs:
                                  type: number
                                goto:
                                  type: string
                              required:
                                - id
                                - type
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - metrics
                                title:
                                  type: string
                                items:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      value:
                                        type: string
                                      label:
                                        type: string
                                    required:
                                      - id
                                      - value
                                      - label
                              required:
                                - id
                                - type
                                - items
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - results
                                title:
                                  type: string
                                items:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      title:
                                        type: string
                                      description:
                                        type: string
                                    required:
                                      - id
                                      - title
                              required:
                                - id
                                - type
                                - items
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - testimonials
                                title:
                                  type: string
                                items:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      name:
                                        type: string
                                      role:
                                        type: string
                                      quote:
                                        type: string
                                      avatarUrl:
                                        type: string
                                      rating:
                                        type: number
                                    required:
                                      - id
                                      - name
                                      - quote
                              required:
                                - id
                                - type
                                - items
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - beforeAfter
                                title:
                                  type: string
                                beforeUrl:
                                  type: string
                                afterUrl:
                                  type: string
                                beforeLabel:
                                  type: string
                                afterLabel:
                                  type: string
                              required:
                                - id
                                - type
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - faq
                                title:
                                  type: string
                                items:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      question:
                                        type: string
                                      answer:
                                        type: string
                                    required:
                                      - id
                                      - question
                                      - answer
                              required:
                                - id
                                - type
                                - items
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - checklist
                                title:
                                  type: string
                                items:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      text:
                                        type: string
                                    required:
                                      - id
                                      - text
                              required:
                                - id
                                - type
                                - items
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - pricing
                                title:
                                  type: string
                                planName:
                                  type: string
                                price:
                                  type: string
                                period:
                                  type: string
                                badge:
                                  type: string
                                highlight:
                                  type: boolean
                                features:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      text:
                                        type: string
                                    required:
                                      - id
                                      - text
                                ctaLabel:
                                  type: string
                                ctaUrl:
                                  type: string
                              required:
                                - id
                                - type
                                - features
                            - type: object
                              properties:
                                id:
                                  type: string
                                displayRule:
                                  type: object
                                  properties:
                                    when:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          field:
                                            type: string
                                          op:
                                            type: string
                                            enum:
                                              - eq
                                              - neq
                                              - contains
                                              - in
                                              - gt
                                              - gte
                                              - lt
                                              - lte
                                              - exists
                                          value: {}
                                        required:
                                          - field
                                          - op
                                  required:
                                    - when
                                type:
                                  type: string
                                  enum:
                                    - resultChart
                                title:
                                  type: string
                                caption:
                                  type: string
                                chartType:
                                  type: string
                                  enum:
                                    - line
                                    - bar
                                    - pie
                                points:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      label:
                                        type: string
                                      value:
                                        type: number
                                    required:
                                      - id
                                      - label
                                      - value
                              required:
                                - id
                                - type
                                - points
                      next:
                        type: string
                    required:
                      - id
                      - order
                      - blocks
                theme:
                  type: object
                  properties:
                    presetId:
                      type: string
                      maxLength: 64
                    headerBg:
                      type: string
                      maxLength: 200
                    headerText:
                      type: string
                      maxLength: 200
                    headerSubText:
                      type: string
                      maxLength: 200
                    logoBg:
                      type: string
                      maxLength: 200
                    logoText:
                      type: string
                      maxLength: 200
                    pageBg:
                      type: string
                      maxLength: 200
                    cardBg:
                      type: string
                      maxLength: 200
                    cardBorder:
                      type: string
                      maxLength: 200
                    inputBg:
                      type: string
                      maxLength: 200
                    inputBorder:
                      type: string
                      maxLength: 200
                    labelColor:
                      type: string
                      maxLength: 200
                    placeholder:
                      type: string
                      maxLength: 200
                    btnBg:
                      type: string
                      maxLength: 200
                    btnText:
                      type: string
                      maxLength: 200
                    cardR:
                      type: string
                      maxLength: 200
                    inputR:
                      type: string
                      maxLength: 200
                    btnR:
                      type: string
                      maxLength: 200
                    font:
                      type: string
                      maxLength: 200
                    inputStyle:
                      type: string
                      enum:
                        - filled
                        - bordered
                        - underline
                    quizDesign:
                      type: object
                      properties:
                        templateId:
                          type: string
                          maxLength: 64
                        primaryColor:
                          type: string
                          maxLength: 200
                        radiusKey:
                          type: string
                          maxLength: 32
                        fontKey:
                          type: string
                          maxLength: 32
                        bgMode:
                          type: string
                          maxLength: 32
                        textColor:
                          type: string
                          maxLength: 200
                        progressStyle:
                          type: string
                          maxLength: 32
                  required:
                    - headerBg
                    - headerText
                    - headerSubText
                    - logoBg
                    - logoText
                    - pageBg
                    - cardBg
                    - cardBorder
                    - inputBg
                    - inputBorder
                    - labelColor
                    - placeholder
                    - btnBg
                    - btnText
                    - cardR
                    - inputR
                    - btnR
                    - font
                    - inputStyle
                settings:
                  type: object
                  properties:
                    dedupRule:
                      type: string
                      enum:
                        - merge
                        - new
                    addToListId:
                      type: string
                    applyTagIds:
                      type: array
                      items:
                        type: string
                    notifications:
                      type: object
                      properties:
                        emails:
                          type: array
                          items:
                            type: string
                        browserPush:
                          type: boolean
                        triggerAutomation:
                          type: boolean
                    redirectUrl:
                      type: string
                      maxLength: 2048
                      pattern: ^([Hh][Tt][Tt][Pp][Ss]?:\/\/.*)?$
                    successMessage:
                      type: string
                    submitLabel:
                      type: string
                    showLgpd:
                      type: boolean
                    lgpdRequired:
                      type: boolean
                    originTag:
                      type: string
                    assigneeId:
                      type: string
                    pipelineId:
                      type: string
                    pipelineStageId:
                      type: string
                    statusOnCapture:
                      type: string
                    statusOnComplete:
                      type: string
                    tagByResult:
                      type: boolean
                    tagPrefix:
                      type: string
                    dedupKey:
                      type: string
                      enum:
                        - email
                        - phone
                        - email_phone
                    mergeStrategy:
                      type: string
                      enum:
                        - incoming
                        - existing
                        - recent
                    tagDuplicates:
                      type: boolean
                    slug:
                      type: string
                    shareMode:
                      type: string
                      enum:
                        - page
                        - embed
                        - popup
                    embedWidth:
                      type: string
                    embedHeight:
                      type: string
                    seoTitle:
                      type: string
                    seoDescription:
                      type: string
                    allowIndexing:
                      type: boolean
                    ogTitle:
                      type: string
                      maxLength: 120
                    ogDescription:
                      type: string
                      maxLength: 300
                    ogImageUrl:
                      type: string
                      maxLength: 2048
                      pattern: ^([Hh][Tt][Tt][Pp][Ss]?:\/\/.*)?$
                    hideProgress:
                      type: boolean
                    resetOnBack:
                      type: boolean
                    lgpdText:
                      type: string
                    slackWebhookUrl:
                      type: string
                    externalWebhookUrl:
                      type: string
                  required:
                    - dedupRule
                qualification:
                  type: array
                  items:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                      applyTagIds:
                        type: array
                        items:
                          type: string
                      addToListId:
                        type: string
                    required:
                      - when
                formulas:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                      name:
                        type: string
                      expression:
                        type: string
                    required:
                      - id
                      - name
                      - expression
              required:
                - version
                - kind
                - name
                - title
                - steps
                - theme
                - settings
        expectedUpdatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
    FormsStepUpsertInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        stepId:
          type: string
        name:
          type: string
        next:
          type: string
        blocks:
          type: array
          items:
            anyOf:
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - text
                  body:
                    type: string
                  align:
                    type: string
                    enum:
                      - left
                      - center
                required:
                  - id
                  - type
                  - body
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - description
                  body:
                    type: string
                  align:
                    type: string
                    enum:
                      - left
                      - center
                required:
                  - id
                  - type
                  - body
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - image
                  url:
                    type: string
                  alt:
                    type: string
                  layout:
                    type: string
                    enum:
                      - center
                      - split
                required:
                  - id
                  - type
                  - url
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - video
                  url:
                    type: string
                  title:
                    type: string
                  autoplay:
                    type: boolean
                  soundLabel:
                    type: string
                required:
                  - id
                  - type
                  - url
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - spacer
                  size:
                    type: string
                    enum:
                      - sm
                      - md
                      - lg
                required:
                  - id
                  - type
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - options
                  title:
                    type: string
                  label:
                    type: string
                  options:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        label:
                          type: string
                        value:
                          type: string
                        imageUrl:
                          type: string
                        goto:
                          type: string
                        score:
                          type: number
                      required:
                        - id
                        - label
                  layout:
                    type: string
                    enum:
                      - list
                      - grid2
                      - grid3
                  direction:
                    type: string
                    enum:
                      - vertical
                      - horizontal
                  disposition:
                    type: string
                    enum:
                      - text
                      - image-text
                      - image-cover
                  required:
                    type: boolean
                  multiple:
                    type: boolean
                  redirectOnButtonOnly:
                    type: boolean
                  mapping:
                    type: object
                    properties:
                      scope:
                        type: string
                        enum:
                          - lead
                          - custom
                          - opportunity
                          - none
                      target:
                        type: string
                    required:
                      - scope
                required:
                  - id
                  - type
                  - options
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - scale
                  title:
                    type: string
                  label:
                    type: string
                  min:
                    type: number
                  max:
                    type: number
                  minLabel:
                    type: string
                  maxLabel:
                    type: string
                  required:
                    type: boolean
                  mapping:
                    type: object
                    properties:
                      scope:
                        type: string
                        enum:
                          - lead
                          - custom
                          - opportunity
                          - none
                      target:
                        type: string
                    required:
                      - scope
                required:
                  - id
                  - type
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - number
                  title:
                    type: string
                  label:
                    type: string
                  placeholder:
                    type: string
                  required:
                    type: boolean
                  min:
                    type: number
                  max:
                    type: number
                  mapping:
                    type: object
                    properties:
                      scope:
                        type: string
                        enum:
                          - lead
                          - custom
                          - opportunity
                          - none
                      target:
                        type: string
                    required:
                      - scope
                required:
                  - id
                  - type
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - currency
                  title:
                    type: string
                  label:
                    type: string
                  placeholder:
                    type: string
                  required:
                    type: boolean
                  currencyCode:
                    type: string
                  mapping:
                    type: object
                    properties:
                      scope:
                        type: string
                        enum:
                          - lead
                          - custom
                          - opportunity
                          - none
                      target:
                        type: string
                    required:
                      - scope
                required:
                  - id
                  - type
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - measure
                  kind:
                    type: string
                    enum:
                      - weight
                      - height
                  title:
                    type: string
                  label:
                    type: string
                  defaultValue:
                    type: number
                  min:
                    type: number
                  max:
                    type: number
                  step:
                    type: number
                  allowUnitToggle:
                    type: boolean
                  required:
                    type: boolean
                  mapping:
                    type: object
                    properties:
                      scope:
                        type: string
                        enum:
                          - lead
                          - custom
                          - opportunity
                          - none
                      target:
                        type: string
                    required:
                      - scope
                required:
                  - id
                  - type
                  - kind
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - button
                  label:
                    type: string
                  action:
                    type: string
                    enum:
                      - next
                      - goto
                      - url
                  target:
                    type: string
                  variant:
                    type: string
                    enum:
                      - solid
                      - outline
                      - ghost
                      - link
                required:
                  - id
                  - type
                  - label
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - capture
                  title:
                    type: string
                  fields:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        fieldType:
                          type: string
                          enum:
                            - text
                            - email
                            - phone
                            - number
                            - currency
                            - textarea
                            - select
                            - multi
                            - rating
                            - switch
                            - date
                        label:
                          type: string
                        placeholder:
                          type: string
                        required:
                          type: boolean
                        mapping:
                          type: object
                          properties:
                            scope:
                              type: string
                              enum:
                                - lead
                                - custom
                                - opportunity
                                - none
                            target:
                              type: string
                          required:
                            - scope
                      required:
                        - id
                        - fieldType
                        - label
                        - required
                        - mapping
                  submitLabel:
                    type: string
                required:
                  - id
                  - type
                  - fields
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - alert
                  body:
                    type: string
                  title:
                    type: string
                  variant:
                    type: string
                    enum:
                      - info
                      - success
                      - warning
                      - error
                required:
                  - id
                  - type
                  - body
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - offer
                  offerId:
                    type: string
                  productName:
                    type: string
                  offerName:
                    type: string
                  priceLabel:
                    type: string
                  imageUrl:
                    type: string
                  checkoutUrl:
                    type: string
                  ctaLabel:
                    type: string
                required:
                  - id
                  - type
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - loading
                  label:
                    type: string
                  durationMs:
                    type: number
                  goto:
                    type: string
                required:
                  - id
                  - type
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - metrics
                  title:
                    type: string
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        value:
                          type: string
                        label:
                          type: string
                      required:
                        - id
                        - value
                        - label
                required:
                  - id
                  - type
                  - items
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - results
                  title:
                    type: string
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        title:
                          type: string
                        description:
                          type: string
                      required:
                        - id
                        - title
                required:
                  - id
                  - type
                  - items
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - testimonials
                  title:
                    type: string
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        role:
                          type: string
                        quote:
                          type: string
                        avatarUrl:
                          type: string
                        rating:
                          type: number
                      required:
                        - id
                        - name
                        - quote
                required:
                  - id
                  - type
                  - items
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - beforeAfter
                  title:
                    type: string
                  beforeUrl:
                    type: string
                  afterUrl:
                    type: string
                  beforeLabel:
                    type: string
                  afterLabel:
                    type: string
                required:
                  - id
                  - type
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - faq
                  title:
                    type: string
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        question:
                          type: string
                        answer:
                          type: string
                      required:
                        - id
                        - question
                        - answer
                required:
                  - id
                  - type
                  - items
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - checklist
                  title:
                    type: string
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        text:
                          type: string
                      required:
                        - id
                        - text
                required:
                  - id
                  - type
                  - items
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - pricing
                  title:
                    type: string
                  planName:
                    type: string
                  price:
                    type: string
                  period:
                    type: string
                  badge:
                    type: string
                  highlight:
                    type: boolean
                  features:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        text:
                          type: string
                      required:
                        - id
                        - text
                  ctaLabel:
                    type: string
                  ctaUrl:
                    type: string
                required:
                  - id
                  - type
                  - features
              - type: object
                properties:
                  id:
                    type: string
                  displayRule:
                    type: object
                    properties:
                      when:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - contains
                                - in
                                - gt
                                - gte
                                - lt
                                - lte
                                - exists
                            value: {}
                          required:
                            - field
                            - op
                    required:
                      - when
                  type:
                    type: string
                    enum:
                      - resultChart
                  title:
                    type: string
                  caption:
                    type: string
                  chartType:
                    type: string
                    enum:
                      - line
                      - bar
                      - pie
                  points:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        label:
                          type: string
                        value:
                          type: number
                      required:
                        - id
                        - label
                        - value
                required:
                  - id
                  - type
                  - points
        index:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        expectedUpdatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
    FormsStepDeleteInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        stepId:
          type: string
        expectedUpdatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - stepId
    FormsDeleteInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    FormsDeleteOutput:
      type: object
      properties:
        deleted:
          type: boolean
      required:
        - deleted
      additionalProperties: false
    FormsSubmissionsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              formId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              leadId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              funnelId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              rawPayload: {}
              score:
                anyOf:
                  - type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  - type: "null"
              resultStepId:
                anyOf:
                  - type: string
                  - type: "null"
              status:
                type: string
                enum:
                  - partial
                  - completed
              resumeToken:
                anyOf:
                  - type: string
                  - type: "null"
              lastStepId:
                anyOf:
                  - type: string
                  - type: "null"
              completedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              ip:
                anyOf:
                  - type: string
                  - type: "null"
              userAgent:
                anyOf:
                  - type: string
                  - type: "null"
              referer:
                anyOf:
                  - type: string
                  - type: "null"
              utmSource:
                anyOf:
                  - type: string
                  - type: "null"
              utmMedium:
                anyOf:
                  - type: string
                  - type: "null"
              utmCampaign:
                anyOf:
                  - type: string
                  - type: "null"
              utmTerm:
                anyOf:
                  - type: string
                  - type: "null"
              utmContent:
                anyOf:
                  - type: string
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - formId
              - ownerId
              - rawPayload
              - status
              - updatedAt
              - createdAt
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    FormsAnalyticsOutput:
      type: object
      properties:
        period:
          anyOf:
            - type: string
              enum:
                - 7d
            - type: string
              enum:
                - 30d
            - type: string
              enum:
                - 90d
            - type: string
              enum:
                - all
        rangeFrom:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        rangeTo:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        kpi:
          type: object
          properties:
            views:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            leads:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            completed:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            captured:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            completionRate:
              type: number
              minimum: 0
              maximum: 1
            captureRate:
              type: number
              minimum: 0
              maximum: 1
            avgTimeSeconds:
              type: number
              minimum: 0
          required:
            - views
            - leads
            - completed
            - captured
            - completionRate
            - captureRate
          additionalProperties: false
        leadsTimeseries:
          type: array
          items:
            type: object
            properties:
              date:
                type: string
                format: date
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
              leads:
                type: integer
                minimum: 0
                maximum: 9007199254740991
            required:
              - date
              - leads
            additionalProperties: false
        funnel:
          type: array
          items:
            type: object
            properties:
              stepId:
                type: string
              label:
                type: string
              count:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              dropoffFromPrevious:
                type: number
                minimum: 0
                maximum: 1
              share:
                type: number
                minimum: 0
                maximum: 1
            required:
              - stepId
              - label
              - count
              - dropoffFromPrevious
              - share
            additionalProperties: false
        results:
          type: array
          items:
            type: object
            properties:
              resultStepId:
                type: string
              label:
                type: string
              count:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              share:
                type: number
                minimum: 0
                maximum: 1
            required:
              - resultStepId
              - label
              - count
              - share
            additionalProperties: false
        devices:
          type: array
          items:
            type: object
            properties:
              device:
                anyOf:
                  - type: string
                    enum:
                      - mobile
                  - type: string
                    enum:
                      - desktop
                  - type: string
                    enum:
                      - tablet
              views:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              leads:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              conversionRate:
                type: number
                minimum: 0
                maximum: 1
            required:
              - device
              - views
              - leads
              - conversionRate
            additionalProperties: false
        utmSources:
          type: array
          items:
            type: object
            properties:
              source:
                type: string
              leads:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              share:
                type: number
                minimum: 0
                maximum: 1
            required:
              - source
              - leads
              - share
            additionalProperties: false
        questions:
          type: array
          items:
            type: object
            properties:
              questionId:
                type: string
              label:
                type: string
              totalAnswered:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              options:
                type: array
                items:
                  type: object
                  properties:
                    optionId:
                      type: string
                    label:
                      type: string
                    count:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    share:
                      type: number
                      minimum: 0
                      maximum: 1
                  required:
                    - optionId
                    - label
                    - count
                    - share
                  additionalProperties: false
            required:
              - questionId
              - label
              - totalAnswered
              - options
            additionalProperties: false
        biggestDropoff:
          type: object
          properties:
            fromStepId:
              type: string
            toStepId:
              type: string
            dropoffRate:
              type: number
              minimum: 0
              maximum: 1
          required:
            - fromStepId
            - toStepId
            - dropoffRate
          additionalProperties: false
        structuredFunnel:
          type: array
          items:
            type: object
            properties:
              stepId:
                type: string
              label:
                type: string
              order:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              reached:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
            required:
              - stepId
              - label
              - order
              - reached
            additionalProperties: false
      required:
        - period
        - rangeFrom
        - rangeTo
        - kpi
        - leadsTimeseries
        - funnel
        - results
        - devices
        - utmSources
        - questions
        - structuredFunnel
      additionalProperties: false
    LeadActivitiesListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              leadId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              opportunityId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              leadTaskId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              companyId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              category:
                type: string
              eventName:
                type: string
              isTrigger:
                type: boolean
              funnelId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              projectId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              pageId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              offerId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              productId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              externalProductId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              tagId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              buyerId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              transactionId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              subscriptionId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              messageId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              portalId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              lessonId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              moduleId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              courseId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              flowId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              pipelineId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              meta:
                allOf:
                  - anyOf:
                      - {}
                      - type: "null"
                  - {}
              aggregateId:
                anyOf:
                  - type: string
                  - type: "null"
              version:
                anyOf:
                  - type: number
                  - type: "null"
              actorId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              actorType:
                anyOf:
                  - anyOf:
                      - type: string
                        const: user
                      - type: string
                        const: system
                      - type: string
                        const: automation
                      - type: "null"
                        const: null
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              leadName:
                type: string
              actorName:
                type: string
            required:
              - id
              - ownerId
              - name
              - category
              - eventName
              - isTrigger
              - meta
              - createdAt
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    LeadActivitiesListByLeadInput:
      type: object
      properties:
        leadId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        page:
          default: 1
          type: number
          minimum: 1
        perPage:
          default: 10
          type: number
          minimum: 1
          maximum: 2000
        search:
          type: string
          minLength: 1
          maxLength: 200
        categories:
          type: array
          items:
            type: string
            enum:
              - Lead
              - Tag
              - Email
              - Chat
              - Checkout
              - PageView
              - Cart
              - PaymentFailedOrExpired
              - MemberArea
              - Opportunity
        eventName:
          type: array
          items:
            anyOf:
              - type: string
                enum:
                  - members.area.accessed.v1
              - type: string
                enum:
                  - members.banner.clicked.v1
              - type: string
                enum:
                  - members.lesson.completed.v1
              - type: string
                enum:
                  - members.module.completed.v1
              - type: string
                enum:
                  - members.course.completed.v1
              - type: string
                enum:
                  - checkout.transaction.created.v1
              - type: string
                enum:
                  - checkout.transaction.paid.v1
              - type: string
                enum:
                  - checkout.trial.started.v1
              - type: string
                enum:
                  - checkout.transaction.error.v1
              - type: string
                enum:
                  - checkout.page.access.v1
              - type: string
                enum:
                  - checkout.subscription.created.v1
              - type: string
                enum:
                  - checkout.boleto.generated.v1
              - type: string
                enum:
                  - checkout.pix.generated.v1
              - type: string
                enum:
                  - checkout.chargeback.requested.v1
              - type: string
                enum:
                  - checkout.refund.requested.v1
              - type: string
                enum:
                  - checkout.subscription.card.changed.v1
              - type: string
                enum:
                  - checkout.subscription.canceled.v1
              - type: string
                enum:
                  - cx.subscription.cancellation.requested.v1
              - type: string
                enum:
                  - cx.subscription.canceled.v1
              - type: string
                enum:
                  - cx.subscription.cancellation.reverted.v1
              - type: string
                enum:
                  - trial.expired.v1
              - type: string
                enum:
                  - cart.abandonment.v1
              - type: string
                enum:
                  - overdue.boleto.v1
              - type: string
                enum:
                  - pix.expired.v1
              - type: string
                enum:
                  - card.refused.v1
              - type: string
                enum:
                  - checkout.attempt.v1
              - type: string
                enum:
                  - crm.lead.submission.created.v1
              - type: string
                enum:
                  - crm.tag.lead.apply.v1
              - type: string
                enum:
                  - crm.tag.lead.remove.v1
              - type: string
                enum:
                  - crm.lead.created.v1
              - type: string
                enum:
                  - crm.lead.birthday.reminder.v1
              - type: string
                enum:
                  - crm.lead.captured.v1
              - type: string
                enum:
                  - crm.lead.manual.updated.v1
              - type: string
                enum:
                  - crm.lead.upsert.v2
              - type: string
                enum:
                  - crm.lead.message.preferences.update.v1
              - type: string
                enum:
                  - crm.scheduling.booked.v1
              - type: string
                enum:
                  - crm.scheduling.rescheduled.v1
              - type: string
                enum:
                  - crm.scheduling.confirmed.v1
              - type: string
                enum:
                  - crm.scheduling.completed.v1
              - type: string
                enum:
                  - crm.scheduling.no_show.v1
              - type: string
                enum:
                  - crm.scheduling.cancelled.v1
              - type: string
                enum:
                  - crm.scheduling.recording.available.v1
              - type: string
                enum:
                  - crm.opportunity.card.created.v1
              - type: string
                enum:
                  - crm.opportunity.card.moved.v1
              - type: string
                enum:
                  - crm.opportunity.card.updated.v1
              - type: string
                enum:
                  - crm.opportunity.card.attendants.assigned.v1
              - type: string
                enum:
                  - hermes.email.delivered.v1
              - type: string
                enum:
                  - hermes.email.failed.v1
              - type: string
                enum:
                  - hermes.email.opened.v1
              - type: string
                enum:
                  - hermes.telegram.chat.start.v1
              - type: string
                enum:
                  - hermes.gupshup.interaction.template.button.v1
              - type: string
                enum:
                  - flow.conversation-silent-triggers.activated.v1
              - type: string
                enum:
                  - flow.whatsapp-window-triggers.activated.v1
              - type: string
                enum:
                  - hermes.email.message.status.v1
              - type: string
                enum:
                  - hermes.message.received.v1
              - type: string
                enum:
                  - hermes.webchat.message.received.v1
              - type: string
                enum:
                  - hermes.webchat.handoff.requested.v1
              - type: string
                enum:
                  - hermes.telegram.message.received.v1
              - type: string
                enum:
                  - hermes.telegram.message.status.v1
              - type: string
                enum:
                  - hermes.gupshup.interaction.message.received.v1
              - type: string
                enum:
                  - hermes.instagram.message.received.v1
              - type: string
                enum:
                  - hermes.instagram.message.sent.v1
              - type: string
                enum:
                  - hermes.instagram.message.status.v1
              - type: string
                enum:
                  - hermes.instagram.comment.received.v1
              - type: string
                enum:
                  - hermes.instagram.story.reply.received.v1
              - type: string
                enum:
                  - hermes.gupshup.media.recovered.v1
              - type: string
                enum:
                  - hermes.telegram.media.recovered.v1
              - type: string
                enum:
                  - hermes.instagram.media.recovered.v1
              - type: string
                enum:
                  - hermes.gupshup.message.status.v1
              - type: string
                enum:
                  - hermes.gupshup.message.echo.v1
              - type: string
                enum:
                  - hermes.livechat.audio.transcribed.v1
              - type: string
                enum:
                  - hermes.livechat.template.send.failed.v1
              - type: string
                enum:
                  - hermes.flow.ghost.created.v1
              - type: string
                enum:
                  - hermes.thread.message.mirrored.v1
              - type: string
                enum:
                  - hermes.thread.reaction.updated.v1
              - type: string
                enum:
                  - hermes.livechat.app.health.changed.v1
              - type: string
                enum:
                  - flow.instagram-window-triggers.activated.v1
              - type: string
                enum:
                  - hermes.instagram.interaction.button.v1
              - type: string
                enum:
                  - hermes.voice.call.completed.v1
              - type: string
                enum:
                  - hermes.voice.call.recording.available.v1
              - type: string
                enum:
                  - hermes.voice.call.disposition.updated.v1
              - type: string
                enum:
                  - flow.triggered.v1
              - type: string
                enum:
                  - external.sale.paid.v1
              - type: string
                enum:
                  - crm.opportunity.card.attendants.updated.v1
              - type: string
                enum:
                  - crm.opportunity.card.status.changed.v1
              - type: string
                enum:
                  - crm.opportunity.card.responsible.changed.v1
              - type: string
                enum:
                  - crm.opportunity.card.archived.v1
              - type: string
                enum:
                  - crm.opportunity.card.contact.linked.v1
              - type: string
                enum:
                  - crm.opportunity.card.contact.unlinked.v1
              - type: string
                enum:
                  - crm.opportunity.card.company.linked.v1
              - type: string
                enum:
                  - crm.opportunity.card.company.unlinked.v1
              - type: string
                enum:
                  - crm.opportunity.card.attachment.added.v1
              - type: string
                enum:
                  - crm.opportunity.card.attachment.removed.v1
              - type: string
                enum:
                  - crm.opportunity.card.commission.changed.v1
              - type: string
                enum:
                  - crm.opportunity.card.custom_field.changed.v1
              - type: string
                enum:
                  - meet.report.ready.v1
              - type: string
                enum:
                  - hubla.purchase.approved.v1
              - type: string
                enum:
                  - hubla.refund.v1
              - type: string
                enum:
                  - hubla.cart.abandonment.v1
              - type: string
                enum:
                  - hubla.payment.failed.v1
              - type: string
                enum:
                  - hubla.invoice.expired.v1
              - type: string
                enum:
                  - hubla.subscription.created.v1
              - type: string
                enum:
                  - hubla.subscription.canceled.v1
              - type: string
                enum:
                  - kirvano.purchase.approved.v1
              - type: string
                enum:
                  - kirvano.payment.failed.v1
              - type: string
                enum:
                  - kirvano.refund.v1
              - type: string
                enum:
                  - kirvano.chargeback.v1
              - type: string
                enum:
                  - kirvano.cart.abandonment.v1
              - type: string
                enum:
                  - kirvano.pix.generated.v1
              - type: string
                enum:
                  - kirvano.pix.expired.v1
              - type: string
                enum:
                  - kirvano.boleto.generated.v1
              - type: string
                enum:
                  - kirvano.boleto.expired.v1
              - type: string
                enum:
                  - kirvano.subscription.created.v1
              - type: string
                enum:
                  - kirvano.subscription.renewed.v1
              - type: string
                enum:
                  - kirvano.subscription.canceled.v1
              - type: string
                enum:
                  - kirvano.subscription.expired.v1
              - type: string
                enum:
                  - hotmart.purchase.approved.v1
              - type: string
                enum:
                  - hotmart.purchase.refunded.v1
              - type: string
                enum:
                  - hotmart.purchase.chargeback.v1
              - type: string
                enum:
                  - hotmart.purchase.canceled.v1
              - type: string
                enum:
                  - hotmart.purchase.expired.v1
              - type: string
                enum:
                  - hotmart.purchase.delayed.v1
              - type: string
                enum:
                  - hotmart.billet.printed.v1
              - type: string
                enum:
                  - hotmart.cart.abandonment.v1
              - type: string
                enum:
                  - hotmart.subscription.canceled.v1
              - type: string
                enum:
                  - hotmart.subscription.switch.v1
              - type: string
                enum:
                  - hotmart.club.first.access.v1
              - type: string
                enum:
                  - hotmart.club.module.completed.v1
              - type: string
                enum:
                  - guru.subscription.active.v1
              - type: string
                enum:
                  - guru.subscription.past_due.v1
              - type: string
                enum:
                  - guru.subscription.canceled.v1
              - type: string
                enum:
                  - guru.subscription.expired.v1
              - type: string
                enum:
                  - guru.subscription.trial.v1
              - type: string
                enum:
                  - guru.cart.abandonment.v1
              - type: string
                enum:
                  - guru.transaction.waiting_payment.v1
              - type: string
                enum:
                  - guru.transaction.approved.v1
              - type: string
                enum:
                  - guru.transaction.delayed.v1
              - type: string
                enum:
                  - guru.transaction.blocked.v1
              - type: string
                enum:
                  - guru.transaction.billet_printed.v1
              - type: string
                enum:
                  - guru.transaction.canceled.v1
              - type: string
                enum:
                  - guru.transaction.analyzing.v1
              - type: string
                enum:
                  - guru.transaction.recovering.v1
              - type: string
                enum:
                  - guru.transaction.expired.v1
              - type: string
                enum:
                  - guru.transaction.chargeback.v1
              - type: string
                enum:
                  - guru.transaction.refunded.v1
              - type: string
                enum:
                  - guru.transaction.rejected.v1
              - type: string
                enum:
                  - guru.transaction.trial.v1
              - type: string
                enum:
                  - yampi.order.paid.v1
              - type: string
                enum:
                  - yampi.order.created.v1
              - type: string
                enum:
                  - yampi.cart.abandonment.v1
              - type: string
                enum:
                  - yampi.payment.refused.v1
              - type: string
                enum:
                  - yampi.order.refunded.v1
              - type: string
                enum:
                  - yampi.order.canceled.v1
              - type: string
                enum:
                  - ticto-webhook.cart.abandonment.v1
              - type: string
                enum:
                  - ticto-webhook.order.authorized.v1
              - type: string
                enum:
                  - ticto-webhook.order.waiting_payment.v1
              - type: string
                enum:
                  - ticto-webhook.order.refused.v1
              - type: string
                enum:
                  - ticto-webhook.order.refunded.v1
              - type: string
                enum:
                  - ticto-webhook.order.chargeback.v1
              - type: string
                enum:
                  - ticto-webhook.order.claimed.v1
              - type: string
                enum:
                  - ticto-webhook.order.closed.v1
              - type: string
                enum:
                  - ticto-webhook.order.bank_slip_created.v1
              - type: string
                enum:
                  - ticto-webhook.order.bank_slip_delayed.v1
              - type: string
                enum:
                  - ticto-webhook.order.pix_created.v1
              - type: string
                enum:
                  - ticto-webhook.order.pix_expired.v1
              - type: string
                enum:
                  - ticto-webhook.order.trial.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.trial_started.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.trial_ended.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.canceled.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.delayed.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.uncanceled.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.extended.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.card_exchanged.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.all_charges_paid.v1
              - type: string
                enum:
                  - yever.order.created.v1
              - type: string
                enum:
                  - yever.order.paid.v1
              - type: string
                enum:
                  - yever.order.refunded.v1
              - type: string
                enum:
                  - yever.order.charged_back.v1
              - type: string
                enum:
                  - yever.order.canceled.v1
              - type: string
                enum:
                  - yever.order.sent.v1
              - type: string
                enum:
                  - yever.cart.abandonment.v1
              - type: string
                enum:
                  - yever.subscription.created.v1
              - type: string
                enum:
                  - yever.subscription.renewal_succeeded.v1
              - type: string
                enum:
                  - yever.subscription.renewal_failed.v1
              - type: string
                enum:
                  - yever.subscription.active.v1
              - type: string
                enum:
                  - yever.subscription.paused.v1
              - type: string
                enum:
                  - yever.subscription.canceled.v1
              - type: string
                enum:
                  - yever.subscription.finished.v1
              - type: string
                enum:
                  - yever.cashback.created.v1
              - type: string
                enum:
                  - yever.cashback.used.v1
              - type: string
                enum:
                  - yever.cashback.expired.v1
              - type: string
                enum:
                  - yever.cashback.expiring_soon.v1
              - type: string
                enum:
                  - yever.cashback.canceled.v1
              - type: string
                enum:
                  - yever.cashback.restored.v1
              - type: string
                enum:
                  - whop-webhook.payment.created.v1
              - type: string
                enum:
                  - whop-webhook.payment.authorized.v1
              - type: string
                enum:
                  - whop-webhook.payment.pending.v1
              - type: string
                enum:
                  - whop-webhook.payment.succeeded.v1
              - type: string
                enum:
                  - whop-webhook.payment.failed.v1
              - type: string
                enum:
                  - whop-webhook.payment.canceled.v1
              - type: string
                enum:
                  - whop-webhook.refund.created.v1
              - type: string
                enum:
                  - whop-webhook.refund.updated.v1
              - type: string
                enum:
                  - whop-webhook.dispute.created.v1
              - type: string
                enum:
                  - whop-webhook.membership.activated.v1
              - type: string
                enum:
                  - whop-webhook.membership.deactivated.v1
              - type: string
                enum:
                  - whop-webhook.membership.trial_ending_soon.v1
              - type: string
                enum:
                  - whop-webhook.membership.cancel_scheduled.v1
              - type: string
                enum:
                  - whop-webhook.membership.cancel_unscheduled.v1
              - type: string
                enum:
                  - whop-webhook.invoice.created.v1
              - type: string
                enum:
                  - whop-webhook.invoice.paid.v1
              - type: string
                enum:
                  - whop-webhook.invoice.past_due.v1
              - type: string
                enum:
                  - whop-webhook.invoice.marked_uncollectible.v1
              - type: string
                enum:
                  - whop-webhook.invoice.voided.v1
              - type: string
                enum:
                  - lastlink.purchase.approved.v1
              - type: string
                enum:
                  - lastlink.purchase.canceled.v1
              - type: string
                enum:
                  - lastlink.invoice.created.v1
              - type: string
                enum:
                  - lastlink.invoice.expired.v1
              - type: string
                enum:
                  - lastlink.refund.v1
              - type: string
                enum:
                  - lastlink.refund.requested.v1
              - type: string
                enum:
                  - lastlink.refund.period_over.v1
              - type: string
                enum:
                  - lastlink.chargeback.v1
              - type: string
                enum:
                  - lastlink.cart.abandonment.v1
              - type: string
                enum:
                  - lastlink.subscription.renewed.v1
              - type: string
                enum:
                  - lastlink.subscription.renewal_pending.v1
              - type: string
                enum:
                  - lastlink.subscription.canceled.v1
              - type: string
                enum:
                  - lastlink.subscription.expired.v1
              - type: string
                enum:
                  - lastlink.product.access.started.v1
              - type: string
                enum:
                  - lastlink.product.access.ended.v1
              - type: string
                enum:
                  - voomp.sale.paid.v1
              - type: string
                enum:
                  - voomp.sale.refused.v1
              - type: string
                enum:
                  - voomp.sale.refunded.v1
              - type: string
                enum:
                  - voomp.sale.chargeback.v1
              - type: string
                enum:
                  - voomp.sale.unpaid.v1
              - type: string
                enum:
                  - voomp.sale.waiting_payment.v1
              - type: string
                enum:
                  - voomp.sale.due_days.v1
              - type: string
                enum:
                  - voomp.cart.abandonment.v1
              - type: string
                enum:
                  - voomp.subscription.paid.v1
              - type: string
                enum:
                  - voomp.subscription.unpaid.v1
              - type: string
                enum:
                  - voomp.subscription.trialing.v1
              - type: string
                enum:
                  - voomp.subscription.pending_payment.v1
              - type: string
                enum:
                  - voomp.subscription.ended.v1
              - type: string
                enum:
                  - voomp.subscription.canceled.v1
              - type: string
                enum:
                  - asaas.payment.confirmed.v1
              - type: string
                enum:
                  - asaas.payment.received.v1
              - type: string
                enum:
                  - asaas.payment.overdue.v1
              - type: string
                enum:
                  - asaas.payment.refunded.v1
              - type: string
                enum:
                  - asaas.payment.chargeback_requested.v1
              - type: string
                enum:
                  - asaas.payment.credit_card_capture_refused.v1
              - type: string
                enum:
                  - asaas.subscription.created.v1
              - type: string
                enum:
                  - asaas.subscription.inactivated.v1
              - type: string
                enum:
                  - asaas.subscription.deleted.v1
              - type: string
                enum:
                  - tmb.sale.approved.v1
              - type: string
                enum:
                  - tmb.sale.canceled.v1
              - type: string
                enum:
                  - tmb.checkout.installments_selection.v1
              - type: string
                enum:
                  - tmb.checkout.token.v1
              - type: string
                enum:
                  - tmb.checkout.liveness_proof.v1
              - type: string
                enum:
                  - tmb.checkout.documentation_started.v1
              - type: string
                enum:
                  - tmb.checkout.document_attached.v1
              - type: string
                enum:
                  - tmb.checkout.selfie_attached.v1
              - type: string
                enum:
                  - tmb.checkout.address_proof_attached.v1
              - type: string
                enum:
                  - tmb.checkout.awaiting_signature.v1
              - type: string
                enum:
                  - tmb.checkout.awaiting_payment.v1
              - type: string
                enum:
                  - principia.purchase.confirmed.v1
              - type: string
                enum:
                  - principia.purchase.canceled.v1
              - type: string
                enum:
                  - principia.payment.declined.v1
              - type: string
                enum:
                  - principia.financing.denied.v1
              - type: string
                enum:
                  - principia.invoice.created.v1
              - type: string
                enum:
                  - principia.invoice.expired.v1
              - type: string
                enum:
                  - principia.cart.abandonment.v1
              - type: string
                enum:
                  - principia.guarantor.needed.v1
        funnelIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        projectIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offerIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        pageIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        tagIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        messageIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        pipelineIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        flowIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        actorIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        startDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        endDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        isRecurrentOffers:
          type: boolean
      required:
        - leadId
    LeadActivitiesListByLeadOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              leadId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              opportunityId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              leadTaskId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              companyId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              category:
                type: string
              eventName:
                type: string
              isTrigger:
                type: boolean
              funnelId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              projectId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              pageId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              offerId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              productId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              externalProductId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              tagId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              buyerId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              transactionId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              subscriptionId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              messageId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              portalId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              lessonId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              moduleId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              courseId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              flowId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              pipelineId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              meta:
                allOf:
                  - anyOf:
                      - {}
                      - type: "null"
                  - {}
              aggregateId:
                anyOf:
                  - type: string
                  - type: "null"
              version:
                anyOf:
                  - type: number
                  - type: "null"
              actorId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              actorType:
                anyOf:
                  - anyOf:
                      - type: string
                        const: user
                      - type: string
                        const: system
                      - type: string
                        const: automation
                      - type: "null"
                        const: null
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              leadName:
                type: string
              actorName:
                type: string
            required:
              - id
              - ownerId
              - name
              - category
              - eventName
              - isTrigger
              - meta
              - createdAt
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    LeadActivitiesSystemListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              eventName:
                type: string
              category:
                type: string
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - eventName
              - category
              - createdAt
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    LeadActivitiesSystemByLeadInput:
      type: object
      properties:
        leadId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        page:
          default: 1
          type: number
          minimum: 1
        perPage:
          default: 10
          type: number
          minimum: 1
          maximum: 2000
        search:
          type: string
          minLength: 1
          maxLength: 200
        categories:
          type: array
          items:
            type: string
            enum:
              - Lead
              - Tag
              - Email
              - Chat
              - Checkout
              - PageView
              - Cart
              - PaymentFailedOrExpired
              - MemberArea
              - Opportunity
        eventName:
          type: array
          items:
            anyOf:
              - type: string
                enum:
                  - members.area.accessed.v1
              - type: string
                enum:
                  - members.banner.clicked.v1
              - type: string
                enum:
                  - members.lesson.completed.v1
              - type: string
                enum:
                  - members.module.completed.v1
              - type: string
                enum:
                  - members.course.completed.v1
              - type: string
                enum:
                  - checkout.transaction.created.v1
              - type: string
                enum:
                  - checkout.transaction.paid.v1
              - type: string
                enum:
                  - checkout.trial.started.v1
              - type: string
                enum:
                  - checkout.transaction.error.v1
              - type: string
                enum:
                  - checkout.page.access.v1
              - type: string
                enum:
                  - checkout.subscription.created.v1
              - type: string
                enum:
                  - checkout.boleto.generated.v1
              - type: string
                enum:
                  - checkout.pix.generated.v1
              - type: string
                enum:
                  - checkout.chargeback.requested.v1
              - type: string
                enum:
                  - checkout.refund.requested.v1
              - type: string
                enum:
                  - checkout.subscription.card.changed.v1
              - type: string
                enum:
                  - checkout.subscription.canceled.v1
              - type: string
                enum:
                  - cx.subscription.cancellation.requested.v1
              - type: string
                enum:
                  - cx.subscription.canceled.v1
              - type: string
                enum:
                  - cx.subscription.cancellation.reverted.v1
              - type: string
                enum:
                  - trial.expired.v1
              - type: string
                enum:
                  - cart.abandonment.v1
              - type: string
                enum:
                  - overdue.boleto.v1
              - type: string
                enum:
                  - pix.expired.v1
              - type: string
                enum:
                  - card.refused.v1
              - type: string
                enum:
                  - checkout.attempt.v1
              - type: string
                enum:
                  - crm.lead.submission.created.v1
              - type: string
                enum:
                  - crm.tag.lead.apply.v1
              - type: string
                enum:
                  - crm.tag.lead.remove.v1
              - type: string
                enum:
                  - crm.lead.created.v1
              - type: string
                enum:
                  - crm.lead.birthday.reminder.v1
              - type: string
                enum:
                  - crm.lead.captured.v1
              - type: string
                enum:
                  - crm.lead.manual.updated.v1
              - type: string
                enum:
                  - crm.lead.upsert.v2
              - type: string
                enum:
                  - crm.lead.message.preferences.update.v1
              - type: string
                enum:
                  - crm.scheduling.booked.v1
              - type: string
                enum:
                  - crm.scheduling.rescheduled.v1
              - type: string
                enum:
                  - crm.scheduling.confirmed.v1
              - type: string
                enum:
                  - crm.scheduling.completed.v1
              - type: string
                enum:
                  - crm.scheduling.no_show.v1
              - type: string
                enum:
                  - crm.scheduling.cancelled.v1
              - type: string
                enum:
                  - crm.scheduling.recording.available.v1
              - type: string
                enum:
                  - crm.opportunity.card.created.v1
              - type: string
                enum:
                  - crm.opportunity.card.moved.v1
              - type: string
                enum:
                  - crm.opportunity.card.updated.v1
              - type: string
                enum:
                  - crm.opportunity.card.attendants.assigned.v1
              - type: string
                enum:
                  - hermes.email.delivered.v1
              - type: string
                enum:
                  - hermes.email.failed.v1
              - type: string
                enum:
                  - hermes.email.opened.v1
              - type: string
                enum:
                  - hermes.telegram.chat.start.v1
              - type: string
                enum:
                  - hermes.gupshup.interaction.template.button.v1
              - type: string
                enum:
                  - flow.conversation-silent-triggers.activated.v1
              - type: string
                enum:
                  - flow.whatsapp-window-triggers.activated.v1
              - type: string
                enum:
                  - hermes.email.message.status.v1
              - type: string
                enum:
                  - hermes.message.received.v1
              - type: string
                enum:
                  - hermes.webchat.message.received.v1
              - type: string
                enum:
                  - hermes.webchat.handoff.requested.v1
              - type: string
                enum:
                  - hermes.telegram.message.received.v1
              - type: string
                enum:
                  - hermes.telegram.message.status.v1
              - type: string
                enum:
                  - hermes.gupshup.interaction.message.received.v1
              - type: string
                enum:
                  - hermes.instagram.message.received.v1
              - type: string
                enum:
                  - hermes.instagram.message.sent.v1
              - type: string
                enum:
                  - hermes.instagram.message.status.v1
              - type: string
                enum:
                  - hermes.instagram.comment.received.v1
              - type: string
                enum:
                  - hermes.instagram.story.reply.received.v1
              - type: string
                enum:
                  - hermes.gupshup.media.recovered.v1
              - type: string
                enum:
                  - hermes.telegram.media.recovered.v1
              - type: string
                enum:
                  - hermes.instagram.media.recovered.v1
              - type: string
                enum:
                  - hermes.gupshup.message.status.v1
              - type: string
                enum:
                  - hermes.gupshup.message.echo.v1
              - type: string
                enum:
                  - hermes.livechat.audio.transcribed.v1
              - type: string
                enum:
                  - hermes.livechat.template.send.failed.v1
              - type: string
                enum:
                  - hermes.flow.ghost.created.v1
              - type: string
                enum:
                  - hermes.thread.message.mirrored.v1
              - type: string
                enum:
                  - hermes.thread.reaction.updated.v1
              - type: string
                enum:
                  - hermes.livechat.app.health.changed.v1
              - type: string
                enum:
                  - flow.instagram-window-triggers.activated.v1
              - type: string
                enum:
                  - hermes.instagram.interaction.button.v1
              - type: string
                enum:
                  - hermes.voice.call.completed.v1
              - type: string
                enum:
                  - hermes.voice.call.recording.available.v1
              - type: string
                enum:
                  - hermes.voice.call.disposition.updated.v1
              - type: string
                enum:
                  - flow.triggered.v1
              - type: string
                enum:
                  - external.sale.paid.v1
              - type: string
                enum:
                  - crm.opportunity.card.attendants.updated.v1
              - type: string
                enum:
                  - crm.opportunity.card.status.changed.v1
              - type: string
                enum:
                  - crm.opportunity.card.responsible.changed.v1
              - type: string
                enum:
                  - crm.opportunity.card.archived.v1
              - type: string
                enum:
                  - crm.opportunity.card.contact.linked.v1
              - type: string
                enum:
                  - crm.opportunity.card.contact.unlinked.v1
              - type: string
                enum:
                  - crm.opportunity.card.company.linked.v1
              - type: string
                enum:
                  - crm.opportunity.card.company.unlinked.v1
              - type: string
                enum:
                  - crm.opportunity.card.attachment.added.v1
              - type: string
                enum:
                  - crm.opportunity.card.attachment.removed.v1
              - type: string
                enum:
                  - crm.opportunity.card.commission.changed.v1
              - type: string
                enum:
                  - crm.opportunity.card.custom_field.changed.v1
              - type: string
                enum:
                  - meet.report.ready.v1
              - type: string
                enum:
                  - hubla.purchase.approved.v1
              - type: string
                enum:
                  - hubla.refund.v1
              - type: string
                enum:
                  - hubla.cart.abandonment.v1
              - type: string
                enum:
                  - hubla.payment.failed.v1
              - type: string
                enum:
                  - hubla.invoice.expired.v1
              - type: string
                enum:
                  - hubla.subscription.created.v1
              - type: string
                enum:
                  - hubla.subscription.canceled.v1
              - type: string
                enum:
                  - kirvano.purchase.approved.v1
              - type: string
                enum:
                  - kirvano.payment.failed.v1
              - type: string
                enum:
                  - kirvano.refund.v1
              - type: string
                enum:
                  - kirvano.chargeback.v1
              - type: string
                enum:
                  - kirvano.cart.abandonment.v1
              - type: string
                enum:
                  - kirvano.pix.generated.v1
              - type: string
                enum:
                  - kirvano.pix.expired.v1
              - type: string
                enum:
                  - kirvano.boleto.generated.v1
              - type: string
                enum:
                  - kirvano.boleto.expired.v1
              - type: string
                enum:
                  - kirvano.subscription.created.v1
              - type: string
                enum:
                  - kirvano.subscription.renewed.v1
              - type: string
                enum:
                  - kirvano.subscription.canceled.v1
              - type: string
                enum:
                  - kirvano.subscription.expired.v1
              - type: string
                enum:
                  - hotmart.purchase.approved.v1
              - type: string
                enum:
                  - hotmart.purchase.refunded.v1
              - type: string
                enum:
                  - hotmart.purchase.chargeback.v1
              - type: string
                enum:
                  - hotmart.purchase.canceled.v1
              - type: string
                enum:
                  - hotmart.purchase.expired.v1
              - type: string
                enum:
                  - hotmart.purchase.delayed.v1
              - type: string
                enum:
                  - hotmart.billet.printed.v1
              - type: string
                enum:
                  - hotmart.cart.abandonment.v1
              - type: string
                enum:
                  - hotmart.subscription.canceled.v1
              - type: string
                enum:
                  - hotmart.subscription.switch.v1
              - type: string
                enum:
                  - hotmart.club.first.access.v1
              - type: string
                enum:
                  - hotmart.club.module.completed.v1
              - type: string
                enum:
                  - guru.subscription.active.v1
              - type: string
                enum:
                  - guru.subscription.past_due.v1
              - type: string
                enum:
                  - guru.subscription.canceled.v1
              - type: string
                enum:
                  - guru.subscription.expired.v1
              - type: string
                enum:
                  - guru.subscription.trial.v1
              - type: string
                enum:
                  - guru.cart.abandonment.v1
              - type: string
                enum:
                  - guru.transaction.waiting_payment.v1
              - type: string
                enum:
                  - guru.transaction.approved.v1
              - type: string
                enum:
                  - guru.transaction.delayed.v1
              - type: string
                enum:
                  - guru.transaction.blocked.v1
              - type: string
                enum:
                  - guru.transaction.billet_printed.v1
              - type: string
                enum:
                  - guru.transaction.canceled.v1
              - type: string
                enum:
                  - guru.transaction.analyzing.v1
              - type: string
                enum:
                  - guru.transaction.recovering.v1
              - type: string
                enum:
                  - guru.transaction.expired.v1
              - type: string
                enum:
                  - guru.transaction.chargeback.v1
              - type: string
                enum:
                  - guru.transaction.refunded.v1
              - type: string
                enum:
                  - guru.transaction.rejected.v1
              - type: string
                enum:
                  - guru.transaction.trial.v1
              - type: string
                enum:
                  - yampi.order.paid.v1
              - type: string
                enum:
                  - yampi.order.created.v1
              - type: string
                enum:
                  - yampi.cart.abandonment.v1
              - type: string
                enum:
                  - yampi.payment.refused.v1
              - type: string
                enum:
                  - yampi.order.refunded.v1
              - type: string
                enum:
                  - yampi.order.canceled.v1
              - type: string
                enum:
                  - ticto-webhook.cart.abandonment.v1
              - type: string
                enum:
                  - ticto-webhook.order.authorized.v1
              - type: string
                enum:
                  - ticto-webhook.order.waiting_payment.v1
              - type: string
                enum:
                  - ticto-webhook.order.refused.v1
              - type: string
                enum:
                  - ticto-webhook.order.refunded.v1
              - type: string
                enum:
                  - ticto-webhook.order.chargeback.v1
              - type: string
                enum:
                  - ticto-webhook.order.claimed.v1
              - type: string
                enum:
                  - ticto-webhook.order.closed.v1
              - type: string
                enum:
                  - ticto-webhook.order.bank_slip_created.v1
              - type: string
                enum:
                  - ticto-webhook.order.bank_slip_delayed.v1
              - type: string
                enum:
                  - ticto-webhook.order.pix_created.v1
              - type: string
                enum:
                  - ticto-webhook.order.pix_expired.v1
              - type: string
                enum:
                  - ticto-webhook.order.trial.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.trial_started.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.trial_ended.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.canceled.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.delayed.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.uncanceled.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.extended.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.card_exchanged.v1
              - type: string
                enum:
                  - ticto-webhook.subscription.all_charges_paid.v1
              - type: string
                enum:
                  - yever.order.created.v1
              - type: string
                enum:
                  - yever.order.paid.v1
              - type: string
                enum:
                  - yever.order.refunded.v1
              - type: string
                enum:
                  - yever.order.charged_back.v1
              - type: string
                enum:
                  - yever.order.canceled.v1
              - type: string
                enum:
                  - yever.order.sent.v1
              - type: string
                enum:
                  - yever.cart.abandonment.v1
              - type: string
                enum:
                  - yever.subscription.created.v1
              - type: string
                enum:
                  - yever.subscription.renewal_succeeded.v1
              - type: string
                enum:
                  - yever.subscription.renewal_failed.v1
              - type: string
                enum:
                  - yever.subscription.active.v1
              - type: string
                enum:
                  - yever.subscription.paused.v1
              - type: string
                enum:
                  - yever.subscription.canceled.v1
              - type: string
                enum:
                  - yever.subscription.finished.v1
              - type: string
                enum:
                  - yever.cashback.created.v1
              - type: string
                enum:
                  - yever.cashback.used.v1
              - type: string
                enum:
                  - yever.cashback.expired.v1
              - type: string
                enum:
                  - yever.cashback.expiring_soon.v1
              - type: string
                enum:
                  - yever.cashback.canceled.v1
              - type: string
                enum:
                  - yever.cashback.restored.v1
              - type: string
                enum:
                  - whop-webhook.payment.created.v1
              - type: string
                enum:
                  - whop-webhook.payment.authorized.v1
              - type: string
                enum:
                  - whop-webhook.payment.pending.v1
              - type: string
                enum:
                  - whop-webhook.payment.succeeded.v1
              - type: string
                enum:
                  - whop-webhook.payment.failed.v1
              - type: string
                enum:
                  - whop-webhook.payment.canceled.v1
              - type: string
                enum:
                  - whop-webhook.refund.created.v1
              - type: string
                enum:
                  - whop-webhook.refund.updated.v1
              - type: string
                enum:
                  - whop-webhook.dispute.created.v1
              - type: string
                enum:
                  - whop-webhook.membership.activated.v1
              - type: string
                enum:
                  - whop-webhook.membership.deactivated.v1
              - type: string
                enum:
                  - whop-webhook.membership.trial_ending_soon.v1
              - type: string
                enum:
                  - whop-webhook.membership.cancel_scheduled.v1
              - type: string
                enum:
                  - whop-webhook.membership.cancel_unscheduled.v1
              - type: string
                enum:
                  - whop-webhook.invoice.created.v1
              - type: string
                enum:
                  - whop-webhook.invoice.paid.v1
              - type: string
                enum:
                  - whop-webhook.invoice.past_due.v1
              - type: string
                enum:
                  - whop-webhook.invoice.marked_uncollectible.v1
              - type: string
                enum:
                  - whop-webhook.invoice.voided.v1
              - type: string
                enum:
                  - lastlink.purchase.approved.v1
              - type: string
                enum:
                  - lastlink.purchase.canceled.v1
              - type: string
                enum:
                  - lastlink.invoice.created.v1
              - type: string
                enum:
                  - lastlink.invoice.expired.v1
              - type: string
                enum:
                  - lastlink.refund.v1
              - type: string
                enum:
                  - lastlink.refund.requested.v1
              - type: string
                enum:
                  - lastlink.refund.period_over.v1
              - type: string
                enum:
                  - lastlink.chargeback.v1
              - type: string
                enum:
                  - lastlink.cart.abandonment.v1
              - type: string
                enum:
                  - lastlink.subscription.renewed.v1
              - type: string
                enum:
                  - lastlink.subscription.renewal_pending.v1
              - type: string
                enum:
                  - lastlink.subscription.canceled.v1
              - type: string
                enum:
                  - lastlink.subscription.expired.v1
              - type: string
                enum:
                  - lastlink.product.access.started.v1
              - type: string
                enum:
                  - lastlink.product.access.ended.v1
              - type: string
                enum:
                  - voomp.sale.paid.v1
              - type: string
                enum:
                  - voomp.sale.refused.v1
              - type: string
                enum:
                  - voomp.sale.refunded.v1
              - type: string
                enum:
                  - voomp.sale.chargeback.v1
              - type: string
                enum:
                  - voomp.sale.unpaid.v1
              - type: string
                enum:
                  - voomp.sale.waiting_payment.v1
              - type: string
                enum:
                  - voomp.sale.due_days.v1
              - type: string
                enum:
                  - voomp.cart.abandonment.v1
              - type: string
                enum:
                  - voomp.subscription.paid.v1
              - type: string
                enum:
                  - voomp.subscription.unpaid.v1
              - type: string
                enum:
                  - voomp.subscription.trialing.v1
              - type: string
                enum:
                  - voomp.subscription.pending_payment.v1
              - type: string
                enum:
                  - voomp.subscription.ended.v1
              - type: string
                enum:
                  - voomp.subscription.canceled.v1
              - type: string
                enum:
                  - asaas.payment.confirmed.v1
              - type: string
                enum:
                  - asaas.payment.received.v1
              - type: string
                enum:
                  - asaas.payment.overdue.v1
              - type: string
                enum:
                  - asaas.payment.refunded.v1
              - type: string
                enum:
                  - asaas.payment.chargeback_requested.v1
              - type: string
                enum:
                  - asaas.payment.credit_card_capture_refused.v1
              - type: string
                enum:
                  - asaas.subscription.created.v1
              - type: string
                enum:
                  - asaas.subscription.inactivated.v1
              - type: string
                enum:
                  - asaas.subscription.deleted.v1
              - type: string
                enum:
                  - tmb.sale.approved.v1
              - type: string
                enum:
                  - tmb.sale.canceled.v1
              - type: string
                enum:
                  - tmb.checkout.installments_selection.v1
              - type: string
                enum:
                  - tmb.checkout.token.v1
              - type: string
                enum:
                  - tmb.checkout.liveness_proof.v1
              - type: string
                enum:
                  - tmb.checkout.documentation_started.v1
              - type: string
                enum:
                  - tmb.checkout.document_attached.v1
              - type: string
                enum:
                  - tmb.checkout.selfie_attached.v1
              - type: string
                enum:
                  - tmb.checkout.address_proof_attached.v1
              - type: string
                enum:
                  - tmb.checkout.awaiting_signature.v1
              - type: string
                enum:
                  - tmb.checkout.awaiting_payment.v1
              - type: string
                enum:
                  - principia.purchase.confirmed.v1
              - type: string
                enum:
                  - principia.purchase.canceled.v1
              - type: string
                enum:
                  - principia.payment.declined.v1
              - type: string
                enum:
                  - principia.financing.denied.v1
              - type: string
                enum:
                  - principia.invoice.created.v1
              - type: string
                enum:
                  - principia.invoice.expired.v1
              - type: string
                enum:
                  - principia.cart.abandonment.v1
              - type: string
                enum:
                  - principia.guarantor.needed.v1
        funnelIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        projectIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offerIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        pageIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        tagIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        messageIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        pipelineIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        flowIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        actorIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        startDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        endDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        isRecurrentOffers:
          type: boolean
      required:
        - leadId
    LeadActivitiesSystemByLeadOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              eventName:
                type: string
              category:
                type: string
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - eventName
              - category
              - createdAt
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    LeadActivitiesOwnerStatsOutput:
      type: object
      properties:
        total:
          type: number
        previousTotal:
          type: number
        timeSeries:
          type: array
          items:
            type: object
            properties:
              date:
                type: string
              count:
                type: number
            required:
              - date
              - count
            additionalProperties: false
        byCategory:
          type: array
          items:
            type: object
            properties:
              category:
                type: string
              count:
                type: number
            required:
              - category
              - count
            additionalProperties: false
        topLeads:
          type: array
          items:
            type: object
            properties:
              leadId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              leadName:
                type: string
              count:
                type: number
            required:
              - leadId
              - leadName
              - count
            additionalProperties: false
        topEventTypes:
          type: array
          items:
            type: object
            properties:
              eventName:
                type: string
              count:
                type: number
            required:
              - eventName
              - count
            additionalProperties: false
        byHour:
          type: array
          items:
            type: object
            properties:
              hour:
                type: number
              count:
                type: number
            required:
              - hour
              - count
            additionalProperties: false
      required:
        - total
        - previousTotal
        - timeSeries
        - byCategory
        - topLeads
        - topEventTypes
        - byHour
      additionalProperties: false
    LeadActivitiesOwnerTimeseriesInput:
      type: object
      properties:
        dateRange:
          type: object
          properties:
            from:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            to:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
          required:
            - from
            - to
        granularity:
          type: string
          enum:
            - day
            - week
      required:
        - dateRange
    LeadActivitiesOwnerTimeseriesOutput:
      type: object
      properties:
        buckets:
          type: array
          items:
            type: object
            properties:
              date:
                type: string
              count:
                type: integer
                minimum: 0
                maximum: 9007199254740991
            required:
              - date
              - count
            additionalProperties: false
        total:
          type: integer
          minimum: 0
          maximum: 9007199254740991
      required:
        - buckets
        - total
      additionalProperties: false
    LeadActivitiesOwnerCountOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              category:
                type: string
              count:
                type: number
            required:
              - category
              - count
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    LeadActivitiesMetricsByLeadOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              date:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              count:
                type: number
            required:
              - date
              - count
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    LeadActivitiesOpportunityListInput:
      type: object
      properties:
        cardId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        includeContactActivities:
          default: true
          type: boolean
        categories:
          type: array
          items:
            type: string
            enum:
              - Lead
              - Tag
              - Email
              - Chat
              - Checkout
              - PageView
              - Cart
              - PaymentFailedOrExpired
              - MemberArea
              - Opportunity
        eventName:
          type: array
          items:
            type: string
        startDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        endDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        search:
          type: string
          minLength: 1
          maxLength: 200
        groups:
          type: array
          items:
            type: string
            enum:
              - notes
              - tasks
              - scheduling
              - pipeline
              - assignment
              - fields
              - tags
              - contact
              - messages
              - purchases
        page:
          default: 1
          type: integer
          minimum: 1
          maximum: 9007199254740991
        perPage:
          default: 20
          type: integer
          minimum: 1
          maximum: 100
      required:
        - cardId
    LeadActivitiesOpportunityListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              leadId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              opportunityId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              leadTaskId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              companyId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              category:
                type: string
              eventName:
                type: string
              isTrigger:
                type: boolean
              funnelId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              projectId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              pageId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              offerId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              productId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              externalProductId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              tagId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              buyerId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              transactionId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              subscriptionId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              messageId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              portalId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              lessonId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              moduleId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              courseId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              flowId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              pipelineId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              meta:
                allOf:
                  - anyOf:
                      - {}
                      - type: "null"
                  - {}
              aggregateId:
                anyOf:
                  - type: string
                  - type: "null"
              version:
                anyOf:
                  - type: number
                  - type: "null"
              actorId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              actorType:
                anyOf:
                  - anyOf:
                      - type: string
                        const: user
                      - type: string
                        const: system
                      - type: string
                        const: automation
                      - type: "null"
                        const: null
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              leadName:
                type: string
              actorName:
                type: string
            required:
              - id
              - ownerId
              - name
              - category
              - eventName
              - isTrigger
              - meta
              - createdAt
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    LeadActivitiesOpportunityCreateInput:
      type: object
      properties:
        cardId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        type:
          type: string
          enum:
            - call
            - whatsapp
            - meeting
            - task
            - note
        description:
          type: string
          minLength: 1
          maxLength: 5000
        scheduledAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - cardId
        - type
        - description
    LeadActivitiesOpportunityCreateOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    LeadActivitiesFilterOptionsOutput:
      type: object
      properties:
        offers:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              count:
                type: number
            required:
              - id
              - name
              - count
            additionalProperties: false
        pages:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              count:
                type: number
            required:
              - id
              - name
              - count
            additionalProperties: false
        funnels:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              count:
                type: number
            required:
              - id
              - name
              - count
            additionalProperties: false
        products:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              count:
                type: number
            required:
              - id
              - name
              - count
            additionalProperties: false
        tags:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              count:
                type: number
            required:
              - id
              - name
              - count
            additionalProperties: false
        messages:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              count:
                type: number
            required:
              - id
              - name
              - count
            additionalProperties: false
        pipelines:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              count:
                type: number
            required:
              - id
              - name
              - count
            additionalProperties: false
        flows:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              count:
                type: number
            required:
              - id
              - name
              - count
            additionalProperties: false
      required:
        - offers
        - pages
        - funnels
        - products
        - tags
        - messages
        - pipelines
        - flows
      additionalProperties: false
    LeadActivitiesActorSummaryOutput:
      type: object
      properties:
        attendant:
          anyOf:
            - type: object
              properties:
                id:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                personId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                name:
                  type: string
                email:
                  anyOf:
                    - type: string
                    - type: "null"
                role:
                  type: string
                isAiAgent:
                  type: boolean
                types:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      name:
                        type: string
                      color:
                        anyOf:
                          - type: string
                          - type: "null"
                      emoji:
                        anyOf:
                          - type: string
                          - type: "null"
                    required:
                      - id
                      - name
                    additionalProperties: false
              required:
                - id
                - personId
                - name
                - role
                - isAiAgent
                - types
              additionalProperties: false
            - type: "null"
        activity:
          type: object
          properties:
            total:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            last7Days:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            last30Days:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            timeseries:
              type: array
              items:
                type: object
                properties:
                  date:
                    type: string
                  count:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                required:
                  - date
                  - count
                additionalProperties: false
            topEventTypes:
              type: array
              items:
                type: object
                properties:
                  eventName:
                    type: string
                  count:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                required:
                  - eventName
                  - count
                additionalProperties: false
            peakHour:
              anyOf:
                - type: integer
                  minimum: 0
                  maximum: 23
                - type: "null"
            peakHourCount:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            lastActivityAt:
              anyOf:
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                - type: "null"
          required:
            - total
            - last7Days
            - last30Days
            - timeseries
            - topEventTypes
            - peakHourCount
          additionalProperties: false
        opportunities:
          type: object
          properties:
            open:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            wonLast30Days:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            wonValueLast30Days:
              type: integer
              minimum: 0
              maximum: 9007199254740991
          required:
            - open
            - wonLast30Days
            - wonValueLast30Days
          additionalProperties: false
        recent:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              eventName:
                type: string
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              leadId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              leadName:
                anyOf:
                  - type: string
                  - type: "null"
              opportunityId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
            required:
              - id
              - eventName
              - createdAt
            additionalProperties: false
      required:
        - activity
        - opportunities
        - recent
      additionalProperties: false
    LeadsFilterSchemaOutput:
      type: object
      properties:
        fields:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
                enum:
                  - name
                  - email
                  - telephone
                  - document
                  - city
                  - state
                  - address
                  - profession
                  - temperatureStatus
                  - birthday
                  - createdAt
                  - emailValidatedAt
                  - status
                  - genderIdentity
                  - emailStatus
                  - origin
                  - subOrigin
                  - originOrSubOrigin
                  - client
                  - lgpdApproved
                  - score
                  - projectIds
                  - funnelId
                  - pageId
                  - tags
                  - messagePreferencesAuthorized
                  - messagePreferencesCanceled
                  - lastPurchaseDate
                  - transactionCreatedAt
                  - subscriptionCreatedAt
                  - numberOfPurchases
                  - lastPurchaseValue
                  - averageTicket
                  - lifeTimeValue
                  - transactionRecurrence
                  - transactionStatus
                  - subscriptionStatus
                  - offerType
                  - offerCurrency
                  - subscriptionPlan
                  - recurrenceFrequency
                  - transactionType
                  - productName
                  - productIds
                  - offerIds
                  - searchTransactionCode
                  - utm_campaign
                  - utm_content
                  - utm_medium
                  - utm_source
                  - utm_term
                  - src
                  - sck
                  - memberPortalIds
                  - memberClassroomIds
                  - memberCourseIds
              type:
                type: string
                enum:
                  - string
                  - number
                  - boolean
                  - date
                  - array
                  - enum
                  - range
              operators:
                type: array
                items:
                  type: string
                  enum:
                    - equals
                    - notEquals
                    - contains
                    - notContains
                    - startsWith
                    - endsWith
                    - greaterThan
                    - greaterThanOrEqual
                    - lessThan
                    - lessThanOrEqual
                    - in
                    - notIn
                    - isEmpty
                    - isNotEmpty
                    - between
                description: Operadores válidos para este campo
              nullable:
                type: boolean
                description: Se o campo aceita valores nulos
              enumValues:
                description: Valores possíveis para campos enum
                type: array
                items:
                  type: string
              group:
                type: string
                enum:
                  - contactData
                  - salesAndCheckout
                  - subscriptions
                  - membersArea
                  - messageChannels
            required:
              - field
              - type
              - operators
              - nullable
              - group
            additionalProperties: false
      required:
        - fields
      additionalProperties: false
    LeadsSearchInput:
      type: object
      properties:
        filters:
          maxItems: 50
          type: array
          items:
            type: object
            properties:
              operator:
                type: string
                enum:
                  - childrenAnd
                  - childrenOr
                  - equals
                  - contains
                  - startsWith
                  - endsWith
                  - greaterThan
                  - greaterThanOrEqual
                  - lessThan
                  - lessThanOrEqual
                  - in
                  - isNotEmpty
              field:
                type: string
                enum:
                  - children
                  - address
                  - birthday
                  - city
                  - client
                  - createdAt
                  - document
                  - email
                  - emailStatus
                  - emailValidatedAt
                  - genderIdentity
                  - lgpdApproved
                  - name
                  - origin
                  - originOrSubOrigin
                  - profession
                  - score
                  - state
                  - status
                  - subOrigin
                  - tagId
                  - telephone
                  - temperatureStatus
                  - funnelId
                  - listId
                  - messagePreferencesAuthorized
                  - messagePreferencesCanceled
                  - pageId
                  - projectId
                  - offerId
                  - productId
                  - productName
                  - searchTransactionCode
                  - utmCampaign
                  - utmContent
                  - utmMedium
                  - utmSource
                  - utmTerm
                  - src
                  - sck
                  - averageTicket
                  - lastPurchaseDate
                  - lastPurchaseValue
                  - lifeTimeValue
                  - numberOfPurchases
                  - offerCurrency
                  - offerType
                  - recurrenceFrequency
                  - subscriptionCreatedAt
                  - subscriptionPlan
                  - subscriptionStatus
                  - transactionCancellationReason
                  - transactionCreatedAt
                  - transactionFailReason
                  - transactionRecurrence
                  - transactionStatus
                  - transactionType
                  - externalSaleStatus
                  - externalCartAbandoned
                  - customFieldText
                  - customFieldNumber
                  - customFieldDate
                  - customFieldBoolean
                  - customFieldSelect
                  - quizSubmission
                  - quizAnswerSelect
                  - quizAnswerNumber
                  - quizAnswerText
                  - instagram
                  - linkedin
                  - twitterX
                  - tiktok
                  - youtube
                  - telegramUsername
                  - formSubmission
                  - captureLinkId
                  - activityPageId
                  - activityFunnelId
                  - opportunity
                  - webinar
                  - conversationIntent
                  - conversationSentiment
                  - conversationUrgency
              negation:
                type: boolean
              valueBool:
                anyOf:
                  - type: boolean
                  - type: "null"
              valueNumber:
                anyOf:
                  - type: number
                  - type: "null"
              valueString:
                anyOf:
                  - type: string
                  - type: "null"
              valueUuid:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              customFieldId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              formId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              questionKey:
                anyOf:
                  - type: string
                  - type: "null"
              parentId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              id:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              valueDate:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - operator
              - field
              - negation
        page:
          default: 1
          type: integer
          minimum: 1
          maximum: 9007199254740991
        perPage:
          default: 20
          type: integer
          minimum: 1
          maximum: 100
        listId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        sortBy:
          type: string
          enum:
            - opportunities_asc
            - opportunities_desc
            - score_asc
            - score_desc
        suspectedFraudOnly:
          type: boolean
        leadIds:
          maxItems: 200
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - filters
    LeadsSearchOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                anyOf:
                  - type: string
                  - type: "null"
              email:
                anyOf:
                  - type: string
                    minLength: 5
                    maxLength: 255
                    format: email
                    pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                  - type: "null"
              telephone:
                anyOf:
                  - type: string
                    maxLength: 20
                    pattern: ^\+?\d+$
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              emailValidatedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              emailInvalidReason:
                anyOf:
                  - type: string
                  - type: "null"
              score:
                type: number
              emailStatus:
                type: string
                enum:
                  - pending
                  - valid
                  - invalid
                  - risky
              contactCode:
                type: string
              status:
                type: string
                enum:
                  - created
                  - visited
                  - engaged
                  - subscribed
                  - in_cart
                  - abandoned_cart
                  - purchased
                  - activated
                  - upgraded
                  - renewed
                  - churned
                  - referral
                  - feedback_given
              temperatureStatus:
                anyOf:
                  - anyOf:
                      - type: string
                        const: cold
                      - type: string
                        const: warm
                      - type: string
                        const: hot
                      - type: string
                        const: customer
                      - type: "null"
                        const: null
                  - type: "null"
              temperatureScore:
                anyOf:
                  - type: number
                  - type: "null"
              temperatureTrend7d:
                anyOf:
                  - type: number
                  - type: "null"
              origin:
                anyOf:
                  - anyOf:
                      - type: string
                        const: Clickfunnels
                      - type: string
                        const: CxAffiliates
                      - type: string
                        const: CxCalendar
                      - type: string
                        const: CxClients
                      - type: string
                        const: CxClone
                      - type: string
                        const: CxClub
                      - type: string
                        const: CxDomains
                      - type: string
                        const: CxFlows
                      - type: string
                        const: CxForms
                      - type: string
                        const: CxFunnels
                      - type: string
                        const: CxExternalPages
                      - type: string
                        const: CxWebchat
                      - type: string
                        const: CxWebinar
                      - type: string
                        const: CxInsights
                      - type: string
                        const: CxLinkProtect
                      - type: string
                        const: CxPages
                      - type: string
                        const: CxPay
                      - type: string
                        const: CxProducts
                      - type: string
                        const: CxQuizzes
                      - type: string
                        const: CxSend
                      - type: string
                        const: CxSplit
                      - type: string
                        const: CxStore
                      - type: string
                        const: CxTags
                      - type: string
                        const: CxTemplates
                      - type: string
                        const: CxTracking
                      - type: string
                        const: CxWallet
                      - type: string
                        const: CxWhatsappContacts
                      - type: string
                        const: Framer
                      - type: string
                        const: HotmartPages
                      - type: string
                        const: Integrations
                      - type: string
                        const: Kirvano
                      - type: string
                        const: Mailchimp
                      - type: string
                        const: Webflow
                      - type: string
                        const: Wix
                      - type: string
                        const: Wordpress
                      - type: "null"
                        const: null
                  - type: "null"
              subOrigin:
                anyOf:
                  - anyOf:
                      - type: string
                        const: CxWebinarRegistration
                      - type: string
                        const: CxWebinarMagicLink
                      - type: string
                        const: TelegramChatStart
                      - type: string
                        const: WhatsappChatStart
                      - type: string
                        const: InstagramStoryReply
                      - type: string
                        const: InstagramPostComment
                      - type: string
                        const: InstagramDMReceived
                      - type: string
                        const: WebchatChatStart
                      - type: string
                        const: SmsSendKeyword
                      - type: string
                        const: ActiveCampaign
                      - type: string
                        const: Asaas
                      - type: string
                        const: Braip
                      - type: string
                        const: Cartpanda
                      - type: string
                        const: Eduzz
                      - type: string
                        const: Greenn
                      - type: string
                        const: Guru
                      - type: string
                        const: Hotmart
                      - type: string
                        const: HotWebinar
                      - type: string
                        const: Hubla
                      - type: string
                        const: Kirvano
                      - type: string
                        const: Kiwify
                      - type: string
                        const: Lastlink
                      - type: string
                        const: Manychat
                      - type: string
                        const: Monetizze
                      - type: string
                        const: Pagarme
                      - type: string
                        const: PerfectPay
                      - type: string
                        const: Principia
                      - type: string
                        const: Stripe
                      - type: string
                        const: Ticto
                      - type: string
                        const: TMB
                      - type: string
                        const: Voomp
                      - type: string
                        const: VStage
                      - type: string
                        const: Vunel
                      - type: string
                        const: WebinarKit
                      - type: string
                        const: Whop
                      - type: string
                        const: Yampi
                      - type: string
                        const: Yever
                      - type: string
                        const: Kommo
                      - type: string
                        const: CxManualCreation
                      - type: string
                        const: CxManualImportCsv
                      - type: "null"
                        const: null
                  - type: "null"
              messagePreferences:
                type: object
                properties:
                  email:
                    type: boolean
                  whatsapp:
                    type: boolean
                  sms:
                    type: boolean
                  telegram:
                    type: boolean
                  voice:
                    type: boolean
                  instagram:
                    type: boolean
                required:
                  - email
                  - whatsapp
                  - sms
                  - telegram
                  - voice
                  - instagram
                additionalProperties: false
              systemActivityCount:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              lastSystemActivity:
                type: object
                properties:
                  name:
                    anyOf:
                      - type: string
                      - type: "null"
                  createdAt:
                    type: string
                required:
                  - name
                  - createdAt
                additionalProperties: false
              tagsCount:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              lastTag:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  label:
                    type: string
                  system:
                    type: boolean
                required:
                  - id
                  - label
                  - system
                additionalProperties: false
              opportunitiesCount:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              suspectedFraud:
                type: boolean
              suspectedFraudReasons:
                type: array
                items:
                  type: string
                  enum:
                    - email
                    - document
            required:
              - id
              - createdAt
              - updatedAt
              - score
              - emailStatus
              - contactCode
              - status
              - systemActivityCount
              - tagsCount
              - opportunitiesCount
              - suspectedFraud
              - suspectedFraudReasons
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    LeadsExistsByEmailOutput:
      type: object
      properties:
        alreadyExists:
          type: boolean
      required:
        - alreadyExists
      additionalProperties: false
    LeadsGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          anyOf:
            - type: string
            - type: "null"
        email:
          anyOf:
            - type: string
              minLength: 5
              maxLength: 255
              format: email
              pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
            - type: "null"
        telephone:
          anyOf:
            - type: string
              maxLength: 20
              pattern: ^\+?\d+$
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        projectId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        emailStatus:
          type: string
          enum:
            - pending
            - valid
            - invalid
            - risky
        emailValidatedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        emailInvalidReason:
          anyOf:
            - type: string
            - type: "null"
        origin:
          anyOf:
            - anyOf:
                - type: string
                  const: Clickfunnels
                - type: string
                  const: CxAffiliates
                - type: string
                  const: CxCalendar
                - type: string
                  const: CxClients
                - type: string
                  const: CxClone
                - type: string
                  const: CxClub
                - type: string
                  const: CxDomains
                - type: string
                  const: CxFlows
                - type: string
                  const: CxForms
                - type: string
                  const: CxFunnels
                - type: string
                  const: CxExternalPages
                - type: string
                  const: CxWebchat
                - type: string
                  const: CxWebinar
                - type: string
                  const: CxInsights
                - type: string
                  const: CxLinkProtect
                - type: string
                  const: CxPages
                - type: string
                  const: CxPay
                - type: string
                  const: CxProducts
                - type: string
                  const: CxQuizzes
                - type: string
                  const: CxSend
                - type: string
                  const: CxSplit
                - type: string
                  const: CxStore
                - type: string
                  const: CxTags
                - type: string
                  const: CxTemplates
                - type: string
                  const: CxTracking
                - type: string
                  const: CxWallet
                - type: string
                  const: CxWhatsappContacts
                - type: string
                  const: Framer
                - type: string
                  const: HotmartPages
                - type: string
                  const: Integrations
                - type: string
                  const: Kirvano
                - type: string
                  const: Mailchimp
                - type: string
                  const: Webflow
                - type: string
                  const: Wix
                - type: string
                  const: Wordpress
                - type: "null"
                  const: null
            - type: "null"
        subOrigin:
          anyOf:
            - anyOf:
                - type: string
                  const: CxWebinarRegistration
                - type: string
                  const: CxWebinarMagicLink
                - type: string
                  const: TelegramChatStart
                - type: string
                  const: WhatsappChatStart
                - type: string
                  const: InstagramStoryReply
                - type: string
                  const: InstagramPostComment
                - type: string
                  const: InstagramDMReceived
                - type: string
                  const: WebchatChatStart
                - type: string
                  const: SmsSendKeyword
                - type: string
                  const: ActiveCampaign
                - type: string
                  const: Asaas
                - type: string
                  const: Braip
                - type: string
                  const: Cartpanda
                - type: string
                  const: Eduzz
                - type: string
                  const: Greenn
                - type: string
                  const: Guru
                - type: string
                  const: Hotmart
                - type: string
                  const: HotWebinar
                - type: string
                  const: Hubla
                - type: string
                  const: Kirvano
                - type: string
                  const: Kiwify
                - type: string
                  const: Lastlink
                - type: string
                  const: Manychat
                - type: string
                  const: Monetizze
                - type: string
                  const: Pagarme
                - type: string
                  const: PerfectPay
                - type: string
                  const: Principia
                - type: string
                  const: Stripe
                - type: string
                  const: Ticto
                - type: string
                  const: TMB
                - type: string
                  const: Voomp
                - type: string
                  const: VStage
                - type: string
                  const: Vunel
                - type: string
                  const: WebinarKit
                - type: string
                  const: Whop
                - type: string
                  const: Yampi
                - type: string
                  const: Yever
                - type: string
                  const: Kommo
                - type: string
                  const: CxManualCreation
                - type: string
                  const: CxManualImportCsv
                - type: "null"
                  const: null
            - type: "null"
        status:
          type: string
          enum:
            - created
            - visited
            - engaged
            - subscribed
            - in_cart
            - abandoned_cart
            - purchased
            - activated
            - upgraded
            - renewed
            - churned
            - referral
            - feedback_given
        temperatureStatus:
          anyOf:
            - anyOf:
                - type: string
                  const: cold
                - type: string
                  const: warm
                - type: string
                  const: hot
                - type: string
                  const: customer
                - type: "null"
                  const: null
            - type: "null"
        temperatureScore:
          anyOf:
            - type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            - type: "null"
        isSms:
          anyOf:
            - type: boolean
            - type: "null"
        instagram:
          anyOf:
            - type: string
            - type: "null"
        telegramUsername:
          anyOf:
            - type: string
            - type: "null"
        contactCode:
          anyOf:
            - type: string
            - type: "null"
        projectName:
          anyOf:
            - type: string
            - type: "null"
        tags:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              color:
                type: string
              system:
                type: boolean
            required:
              - id
              - name
              - color
            additionalProperties: false
        systemActivityCount:
          anyOf:
            - type: number
            - type: "null"
        lastSystemActivity:
          anyOf:
            - type: object
              properties:
                id:
                  anyOf:
                    - type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    - type: "null"
                name:
                  anyOf:
                    - type: string
                    - type: "null"
                createdAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    - type: "null"
              additionalProperties: false
            - type: "null"
        submissions:
          type: array
          items:
            type: object
            properties:
              utmCampaign:
                anyOf:
                  - type: string
                  - type: "null"
              utmContent:
                anyOf:
                  - type: string
                  - type: "null"
              utmMedium:
                anyOf:
                  - type: string
                  - type: "null"
              utmSource:
                anyOf:
                  - type: string
                  - type: "null"
              utmTerm:
                anyOf:
                  - type: string
                  - type: "null"
            additionalProperties: false
        address:
          allOf:
            - anyOf:
                - type: object
                  properties:
                    street:
                      anyOf:
                        - type: string
                        - type: "null"
                    number:
                      anyOf:
                        - type: string
                        - type: "null"
                    complement:
                      anyOf:
                        - type: string
                        - type: "null"
                    neighborhood:
                      anyOf:
                        - type: string
                        - type: "null"
                    city:
                      anyOf:
                        - type: string
                        - type: "null"
                    state:
                      anyOf:
                        - type: string
                        - type: "null"
                    country:
                      anyOf:
                        - type: string
                        - type: "null"
                    zipCode:
                      anyOf:
                        - type: string
                        - type: "null"
                  additionalProperties: false
                - type: "null"
            - anyOf:
                - type: object
                  properties:
                    street:
                      anyOf:
                        - type: string
                        - type: "null"
                    number:
                      anyOf:
                        - type: string
                        - type: "null"
                    complement:
                      anyOf:
                        - type: string
                        - type: "null"
                    neighborhood:
                      anyOf:
                        - type: string
                        - type: "null"
                    city:
                      anyOf:
                        - type: string
                        - type: "null"
                    state:
                      anyOf:
                        - type: string
                        - type: "null"
                    country:
                      anyOf:
                        - type: string
                        - type: "null"
                    zipCode:
                      anyOf:
                        - type: string
                        - type: "null"
                  additionalProperties: false
                - type: "null"
        lists:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                anyOf:
                  - type: string
                    maxLength: 255
                  - type: "null"
              emoji:
                anyOf:
                  - type: string
                    maxLength: 16
                  - type: "null"
              source:
                type: string
                enum:
                  - manual
                  - segment
                  - snapshot
                  - internal
              leadCount:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              favorite:
                type: boolean
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - source
              - leadCount
              - favorite
              - updatedAt
            additionalProperties: false
        lifetimeValue:
          type: number
        ticketAverage:
          type: number
        lastBuy:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        lastBuyPrice:
          type: number
        purchasesCount:
          type: number
        productsCount:
          type: number
        messagePreferences:
          type: object
          properties:
            email:
              type: boolean
            whatsapp:
              type: boolean
            telegram:
              type: boolean
            instagram:
              type: boolean
            sms:
              type: boolean
            voice:
              type: boolean
          required:
            - email
            - whatsapp
            - telegram
            - instagram
            - sms
            - voice
          additionalProperties: false
        memberAreas:
          type: array
          items:
            type: object
            properties:
              portalId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              portalName:
                type: string
              classroomId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              classroomName:
                type: string
            required:
              - portalId
              - portalName
              - classroomId
              - classroomName
            additionalProperties: false
        observations:
          anyOf:
            - type: string
            - type: "null"
        birthday:
          type: string
          format: date
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
        document:
          type: string
        suspectedFraud:
          type: boolean
        suspectedFraudReasons:
          type: array
          items:
            type: string
            enum:
              - email
              - document
        avatarUrl:
          anyOf:
            - type: string
            - type: "null"
        temperatureScoreR:
          anyOf:
            - type: number
            - type: "null"
        temperatureScoreF:
          anyOf:
            - type: number
            - type: "null"
        temperatureScoreP:
          anyOf:
            - type: number
            - type: "null"
        temperatureScoreD:
          anyOf:
            - type: number
            - type: "null"
        temperatureProfilePoints:
          anyOf:
            - type: number
            - type: "null"
        temperatureModelId:
          anyOf:
            - type: string
            - type: "null"
        temperatureComputedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        temperatureTrend7d:
          anyOf:
            - type: number
            - type: "null"
        linkedin:
          anyOf:
            - type: string
            - type: "null"
        twitterX:
          anyOf:
            - type: string
            - type: "null"
        tiktok:
          anyOf:
            - type: string
            - type: "null"
        youtube:
          anyOf:
            - type: string
            - type: "null"
        lastPurchaseOfferName:
          anyOf:
            - type: string
            - type: "null"
        lastPurchaseOfferId:
          anyOf:
            - type: string
            - type: "null"
        lastPurchaseOfferThumbnail:
          anyOf:
            - type: string
            - type: "null"
        lastFunnelName:
          anyOf:
            - type: string
            - type: "null"
        lastFunnelId:
          anyOf:
            - type: string
            - type: "null"
        lastFunnelThumbnail:
          anyOf:
            - type: string
            - type: "null"
        lastActivityAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        funnelsCount:
          anyOf:
            - type: number
            - type: "null"
        linkedVisitorId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        linkedVisitorsCount:
          type: number
        externalLifetimeValue:
          type: number
        externalTicketAverage:
          type: number
        externalProductsCount:
          type: number
        externalPurchasesCount:
          type: number
        externalCurrency:
          anyOf:
            - anyOf:
                - type: string
                  const: AED
                - type: string
                  const: ALL
                - type: string
                  const: AMD
                - type: string
                  const: APE
                - type: string
                  const: ARS
                - type: string
                  const: AUD
                - type: string
                  const: AWG
                - type: string
                  const: BAM
                - type: string
                  const: BGN
                - type: string
                  const: BHD
                - type: string
                  const: BOB
                - type: string
                  const: BRL
                - type: string
                  const: BSD
                - type: string
                  const: BTC
                - type: string
                  const: CAD
                - type: string
                  const: CHF
                - type: string
                  const: CLP
                - type: string
                  const: CNY
                - type: string
                  const: COP
                - type: string
                  const: CRC
                - type: string
                  const: CZK
                - type: string
                  const: DKK
                - type: string
                  const: DOP
                - type: string
                  const: DZD
                - type: string
                  const: EGP
                - type: string
                  const: ETB
                - type: string
                  const: ETH
                - type: string
                  const: EUR
                - type: string
                  const: GBP
                - type: string
                  const: GHS
                - type: string
                  const: GMD
                - type: string
                  const: GTQ
                - type: string
                  const: GYD
                - type: string
                  const: HKD
                - type: string
                  const: HUF
                - type: string
                  const: IDR
                - type: string
                  const: ILS
                - type: string
                  const: INR
                - type: string
                  const: JMD
                - type: string
                  const: JOD
                - type: string
                  const: JPY
                - type: string
                  const: KES
                - type: string
                  const: KHR
                - type: string
                  const: KRW
                - type: string
                  const: KWD
                - type: string
                  const: KZT
                - type: string
                  const: LKR
                - type: string
                  const: MAD
                - type: string
                  const: MDL
                - type: string
                  const: MGA
                - type: string
                  const: MKD
                - type: string
                  const: MNT
                - type: string
                  const: MOP
                - type: string
                  const: MUR
                - type: string
                  const: MXN
                - type: string
                  const: MYR
                - type: string
                  const: NAD
                - type: string
                  const: NGN
                - type: string
                  const: NOK
                - type: string
                  const: NZD
                - type: string
                  const: OMR
                - type: string
                  const: PEN
                - type: string
                  const: PHP
                - type: string
                  const: PKR
                - type: string
                  const: PLN
                - type: string
                  const: PYG
                - type: string
                  const: QAR
                - type: string
                  const: RON
                - type: string
                  const: RSD
                - type: string
                  const: RUB
                - type: string
                  const: RWF
                - type: string
                  const: SAR
                - type: string
                  const: SEK
                - type: string
                  const: SGD
                - type: string
                  const: THB
                - type: string
                  const: TND
                - type: string
                  const: TRY
                - type: string
                  const: TTD
                - type: string
                  const: TWD
                - type: string
                  const: TZS
                - type: string
                  const: USD
                - type: string
                  const: USDT
                - type: string
                  const: UYU
                - type: string
                  const: UZS
                - type: string
                  const: VND
                - type: string
                  const: WHOP_USD
                - type: string
                  const: XAU
                - type: string
                  const: XCD
                - type: string
                  const: XOF
                - type: string
                  const: ZAR
                - type: "null"
                  const: null
            - type: "null"
        externalAggregationsByCurrency:
          type: array
          items:
            type: object
            properties:
              currency:
                type: string
                enum:
                  - AED
                  - ALL
                  - AMD
                  - APE
                  - ARS
                  - AUD
                  - AWG
                  - BAM
                  - BGN
                  - BHD
                  - BOB
                  - BRL
                  - BSD
                  - BTC
                  - CAD
                  - CHF
                  - CLP
                  - CNY
                  - COP
                  - CRC
                  - CZK
                  - DKK
                  - DOP
                  - DZD
                  - EGP
                  - ETB
                  - ETH
                  - EUR
                  - GBP
                  - GHS
                  - GMD
                  - GTQ
                  - GYD
                  - HKD
                  - HUF
                  - IDR
                  - ILS
                  - INR
                  - JMD
                  - JOD
                  - JPY
                  - KES
                  - KHR
                  - KRW
                  - KWD
                  - KZT
                  - LKR
                  - MAD
                  - MDL
                  - MGA
                  - MKD
                  - MNT
                  - MOP
                  - MUR
                  - MXN
                  - MYR
                  - NAD
                  - NGN
                  - NOK
                  - NZD
                  - OMR
                  - PEN
                  - PHP
                  - PKR
                  - PLN
                  - PYG
                  - QAR
                  - RON
                  - RSD
                  - RUB
                  - RWF
                  - SAR
                  - SEK
                  - SGD
                  - THB
                  - TND
                  - TRY
                  - TTD
                  - TWD
                  - TZS
                  - USD
                  - USDT
                  - UYU
                  - UZS
                  - VND
                  - WHOP_USD
                  - XAU
                  - XCD
                  - XOF
                  - ZAR
              lifetimeValue:
                type: number
              ticketAverage:
                type: number
              productsCount:
                type: number
              purchasesCount:
                type: number
            required:
              - currency
              - lifetimeValue
              - ticketAverage
              - productsCount
              - purchasesCount
            additionalProperties: false
        externalLastBuy:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        externalLastPurchaseOfferId:
          anyOf:
            - type: string
            - type: "null"
        externalLastPurchaseOfferName:
          anyOf:
            - type: string
            - type: "null"
        externalLastBuyPrice:
          type: number
        externalLastBuyCurrency:
          anyOf:
            - anyOf:
                - type: string
                  const: AED
                - type: string
                  const: ALL
                - type: string
                  const: AMD
                - type: string
                  const: APE
                - type: string
                  const: ARS
                - type: string
                  const: AUD
                - type: string
                  const: AWG
                - type: string
                  const: BAM
                - type: string
                  const: BGN
                - type: string
                  const: BHD
                - type: string
                  const: BOB
                - type: string
                  const: BRL
                - type: string
                  const: BSD
                - type: string
                  const: BTC
                - type: string
                  const: CAD
                - type: string
                  const: CHF
                - type: string
                  const: CLP
                - type: string
                  const: CNY
                - type: string
                  const: COP
                - type: string
                  const: CRC
                - type: string
                  const: CZK
                - type: string
                  const: DKK
                - type: string
                  const: DOP
                - type: string
                  const: DZD
                - type: string
                  const: EGP
                - type: string
                  const: ETB
                - type: string
                  const: ETH
                - type: string
                  const: EUR
                - type: string
                  const: GBP
                - type: string
                  const: GHS
                - type: string
                  const: GMD
                - type: string
                  const: GTQ
                - type: string
                  const: GYD
                - type: string
                  const: HKD
                - type: string
                  const: HUF
                - type: string
                  const: IDR
                - type: string
                  const: ILS
                - type: string
                  const: INR
                - type: string
                  const: JMD
                - type: string
                  const: JOD
                - type: string
                  const: JPY
                - type: string
                  const: KES
                - type: string
                  const: KHR
                - type: string
                  const: KRW
                - type: string
                  const: KWD
                - type: string
                  const: KZT
                - type: string
                  const: LKR
                - type: string
                  const: MAD
                - type: string
                  const: MDL
                - type: string
                  const: MGA
                - type: string
                  const: MKD
                - type: string
                  const: MNT
                - type: string
                  const: MOP
                - type: string
                  const: MUR
                - type: string
                  const: MXN
                - type: string
                  const: MYR
                - type: string
                  const: NAD
                - type: string
                  const: NGN
                - type: string
                  const: NOK
                - type: string
                  const: NZD
                - type: string
                  const: OMR
                - type: string
                  const: PEN
                - type: string
                  const: PHP
                - type: string
                  const: PKR
                - type: string
                  const: PLN
                - type: string
                  const: PYG
                - type: string
                  const: QAR
                - type: string
                  const: RON
                - type: string
                  const: RSD
                - type: string
                  const: RUB
                - type: string
                  const: RWF
                - type: string
                  const: SAR
                - type: string
                  const: SEK
                - type: string
                  const: SGD
                - type: string
                  const: THB
                - type: string
                  const: TND
                - type: string
                  const: TRY
                - type: string
                  const: TTD
                - type: string
                  const: TWD
                - type: string
                  const: TZS
                - type: string
                  const: USD
                - type: string
                  const: USDT
                - type: string
                  const: UYU
                - type: string
                  const: UZS
                - type: string
                  const: VND
                - type: string
                  const: WHOP_USD
                - type: string
                  const: XAU
                - type: string
                  const: XCD
                - type: string
                  const: XOF
                - type: string
                  const: ZAR
                - type: "null"
                  const: null
            - type: "null"
        externalLastGatewayOrigin:
          anyOf:
            - type: string
            - type: "null"
        trackings:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              utmSource:
                anyOf:
                  - type: string
                  - type: "null"
              utmMedium:
                anyOf:
                  - type: string
                  - type: "null"
              utmCampaign:
                anyOf:
                  - type: string
                  - type: "null"
              utmTerm:
                anyOf:
                  - type: string
                  - type: "null"
              utmContent:
                anyOf:
                  - type: string
                  - type: "null"
              src:
                anyOf:
                  - type: string
                  - type: "null"
              sck:
                anyOf:
                  - type: string
                  - type: "null"
              affiliationHash:
                anyOf:
                  - type: string
                  - type: "null"
              pageId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              clientIp:
                anyOf:
                  - type: string
                  - type: "null"
              clientUserAgent:
                anyOf:
                  - type: string
                  - type: "null"
              fbp:
                anyOf:
                  - type: string
                  - type: "null"
              fbc:
                anyOf:
                  - type: string
                  - type: "null"
              extraParams:
                anyOf:
                  - type: object
                    properties:
                      vkSource:
                        type: string
                      vkAdId:
                        type: string
                    additionalProperties: false
                  - type: "null"
              referrer:
                anyOf:
                  - type: string
                  - type: "null"
              landingUrl:
                anyOf:
                  - type: string
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            additionalProperties: false
        customValues:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              displayName:
                type: string
              groupName:
                type: string
              fieldType:
                type: string
              value: {}
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - displayName
              - groupName
              - fieldType
              - value
              - createdAt
            additionalProperties: false
      required:
        - id
        - createdAt
        - updatedAt
        - emailStatus
        - status
        - tags
        - submissions
        - messagePreferences
        - suspectedFraud
        - suspectedFraudReasons
        - linkedVisitorsCount
        - externalLifetimeValue
        - externalTicketAverage
        - externalProductsCount
        - externalPurchasesCount
        - externalAggregationsByCurrency
        - externalLastBuyPrice
        - trackings
        - customValues
      additionalProperties: false
    LeadsContextInput:
      type: object
      properties:
        leadId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        sections:
          type: array
          items:
            type: string
            enum:
              - lead
              - customFields
              - tags
              - lists
              - opportunities
              - lostReasons
              - notes
              - activities
              - purchases
              - captures
              - forms
              - messaging
              - appointments
              - members
              - flows
              - extras
        since:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        limitPerSection:
          type: integer
          minimum: 1
          maximum: 100
      required:
        - leadId
    LeadsContextOutput:
      type: object
      properties:
        leadId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        resolvedFrom:
          type: object
          properties:
            leadId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            mergedAt:
              anyOf:
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                - type: "null"
          required:
            - leadId
          additionalProperties: false
        lead:
          type: object
          properties:
            id:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            name:
              anyOf:
                - type: string
                - type: "null"
            email:
              anyOf:
                - type: string
                - type: "null"
            secondaryEmail:
              anyOf:
                - type: string
                - type: "null"
            telephone:
              anyOf:
                - type: string
                - type: "null"
            whatsappNumber:
              anyOf:
                - type: string
                - type: "null"
            instagram:
              anyOf:
                - type: string
                - type: "null"
            telegramUsername:
              anyOf:
                - type: string
                - type: "null"
            document:
              anyOf:
                - type: string
                - type: "null"
            status:
              type: string
              enum:
                - created
                - visited
                - engaged
                - subscribed
                - in_cart
                - abandoned_cart
                - purchased
                - activated
                - upgraded
                - renewed
                - churned
                - referral
                - feedback_given
            client:
              type: boolean
            origin:
              anyOf:
                - anyOf:
                    - type: string
                      const: Clickfunnels
                    - type: string
                      const: CxAffiliates
                    - type: string
                      const: CxCalendar
                    - type: string
                      const: CxClients
                    - type: string
                      const: CxClone
                    - type: string
                      const: CxClub
                    - type: string
                      const: CxDomains
                    - type: string
                      const: CxFlows
                    - type: string
                      const: CxForms
                    - type: string
                      const: CxFunnels
                    - type: string
                      const: CxExternalPages
                    - type: string
                      const: CxWebchat
                    - type: string
                      const: CxWebinar
                    - type: string
                      const: CxInsights
                    - type: string
                      const: CxLinkProtect
                    - type: string
                      const: CxPages
                    - type: string
                      const: CxPay
                    - type: string
                      const: CxProducts
                    - type: string
                      const: CxQuizzes
                    - type: string
                      const: CxSend
                    - type: string
                      const: CxSplit
                    - type: string
                      const: CxStore
                    - type: string
                      const: CxTags
                    - type: string
                      const: CxTemplates
                    - type: string
                      const: CxTracking
                    - type: string
                      const: CxWallet
                    - type: string
                      const: CxWhatsappContacts
                    - type: string
                      const: Framer
                    - type: string
                      const: HotmartPages
                    - type: string
                      const: Integrations
                    - type: string
                      const: Kirvano
                    - type: string
                      const: Mailchimp
                    - type: string
                      const: Webflow
                    - type: string
                      const: Wix
                    - type: string
                      const: Wordpress
                    - type: "null"
                      const: null
                - type: "null"
            subOrigin:
              anyOf:
                - anyOf:
                    - type: string
                      const: CxWebinarRegistration
                    - type: string
                      const: CxWebinarMagicLink
                    - type: string
                      const: TelegramChatStart
                    - type: string
                      const: WhatsappChatStart
                    - type: string
                      const: InstagramStoryReply
                    - type: string
                      const: InstagramPostComment
                    - type: string
                      const: InstagramDMReceived
                    - type: string
                      const: WebchatChatStart
                    - type: string
                      const: SmsSendKeyword
                    - type: string
                      const: ActiveCampaign
                    - type: string
                      const: Asaas
                    - type: string
                      const: Braip
                    - type: string
                      const: Cartpanda
                    - type: string
                      const: Eduzz
                    - type: string
                      const: Greenn
                    - type: string
                      const: Guru
                    - type: string
                      const: Hotmart
                    - type: string
                      const: HotWebinar
                    - type: string
                      const: Hubla
                    - type: string
                      const: Kirvano
                    - type: string
                      const: Kiwify
                    - type: string
                      const: Lastlink
                    - type: string
                      const: Manychat
                    - type: string
                      const: Monetizze
                    - type: string
                      const: Pagarme
                    - type: string
                      const: PerfectPay
                    - type: string
                      const: Principia
                    - type: string
                      const: Stripe
                    - type: string
                      const: Ticto
                    - type: string
                      const: TMB
                    - type: string
                      const: Voomp
                    - type: string
                      const: VStage
                    - type: string
                      const: Vunel
                    - type: string
                      const: WebinarKit
                    - type: string
                      const: Whop
                    - type: string
                      const: Yampi
                    - type: string
                      const: Yever
                    - type: string
                      const: Kommo
                    - type: string
                      const: CxManualCreation
                    - type: string
                      const: CxManualImportCsv
                    - type: "null"
                      const: null
                - type: "null"
            temperatureScore:
              anyOf:
                - type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                - type: "null"
            temperatureStatus:
              anyOf:
                - anyOf:
                    - type: string
                      const: cold
                    - type: string
                      const: warm
                    - type: string
                      const: hot
                    - type: string
                      const: customer
                    - type: "null"
                      const: null
                - type: "null"
            score:
              type: number
            createdAt:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
          required:
            - id
            - status
            - client
            - score
            - createdAt
          additionalProperties: false
        customFields:
          type: array
          items:
            type: object
            properties:
              customFieldId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              displayName:
                type: string
              description:
                anyOf:
                  - type: string
                  - type: "null"
              fieldType:
                type: string
                enum:
                  - text
                  - number
                  - date
                  - boolean
                  - currency
                  - percentage
                  - select
                  - multi_select
                  - radio
                  - formula
                  - file
                  - json
                  - link
                  - rating
                  - textarea
              groupName:
                anyOf:
                  - type: string
                  - type: "null"
              value: {}
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - customFieldId
              - displayName
              - fieldType
              - value
              - updatedAt
            additionalProperties: false
        tags:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              color:
                type: string
              system:
                type: boolean
              appliedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - name
              - color
              - system
              - appliedAt
            additionalProperties: false
        lists:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                anyOf:
                  - type: string
                  - type: "null"
              emoji:
                anyOf:
                  - type: string
                  - type: "null"
              source:
                type: string
                enum:
                  - manual
                  - segment
                  - snapshot
                  - internal
            required:
              - id
              - source
            additionalProperties: false
        opportunities:
          type: array
          items:
            type: object
            properties:
              cardId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              title:
                anyOf:
                  - type: string
                  - type: "null"
              value:
                anyOf:
                  - type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  - type: "null"
              status:
                type: string
                enum:
                  - open
                  - won
                  - lost
              priority:
                type: string
                enum:
                  - urgent
                  - high
                  - medium
                  - low
                  - none
              temperature:
                anyOf:
                  - anyOf:
                      - type: string
                        const: hot
                      - type: string
                        const: warm
                      - type: string
                        const: cold
                      - type: string
                        const: frozen
                      - type: "null"
                        const: null
                  - type: "null"
              pipelineName:
                type: string
              stageName:
                type: string
              expectedClosingDate:
                anyOf:
                  - type: string
                    format: date
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                  - type: "null"
              wonAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              lostAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              lossReason:
                anyOf:
                  - type: string
                  - type: "null"
              lossObservation:
                anyOf:
                  - type: string
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - cardId
              - status
              - priority
              - pipelineName
              - stageName
              - createdAt
            additionalProperties: false
        lostReasons:
          type: array
          items:
            type: object
            properties:
              cardId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              title:
                anyOf:
                  - type: string
                  - type: "null"
              pipelineName:
                type: string
              lossReason:
                anyOf:
                  - type: string
                  - type: "null"
              lossObservation:
                anyOf:
                  - type: string
                  - type: "null"
              lostAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - cardId
              - pipelineName
            additionalProperties: false
        notes:
          type: object
          properties:
            items:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  name:
                    type: string
                  category:
                    type: string
                  eventName:
                    type: string
                  meta: {}
                  createdAt:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                required:
                  - id
                  - name
                  - category
                  - eventName
                  - meta
                  - createdAt
                additionalProperties: false
            totalCount:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
          required:
            - items
            - totalCount
          additionalProperties: false
        activities:
          type: object
          properties:
            items:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  name:
                    type: string
                  category:
                    type: string
                  eventName:
                    type: string
                  meta: {}
                  createdAt:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                required:
                  - id
                  - name
                  - category
                  - eventName
                  - meta
                  - createdAt
                additionalProperties: false
            totalCount:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
          required:
            - items
            - totalCount
          additionalProperties: false
        purchases:
          type: object
          properties:
            behavior:
              type: object
              properties:
                ltvCents:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                avgTicketCents:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                totalPurchases:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
              required:
                - ltvCents
                - avgTicketCents
                - totalPurchases
              additionalProperties: false
            transactions:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      transactionId:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      offerName:
                        anyOf:
                          - type: string
                          - type: "null"
                      valueCents:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      status:
                        type: string
                      paymentMethod:
                        type: string
                      occurredAt:
                        type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    required:
                      - transactionId
                      - valueCents
                      - status
                      - paymentMethod
                      - occurredAt
                    additionalProperties: false
                totalCount:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
              required:
                - items
                - totalCount
              additionalProperties: false
            externalSales:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      productName:
                        anyOf:
                          - type: string
                          - type: "null"
                      valueCents:
                        anyOf:
                          - type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          - type: "null"
                      currency:
                        anyOf:
                          - anyOf:
                              - type: string
                                const: AED
                              - type: string
                                const: ALL
                              - type: string
                                const: AMD
                              - type: string
                                const: APE
                              - type: string
                                const: ARS
                              - type: string
                                const: AUD
                              - type: string
                                const: AWG
                              - type: string
                                const: BAM
                              - type: string
                                const: BGN
                              - type: string
                                const: BHD
                              - type: string
                                const: BOB
                              - type: string
                                const: BRL
                              - type: string
                                const: BSD
                              - type: string
                                const: BTC
                              - type: string
                                const: CAD
                              - type: string
                                const: CHF
                              - type: string
                                const: CLP
                              - type: string
                                const: CNY
                              - type: string
                                const: COP
                              - type: string
                                const: CRC
                              - type: string
                                const: CZK
                              - type: string
                                const: DKK
                              - type: string
                                const: DOP
                              - type: string
                                const: DZD
                              - type: string
                                const: EGP
                              - type: string
                                const: ETB
                              - type: string
                                const: ETH
                              - type: string
                                const: EUR
                              - type: string
                                const: GBP
                              - type: string
                                const: GHS
                              - type: string
                                const: GMD
                              - type: string
                                const: GTQ
                              - type: string
                                const: GYD
                              - type: string
                                const: HKD
                              - type: string
                                const: HUF
                              - type: string
                                const: IDR
                              - type: string
                                const: ILS
                              - type: string
                                const: INR
                              - type: string
                                const: JMD
                              - type: string
                                const: JOD
                              - type: string
                                const: JPY
                              - type: string
                                const: KES
                              - type: string
                                const: KHR
                              - type: string
                                const: KRW
                              - type: string
                                const: KWD
                              - type: string
                                const: KZT
                              - type: string
                                const: LKR
                              - type: string
                                const: MAD
                              - type: string
                                const: MDL
                              - type: string
                                const: MGA
                              - type: string
                                const: MKD
                              - type: string
                                const: MNT
                              - type: string
                                const: MOP
                              - type: string
                                const: MUR
                              - type: string
                                const: MXN
                              - type: string
                                const: MYR
                              - type: string
                                const: NAD
                              - type: string
                                const: NGN
                              - type: string
                                const: NOK
                              - type: string
                                const: NZD
                              - type: string
                                const: OMR
                              - type: string
                                const: PEN
                              - type: string
                                const: PHP
                              - type: string
                                const: PKR
                              - type: string
                                const: PLN
                              - type: string
                                const: PYG
                              - type: string
                                const: QAR
                              - type: string
                                const: RON
                              - type: string
                                const: RSD
                              - type: string
                                const: RUB
                              - type: string
                                const: RWF
                              - type: string
                                const: SAR
                              - type: string
                                const: SEK
                              - type: string
                                const: SGD
                              - type: string
                                const: THB
                              - type: string
                                const: TND
                              - type: string
                                const: TRY
                              - type: string
                                const: TTD
                              - type: string
                                const: TWD
                              - type: string
                                const: TZS
                              - type: string
                                const: USD
                              - type: string
                                const: USDT
                              - type: string
                                const: UYU
                              - type: string
                                const: UZS
                              - type: string
                                const: VND
                              - type: string
                                const: WHOP_USD
                              - type: string
                                const: XAU
                              - type: string
                                const: XCD
                              - type: string
                                const: XOF
                              - type: string
                                const: ZAR
                              - type: "null"
                                const: null
                          - type: "null"
                      gatewayOrigin:
                        anyOf:
                          - type: string
                          - type: "null"
                      status:
                        type: string
                        enum:
                          - paid
                          - refunded
                          - chargeback
                          - failed
                          - canceled
                          - pending
                      occurredAt:
                        type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    required:
                      - id
                      - status
                      - occurredAt
                    additionalProperties: false
                totalCount:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
              required:
                - items
                - totalCount
              additionalProperties: false
          required:
            - behavior
            - transactions
            - externalSales
          additionalProperties: false
        captures:
          type: object
          properties:
            origin:
              anyOf:
                - anyOf:
                    - type: string
                      const: Clickfunnels
                    - type: string
                      const: CxAffiliates
                    - type: string
                      const: CxCalendar
                    - type: string
                      const: CxClients
                    - type: string
                      const: CxClone
                    - type: string
                      const: CxClub
                    - type: string
                      const: CxDomains
                    - type: string
                      const: CxFlows
                    - type: string
                      const: CxForms
                    - type: string
                      const: CxFunnels
                    - type: string
                      const: CxExternalPages
                    - type: string
                      const: CxWebchat
                    - type: string
                      const: CxWebinar
                    - type: string
                      const: CxInsights
                    - type: string
                      const: CxLinkProtect
                    - type: string
                      const: CxPages
                    - type: string
                      const: CxPay
                    - type: string
                      const: CxProducts
                    - type: string
                      const: CxQuizzes
                    - type: string
                      const: CxSend
                    - type: string
                      const: CxSplit
                    - type: string
                      const: CxStore
                    - type: string
                      const: CxTags
                    - type: string
                      const: CxTemplates
                    - type: string
                      const: CxTracking
                    - type: string
                      const: CxWallet
                    - type: string
                      const: CxWhatsappContacts
                    - type: string
                      const: Framer
                    - type: string
                      const: HotmartPages
                    - type: string
                      const: Integrations
                    - type: string
                      const: Kirvano
                    - type: string
                      const: Mailchimp
                    - type: string
                      const: Webflow
                    - type: string
                      const: Wix
                    - type: string
                      const: Wordpress
                    - type: "null"
                      const: null
                - type: "null"
            subOrigin:
              anyOf:
                - anyOf:
                    - type: string
                      const: CxWebinarRegistration
                    - type: string
                      const: CxWebinarMagicLink
                    - type: string
                      const: TelegramChatStart
                    - type: string
                      const: WhatsappChatStart
                    - type: string
                      const: InstagramStoryReply
                    - type: string
                      const: InstagramPostComment
                    - type: string
                      const: InstagramDMReceived
                    - type: string
                      const: WebchatChatStart
                    - type: string
                      const: SmsSendKeyword
                    - type: string
                      const: ActiveCampaign
                    - type: string
                      const: Asaas
                    - type: string
                      const: Braip
                    - type: string
                      const: Cartpanda
                    - type: string
                      const: Eduzz
                    - type: string
                      const: Greenn
                    - type: string
                      const: Guru
                    - type: string
                      const: Hotmart
                    - type: string
                      const: HotWebinar
                    - type: string
                      const: Hubla
                    - type: string
                      const: Kirvano
                    - type: string
                      const: Kiwify
                    - type: string
                      const: Lastlink
                    - type: string
                      const: Manychat
                    - type: string
                      const: Monetizze
                    - type: string
                      const: Pagarme
                    - type: string
                      const: PerfectPay
                    - type: string
                      const: Principia
                    - type: string
                      const: Stripe
                    - type: string
                      const: Ticto
                    - type: string
                      const: TMB
                    - type: string
                      const: Voomp
                    - type: string
                      const: VStage
                    - type: string
                      const: Vunel
                    - type: string
                      const: WebinarKit
                    - type: string
                      const: Whop
                    - type: string
                      const: Yampi
                    - type: string
                      const: Yever
                    - type: string
                      const: Kommo
                    - type: string
                      const: CxManualCreation
                    - type: string
                      const: CxManualImportCsv
                    - type: "null"
                      const: null
                - type: "null"
            captureLink:
              anyOf:
                - type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                    slug:
                      type: string
                  required:
                    - id
                    - name
                    - slug
                  additionalProperties: false
                - type: "null"
            utmSources:
              type: array
              items:
                type: object
                properties:
                  source:
                    type: string
                    enum:
                      - submission
                      - payment
                  utmSource:
                    anyOf:
                      - type: string
                      - type: "null"
                  utmMedium:
                    anyOf:
                      - type: string
                      - type: "null"
                  utmCampaign:
                    anyOf:
                      - type: string
                      - type: "null"
                  utmContent:
                    anyOf:
                      - type: string
                      - type: "null"
                  utmTerm:
                    anyOf:
                      - type: string
                      - type: "null"
                  createdAt:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                required:
                  - source
                  - createdAt
                additionalProperties: false
            recentEvents:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                  eventType:
                    type: string
                  hostname:
                    anyOf:
                      - type: string
                      - type: "null"
                  pathname:
                    anyOf:
                      - type: string
                      - type: "null"
                  referrer:
                    anyOf:
                      - type: string
                      - type: "null"
                  utmSource:
                    anyOf:
                      - type: string
                      - type: "null"
                  utmMedium:
                    anyOf:
                      - type: string
                      - type: "null"
                  utmCampaign:
                    anyOf:
                      - type: string
                      - type: "null"
                  utmContent:
                    anyOf:
                      - type: string
                      - type: "null"
                  utmTerm:
                    anyOf:
                      - type: string
                      - type: "null"
                  occurredAt:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                required:
                  - id
                  - eventType
                  - occurredAt
                additionalProperties: false
          required:
            - utmSources
            - recentEvents
          additionalProperties: false
        forms:
          type: object
          properties:
            items:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  formId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  formName:
                    type: string
                  status:
                    type: string
                    enum:
                      - partial
                      - completed
                  score:
                    anyOf:
                      - type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      - type: "null"
                  answers: {}
                  completedAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: "null"
                  createdAt:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                required:
                  - id
                  - formId
                  - formName
                  - status
                  - answers
                  - createdAt
                additionalProperties: false
            totalCount:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
          required:
            - items
            - totalCount
          additionalProperties: false
        messaging:
          type: object
          properties:
            counters:
              type: object
              properties:
                inboundReceived:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                outboundSent:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                outboundRead:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                outboundDeliveredUnread:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
              required:
                - inboundReceived
                - outboundSent
                - outboundRead
                - outboundDeliveredUnread
              additionalProperties: false
            threads:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      channel:
                        type: string
                        enum:
                          - whatsapp
                          - gupshup
                          - telegram
                          - instagram
                          - email
                          - webchat
                      status:
                        type: string
                        enum:
                          - bot
                          - open
                          - assigned
                          - resolved
                          - closed
                          - archived
                      unreadCount:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      messages:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              format: uuid
                              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                            direction:
                              type: string
                              enum:
                                - inbound
                                - outbound
                                - internal
                                - system
                            contentType:
                              type: string
                              enum:
                                - text
                                - image
                                - video
                                - audio
                                - file
                            content:
                              type: string
                            sentAt:
                              anyOf:
                                - type: string
                                  format: date-time
                                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                - type: "null"
                            deliveredAt:
                              anyOf:
                                - type: string
                                  format: date-time
                                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                - type: "null"
                            visualizedAt:
                              anyOf:
                                - type: string
                                  format: date-time
                                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                - type: "null"
                            createdAt:
                              type: string
                              format: date-time
                              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          required:
                            - id
                            - direction
                            - contentType
                            - content
                            - createdAt
                          additionalProperties: false
                    required:
                      - id
                      - channel
                      - status
                      - unreadCount
                      - messages
                    additionalProperties: false
                totalCount:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
              required:
                - items
                - totalCount
              additionalProperties: false
            broadcastsByChannel:
              type: array
              items:
                type: object
                properties:
                  channel:
                    type: string
                    enum:
                      - email
                      - telegram
                      - sms
                      - voice
                      - gupshup
                      - webchat
                      - instagram
                  sent:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  byStatus:
                    type: array
                    items:
                      type: object
                      properties:
                        status:
                          type: string
                          enum:
                            - queued
                            - sending
                            - sent
                            - delivered
                            - failed
                            - visualized
                            - held
                            - cancelled
                        count:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                      required:
                        - status
                        - count
                      additionalProperties: false
                required:
                  - channel
                  - sent
                  - byStatus
                additionalProperties: false
          required:
            - counters
            - threads
            - broadcastsByChannel
          additionalProperties: false
        appointments:
          type: object
          properties:
            calls:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      subject:
                        anyOf:
                          - type: string
                          - type: "null"
                      startAt:
                        type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      endAt:
                        type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      status:
                        type: string
                        enum:
                          - scheduled
                          - confirmed
                          - completed
                          - cancelled
                          - no_show
                      notes:
                        anyOf:
                          - type: string
                          - type: "null"
                      meetingLink:
                        anyOf:
                          - type: string
                          - type: "null"
                      cancellationReason:
                        anyOf:
                          - type: string
                          - type: "null"
                      leadJoinedAt:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          - type: "null"
                    required:
                      - id
                      - startAt
                      - endAt
                      - status
                    additionalProperties: false
                totalCount:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
              required:
                - items
                - totalCount
              additionalProperties: false
            tasks:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      cardId:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      title:
                        type: string
                      description:
                        anyOf:
                          - type: string
                          - type: "null"
                      type:
                        type: string
                        enum:
                          - call
                          - whatsapp
                          - meeting
                          - task
                      status:
                        type: string
                        enum:
                          - open
                          - scheduled
                          - resolved
                          - cancelled
                      priority:
                        type: string
                        enum:
                          - urgent
                          - high
                          - medium
                          - low
                          - none
                      deadline:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          - type: "null"
                      outcome:
                        anyOf:
                          - type: boolean
                          - type: "null"
                      outcomeNote:
                        anyOf:
                          - type: string
                          - type: "null"
                    required:
                      - id
                      - cardId
                      - title
                      - type
                      - status
                      - priority
                    additionalProperties: false
                totalCount:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
              required:
                - items
                - totalCount
              additionalProperties: false
          required:
            - calls
            - tasks
          additionalProperties: false
        members:
          type: object
          properties:
            areas:
              type: array
              items:
                type: object
                properties:
                  portalId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  portalName:
                    type: string
                required:
                  - portalId
                  - portalName
                additionalProperties: false
            lastLoginAt:
              anyOf:
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                - type: "null"
            recentCompletedLessons:
              type: array
              items:
                type: object
                properties:
                  lessonId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  lessonTitle:
                    type: string
                  completedAt:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                required:
                  - lessonId
                  - lessonTitle
                  - completedAt
                additionalProperties: false
          required:
            - areas
            - lastLoginAt
            - recentCompletedLessons
          additionalProperties: false
        flows:
          type: object
          properties:
            items:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  flowId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  flowName:
                    type: string
                  status:
                    type: string
                    enum:
                      - failed
                      - queued
                      - pending
                      - scheduled
                      - finished
                      - canceled
                  createdAt:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  updatedAt:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                required:
                  - id
                  - flowId
                  - flowName
                  - status
                  - createdAt
                  - updatedAt
                additionalProperties: false
            totalCount:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
          required:
            - items
            - totalCount
          additionalProperties: false
        extras:
          type: object
          properties:
            webinarRegistrations:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      webinarName:
                        type: string
                      status:
                        type: string
                        enum:
                          - registered
                          - attended
                          - no_show
                          - converted
                          - canceled
                      source:
                        type: string
                        enum:
                          - public_page
                          - magic_link
                          - no_login
                          - checkout
                      registeredAt:
                        type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    required:
                      - id
                      - webinarName
                      - status
                      - source
                      - registeredAt
                    additionalProperties: false
                totalCount:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
              required:
                - items
                - totalCount
              additionalProperties: false
            temperatureHistory:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      fromTemperatureScore:
                        anyOf:
                          - type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          - type: "null"
                      toTemperatureScore:
                        anyOf:
                          - type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          - type: "null"
                      scoreChange:
                        anyOf:
                          - type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          - type: "null"
                      action:
                        type: string
                      createdAt:
                        type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    required:
                      - action
                      - createdAt
                    additionalProperties: false
                totalCount:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
              required:
                - items
                - totalCount
              additionalProperties: false
            companies:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  name:
                    type: string
                required:
                  - id
                  - name
                additionalProperties: false
            conversationSignal:
              anyOf:
                - type: object
                  properties:
                    channel:
                      type: string
                    intent:
                      anyOf:
                        - type: string
                        - type: "null"
                    sentiment:
                      anyOf:
                        - type: string
                        - type: "null"
                    urgency:
                      anyOf:
                        - type: string
                        - type: "null"
                    classifiedAt:
                      anyOf:
                        - type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        - type: "null"
                  required:
                    - channel
                  additionalProperties: false
                - type: "null"
            phoneCalls:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      kind:
                        type: string
                        enum:
                          - voice
                          - whatsapp
                      status:
                        type: string
                      occurredAt:
                        type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    required:
                      - id
                      - kind
                      - status
                      - occurredAt
                    additionalProperties: false
                totalCount:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
              required:
                - items
                - totalCount
              additionalProperties: false
          required:
            - webinarRegistrations
            - temperatureHistory
            - companies
            - phoneCalls
          additionalProperties: false
      required:
        - leadId
      additionalProperties: false
    LeadsPaymentsOutput:
      type: object
      properties:
        data:
          type: object
          properties:
            qtdProducts:
              type: number
            qtdTransactions:
              type: number
            LTV:
              type: number
            avgTicket:
              type: number
            products:
              type: array
              items:
                type: object
                properties:
                  product:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      name:
                        type: string
                      qtdPaidTransactions:
                        type: number
                      LTV:
                        type: number
                      imageUrl:
                        type: string
                        pattern: ^https:\/\/.+$
                    required:
                      - id
                      - name
                      - qtdPaidTransactions
                      - LTV
                      - imageUrl
                    additionalProperties: false
                  transactions:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                        shortenCode:
                          type: string
                        createdAt:
                          type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        offer:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        offerName:
                          type: string
                        offerHash:
                          type: string
                        offerPrice:
                          type: number
                        ownerId:
                          type: string
                        isRecurrent:
                          type: boolean
                        recurrence:
                          anyOf:
                            - type: string
                            - type: "null"
                        value:
                          type: number
                        type:
                          type: string
                        status:
                          type: string
                        commission:
                          type: number
                        statusLabel:
                          type: string
                        paymentMethodIcon:
                          type: string
                      required:
                        - code
                        - shortenCode
                        - createdAt
                        - offer
                        - offerName
                        - offerHash
                        - offerPrice
                        - ownerId
                        - isRecurrent
                        - value
                        - type
                        - status
                        - commission
                        - statusLabel
                        - paymentMethodIcon
                      additionalProperties: false
                required:
                  - product
                  - transactions
                additionalProperties: false
            externalSales:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  product:
                    anyOf:
                      - type: string
                      - type: "null"
                  productName:
                    anyOf:
                      - type: string
                      - type: "null"
                  value:
                    anyOf:
                      - type: number
                      - type: "null"
                  offerCode:
                    anyOf:
                      - type: string
                      - type: "null"
                  externalId:
                    anyOf:
                      - type: string
                      - type: "null"
                  externalPageUrl:
                    anyOf:
                      - type: string
                      - type: "null"
                  gatewayOrigin:
                    anyOf:
                      - type: string
                      - type: "null"
                  installments:
                    anyOf:
                      - type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      - type: "null"
                  couponCode:
                    anyOf:
                      - type: string
                      - type: "null"
                  method:
                    anyOf:
                      - anyOf:
                          - type: string
                            const: pix
                          - type: string
                            const: boleto
                          - type: string
                            const: credit
                          - type: "null"
                            const: null
                      - type: "null"
                  status:
                    type: string
                    enum:
                      - paid
                      - refunded
                      - chargeback
                      - failed
                      - canceled
                      - pending
                  failReason:
                    anyOf:
                      - type: string
                      - type: "null"
                  currency:
                    anyOf:
                      - anyOf:
                          - type: string
                            const: AED
                          - type: string
                            const: ALL
                          - type: string
                            const: AMD
                          - type: string
                            const: APE
                          - type: string
                            const: ARS
                          - type: string
                            const: AUD
                          - type: string
                            const: AWG
                          - type: string
                            const: BAM
                          - type: string
                            const: BGN
                          - type: string
                            const: BHD
                          - type: string
                            const: BOB
                          - type: string
                            const: BRL
                          - type: string
                            const: BSD
                          - type: string
                            const: BTC
                          - type: string
                            const: CAD
                          - type: string
                            const: CHF
                          - type: string
                            const: CLP
                          - type: string
                            const: CNY
                          - type: string
                            const: COP
                          - type: string
                            const: CRC
                          - type: string
                            const: CZK
                          - type: string
                            const: DKK
                          - type: string
                            const: DOP
                          - type: string
                            const: DZD
                          - type: string
                            const: EGP
                          - type: string
                            const: ETB
                          - type: string
                            const: ETH
                          - type: string
                            const: EUR
                          - type: string
                            const: GBP
                          - type: string
                            const: GHS
                          - type: string
                            const: GMD
                          - type: string
                            const: GTQ
                          - type: string
                            const: GYD
                          - type: string
                            const: HKD
                          - type: string
                            const: HUF
                          - type: string
                            const: IDR
                          - type: string
                            const: ILS
                          - type: string
                            const: INR
                          - type: string
                            const: JMD
                          - type: string
                            const: JOD
                          - type: string
                            const: JPY
                          - type: string
                            const: KES
                          - type: string
                            const: KHR
                          - type: string
                            const: KRW
                          - type: string
                            const: KWD
                          - type: string
                            const: KZT
                          - type: string
                            const: LKR
                          - type: string
                            const: MAD
                          - type: string
                            const: MDL
                          - type: string
                            const: MGA
                          - type: string
                            const: MKD
                          - type: string
                            const: MNT
                          - type: string
                            const: MOP
                          - type: string
                            const: MUR
                          - type: string
                            const: MXN
                          - type: string
                            const: MYR
                          - type: string
                            const: NAD
                          - type: string
                            const: NGN
                          - type: string
                            const: NOK
                          - type: string
                            const: NZD
                          - type: string
                            const: OMR
                          - type: string
                            const: PEN
                          - type: string
                            const: PHP
                          - type: string
                            const: PKR
                          - type: string
                            const: PLN
                          - type: string
                            const: PYG
                          - type: string
                            const: QAR
                          - type: string
                            const: RON
                          - type: string
                            const: RSD
                          - type: string
                            const: RUB
                          - type: string
                            const: RWF
                          - type: string
                            const: SAR
                          - type: string
                            const: SEK
                          - type: string
                            const: SGD
                          - type: string
                            const: THB
                          - type: string
                            const: TND
                          - type: string
                            const: TRY
                          - type: string
                            const: TTD
                          - type: string
                            const: TWD
                          - type: string
                            const: TZS
                          - type: string
                            const: USD
                          - type: string
                            const: USDT
                          - type: string
                            const: UYU
                          - type: string
                            const: UZS
                          - type: string
                            const: VND
                          - type: string
                            const: WHOP_USD
                          - type: string
                            const: XAU
                          - type: string
                            const: XCD
                          - type: string
                            const: XOF
                          - type: string
                            const: ZAR
                          - type: "null"
                            const: null
                      - type: "null"
                  externalProductId:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  orderBumpIds:
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  leadId:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  page3Id:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  ownerId:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  createdAt:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  updatedAt:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                required:
                  - id
                  - status
                  - orderBumpIds
                  - createdAt
                  - updatedAt
                additionalProperties: false
            externalSalesLTV:
              type: number
            externalSalesQtd:
              type: number
            externalSalesAvgTicket:
              type: number
            externalSalesCurrency:
              anyOf:
                - anyOf:
                    - type: string
                      const: AED
                    - type: string
                      const: ALL
                    - type: string
                      const: AMD
                    - type: string
                      const: APE
                    - type: string
                      const: ARS
                    - type: string
                      const: AUD
                    - type: string
                      const: AWG
                    - type: string
                      const: BAM
                    - type: string
                      const: BGN
                    - type: string
                      const: BHD
                    - type: string
                      const: BOB
                    - type: string
                      const: BRL
                    - type: string
                      const: BSD
                    - type: string
                      const: BTC
                    - type: string
                      const: CAD
                    - type: string
                      const: CHF
                    - type: string
                      const: CLP
                    - type: string
                      const: CNY
                    - type: string
                      const: COP
                    - type: string
                      const: CRC
                    - type: string
                      const: CZK
                    - type: string
                      const: DKK
                    - type: string
                      const: DOP
                    - type: string
                      const: DZD
                    - type: string
                      const: EGP
                    - type: string
                      const: ETB
                    - type: string
                      const: ETH
                    - type: string
                      const: EUR
                    - type: string
                      const: GBP
                    - type: string
                      const: GHS
                    - type: string
                      const: GMD
                    - type: string
                      const: GTQ
                    - type: string
                      const: GYD
                    - type: string
                      const: HKD
                    - type: string
                      const: HUF
                    - type: string
                      const: IDR
                    - type: string
                      const: ILS
                    - type: string
                      const: INR
                    - type: string
                      const: JMD
                    - type: string
                      const: JOD
                    - type: string
                      const: JPY
                    - type: string
                      const: KES
                    - type: string
                      const: KHR
                    - type: string
                      const: KRW
                    - type: string
                      const: KWD
                    - type: string
                      const: KZT
                    - type: string
                      const: LKR
                    - type: string
                      const: MAD
                    - type: string
                      const: MDL
                    - type: string
                      const: MGA
                    - type: string
                      const: MKD
                    - type: string
                      const: MNT
                    - type: string
                      const: MOP
                    - type: string
                      const: MUR
                    - type: string
                      const: MXN
                    - type: string
                      const: MYR
                    - type: string
                      const: NAD
                    - type: string
                      const: NGN
                    - type: string
                      const: NOK
                    - type: string
                      const: NZD
                    - type: string
                      const: OMR
                    - type: string
                      const: PEN
                    - type: string
                      const: PHP
                    - type: string
                      const: PKR
                    - type: string
                      const: PLN
                    - type: string
                      const: PYG
                    - type: string
                      const: QAR
                    - type: string
                      const: RON
                    - type: string
                      const: RSD
                    - type: string
                      const: RUB
                    - type: string
                      const: RWF
                    - type: string
                      const: SAR
                    - type: string
                      const: SEK
                    - type: string
                      const: SGD
                    - type: string
                      const: THB
                    - type: string
                      const: TND
                    - type: string
                      const: TRY
                    - type: string
                      const: TTD
                    - type: string
                      const: TWD
                    - type: string
                      const: TZS
                    - type: string
                      const: USD
                    - type: string
                      const: USDT
                    - type: string
                      const: UYU
                    - type: string
                      const: UZS
                    - type: string
                      const: VND
                    - type: string
                      const: WHOP_USD
                    - type: string
                      const: XAU
                    - type: string
                      const: XCD
                    - type: string
                      const: XOF
                    - type: string
                      const: ZAR
                    - type: "null"
                      const: null
                - type: "null"
            externalSalesByCurrency:
              type: array
              items:
                type: object
                properties:
                  currency:
                    type: string
                    enum:
                      - AED
                      - ALL
                      - AMD
                      - APE
                      - ARS
                      - AUD
                      - AWG
                      - BAM
                      - BGN
                      - BHD
                      - BOB
                      - BRL
                      - BSD
                      - BTC
                      - CAD
                      - CHF
                      - CLP
                      - CNY
                      - COP
                      - CRC
                      - CZK
                      - DKK
                      - DOP
                      - DZD
                      - EGP
                      - ETB
                      - ETH
                      - EUR
                      - GBP
                      - GHS
                      - GMD
                      - GTQ
                      - GYD
                      - HKD
                      - HUF
                      - IDR
                      - ILS
                      - INR
                      - JMD
                      - JOD
                      - JPY
                      - KES
                      - KHR
                      - KRW
                      - KWD
                      - KZT
                      - LKR
                      - MAD
                      - MDL
                      - MGA
                      - MKD
                      - MNT
                      - MOP
                      - MUR
                      - MXN
                      - MYR
                      - NAD
                      - NGN
                      - NOK
                      - NZD
                      - OMR
                      - PEN
                      - PHP
                      - PKR
                      - PLN
                      - PYG
                      - QAR
                      - RON
                      - RSD
                      - RUB
                      - RWF
                      - SAR
                      - SEK
                      - SGD
                      - THB
                      - TND
                      - TRY
                      - TTD
                      - TWD
                      - TZS
                      - USD
                      - USDT
                      - UYU
                      - UZS
                      - VND
                      - WHOP_USD
                      - XAU
                      - XCD
                      - XOF
                      - ZAR
                  lifetimeValue:
                    type: number
                  ticketAverage:
                    type: number
                  productsCount:
                    type: number
                  purchasesCount:
                    type: number
                required:
                  - currency
                  - lifetimeValue
                  - ticketAverage
                  - productsCount
                  - purchasesCount
                additionalProperties: false
          required:
            - qtdProducts
            - qtdTransactions
            - LTV
            - avgTicket
            - products
            - externalSales
            - externalSalesLTV
            - externalSalesQtd
            - externalSalesAvgTicket
            - externalSalesByCurrency
          additionalProperties: false
      required:
        - data
      additionalProperties: false
    LeadsCommonProductsInput:
      type: object
      properties:
        filter:
          type: object
          properties:
            page:
              default: 1
              type: number
              minimum: 1
            perPage:
              default: 10
              type: number
              minimum: 1
              maximum: 2000
            filter:
              type: object
              properties:
                leadId:
                  anyOf:
                    - type: string
                    - type: "null"
                contactCode:
                  anyOf:
                    - type: string
                    - type: "null"
                tagIdOfList:
                  anyOf:
                    - type: string
                    - type: "null"
                searchText:
                  anyOf:
                    - type: string
                    - type: "null"
                projects:
                  anyOf:
                    - type: array
                      items:
                        type: string
                    - type: "null"
                funnels:
                  anyOf:
                    - type: array
                      items:
                        type: string
                    - type: "null"
                pages:
                  anyOf:
                    - type: array
                      items:
                        type: string
                    - type: "null"
                tags:
                  anyOf:
                    - type: array
                      items:
                        type: string
                    - type: "null"
                systemTags:
                  anyOf:
                    - type: array
                      items:
                        type: string
                    - type: "null"
                dateRange:
                  anyOf:
                    - type: object
                      properties:
                        from:
                          type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        to:
                          type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      required:
                        - from
                        - to
                    - type: "null"
                utm_source:
                  anyOf:
                    - type: string
                    - type: "null"
                utm_medium:
                  anyOf:
                    - type: string
                    - type: "null"
                utm_campaign:
                  anyOf:
                    - type: string
                    - type: "null"
                utm_term:
                  anyOf:
                    - type: string
                    - type: "null"
                utm_content:
                  anyOf:
                    - type: string
                    - type: "null"
                includes:
                  anyOf:
                    - type: array
                      items:
                        type: string
                    - type: "null"
                excludes:
                  anyOf:
                    - type: array
                      items:
                        type: string
                    - type: "null"
                name:
                  anyOf:
                    - type: string
                    - type: "null"
                email:
                  anyOf:
                    - type: string
                    - type: "null"
                document:
                  anyOf:
                    - type: string
                    - type: "null"
                status:
                  anyOf:
                    - type: array
                      items:
                        type: string
                        enum:
                          - created
                          - visited
                          - engaged
                          - subscribed
                          - in_cart
                          - abandoned_cart
                          - purchased
                          - activated
                          - upgraded
                          - renewed
                          - churned
                          - referral
                          - feedback_given
                    - type: "null"
                origin:
                  anyOf:
                    - type: array
                      items:
                        type: string
                        enum:
                          - Clickfunnels
                          - CxAffiliates
                          - CxCalendar
                          - CxClients
                          - CxClone
                          - CxClub
                          - CxDomains
                          - CxFlows
                          - CxForms
                          - CxFunnels
                          - CxExternalPages
                          - CxWebchat
                          - CxWebinar
                          - CxInsights
                          - CxLinkProtect
                          - CxPages
                          - CxPay
                          - CxProducts
                          - CxQuizzes
                          - CxSend
                          - CxSplit
                          - CxStore
                          - CxTags
                          - CxTemplates
                          - CxTracking
                          - CxWallet
                          - CxWhatsappContacts
                          - Framer
                          - HotmartPages
                          - Integrations
                          - Kirvano
                          - Mailchimp
                          - Webflow
                          - Wix
                          - Wordpress
                    - type: "null"
                subOrigin:
                  anyOf:
                    - type: array
                      items:
                        type: string
                        enum:
                          - CxWebinarRegistration
                          - CxWebinarMagicLink
                          - TelegramChatStart
                          - WhatsappChatStart
                          - InstagramStoryReply
                          - InstagramPostComment
                          - InstagramDMReceived
                          - WebchatChatStart
                          - SmsSendKeyword
                          - ActiveCampaign
                          - Asaas
                          - Braip
                          - Cartpanda
                          - Eduzz
                          - Greenn
                          - Guru
                          - Hotmart
                          - HotWebinar
                          - Hubla
                          - Kirvano
                          - Kiwify
                          - Lastlink
                          - Manychat
                          - Monetizze
                          - Pagarme
                          - PerfectPay
                          - Principia
                          - Stripe
                          - Ticto
                          - TMB
                          - Voomp
                          - VStage
                          - Vunel
                          - WebinarKit
                          - Whop
                          - Yampi
                          - Yever
                          - Kommo
                          - CxManualCreation
                          - CxManualImportCsv
                    - type: "null"
                temperatureStatus:
                  anyOf:
                    - type: array
                      items:
                        type: string
                        enum:
                          - cold
                          - warm
                          - hot
                          - customer
                    - type: "null"
                messagePreferences:
                  anyOf:
                    - type: object
                      properties:
                        email:
                          type: boolean
                        whatsapp:
                          type: boolean
                        telegram:
                          type: boolean
                        instagram:
                          type: boolean
                        sms:
                          type: boolean
                        voice:
                          type: boolean
                    - type: "null"
            paymentsFilter:
              type: object
              properties:
                utmCampaign:
                  type: array
                  items:
                    type: string
                utmContent:
                  type: array
                  items:
                    type: string
                utmMedium:
                  type: array
                  items:
                    type: string
                utmSource:
                  type: array
                  items:
                    type: string
                utmTerm:
                  type: array
                  items:
                    type: string
                productName:
                  type: string
                subscriptionStatus:
                  type: array
                  items:
                    type: string
                    enum:
                      - active
                      - canceled
                subscriptionPlan:
                  type: array
                  items:
                    type: string
                    enum:
                      - "1"
                      - "3"
                      - "6"
                      - "12"
                recurrenceFrequency:
                  type: array
                  items:
                    type: string
                    enum:
                      - "1"
                      - "3"
                      - "6"
                      - "12"
                searchTransactionCode:
                  type: string
                transactionType:
                  type: array
                  items:
                    type: string
                    enum:
                      - pix
                      - boleto
                      - credit
                      - free
                transactionStatus:
                  type: array
                  items:
                    type: string
                    enum:
                      - paid
                      - pending
                      - failed
                      - canceled
                offerType:
                  type: array
                  items:
                    type: string
                    enum:
                      - community
                      - course
                      - ebook
                      - event
                      - physical
                      - other
                      - services
                      - software
                      - consultancy
                      - mentorship
                offerCurrency:
                  type: array
                  items:
                    type: string
                    enum:
                      - BRL
                      - EUR
                      - USD
                offerIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                productIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                projectIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                funnelIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                transactionRecurrence:
                  type: array
                  items:
                    type: string
                    enum:
                      - Recurrent
                      - OneTime
                lastPurchaseDate:
                  type: object
                  properties:
                    from:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    to:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                transactionCreatedAt:
                  type: object
                  properties:
                    from:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    to:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                subscriptionCreatedAt:
                  type: object
                  properties:
                    from:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    to:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                numberOfPurchases:
                  type: object
                  properties:
                    min:
                      type: number
                      minimum: 0
                    max:
                      type: number
                      minimum: 0
                lastPurchaseValue:
                  type: object
                  properties:
                    min:
                      type: number
                      minimum: 0
                    max:
                      type: number
                      minimum: 0
                averageTicket:
                  type: object
                  properties:
                    min:
                      type: number
                      minimum: 0
                    max:
                      type: number
                      minimum: 0
                lifeTimeValue:
                  type: object
                  properties:
                    min:
                      type: number
                      minimum: 0
                    max:
                      type: number
                      minimum: 0
            membersFilter:
              type: object
              properties:
                memberPortalIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                memberClassroomIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                memberCourseIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            dynamicFilters:
              description: Lista de filtros dinâmicos a serem aplicados com operadores
                sequenciais
              type: array
              items:
                type: object
                properties:
                  field:
                    type: string
                    enum:
                      - name
                      - email
                      - telephone
                      - document
                      - city
                      - state
                      - address
                      - profession
                      - temperatureStatus
                      - birthday
                      - createdAt
                      - emailValidatedAt
                      - status
                      - genderIdentity
                      - emailStatus
                      - origin
                      - subOrigin
                      - originOrSubOrigin
                      - client
                      - lgpdApproved
                      - score
                      - projectIds
                      - funnelId
                      - pageId
                      - tags
                      - messagePreferencesAuthorized
                      - messagePreferencesCanceled
                      - lastPurchaseDate
                      - transactionCreatedAt
                      - subscriptionCreatedAt
                      - numberOfPurchases
                      - lastPurchaseValue
                      - averageTicket
                      - lifeTimeValue
                      - transactionRecurrence
                      - transactionStatus
                      - subscriptionStatus
                      - offerType
                      - offerCurrency
                      - subscriptionPlan
                      - recurrenceFrequency
                      - transactionType
                      - productName
                      - productIds
                      - offerIds
                      - searchTransactionCode
                      - utm_campaign
                      - utm_content
                      - utm_medium
                      - utm_source
                      - utm_term
                      - src
                      - sck
                      - memberPortalIds
                      - memberClassroomIds
                      - memberCourseIds
                  operator:
                    type: string
                    enum:
                      - equals
                      - notEquals
                      - contains
                      - notContains
                      - startsWith
                      - endsWith
                      - greaterThan
                      - greaterThanOrEqual
                      - lessThan
                      - lessThanOrEqual
                      - in
                      - notIn
                      - isEmpty
                      - isNotEmpty
                      - between
                  value:
                    anyOf:
                      - type: string
                      - type: number
                      - type: boolean
                      - type: array
                        items:
                          type: string
                      - type: array
                        items:
                          type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: "null"
                    description: Valor para comparação
                  logicalOperator:
                    default: AND
                    type: string
                    enum:
                      - AND
                      - OR
                required:
                  - field
                  - operator
                  - value
            filterGroups:
              description: Lista de grupos de filtros
              type: array
              items:
                type: object
                properties:
                  filters:
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          enum:
                            - name
                            - email
                            - telephone
                            - document
                            - city
                            - state
                            - address
                            - profession
                            - temperatureStatus
                            - birthday
                            - createdAt
                            - emailValidatedAt
                            - status
                            - genderIdentity
                            - emailStatus
                            - origin
                            - subOrigin
                            - originOrSubOrigin
                            - client
                            - lgpdApproved
                            - score
                            - projectIds
                            - funnelId
                            - pageId
                            - tags
                            - messagePreferencesAuthorized
                            - messagePreferencesCanceled
                            - lastPurchaseDate
                            - transactionCreatedAt
                            - subscriptionCreatedAt
                            - numberOfPurchases
                            - lastPurchaseValue
                            - averageTicket
                            - lifeTimeValue
                            - transactionRecurrence
                            - transactionStatus
                            - subscriptionStatus
                            - offerType
                            - offerCurrency
                            - subscriptionPlan
                            - recurrenceFrequency
                            - transactionType
                            - productName
                            - productIds
                            - offerIds
                            - searchTransactionCode
                            - utm_campaign
                            - utm_content
                            - utm_medium
                            - utm_source
                            - utm_term
                            - src
                            - sck
                            - memberPortalIds
                            - memberClassroomIds
                            - memberCourseIds
                        operator:
                          type: string
                          enum:
                            - equals
                            - notEquals
                            - contains
                            - notContains
                            - startsWith
                            - endsWith
                            - greaterThan
                            - greaterThanOrEqual
                            - lessThan
                            - lessThanOrEqual
                            - in
                            - notIn
                            - isEmpty
                            - isNotEmpty
                            - between
                        value:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                            - type: array
                              items:
                                type: string
                                format: date-time
                                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            - type: "null"
                          description: Valor para comparação
                        logicalOperator:
                          default: AND
                          type: string
                          enum:
                            - AND
                            - OR
                      required:
                        - field
                        - operator
                        - value
                    description: Lista de filtros dentro do grupo
                  logicalOperator:
                    default: AND
                    type: string
                    enum:
                      - AND
                      - OR
                required:
                  - filters
            groupOperator:
              default: OR
              description: Operador lógico para conectar grupos de filtros
              type: string
              enum:
                - AND
                - OR
            logicalOperator:
              default: AND
              type: string
              enum:
                - AND
                - OR
            orderBy:
              default:
                updatedAt: desc
                name: asc
              type: object
              properties:
                name:
                  type: string
                  enum:
                    - asc
                    - desc
                email:
                  type: string
                  enum:
                    - asc
                    - desc
                updatedAt:
                  type: string
                  enum:
                    - asc
                    - desc
                createdAt:
                  type: string
                  enum:
                    - asc
                    - desc
        allLeads:
          type: boolean
        leadIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - filter
    LeadsCommonProductsOutput:
      type: object
      properties:
        products:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
            required:
              - id
              - name
            additionalProperties: false
      required:
        - products
      additionalProperties: false
    LeadsInvoicesInput:
      type: object
      properties:
        filter:
          type: object
          properties:
            page:
              default: 1
              type: number
              minimum: 1
            perPage:
              default: 10
              type: number
              minimum: 1
              maximum: 2000
            filter:
              type: object
              properties:
                leadId:
                  anyOf:
                    - type: string
                    - type: "null"
                contactCode:
                  anyOf:
                    - type: string
                    - type: "null"
                tagIdOfList:
                  anyOf:
                    - type: string
                    - type: "null"
                searchText:
                  anyOf:
                    - type: string
                    - type: "null"
                projects:
                  anyOf:
                    - type: array
                      items:
                        type: string
                    - type: "null"
                funnels:
                  anyOf:
                    - type: array
                      items:
                        type: string
                    - type: "null"
                pages:
                  anyOf:
                    - type: array
                      items:
                        type: string
                    - type: "null"
                tags:
                  anyOf:
                    - type: array
                      items:
                        type: string
                    - type: "null"
                systemTags:
                  anyOf:
                    - type: array
                      items:
                        type: string
                    - type: "null"
                dateRange:
                  anyOf:
                    - type: object
                      properties:
                        from:
                          type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        to:
                          type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      required:
                        - from
                        - to
                    - type: "null"
                utm_source:
                  anyOf:
                    - type: string
                    - type: "null"
                utm_medium:
                  anyOf:
                    - type: string
                    - type: "null"
                utm_campaign:
                  anyOf:
                    - type: string
                    - type: "null"
                utm_term:
                  anyOf:
                    - type: string
                    - type: "null"
                utm_content:
                  anyOf:
                    - type: string
                    - type: "null"
                includes:
                  anyOf:
                    - type: array
                      items:
                        type: string
                    - type: "null"
                excludes:
                  anyOf:
                    - type: array
                      items:
                        type: string
                    - type: "null"
                name:
                  anyOf:
                    - type: string
                    - type: "null"
                email:
                  anyOf:
                    - type: string
                    - type: "null"
                document:
                  anyOf:
                    - type: string
                    - type: "null"
                status:
                  anyOf:
                    - type: array
                      items:
                        type: string
                        enum:
                          - created
                          - visited
                          - engaged
                          - subscribed
                          - in_cart
                          - abandoned_cart
                          - purchased
                          - activated
                          - upgraded
                          - renewed
                          - churned
                          - referral
                          - feedback_given
                    - type: "null"
                origin:
                  anyOf:
                    - type: array
                      items:
                        type: string
                        enum:
                          - Clickfunnels
                          - CxAffiliates
                          - CxCalendar
                          - CxClients
                          - CxClone
                          - CxClub
                          - CxDomains
                          - CxFlows
                          - CxForms
                          - CxFunnels
                          - CxExternalPages
                          - CxWebchat
                          - CxWebinar
                          - CxInsights
                          - CxLinkProtect
                          - CxPages
                          - CxPay
                          - CxProducts
                          - CxQuizzes
                          - CxSend
                          - CxSplit
                          - CxStore
                          - CxTags
                          - CxTemplates
                          - CxTracking
                          - CxWallet
                          - CxWhatsappContacts
                          - Framer
                          - HotmartPages
                          - Integrations
                          - Kirvano
                          - Mailchimp
                          - Webflow
                          - Wix
                          - Wordpress
                    - type: "null"
                subOrigin:
                  anyOf:
                    - type: array
                      items:
                        type: string
                        enum:
                          - CxWebinarRegistration
                          - CxWebinarMagicLink
                          - TelegramChatStart
                          - WhatsappChatStart
                          - InstagramStoryReply
                          - InstagramPostComment
                          - InstagramDMReceived
                          - WebchatChatStart
                          - SmsSendKeyword
                          - ActiveCampaign
                          - Asaas
                          - Braip
                          - Cartpanda
                          - Eduzz
                          - Greenn
                          - Guru
                          - Hotmart
                          - HotWebinar
                          - Hubla
                          - Kirvano
                          - Kiwify
                          - Lastlink
                          - Manychat
                          - Monetizze
                          - Pagarme
                          - PerfectPay
                          - Principia
                          - Stripe
                          - Ticto
                          - TMB
                          - Voomp
                          - VStage
                          - Vunel
                          - WebinarKit
                          - Whop
                          - Yampi
                          - Yever
                          - Kommo
                          - CxManualCreation
                          - CxManualImportCsv
                    - type: "null"
                temperatureStatus:
                  anyOf:
                    - type: array
                      items:
                        type: string
                        enum:
                          - cold
                          - warm
                          - hot
                          - customer
                    - type: "null"
                messagePreferences:
                  anyOf:
                    - type: object
                      properties:
                        email:
                          type: boolean
                        whatsapp:
                          type: boolean
                        telegram:
                          type: boolean
                        instagram:
                          type: boolean
                        sms:
                          type: boolean
                        voice:
                          type: boolean
                    - type: "null"
            paymentsFilter:
              type: object
              properties:
                utmCampaign:
                  type: array
                  items:
                    type: string
                utmContent:
                  type: array
                  items:
                    type: string
                utmMedium:
                  type: array
                  items:
                    type: string
                utmSource:
                  type: array
                  items:
                    type: string
                utmTerm:
                  type: array
                  items:
                    type: string
                productName:
                  type: string
                subscriptionStatus:
                  type: array
                  items:
                    type: string
                    enum:
                      - active
                      - canceled
                subscriptionPlan:
                  type: array
                  items:
                    type: string
                    enum:
                      - "1"
                      - "3"
                      - "6"
                      - "12"
                recurrenceFrequency:
                  type: array
                  items:
                    type: string
                    enum:
                      - "1"
                      - "3"
                      - "6"
                      - "12"
                searchTransactionCode:
                  type: string
                transactionType:
                  type: array
                  items:
                    type: string
                    enum:
                      - pix
                      - boleto
                      - credit
                      - free
                transactionStatus:
                  type: array
                  items:
                    type: string
                    enum:
                      - paid
                      - pending
                      - failed
                      - canceled
                offerType:
                  type: array
                  items:
                    type: string
                    enum:
                      - community
                      - course
                      - ebook
                      - event
                      - physical
                      - other
                      - services
                      - software
                      - consultancy
                      - mentorship
                offerCurrency:
                  type: array
                  items:
                    type: string
                    enum:
                      - BRL
                      - EUR
                      - USD
                offerIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                productIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                projectIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                funnelIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                transactionRecurrence:
                  type: array
                  items:
                    type: string
                    enum:
                      - Recurrent
                      - OneTime
                lastPurchaseDate:
                  type: object
                  properties:
                    from:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    to:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                transactionCreatedAt:
                  type: object
                  properties:
                    from:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    to:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                subscriptionCreatedAt:
                  type: object
                  properties:
                    from:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    to:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                numberOfPurchases:
                  type: object
                  properties:
                    min:
                      type: number
                      minimum: 0
                    max:
                      type: number
                      minimum: 0
                lastPurchaseValue:
                  type: object
                  properties:
                    min:
                      type: number
                      minimum: 0
                    max:
                      type: number
                      minimum: 0
                averageTicket:
                  type: object
                  properties:
                    min:
                      type: number
                      minimum: 0
                    max:
                      type: number
                      minimum: 0
                lifeTimeValue:
                  type: object
                  properties:
                    min:
                      type: number
                      minimum: 0
                    max:
                      type: number
                      minimum: 0
            membersFilter:
              type: object
              properties:
                memberPortalIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                memberClassroomIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                memberCourseIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            dynamicFilters:
              description: Lista de filtros dinâmicos a serem aplicados com operadores
                sequenciais
              type: array
              items:
                type: object
                properties:
                  field:
                    type: string
                    enum:
                      - name
                      - email
                      - telephone
                      - document
                      - city
                      - state
                      - address
                      - profession
                      - temperatureStatus
                      - birthday
                      - createdAt
                      - emailValidatedAt
                      - status
                      - genderIdentity
                      - emailStatus
                      - origin
                      - subOrigin
                      - originOrSubOrigin
                      - client
                      - lgpdApproved
                      - score
                      - projectIds
                      - funnelId
                      - pageId
                      - tags
                      - messagePreferencesAuthorized
                      - messagePreferencesCanceled
                      - lastPurchaseDate
                      - transactionCreatedAt
                      - subscriptionCreatedAt
                      - numberOfPurchases
                      - lastPurchaseValue
                      - averageTicket
                      - lifeTimeValue
                      - transactionRecurrence
                      - transactionStatus
                      - subscriptionStatus
                      - offerType
                      - offerCurrency
                      - subscriptionPlan
                      - recurrenceFrequency
                      - transactionType
                      - productName
                      - productIds
                      - offerIds
                      - searchTransactionCode
                      - utm_campaign
                      - utm_content
                      - utm_medium
                      - utm_source
                      - utm_term
                      - src
                      - sck
                      - memberPortalIds
                      - memberClassroomIds
                      - memberCourseIds
                  operator:
                    type: string
                    enum:
                      - equals
                      - notEquals
                      - contains
                      - notContains
                      - startsWith
                      - endsWith
                      - greaterThan
                      - greaterThanOrEqual
                      - lessThan
                      - lessThanOrEqual
                      - in
                      - notIn
                      - isEmpty
                      - isNotEmpty
                      - between
                  value:
                    anyOf:
                      - type: string
                      - type: number
                      - type: boolean
                      - type: array
                        items:
                          type: string
                      - type: array
                        items:
                          type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: "null"
                    description: Valor para comparação
                  logicalOperator:
                    default: AND
                    type: string
                    enum:
                      - AND
                      - OR
                required:
                  - field
                  - operator
                  - value
            filterGroups:
              description: Lista de grupos de filtros
              type: array
              items:
                type: object
                properties:
                  filters:
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          enum:
                            - name
                            - email
                            - telephone
                            - document
                            - city
                            - state
                            - address
                            - profession
                            - temperatureStatus
                            - birthday
                            - createdAt
                            - emailValidatedAt
                            - status
                            - genderIdentity
                            - emailStatus
                            - origin
                            - subOrigin
                            - originOrSubOrigin
                            - client
                            - lgpdApproved
                            - score
                            - projectIds
                            - funnelId
                            - pageId
                            - tags
                            - messagePreferencesAuthorized
                            - messagePreferencesCanceled
                            - lastPurchaseDate
                            - transactionCreatedAt
                            - subscriptionCreatedAt
                            - numberOfPurchases
                            - lastPurchaseValue
                            - averageTicket
                            - lifeTimeValue
                            - transactionRecurrence
                            - transactionStatus
                            - subscriptionStatus
                            - offerType
                            - offerCurrency
                            - subscriptionPlan
                            - recurrenceFrequency
                            - transactionType
                            - productName
                            - productIds
                            - offerIds
                            - searchTransactionCode
                            - utm_campaign
                            - utm_content
                            - utm_medium
                            - utm_source
                            - utm_term
                            - src
                            - sck
                            - memberPortalIds
                            - memberClassroomIds
                            - memberCourseIds
                        operator:
                          type: string
                          enum:
                            - equals
                            - notEquals
                            - contains
                            - notContains
                            - startsWith
                            - endsWith
                            - greaterThan
                            - greaterThanOrEqual
                            - lessThan
                            - lessThanOrEqual
                            - in
                            - notIn
                            - isEmpty
                            - isNotEmpty
                            - between
                        value:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                            - type: array
                              items:
                                type: string
                                format: date-time
                                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            - type: "null"
                          description: Valor para comparação
                        logicalOperator:
                          default: AND
                          type: string
                          enum:
                            - AND
                            - OR
                      required:
                        - field
                        - operator
                        - value
                    description: Lista de filtros dentro do grupo
                  logicalOperator:
                    default: AND
                    type: string
                    enum:
                      - AND
                      - OR
                required:
                  - filters
            groupOperator:
              default: OR
              description: Operador lógico para conectar grupos de filtros
              type: string
              enum:
                - AND
                - OR
            logicalOperator:
              default: AND
              type: string
              enum:
                - AND
                - OR
            orderBy:
              default:
                updatedAt: desc
                name: asc
              type: object
              properties:
                name:
                  type: string
                  enum:
                    - asc
                    - desc
                email:
                  type: string
                  enum:
                    - asc
                    - desc
                updatedAt:
                  type: string
                  enum:
                    - asc
                    - desc
                createdAt:
                  type: string
                  enum:
                    - asc
                    - desc
        allLeads:
          type: boolean
        leadIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
    LeadsInvoicesOutput:
      type: object
      properties:
        invoices:
          type: array
          items:
            type: object
            properties:
              leadId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              leadName:
                type: string
              leadEmail:
                type: string
              productName:
                type: string
              transactionId:
                type: string
              paymentDate:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              paymentMethod:
                type: string
              paymentStatus:
                type: string
            required:
              - leadId
              - leadName
              - leadEmail
              - productName
              - transactionId
              - paymentMethod
              - paymentStatus
            additionalProperties: false
      required:
        - invoices
      additionalProperties: false
    LeadsOriginsOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: string
      required:
        - data
      additionalProperties: false
    LeadsSubOriginsOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: string
            enum:
              - CxWebinarRegistration
              - CxWebinarMagicLink
              - TelegramChatStart
              - WhatsappChatStart
              - InstagramStoryReply
              - InstagramPostComment
              - InstagramDMReceived
              - WebchatChatStart
              - SmsSendKeyword
              - ActiveCampaign
              - Asaas
              - Braip
              - Cartpanda
              - Eduzz
              - Greenn
              - Guru
              - Hotmart
              - HotWebinar
              - Hubla
              - Kirvano
              - Kiwify
              - Lastlink
              - Manychat
              - Monetizze
              - Pagarme
              - PerfectPay
              - Principia
              - Stripe
              - Ticto
              - TMB
              - Voomp
              - VStage
              - Vunel
              - WebinarKit
              - Whop
              - Yampi
              - Yever
              - Kommo
              - CxManualCreation
              - CxManualImportCsv
      required:
        - data
      additionalProperties: false
    LeadsOriginsTreeOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              origin:
                type: string
                enum:
                  - Clickfunnels
                  - CxAffiliates
                  - CxCalendar
                  - CxClients
                  - CxClone
                  - CxClub
                  - CxDomains
                  - CxFlows
                  - CxForms
                  - CxFunnels
                  - CxExternalPages
                  - CxWebchat
                  - CxWebinar
                  - CxInsights
                  - CxLinkProtect
                  - CxPages
                  - CxPay
                  - CxProducts
                  - CxQuizzes
                  - CxSend
                  - CxSplit
                  - CxStore
                  - CxTags
                  - CxTemplates
                  - CxTracking
                  - CxWallet
                  - CxWhatsappContacts
                  - Framer
                  - HotmartPages
                  - Integrations
                  - Kirvano
                  - Mailchimp
                  - Webflow
                  - Wix
                  - Wordpress
              subOrigins:
                type: array
                items:
                  type: string
                  enum:
                    - CxWebinarRegistration
                    - CxWebinarMagicLink
                    - TelegramChatStart
                    - WhatsappChatStart
                    - InstagramStoryReply
                    - InstagramPostComment
                    - InstagramDMReceived
                    - WebchatChatStart
                    - SmsSendKeyword
                    - ActiveCampaign
                    - Asaas
                    - Braip
                    - Cartpanda
                    - Eduzz
                    - Greenn
                    - Guru
                    - Hotmart
                    - HotWebinar
                    - Hubla
                    - Kirvano
                    - Kiwify
                    - Lastlink
                    - Manychat
                    - Monetizze
                    - Pagarme
                    - PerfectPay
                    - Principia
                    - Stripe
                    - Ticto
                    - TMB
                    - Voomp
                    - VStage
                    - Vunel
                    - WebinarKit
                    - Whop
                    - Yampi
                    - Yever
                    - Kommo
                    - CxManualCreation
                    - CxManualImportCsv
            required:
              - origin
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    LeadsPaymentsUtmAutocompleteOutput:
      type: object
      properties:
        utmSource:
          type: array
          items:
            type: string
        utmMedium:
          type: array
          items:
            type: string
        utmCampaign:
          type: array
          items:
            type: string
        utmContent:
          type: array
          items:
            type: string
        utmTerm:
          type: array
          items:
            type: string
        src:
          type: array
          items:
            type: string
        sck:
          type: array
          items:
            type: string
      required:
        - utmSource
        - utmMedium
        - utmCampaign
        - utmContent
        - utmTerm
        - src
        - sck
      additionalProperties: false
    ListsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                anyOf:
                  - type: string
                    maxLength: 255
                  - type: "null"
              emoji:
                anyOf:
                  - type: string
                    maxLength: 16
                  - type: "null"
              source:
                type: string
                enum:
                  - manual
                  - segment
                  - snapshot
                  - internal
              leadCount:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              favorite:
                type: boolean
              workspaceId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - source
              - leadCount
              - favorite
              - workspaceId
              - updatedAt
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
        suggestions:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              score:
                type: number
            required:
              - id
              - name
              - score
            additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    ListsCreateInput:
      type: object
      properties:
        name:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        emoji:
          anyOf:
            - type: string
              maxLength: 16
            - type: "null"
        internal:
          type: boolean
    ListsCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        emoji:
          anyOf:
            - type: string
              maxLength: 16
            - type: "null"
        source:
          type: string
          enum:
            - manual
            - segment
            - snapshot
            - internal
        leadCount:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        favorite:
          type: boolean
        workspaceId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - source
        - leadCount
        - favorite
        - workspaceId
        - updatedAt
      additionalProperties: false
    ListsGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        emoji:
          anyOf:
            - type: string
              maxLength: 16
            - type: "null"
        source:
          type: string
          enum:
            - manual
            - segment
            - snapshot
            - internal
        leadCount:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        favorite:
          type: boolean
        workspaceId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - source
        - leadCount
        - favorite
        - workspaceId
        - updatedAt
      additionalProperties: false
    ListsUpdateInput:
      type: object
      properties:
        listId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        emoji:
          anyOf:
            - type: string
              maxLength: 16
            - type: "null"
        internal:
          type: boolean
        favorite:
          type: boolean
      required:
        - listId
    ListsUpdateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        emoji:
          anyOf:
            - type: string
              maxLength: 16
            - type: "null"
        source:
          type: string
          enum:
            - manual
            - segment
            - snapshot
            - internal
        leadCount:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        favorite:
          type: boolean
        workspaceId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - source
        - leadCount
        - favorite
        - workspaceId
        - updatedAt
      additionalProperties: false
    ListsDeleteInput:
      type: object
      properties:
        listId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - listId
    ListsDeleteOutput:
      type: object
      properties:
        deleted:
          type: boolean
      required:
        - deleted
      additionalProperties: false
    ListsUpdateLeadsInput:
      type: object
      properties:
        listId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        addLeadIds:
          minItems: 1
          maxItems: 5000
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        removeLeadIds:
          minItems: 1
          maxItems: 5000
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        removeAll:
          type: boolean
      required:
        - listId
    ListsUpdateLeadsOutput:
      type: object
      properties:
        updated:
          type: boolean
      required:
        - updated
      additionalProperties: false
    ListsGetLeadsOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                anyOf:
                  - type: string
                  - type: "null"
              email:
                anyOf:
                  - type: string
                    minLength: 5
                    maxLength: 255
                    format: email
                    pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                  - type: "null"
              telephone:
                anyOf:
                  - type: string
                    maxLength: 20
                    pattern: ^\+?\d+$
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              emailValidatedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              emailInvalidReason:
                anyOf:
                  - type: string
                  - type: "null"
              score:
                type: number
              emailStatus:
                type: string
                enum:
                  - pending
                  - valid
                  - invalid
                  - risky
              contactCode:
                type: string
              status:
                type: string
                enum:
                  - created
                  - visited
                  - engaged
                  - subscribed
                  - in_cart
                  - abandoned_cart
                  - purchased
                  - activated
                  - upgraded
                  - renewed
                  - churned
                  - referral
                  - feedback_given
              temperatureStatus:
                anyOf:
                  - anyOf:
                      - type: string
                        const: cold
                      - type: string
                        const: warm
                      - type: string
                        const: hot
                      - type: string
                        const: customer
                      - type: "null"
                        const: null
                  - type: "null"
              temperatureScore:
                anyOf:
                  - type: number
                  - type: "null"
              temperatureTrend7d:
                anyOf:
                  - type: number
                  - type: "null"
              origin:
                anyOf:
                  - anyOf:
                      - type: string
                        const: Clickfunnels
                      - type: string
                        const: CxAffiliates
                      - type: string
                        const: CxCalendar
                      - type: string
                        const: CxClients
                      - type: string
                        const: CxClone
                      - type: string
                        const: CxClub
                      - type: string
                        const: CxDomains
                      - type: string
                        const: CxFlows
                      - type: string
                        const: CxForms
                      - type: string
                        const: CxFunnels
                      - type: string
                        const: CxExternalPages
                      - type: string
                        const: CxWebchat
                      - type: string
                        const: CxWebinar
                      - type: string
                        const: CxInsights
                      - type: string
                        const: CxLinkProtect
                      - type: string
                        const: CxPages
                      - type: string
                        const: CxPay
                      - type: string
                        const: CxProducts
                      - type: string
                        const: CxQuizzes
                      - type: string
                        const: CxSend
                      - type: string
                        const: CxSplit
                      - type: string
                        const: CxStore
                      - type: string
                        const: CxTags
                      - type: string
                        const: CxTemplates
                      - type: string
                        const: CxTracking
                      - type: string
                        const: CxWallet
                      - type: string
                        const: CxWhatsappContacts
                      - type: string
                        const: Framer
                      - type: string
                        const: HotmartPages
                      - type: string
                        const: Integrations
                      - type: string
                        const: Kirvano
                      - type: string
                        const: Mailchimp
                      - type: string
                        const: Webflow
                      - type: string
                        const: Wix
                      - type: string
                        const: Wordpress
                      - type: "null"
                        const: null
                  - type: "null"
              subOrigin:
                anyOf:
                  - anyOf:
                      - type: string
                        const: CxWebinarRegistration
                      - type: string
                        const: CxWebinarMagicLink
                      - type: string
                        const: TelegramChatStart
                      - type: string
                        const: WhatsappChatStart
                      - type: string
                        const: InstagramStoryReply
                      - type: string
                        const: InstagramPostComment
                      - type: string
                        const: InstagramDMReceived
                      - type: string
                        const: WebchatChatStart
                      - type: string
                        const: SmsSendKeyword
                      - type: string
                        const: ActiveCampaign
                      - type: string
                        const: Asaas
                      - type: string
                        const: Braip
                      - type: string
                        const: Cartpanda
                      - type: string
                        const: Eduzz
                      - type: string
                        const: Greenn
                      - type: string
                        const: Guru
                      - type: string
                        const: Hotmart
                      - type: string
                        const: HotWebinar
                      - type: string
                        const: Hubla
                      - type: string
                        const: Kirvano
                      - type: string
                        const: Kiwify
                      - type: string
                        const: Lastlink
                      - type: string
                        const: Manychat
                      - type: string
                        const: Monetizze
                      - type: string
                        const: Pagarme
                      - type: string
                        const: PerfectPay
                      - type: string
                        const: Principia
                      - type: string
                        const: Stripe
                      - type: string
                        const: Ticto
                      - type: string
                        const: TMB
                      - type: string
                        const: Voomp
                      - type: string
                        const: VStage
                      - type: string
                        const: Vunel
                      - type: string
                        const: WebinarKit
                      - type: string
                        const: Whop
                      - type: string
                        const: Yampi
                      - type: string
                        const: Yever
                      - type: string
                        const: Kommo
                      - type: string
                        const: CxManualCreation
                      - type: string
                        const: CxManualImportCsv
                      - type: "null"
                        const: null
                  - type: "null"
              messagePreferences:
                type: object
                properties:
                  email:
                    type: boolean
                  whatsapp:
                    type: boolean
                  sms:
                    type: boolean
                  telegram:
                    type: boolean
                  voice:
                    type: boolean
                  instagram:
                    type: boolean
                required:
                  - email
                  - whatsapp
                  - sms
                  - telegram
                  - voice
                  - instagram
                additionalProperties: false
              systemActivityCount:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              lastSystemActivity:
                type: object
                properties:
                  name:
                    anyOf:
                      - type: string
                      - type: "null"
                  createdAt:
                    type: string
                required:
                  - name
                  - createdAt
                additionalProperties: false
              tagsCount:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              lastTag:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  label:
                    type: string
                  system:
                    type: boolean
                required:
                  - id
                  - label
                  - system
                additionalProperties: false
              opportunitiesCount:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              suspectedFraud:
                type: boolean
              suspectedFraudReasons:
                type: array
                items:
                  type: string
                  enum:
                    - email
                    - document
            required:
              - id
              - createdAt
              - updatedAt
              - score
              - emailStatus
              - contactCode
              - status
              - systemActivityCount
              - tagsCount
              - opportunitiesCount
              - suspectedFraud
              - suspectedFraudReasons
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    SegmentsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                anyOf:
                  - type: string
                    maxLength: 255
                  - type: "null"
              emoji:
                anyOf:
                  - type: string
                    maxLength: 16
                  - type: "null"
              listId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              engagementRate:
                type: number
                minimum: 0
                maximum: 1
              refreshedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              workspaceId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              list:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  name:
                    anyOf:
                      - type: string
                        maxLength: 255
                      - type: "null"
                  emoji:
                    anyOf:
                      - type: string
                        maxLength: 16
                      - type: "null"
                  source:
                    type: string
                    enum:
                      - manual
                      - segment
                      - snapshot
                      - internal
                  leadCount:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  favorite:
                    type: boolean
                  workspaceId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  updatedAt:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                required:
                  - id
                  - source
                  - leadCount
                  - favorite
                  - workspaceId
                  - updatedAt
                additionalProperties: false
            required:
              - id
              - listId
              - engagementRate
              - workspaceId
              - createdAt
              - list
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    SegmentsCreateInput:
      type: object
      properties:
        name:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        emoji:
          anyOf:
            - type: string
              maxLength: 16
            - type: "null"
    SegmentsCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        emoji:
          anyOf:
            - type: string
              maxLength: 16
            - type: "null"
        listId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        engagementRate:
          type: number
          minimum: 0
          maximum: 1
        refreshedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        workspaceId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        list:
          type: object
          properties:
            id:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            name:
              anyOf:
                - type: string
                  maxLength: 255
                - type: "null"
            emoji:
              anyOf:
                - type: string
                  maxLength: 16
                - type: "null"
            source:
              type: string
              enum:
                - manual
                - segment
                - snapshot
                - internal
            leadCount:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            favorite:
              type: boolean
            workspaceId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            updatedAt:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
          required:
            - id
            - source
            - leadCount
            - favorite
            - workspaceId
            - updatedAt
          additionalProperties: false
      required:
        - id
        - listId
        - engagementRate
        - workspaceId
        - createdAt
        - list
      additionalProperties: false
    SegmentsPreviewCountInput:
      type: object
      properties:
        filters:
          maxItems: 50
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              order:
                type: integer
                minimum: -32768
                maximum: 32767
              operator:
                type: string
                enum:
                  - childrenAnd
                  - childrenOr
                  - equals
                  - contains
                  - startsWith
                  - endsWith
                  - greaterThan
                  - greaterThanOrEqual
                  - lessThan
                  - lessThanOrEqual
                  - in
                  - isNotEmpty
              field:
                type: string
                enum:
                  - children
                  - address
                  - birthday
                  - city
                  - client
                  - createdAt
                  - document
                  - email
                  - emailStatus
                  - emailValidatedAt
                  - genderIdentity
                  - lgpdApproved
                  - name
                  - origin
                  - originOrSubOrigin
                  - profession
                  - score
                  - state
                  - status
                  - subOrigin
                  - tagId
                  - telephone
                  - temperatureStatus
                  - funnelId
                  - listId
                  - messagePreferencesAuthorized
                  - messagePreferencesCanceled
                  - pageId
                  - projectId
                  - offerId
                  - productId
                  - productName
                  - searchTransactionCode
                  - utmCampaign
                  - utmContent
                  - utmMedium
                  - utmSource
                  - utmTerm
                  - src
                  - sck
                  - averageTicket
                  - lastPurchaseDate
                  - lastPurchaseValue
                  - lifeTimeValue
                  - numberOfPurchases
                  - offerCurrency
                  - offerType
                  - recurrenceFrequency
                  - subscriptionCreatedAt
                  - subscriptionPlan
                  - subscriptionStatus
                  - transactionCancellationReason
                  - transactionCreatedAt
                  - transactionFailReason
                  - transactionRecurrence
                  - transactionStatus
                  - transactionType
                  - externalSaleStatus
                  - externalCartAbandoned
                  - customFieldText
                  - customFieldNumber
                  - customFieldDate
                  - customFieldBoolean
                  - customFieldSelect
                  - quizSubmission
                  - quizAnswerSelect
                  - quizAnswerNumber
                  - quizAnswerText
                  - instagram
                  - linkedin
                  - twitterX
                  - tiktok
                  - youtube
                  - telegramUsername
                  - formSubmission
                  - captureLinkId
                  - activityPageId
                  - activityFunnelId
                  - opportunity
                  - webinar
                  - conversationIntent
                  - conversationSentiment
                  - conversationUrgency
              negation:
                type: boolean
              valueBool:
                anyOf:
                  - type: boolean
                  - type: "null"
              valueDate:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              valueNumber:
                anyOf:
                  - type: number
                  - type: "null"
              valueString:
                anyOf:
                  - type: string
                  - type: "null"
              valueUuid:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              customFieldId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              formId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              questionKey:
                anyOf:
                  - type: string
                  - type: "null"
              parentId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
            required:
              - id
              - order
              - operator
              - field
              - negation
      required:
        - filters
    SegmentsPreviewCountOutput:
      type: object
      properties:
        estimatedCount:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        cached:
          type: boolean
      required:
        - estimatedCount
        - cached
      additionalProperties: false
    SegmentsTimeseriesInput:
      type: object
      properties:
        filters:
          maxItems: 50
          type: array
          items:
            type: object
            properties:
              operator:
                type: string
                enum:
                  - childrenAnd
                  - childrenOr
                  - equals
                  - contains
                  - startsWith
                  - endsWith
                  - greaterThan
                  - greaterThanOrEqual
                  - lessThan
                  - lessThanOrEqual
                  - in
                  - isNotEmpty
              field:
                type: string
                enum:
                  - children
                  - address
                  - birthday
                  - city
                  - client
                  - createdAt
                  - document
                  - email
                  - emailStatus
                  - emailValidatedAt
                  - genderIdentity
                  - lgpdApproved
                  - name
                  - origin
                  - originOrSubOrigin
                  - profession
                  - score
                  - state
                  - status
                  - subOrigin
                  - tagId
                  - telephone
                  - temperatureStatus
                  - funnelId
                  - listId
                  - messagePreferencesAuthorized
                  - messagePreferencesCanceled
                  - pageId
                  - projectId
                  - offerId
                  - productId
                  - productName
                  - searchTransactionCode
                  - utmCampaign
                  - utmContent
                  - utmMedium
                  - utmSource
                  - utmTerm
                  - src
                  - sck
                  - averageTicket
                  - lastPurchaseDate
                  - lastPurchaseValue
                  - lifeTimeValue
                  - numberOfPurchases
                  - offerCurrency
                  - offerType
                  - recurrenceFrequency
                  - subscriptionCreatedAt
                  - subscriptionPlan
                  - subscriptionStatus
                  - transactionCancellationReason
                  - transactionCreatedAt
                  - transactionFailReason
                  - transactionRecurrence
                  - transactionStatus
                  - transactionType
                  - externalSaleStatus
                  - externalCartAbandoned
                  - customFieldText
                  - customFieldNumber
                  - customFieldDate
                  - customFieldBoolean
                  - customFieldSelect
                  - quizSubmission
                  - quizAnswerSelect
                  - quizAnswerNumber
                  - quizAnswerText
                  - instagram
                  - linkedin
                  - twitterX
                  - tiktok
                  - youtube
                  - telegramUsername
                  - formSubmission
                  - captureLinkId
                  - activityPageId
                  - activityFunnelId
                  - opportunity
                  - webinar
                  - conversationIntent
                  - conversationSentiment
                  - conversationUrgency
              negation:
                type: boolean
              valueBool:
                anyOf:
                  - type: boolean
                  - type: "null"
              valueNumber:
                anyOf:
                  - type: number
                  - type: "null"
              valueString:
                anyOf:
                  - type: string
                  - type: "null"
              valueUuid:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              customFieldId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              formId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              questionKey:
                anyOf:
                  - type: string
                  - type: "null"
              parentId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              id:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              valueDate:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - operator
              - field
              - negation
        dateRange:
          type: object
          properties:
            from:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            to:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
          required:
            - from
            - to
        granularity:
          type: string
          enum:
            - day
            - week
      required:
        - filters
        - dateRange
    SegmentsTimeseriesOutput:
      type: object
      properties:
        buckets:
          type: array
          items:
            type: object
            properties:
              date:
                type: string
              count:
                type: integer
                minimum: 0
                maximum: 9007199254740991
            required:
              - date
              - count
            additionalProperties: false
        total:
          type: integer
          minimum: 0
          maximum: 9007199254740991
      required:
        - buckets
        - total
      additionalProperties: false
    SegmentsCategoriesMetricsInput:
      type: object
      properties:
        filters:
          maxItems: 50
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              order:
                type: integer
                minimum: -32768
                maximum: 32767
              operator:
                type: string
                enum:
                  - childrenAnd
                  - childrenOr
                  - equals
                  - contains
                  - startsWith
                  - endsWith
                  - greaterThan
                  - greaterThanOrEqual
                  - lessThan
                  - lessThanOrEqual
                  - in
                  - isNotEmpty
              field:
                type: string
                enum:
                  - children
                  - address
                  - birthday
                  - city
                  - client
                  - createdAt
                  - document
                  - email
                  - emailStatus
                  - emailValidatedAt
                  - genderIdentity
                  - lgpdApproved
                  - name
                  - origin
                  - originOrSubOrigin
                  - profession
                  - score
                  - state
                  - status
                  - subOrigin
                  - tagId
                  - telephone
                  - temperatureStatus
                  - funnelId
                  - listId
                  - messagePreferencesAuthorized
                  - messagePreferencesCanceled
                  - pageId
                  - projectId
                  - offerId
                  - productId
                  - productName
                  - searchTransactionCode
                  - utmCampaign
                  - utmContent
                  - utmMedium
                  - utmSource
                  - utmTerm
                  - src
                  - sck
                  - averageTicket
                  - lastPurchaseDate
                  - lastPurchaseValue
                  - lifeTimeValue
                  - numberOfPurchases
                  - offerCurrency
                  - offerType
                  - recurrenceFrequency
                  - subscriptionCreatedAt
                  - subscriptionPlan
                  - subscriptionStatus
                  - transactionCancellationReason
                  - transactionCreatedAt
                  - transactionFailReason
                  - transactionRecurrence
                  - transactionStatus
                  - transactionType
                  - externalSaleStatus
                  - externalCartAbandoned
                  - customFieldText
                  - customFieldNumber
                  - customFieldDate
                  - customFieldBoolean
                  - customFieldSelect
                  - quizSubmission
                  - quizAnswerSelect
                  - quizAnswerNumber
                  - quizAnswerText
                  - instagram
                  - linkedin
                  - twitterX
                  - tiktok
                  - youtube
                  - telegramUsername
                  - formSubmission
                  - captureLinkId
                  - activityPageId
                  - activityFunnelId
                  - opportunity
                  - webinar
                  - conversationIntent
                  - conversationSentiment
                  - conversationUrgency
              negation:
                type: boolean
              valueBool:
                anyOf:
                  - type: boolean
                  - type: "null"
              valueDate:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              valueNumber:
                anyOf:
                  - type: number
                  - type: "null"
              valueString:
                anyOf:
                  - type: string
                  - type: "null"
              valueUuid:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              customFieldId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              formId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              questionKey:
                anyOf:
                  - type: string
                  - type: "null"
              parentId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
            required:
              - id
              - order
              - operator
              - field
              - negation
      required:
        - filters
    SegmentsCategoriesMetricsOutput:
      type: object
      properties:
        totalContacts:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        temperatureMetrics:
          type: array
          items:
            type: object
            properties:
              category:
                anyOf:
                  - type: string
                    enum:
                      - None
                  - type: string
                    enum:
                      - cold
                      - warm
                      - hot
                      - customer
              count:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              percentage:
                type: number
                minimum: 0
                maximum: 1
            required:
              - category
              - count
              - percentage
            additionalProperties: false
        originMetrics:
          type: array
          items:
            type: object
            properties:
              origin:
                type: string
              count:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              percentage:
                type: number
                minimum: 0
                maximum: 1
            required:
              - origin
              - count
              - percentage
            additionalProperties: false
      required:
        - totalContacts
        - temperatureMetrics
        - originMetrics
      additionalProperties: false
    SegmentsGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        emoji:
          anyOf:
            - type: string
              maxLength: 16
            - type: "null"
        listId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        engagementRate:
          type: number
          minimum: 0
          maximum: 1
        refreshedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        workspaceId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        list:
          type: object
          properties:
            id:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            name:
              anyOf:
                - type: string
                  maxLength: 255
                - type: "null"
            emoji:
              anyOf:
                - type: string
                  maxLength: 16
                - type: "null"
            source:
              type: string
              enum:
                - manual
                - segment
                - snapshot
                - internal
            leadCount:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            favorite:
              type: boolean
            workspaceId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            updatedAt:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
          required:
            - id
            - source
            - leadCount
            - favorite
            - workspaceId
            - updatedAt
          additionalProperties: false
      required:
        - id
        - listId
        - engagementRate
        - workspaceId
        - createdAt
        - list
      additionalProperties: false
    SegmentsUpdateInput:
      type: object
      properties:
        segmentId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        emoji:
          anyOf:
            - type: string
              maxLength: 16
            - type: "null"
      required:
        - segmentId
    SegmentsUpdateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        emoji:
          anyOf:
            - type: string
              maxLength: 16
            - type: "null"
        listId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        engagementRate:
          type: number
          minimum: 0
          maximum: 1
        refreshedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        workspaceId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        list:
          type: object
          properties:
            id:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            name:
              anyOf:
                - type: string
                  maxLength: 255
                - type: "null"
            emoji:
              anyOf:
                - type: string
                  maxLength: 16
                - type: "null"
            source:
              type: string
              enum:
                - manual
                - segment
                - snapshot
                - internal
            leadCount:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            favorite:
              type: boolean
            workspaceId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            updatedAt:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
          required:
            - id
            - source
            - leadCount
            - favorite
            - workspaceId
            - updatedAt
          additionalProperties: false
      required:
        - id
        - listId
        - engagementRate
        - workspaceId
        - createdAt
        - list
      additionalProperties: false
    SegmentsDeleteInput:
      type: object
      properties:
        segmentId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - segmentId
    SegmentsDeleteOutput:
      type: object
      properties:
        deleted:
          type: boolean
      required:
        - deleted
      additionalProperties: false
    SegmentsGetFiltersOutput:
      type: object
      properties:
        data:
          maxItems: 50
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              order:
                type: integer
                minimum: -32768
                maximum: 32767
              operator:
                type: string
                enum:
                  - childrenAnd
                  - childrenOr
                  - equals
                  - contains
                  - startsWith
                  - endsWith
                  - greaterThan
                  - greaterThanOrEqual
                  - lessThan
                  - lessThanOrEqual
                  - in
                  - isNotEmpty
              field:
                type: string
                enum:
                  - children
                  - address
                  - birthday
                  - city
                  - client
                  - createdAt
                  - document
                  - email
                  - emailStatus
                  - emailValidatedAt
                  - genderIdentity
                  - lgpdApproved
                  - name
                  - origin
                  - originOrSubOrigin
                  - profession
                  - score
                  - state
                  - status
                  - subOrigin
                  - tagId
                  - telephone
                  - temperatureStatus
                  - funnelId
                  - listId
                  - messagePreferencesAuthorized
                  - messagePreferencesCanceled
                  - pageId
                  - projectId
                  - offerId
                  - productId
                  - productName
                  - searchTransactionCode
                  - utmCampaign
                  - utmContent
                  - utmMedium
                  - utmSource
                  - utmTerm
                  - src
                  - sck
                  - averageTicket
                  - lastPurchaseDate
                  - lastPurchaseValue
                  - lifeTimeValue
                  - numberOfPurchases
                  - offerCurrency
                  - offerType
                  - recurrenceFrequency
                  - subscriptionCreatedAt
                  - subscriptionPlan
                  - subscriptionStatus
                  - transactionCancellationReason
                  - transactionCreatedAt
                  - transactionFailReason
                  - transactionRecurrence
                  - transactionStatus
                  - transactionType
                  - externalSaleStatus
                  - externalCartAbandoned
                  - customFieldText
                  - customFieldNumber
                  - customFieldDate
                  - customFieldBoolean
                  - customFieldSelect
                  - quizSubmission
                  - quizAnswerSelect
                  - quizAnswerNumber
                  - quizAnswerText
                  - instagram
                  - linkedin
                  - twitterX
                  - tiktok
                  - youtube
                  - telegramUsername
                  - formSubmission
                  - captureLinkId
                  - activityPageId
                  - activityFunnelId
                  - opportunity
                  - webinar
                  - conversationIntent
                  - conversationSentiment
                  - conversationUrgency
              negation:
                type: boolean
              valueBool:
                anyOf:
                  - type: boolean
                  - type: "null"
              valueDate:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              valueNumber:
                anyOf:
                  - type: number
                  - type: "null"
              valueString:
                anyOf:
                  - type: string
                  - type: "null"
              valueUuid:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              customFieldId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              formId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              questionKey:
                anyOf:
                  - type: string
                  - type: "null"
              parentId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              segmentId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            required:
              - id
              - order
              - operator
              - field
              - negation
              - segmentId
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    SegmentsUpsertFiltersInput:
      type: object
      properties:
        segmentId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        filters:
          maxItems: 50
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              order:
                type: integer
                minimum: -32768
                maximum: 32767
              operator:
                type: string
                enum:
                  - childrenAnd
                  - childrenOr
                  - equals
                  - contains
                  - startsWith
                  - endsWith
                  - greaterThan
                  - greaterThanOrEqual
                  - lessThan
                  - lessThanOrEqual
                  - in
                  - isNotEmpty
              field:
                type: string
                enum:
                  - children
                  - address
                  - birthday
                  - city
                  - client
                  - createdAt
                  - document
                  - email
                  - emailStatus
                  - emailValidatedAt
                  - genderIdentity
                  - lgpdApproved
                  - name
                  - origin
                  - originOrSubOrigin
                  - profession
                  - score
                  - state
                  - status
                  - subOrigin
                  - tagId
                  - telephone
                  - temperatureStatus
                  - funnelId
                  - listId
                  - messagePreferencesAuthorized
                  - messagePreferencesCanceled
                  - pageId
                  - projectId
                  - offerId
                  - productId
                  - productName
                  - searchTransactionCode
                  - utmCampaign
                  - utmContent
                  - utmMedium
                  - utmSource
                  - utmTerm
                  - src
                  - sck
                  - averageTicket
                  - lastPurchaseDate
                  - lastPurchaseValue
                  - lifeTimeValue
                  - numberOfPurchases
                  - offerCurrency
                  - offerType
                  - recurrenceFrequency
                  - subscriptionCreatedAt
                  - subscriptionPlan
                  - subscriptionStatus
                  - transactionCancellationReason
                  - transactionCreatedAt
                  - transactionFailReason
                  - transactionRecurrence
                  - transactionStatus
                  - transactionType
                  - externalSaleStatus
                  - externalCartAbandoned
                  - customFieldText
                  - customFieldNumber
                  - customFieldDate
                  - customFieldBoolean
                  - customFieldSelect
                  - quizSubmission
                  - quizAnswerSelect
                  - quizAnswerNumber
                  - quizAnswerText
                  - instagram
                  - linkedin
                  - twitterX
                  - tiktok
                  - youtube
                  - telegramUsername
                  - formSubmission
                  - captureLinkId
                  - activityPageId
                  - activityFunnelId
                  - opportunity
                  - webinar
                  - conversationIntent
                  - conversationSentiment
                  - conversationUrgency
              negation:
                type: boolean
              valueBool:
                anyOf:
                  - type: boolean
                  - type: "null"
              valueDate:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              valueNumber:
                anyOf:
                  - type: number
                  - type: "null"
              valueString:
                anyOf:
                  - type: string
                  - type: "null"
              valueUuid:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              customFieldId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              formId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              questionKey:
                anyOf:
                  - type: string
                  - type: "null"
              parentId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
            required:
              - id
              - order
              - operator
              - field
              - negation
      required:
        - segmentId
        - filters
    SegmentsUpsertFiltersOutput:
      type: object
      properties:
        reloadRequested:
          type: boolean
      required:
        - reloadRequested
      additionalProperties: false
    SegmentsReloadInput:
      type: object
      properties:
        segmentId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - segmentId
    SegmentsReloadOutput:
      type: object
      properties:
        queued:
          type: boolean
      required:
        - queued
      additionalProperties: false
    SegmentsGetLeadsOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                anyOf:
                  - type: string
                  - type: "null"
              email:
                anyOf:
                  - type: string
                    minLength: 5
                    maxLength: 255
                    format: email
                    pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                  - type: "null"
              telephone:
                anyOf:
                  - type: string
                    maxLength: 20
                    pattern: ^\+?\d+$
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              emailValidatedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              emailInvalidReason:
                anyOf:
                  - type: string
                  - type: "null"
              score:
                type: number
              emailStatus:
                type: string
                enum:
                  - pending
                  - valid
                  - invalid
                  - risky
              contactCode:
                type: string
              status:
                type: string
                enum:
                  - created
                  - visited
                  - engaged
                  - subscribed
                  - in_cart
                  - abandoned_cart
                  - purchased
                  - activated
                  - upgraded
                  - renewed
                  - churned
                  - referral
                  - feedback_given
              temperatureStatus:
                anyOf:
                  - anyOf:
                      - type: string
                        const: cold
                      - type: string
                        const: warm
                      - type: string
                        const: hot
                      - type: string
                        const: customer
                      - type: "null"
                        const: null
                  - type: "null"
              temperatureScore:
                anyOf:
                  - type: number
                  - type: "null"
              temperatureTrend7d:
                anyOf:
                  - type: number
                  - type: "null"
              origin:
                anyOf:
                  - anyOf:
                      - type: string
                        const: Clickfunnels
                      - type: string
                        const: CxAffiliates
                      - type: string
                        const: CxCalendar
                      - type: string
                        const: CxClients
                      - type: string
                        const: CxClone
                      - type: string
                        const: CxClub
                      - type: string
                        const: CxDomains
                      - type: string
                        const: CxFlows
                      - type: string
                        const: CxForms
                      - type: string
                        const: CxFunnels
                      - type: string
                        const: CxExternalPages
                      - type: string
                        const: CxWebchat
                      - type: string
                        const: CxWebinar
                      - type: string
                        const: CxInsights
                      - type: string
                        const: CxLinkProtect
                      - type: string
                        const: CxPages
                      - type: string
                        const: CxPay
                      - type: string
                        const: CxProducts
                      - type: string
                        const: CxQuizzes
                      - type: string
                        const: CxSend
                      - type: string
                        const: CxSplit
                      - type: string
                        const: CxStore
                      - type: string
                        const: CxTags
                      - type: string
                        const: CxTemplates
                      - type: string
                        const: CxTracking
                      - type: string
                        const: CxWallet
                      - type: string
                        const: CxWhatsappContacts
                      - type: string
                        const: Framer
                      - type: string
                        const: HotmartPages
                      - type: string
                        const: Integrations
                      - type: string
                        const: Kirvano
                      - type: string
                        const: Mailchimp
                      - type: string
                        const: Webflow
                      - type: string
                        const: Wix
                      - type: string
                        const: Wordpress
                      - type: "null"
                        const: null
                  - type: "null"
              subOrigin:
                anyOf:
                  - anyOf:
                      - type: string
                        const: CxWebinarRegistration
                      - type: string
                        const: CxWebinarMagicLink
                      - type: string
                        const: TelegramChatStart
                      - type: string
                        const: WhatsappChatStart
                      - type: string
                        const: InstagramStoryReply
                      - type: string
                        const: InstagramPostComment
                      - type: string
                        const: InstagramDMReceived
                      - type: string
                        const: WebchatChatStart
                      - type: string
                        const: SmsSendKeyword
                      - type: string
                        const: ActiveCampaign
                      - type: string
                        const: Asaas
                      - type: string
                        const: Braip
                      - type: string
                        const: Cartpanda
                      - type: string
                        const: Eduzz
                      - type: string
                        const: Greenn
                      - type: string
                        const: Guru
                      - type: string
                        const: Hotmart
                      - type: string
                        const: HotWebinar
                      - type: string
                        const: Hubla
                      - type: string
                        const: Kirvano
                      - type: string
                        const: Kiwify
                      - type: string
                        const: Lastlink
                      - type: string
                        const: Manychat
                      - type: string
                        const: Monetizze
                      - type: string
                        const: Pagarme
                      - type: string
                        const: PerfectPay
                      - type: string
                        const: Principia
                      - type: string
                        const: Stripe
                      - type: string
                        const: Ticto
                      - type: string
                        const: TMB
                      - type: string
                        const: Voomp
                      - type: string
                        const: VStage
                      - type: string
                        const: Vunel
                      - type: string
                        const: WebinarKit
                      - type: string
                        const: Whop
                      - type: string
                        const: Yampi
                      - type: string
                        const: Yever
                      - type: string
                        const: Kommo
                      - type: string
                        const: CxManualCreation
                      - type: string
                        const: CxManualImportCsv
                      - type: "null"
                        const: null
                  - type: "null"
              messagePreferences:
                type: object
                properties:
                  email:
                    type: boolean
                  whatsapp:
                    type: boolean
                  sms:
                    type: boolean
                  telegram:
                    type: boolean
                  voice:
                    type: boolean
                  instagram:
                    type: boolean
                required:
                  - email
                  - whatsapp
                  - sms
                  - telegram
                  - voice
                  - instagram
                additionalProperties: false
              systemActivityCount:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              lastSystemActivity:
                type: object
                properties:
                  name:
                    anyOf:
                      - type: string
                      - type: "null"
                  createdAt:
                    type: string
                required:
                  - name
                  - createdAt
                additionalProperties: false
              tagsCount:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              lastTag:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  label:
                    type: string
                  system:
                    type: boolean
                required:
                  - id
                  - label
                  - system
                additionalProperties: false
              opportunitiesCount:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              suspectedFraud:
                type: boolean
              suspectedFraudReasons:
                type: array
                items:
                  type: string
                  enum:
                    - email
                    - document
            required:
              - id
              - createdAt
              - updatedAt
              - score
              - emailStatus
              - contactCode
              - status
              - systemActivityCount
              - tagsCount
              - opportunitiesCount
              - suspectedFraud
              - suspectedFraudReasons
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    StageAutomationsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              fromStageId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              targetStageId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              allowMoveBackward:
                type: boolean
              isActive:
                type: boolean
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              triggers:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    automationId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    eventType:
                      type: string
                      enum:
                        - pix_generated
                        - boleto_generated
                        - cart_abandonment
                        - purchase_completed
                        - email_opened
                        - whatsapp_reply
                        - lead_field_updated
                    config:
                      type: object
                      properties:
                        offerIds:
                          type: array
                          items:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        paymentType:
                          type: string
                          enum:
                            - pix
                            - boleto
                            - credit
                        fieldName:
                          type: string
                      additionalProperties: false
                    createdAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  required:
                    - id
                    - automationId
                    - eventType
                    - createdAt
                  additionalProperties: false
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - fromStageId
              - targetStageId
              - allowMoveBackward
              - isActive
              - ownerId
              - triggers
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    StageAutomationsGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
        fromStageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        targetStageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        allowMoveBackward:
          type: boolean
        isActive:
          type: boolean
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        triggers:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              automationId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              eventType:
                type: string
                enum:
                  - pix_generated
                  - boleto_generated
                  - cart_abandonment
                  - purchase_completed
                  - email_opened
                  - whatsapp_reply
                  - lead_field_updated
              config:
                type: object
                properties:
                  offerIds:
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  paymentType:
                    type: string
                    enum:
                      - pix
                      - boleto
                      - credit
                  fieldName:
                    type: string
                additionalProperties: false
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - automationId
              - eventType
              - createdAt
            additionalProperties: false
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - fromStageId
        - targetStageId
        - allowMoveBackward
        - isActive
        - ownerId
        - triggers
        - createdAt
        - updatedAt
      additionalProperties: false
    StageAutomationsCreateInput:
      type: object
      properties:
        name:
          type: string
          maxLength: 255
        fromStageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        targetStageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        allowMoveBackward:
          type: boolean
        triggers:
          minItems: 1
          type: array
          items:
            type: object
            properties:
              eventType:
                type: string
                enum:
                  - pix_generated
                  - boleto_generated
                  - cart_abandonment
                  - purchase_completed
                  - email_opened
                  - whatsapp_reply
                  - lead_field_updated
              config:
                type: object
                properties:
                  offerIds:
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  paymentType:
                    type: string
                    enum:
                      - pix
                      - boleto
                      - credit
                  fieldName:
                    type: string
            required:
              - eventType
      required:
        - fromStageId
        - targetStageId
        - triggers
    StageAutomationsCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
        fromStageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        targetStageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        allowMoveBackward:
          type: boolean
        isActive:
          type: boolean
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        triggers:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              automationId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              eventType:
                type: string
                enum:
                  - pix_generated
                  - boleto_generated
                  - cart_abandonment
                  - purchase_completed
                  - email_opened
                  - whatsapp_reply
                  - lead_field_updated
              config:
                type: object
                properties:
                  offerIds:
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  paymentType:
                    type: string
                    enum:
                      - pix
                      - boleto
                      - credit
                  fieldName:
                    type: string
                additionalProperties: false
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - automationId
              - eventType
              - createdAt
            additionalProperties: false
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - fromStageId
        - targetStageId
        - allowMoveBackward
        - isActive
        - ownerId
        - triggers
        - createdAt
        - updatedAt
      additionalProperties: false
    StageAutomationsUpdateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        allowMoveBackward:
          type: boolean
        isActive:
          type: boolean
      required:
        - id
    StageAutomationsUpdateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
        fromStageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        targetStageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        allowMoveBackward:
          type: boolean
        isActive:
          type: boolean
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        triggers:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              automationId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              eventType:
                type: string
                enum:
                  - pix_generated
                  - boleto_generated
                  - cart_abandonment
                  - purchase_completed
                  - email_opened
                  - whatsapp_reply
                  - lead_field_updated
              config:
                type: object
                properties:
                  offerIds:
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  paymentType:
                    type: string
                    enum:
                      - pix
                      - boleto
                      - credit
                  fieldName:
                    type: string
                additionalProperties: false
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - automationId
              - eventType
              - createdAt
            additionalProperties: false
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - fromStageId
        - targetStageId
        - allowMoveBackward
        - isActive
        - ownerId
        - triggers
        - createdAt
        - updatedAt
      additionalProperties: false
    StageAutomationsDeleteInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    StageAutomationsDeleteOutput:
      type: object
      properties:
        ok:
          type: boolean
      required:
        - ok
      additionalProperties: false
    StageAutomationsTriggersReplaceInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        triggers:
          minItems: 1
          type: array
          items:
            type: object
            properties:
              eventType:
                type: string
                enum:
                  - pix_generated
                  - boleto_generated
                  - cart_abandonment
                  - purchase_completed
                  - email_opened
                  - whatsapp_reply
                  - lead_field_updated
              config:
                type: object
                properties:
                  offerIds:
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  paymentType:
                    type: string
                    enum:
                      - pix
                      - boleto
                      - credit
                  fieldName:
                    type: string
            required:
              - eventType
      required:
        - id
        - triggers
    StageAutomationsTriggersReplaceOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
        fromStageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        targetStageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        allowMoveBackward:
          type: boolean
        isActive:
          type: boolean
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        triggers:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              automationId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              eventType:
                type: string
                enum:
                  - pix_generated
                  - boleto_generated
                  - cart_abandonment
                  - purchase_completed
                  - email_opened
                  - whatsapp_reply
                  - lead_field_updated
              config:
                type: object
                properties:
                  offerIds:
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  paymentType:
                    type: string
                    enum:
                      - pix
                      - boleto
                      - credit
                  fieldName:
                    type: string
                additionalProperties: false
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - automationId
              - eventType
              - createdAt
            additionalProperties: false
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - fromStageId
        - targetStageId
        - allowMoveBackward
        - isActive
        - ownerId
        - triggers
        - createdAt
        - updatedAt
      additionalProperties: false
    StageRulesGetOutput:
      type: object
      properties:
        rules:
          anyOf:
            - type: object
              properties:
                id:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                stageId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                ownerId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                requiredOn:
                  type: boolean
                requiredFields:
                  type: array
                  items:
                    type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - standard
                          - custom
                      id:
                        type: string
                        minLength: 1
                        maxLength: 100
                    required:
                      - kind
                      - id
                    additionalProperties: false
                wipOn:
                  type: boolean
                wipLimit:
                  type: integer
                  minimum: 1
                  maximum: 9999
                wipMode:
                  type: string
                  enum:
                    - warn
                    - block
                directionOn:
                  type: boolean
                direction:
                  type: string
                  enum:
                    - any
                    - forward
                    - one_step
                    - terminal
                createdAt:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                updatedAt:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              required:
                - id
                - stageId
                - ownerId
                - requiredOn
                - requiredFields
                - wipOn
                - wipLimit
                - wipMode
                - directionOn
                - direction
                - createdAt
                - updatedAt
              additionalProperties: false
            - type: "null"
      required:
        - rules
      additionalProperties: false
    StageRulesListByPipelineOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              stageId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              requiredOn:
                type: boolean
              requiredFields:
                type: array
                items:
                  type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - standard
                        - custom
                    id:
                      type: string
                      minLength: 1
                      maxLength: 100
                  required:
                    - kind
                    - id
                  additionalProperties: false
              wipOn:
                type: boolean
              wipLimit:
                type: integer
                minimum: 1
                maximum: 9999
              wipMode:
                type: string
                enum:
                  - warn
                  - block
              directionOn:
                type: boolean
              direction:
                type: string
                enum:
                  - any
                  - forward
                  - one_step
                  - terminal
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - stageId
              - ownerId
              - requiredOn
              - requiredFields
              - wipOn
              - wipLimit
              - wipMode
              - directionOn
              - direction
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    StageRulesUpsertInput:
      type: object
      properties:
        stageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        requiredOn:
          type: boolean
        requiredFields:
          type: array
          items:
            type: object
            properties:
              kind:
                type: string
                enum:
                  - standard
                  - custom
              id:
                type: string
                minLength: 1
                maxLength: 100
            required:
              - kind
              - id
        wipOn:
          type: boolean
        wipLimit:
          type: integer
          minimum: 1
          maximum: 9999
        wipMode:
          type: string
          enum:
            - warn
            - block
        directionOn:
          type: boolean
        direction:
          type: string
          enum:
            - any
            - forward
            - one_step
            - terminal
      required:
        - stageId
        - requiredOn
        - requiredFields
        - wipOn
        - wipLimit
        - wipMode
        - directionOn
        - direction
    StageRulesUpsertOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        stageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        requiredOn:
          type: boolean
        requiredFields:
          type: array
          items:
            type: object
            properties:
              kind:
                type: string
                enum:
                  - standard
                  - custom
              id:
                type: string
                minLength: 1
                maxLength: 100
            required:
              - kind
              - id
            additionalProperties: false
        wipOn:
          type: boolean
        wipLimit:
          type: integer
          minimum: 1
          maximum: 9999
        wipMode:
          type: string
          enum:
            - warn
            - block
        directionOn:
          type: boolean
        direction:
          type: string
          enum:
            - any
            - forward
            - one_step
            - terminal
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - stageId
        - ownerId
        - requiredOn
        - requiredFields
        - wipOn
        - wipLimit
        - wipMode
        - directionOn
        - direction
        - createdAt
        - updatedAt
      additionalProperties: false
    StageRulesOpenCountOutput:
      type: object
      properties:
        count:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
      required:
        - count
      additionalProperties: false
    ManagedFlowsListByStageOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              type:
                type: string
                enum:
                  - entrada_externa
                  - gatilho_passagem
                  - atribuicao
                  - acao_delay
              recipeKey:
                type: string
              flowId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              mode:
                type: string
              config:
                type: object
                properties:
                  strategy:
                    type: string
                    enum:
                      - auto
                      - fixo
                      - random
                      - papel
                  teamId:
                    type: string
                  attendantId:
                    type: string
                  handoffAttendantTypeId:
                    type: string
                  attendantIds:
                    type: array
                    items:
                      type: string
                  attendantTypeId:
                    type: string
                  roleWhenTaken:
                    type: string
                    enum:
                      - keep
                      - replace
                  assignResponsible:
                    type: boolean
                  offerIds:
                    type: array
                    items:
                      type: string
                  funnelIds:
                    type: array
                    items:
                      type: string
                  delayHours:
                    type: number
                  action:
                    type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - notifyOwner
                          - addTag
                          - removeTag
                          - addToList
                          - removeFromList
                          - createTask
                          - scheduleCall
                          - updateCardFields
                          - markWonLost
                          - sendWhatsapp
                          - sendInstagram
                          - sendEmail
                          - sendSms
                          - sendVoice
                          - httpRequest
                          - webhookSaida
                          - presetGoogleCalendar
                          - presetCalendly
                      title:
                        type: string
                      message:
                        type: string
                      tagIds:
                        type: array
                        items:
                          type: string
                      listId:
                        type: string
                      taskTitle:
                        type: string
                      taskDescription:
                        type: string
                      cardValue:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      cardPriority:
                        type: string
                      cardTemperature:
                        type: string
                      cardStatus:
                        type: string
                      lossReason:
                        type: string
                      emailSubject:
                        type: string
                      audioUrl:
                        type: string
                      gupshupTemplateId:
                        type: string
                      gupshupAppId:
                        type: string
                      templateParams:
                        type: array
                        items:
                          type: string
                      emailSenderSignatureId:
                        type: string
                      emailHtml:
                        type: boolean
                      httpMethod:
                        type: string
                      httpUrl:
                        type: string
                    required:
                      - kind
                    additionalProperties: false
                  flowWebhookUrl:
                    type: string
                additionalProperties: false
              stats:
                type: object
                properties:
                  executions:
                    type: number
                  finished:
                    type: number
                  lastExecutionAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: "null"
                required:
                  - executions
                  - finished
                additionalProperties: false
            required:
              - id
              - type
              - recipeKey
              - flowId
              - name
              - mode
              - config
              - stats
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    ManagedFlowsListByPipelineOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              type:
                type: string
                enum:
                  - entrada_externa
                  - gatilho_passagem
                  - atribuicao
                  - acao_delay
              recipeKey:
                type: string
              flowId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              pipelineId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              stageId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              mode:
                type: string
              config:
                type: object
                properties:
                  strategy:
                    type: string
                    enum:
                      - auto
                      - fixo
                      - random
                      - papel
                  teamId:
                    type: string
                  attendantId:
                    type: string
                  handoffAttendantTypeId:
                    type: string
                  attendantIds:
                    type: array
                    items:
                      type: string
                  attendantTypeId:
                    type: string
                  roleWhenTaken:
                    type: string
                    enum:
                      - keep
                      - replace
                  assignResponsible:
                    type: boolean
                  offerIds:
                    type: array
                    items:
                      type: string
                  funnelIds:
                    type: array
                    items:
                      type: string
                  delayHours:
                    type: number
                  action:
                    type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - notifyOwner
                          - addTag
                          - removeTag
                          - addToList
                          - removeFromList
                          - createTask
                          - scheduleCall
                          - updateCardFields
                          - markWonLost
                          - sendWhatsapp
                          - sendInstagram
                          - sendEmail
                          - sendSms
                          - sendVoice
                          - httpRequest
                          - webhookSaida
                          - presetGoogleCalendar
                          - presetCalendly
                      title:
                        type: string
                      message:
                        type: string
                      tagIds:
                        type: array
                        items:
                          type: string
                      listId:
                        type: string
                      taskTitle:
                        type: string
                      taskDescription:
                        type: string
                      cardValue:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      cardPriority:
                        type: string
                      cardTemperature:
                        type: string
                      cardStatus:
                        type: string
                      lossReason:
                        type: string
                      emailSubject:
                        type: string
                      audioUrl:
                        type: string
                      gupshupTemplateId:
                        type: string
                      gupshupAppId:
                        type: string
                      templateParams:
                        type: array
                        items:
                          type: string
                      emailSenderSignatureId:
                        type: string
                      emailHtml:
                        type: boolean
                      httpMethod:
                        type: string
                      httpUrl:
                        type: string
                    required:
                      - kind
                    additionalProperties: false
                  flowWebhookUrl:
                    type: string
                additionalProperties: false
              stats:
                type: object
                properties:
                  executions:
                    type: number
                  finished:
                    type: number
                  lastExecutionAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: "null"
                required:
                  - executions
                  - finished
                additionalProperties: false
            required:
              - id
              - type
              - recipeKey
              - flowId
              - pipelineId
              - stageId
              - name
              - mode
              - config
              - stats
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    ManagedFlowsUpsertInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        body:
          anyOf:
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - atribuicao
                projectId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                strategy:
                  type: string
                  enum:
                    - auto
                    - fixo
                    - random
                    - papel
                teamId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                temperature:
                  type: string
                  enum:
                    - hot
                    - warm
                    - cold
                attendantId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                handoffAttendantTypeId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                attendantIds:
                  minItems: 1
                  maxItems: 200
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                attendantTypeId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                roleWhenTaken:
                  type: string
                  enum:
                    - keep
                    - replace
                assignResponsible:
                  type: boolean
              required:
                - type
                - strategy
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - entrada_externa
                projectId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                eventName:
                  type: string
                  maxLength: 128
                offerIds:
                  maxItems: 50
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                value:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                scopes:
                  maxItems: 10
                  type: array
                  items:
                    type: object
                    properties:
                      field:
                        type: string
                        maxLength: 64
                      valueUuid:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      valueString:
                        type: string
                        maxLength: 256
                      valueStrings:
                        maxItems: 50
                        type: array
                        items:
                          type: string
                          maxLength: 256
                      valueNumber:
                        type: number
                    required:
                      - field
                    description: Filtro de escopo de um gatilho gerenciado. Qual slot de valor é
                      obrigatório depende do `kind` que o catálogo declara pro
                      `field` — validado por findInvalidScopeField.
              required:
                - type
                - eventName
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - entrada_externa
                projectId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                funnelIds:
                  minItems: 1
                  maxItems: 50
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              required:
                - type
                - funnelIds
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - gatilho_passagem
                projectId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                eventName:
                  type: string
                  maxLength: 128
                offerIds:
                  maxItems: 50
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                fieldConstraint:
                  type: object
                  properties:
                    field:
                      type: string
                      enum:
                        - value
                        - priority
                        - temperature
                        - status
                        - title
                        - origin
                    op:
                      type: string
                      enum:
                        - EXISTS
                        - EQ
                        - NEQ
                        - GT
                        - GTE
                        - LT
                        - LTE
                    valueNumber:
                      type: number
                    valueString:
                      type: string
                      maxLength: 255
                  required:
                    - field
                    - op
                agingDays:
                  type: integer
                  minimum: 1
                  maximum: 3650
                webhookUrl:
                  type: string
                  minLength: 1
                  maxLength: 2048
                scopes:
                  maxItems: 10
                  type: array
                  items:
                    type: object
                    properties:
                      field:
                        type: string
                        maxLength: 64
                      valueUuid:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      valueString:
                        type: string
                        maxLength: 256
                      valueStrings:
                        maxItems: 50
                        type: array
                        items:
                          type: string
                          maxLength: 256
                      valueNumber:
                        type: number
                    required:
                      - field
                    description: Filtro de escopo de um gatilho gerenciado. Qual slot de valor é
                      obrigatório depende do `kind` que o catálogo declara pro
                      `field` — validado por findInvalidScopeField.
              required:
                - type
                - eventName
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - acao_delay
                projectId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                delayHours:
                  type: number
                  minimum: 0
                  maximum: 8760
                label:
                  type: string
                  minLength: 1
                  maxLength: 255
                actionKind:
                  type: string
                  enum:
                    - notifyOwner
                    - addTag
                    - removeTag
                    - addToList
                    - removeFromList
                    - createTask
                    - scheduleCall
                    - updateCardFields
                    - markWonLost
                    - sendWhatsapp
                    - sendInstagram
                    - sendEmail
                    - sendSms
                    - sendVoice
                    - httpRequest
                    - webhookSaida
                    - presetGoogleCalendar
                    - presetCalendly
                title:
                  type: string
                  minLength: 1
                  maxLength: 255
                message:
                  type: string
                  minLength: 1
                  maxLength: 2000
                tagIds:
                  maxItems: 20
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                listId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                taskTitle:
                  type: string
                  minLength: 1
                  maxLength: 255
                taskDescription:
                  type: string
                  maxLength: 2000
                cardValue:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                cardPriority:
                  type: string
                  enum:
                    - high
                    - medium
                    - low
                    - none
                cardTemperature:
                  type: string
                  enum:
                    - hot
                    - warm
                    - cold
                    - frozen
                cardStatus:
                  type: string
                  enum:
                    - won
                    - lost
                lossReason:
                  type: string
                  minLength: 1
                  maxLength: 500
                emailSubject:
                  type: string
                  minLength: 1
                  maxLength: 255
                audioUrl:
                  type: string
                  minLength: 1
                  maxLength: 2000
                gupshupTemplateId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                gupshupAppId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                templateParams:
                  maxItems: 15
                  type: array
                  items:
                    type: string
                    maxLength: 255
                emailSenderSignatureId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                emailHtml:
                  type: boolean
                httpMethod:
                  type: string
                  enum:
                    - GET
                    - POST
                    - PUT
                    - PATCH
                    - DELETE
                httpUrl:
                  type: string
                  minLength: 1
                  maxLength: 2000
              required:
                - type
                - delayHours
                - label
                - actionKind
      required:
        - id
        - body
    ManagedFlowsUpsertOutput:
      type: object
      properties:
        managedFlowId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        flowId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        flowWebhookUrl:
          type: string
      required:
        - managedFlowId
        - flowId
      additionalProperties: false
    ManagedFlowsSetActiveInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        active:
          type: boolean
      required:
        - id
        - active
    ManagedFlowsSetActiveOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    ManagedFlowsDeleteInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    ManagedFlowsDeleteOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    OpportunitiesBulkMoveInput:
      type: object
      properties:
        cardIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        allMatching:
          type: boolean
        scope:
          type: object
          properties:
            pipelineId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            stageId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            filters:
              type: object
              properties:
                viewAsAttendantId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                search:
                  anyOf:
                    - type: string
                    - type: "null"
                attendantIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                productNames:
                  type: array
                  items:
                    type: string
                funnelNames:
                  type: array
                  items:
                    type: string
                temperatures:
                  type: array
                  items:
                    type: string
                    enum:
                      - hot
                      - warm
                      - cold
                      - frozen
                priorities:
                  type: array
                  items:
                    type: string
                    enum:
                      - urgent
                      - high
                      - medium
                      - low
                      - none
                referredBy:
                  anyOf:
                    - type: string
                    - type: "null"
                origins:
                  type: array
                  items:
                    type: string
                tagIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                valueMin:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                valueMax:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                expectedClosingDateFrom:
                  type: string
                expectedClosingDateTo:
                  type: string
                offerIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                companyIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                leadIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                cardIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                status:
                  type: string
                  enum:
                    - open
                    - won
                    - lost
                forecastEligible:
                  type: boolean
                forecastIncludeWon:
                  type: boolean
          required:
            - pipelineId
        targetStageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - targetStageId
    OpportunitiesBulkMoveOutput:
      anyOf:
        - type: object
          properties:
            mode:
              type: string
              enum:
                - sync
            affected:
              type: integer
              minimum: 0
              maximum: 9007199254740991
          required:
            - mode
            - affected
          additionalProperties: false
        - type: object
          properties:
            mode:
              type: string
              enum:
                - async
            jobId:
              type: string
          required:
            - mode
            - jobId
          additionalProperties: false
    OpportunitiesBulkAssignAttendantsInput:
      type: object
      properties:
        cardIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        allMatching:
          type: boolean
        scope:
          type: object
          properties:
            pipelineId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            stageId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            filters:
              type: object
              properties:
                viewAsAttendantId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                search:
                  anyOf:
                    - type: string
                    - type: "null"
                attendantIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                productNames:
                  type: array
                  items:
                    type: string
                funnelNames:
                  type: array
                  items:
                    type: string
                temperatures:
                  type: array
                  items:
                    type: string
                    enum:
                      - hot
                      - warm
                      - cold
                      - frozen
                priorities:
                  type: array
                  items:
                    type: string
                    enum:
                      - urgent
                      - high
                      - medium
                      - low
                      - none
                referredBy:
                  anyOf:
                    - type: string
                    - type: "null"
                origins:
                  type: array
                  items:
                    type: string
                tagIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                valueMin:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                valueMax:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                expectedClosingDateFrom:
                  type: string
                expectedClosingDateTo:
                  type: string
                offerIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                companyIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                leadIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                cardIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                status:
                  type: string
                  enum:
                    - open
                    - won
                    - lost
                forecastEligible:
                  type: boolean
                forecastIncludeWon:
                  type: boolean
          required:
            - pipelineId
        assignments:
          minItems: 1
          type: array
          items:
            type: object
            properties:
              attendantId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              attendantTypeId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              isPrimary:
                type: boolean
              commissionType:
                anyOf:
                  - anyOf:
                      - type: string
                        const: percentage
                      - type: string
                        const: fixed
                      - type: "null"
                        const: null
                  - type: "null"
              commissionPercentBp:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 10000
                  - type: "null"
              commissionFixedCents:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  - type: "null"
            required:
              - attendantId
      required:
        - assignments
    OpportunitiesBulkApplyTagsInput:
      type: object
      properties:
        cardIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        allMatching:
          type: boolean
        scope:
          type: object
          properties:
            pipelineId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            stageId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            filters:
              type: object
              properties:
                viewAsAttendantId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                search:
                  anyOf:
                    - type: string
                    - type: "null"
                attendantIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                productNames:
                  type: array
                  items:
                    type: string
                funnelNames:
                  type: array
                  items:
                    type: string
                temperatures:
                  type: array
                  items:
                    type: string
                    enum:
                      - hot
                      - warm
                      - cold
                      - frozen
                priorities:
                  type: array
                  items:
                    type: string
                    enum:
                      - urgent
                      - high
                      - medium
                      - low
                      - none
                referredBy:
                  anyOf:
                    - type: string
                    - type: "null"
                origins:
                  type: array
                  items:
                    type: string
                tagIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                valueMin:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                valueMax:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                expectedClosingDateFrom:
                  type: string
                expectedClosingDateTo:
                  type: string
                offerIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                companyIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                leadIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                cardIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                status:
                  type: string
                  enum:
                    - open
                    - won
                    - lost
                forecastEligible:
                  type: boolean
                forecastIncludeWon:
                  type: boolean
          required:
            - pipelineId
        tagIds:
          minItems: 1
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - tagIds
    OpportunitiesBulkSetTemperatureInput:
      type: object
      properties:
        cardIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        allMatching:
          type: boolean
        scope:
          type: object
          properties:
            pipelineId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            stageId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            filters:
              type: object
              properties:
                viewAsAttendantId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                search:
                  anyOf:
                    - type: string
                    - type: "null"
                attendantIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                productNames:
                  type: array
                  items:
                    type: string
                funnelNames:
                  type: array
                  items:
                    type: string
                temperatures:
                  type: array
                  items:
                    type: string
                    enum:
                      - hot
                      - warm
                      - cold
                      - frozen
                priorities:
                  type: array
                  items:
                    type: string
                    enum:
                      - urgent
                      - high
                      - medium
                      - low
                      - none
                referredBy:
                  anyOf:
                    - type: string
                    - type: "null"
                origins:
                  type: array
                  items:
                    type: string
                tagIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                valueMin:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                valueMax:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                expectedClosingDateFrom:
                  type: string
                expectedClosingDateTo:
                  type: string
                offerIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                companyIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                leadIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                cardIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                status:
                  type: string
                  enum:
                    - open
                    - won
                    - lost
                forecastEligible:
                  type: boolean
                forecastIncludeWon:
                  type: boolean
          required:
            - pipelineId
        temperature:
          anyOf:
            - type: string
              enum:
                - hot
                - warm
                - cold
                - frozen
            - type: "null"
      required:
        - temperature
    OpportunitiesBulkSetPriorityInput:
      type: object
      properties:
        cardIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        allMatching:
          type: boolean
        scope:
          type: object
          properties:
            pipelineId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            stageId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            filters:
              type: object
              properties:
                viewAsAttendantId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                search:
                  anyOf:
                    - type: string
                    - type: "null"
                attendantIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                productNames:
                  type: array
                  items:
                    type: string
                funnelNames:
                  type: array
                  items:
                    type: string
                temperatures:
                  type: array
                  items:
                    type: string
                    enum:
                      - hot
                      - warm
                      - cold
                      - frozen
                priorities:
                  type: array
                  items:
                    type: string
                    enum:
                      - urgent
                      - high
                      - medium
                      - low
                      - none
                referredBy:
                  anyOf:
                    - type: string
                    - type: "null"
                origins:
                  type: array
                  items:
                    type: string
                tagIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                valueMin:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                valueMax:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                expectedClosingDateFrom:
                  type: string
                expectedClosingDateTo:
                  type: string
                offerIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                companyIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                leadIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                cardIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                status:
                  type: string
                  enum:
                    - open
                    - won
                    - lost
                forecastEligible:
                  type: boolean
                forecastIncludeWon:
                  type: boolean
          required:
            - pipelineId
        priority:
          type: string
          enum:
            - urgent
            - high
            - medium
            - low
            - none
      required:
        - priority
    OpportunitiesBulkSetValueInput:
      type: object
      properties:
        cardIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        allMatching:
          type: boolean
        scope:
          type: object
          properties:
            pipelineId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            stageId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            filters:
              type: object
              properties:
                viewAsAttendantId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                search:
                  anyOf:
                    - type: string
                    - type: "null"
                attendantIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                productNames:
                  type: array
                  items:
                    type: string
                funnelNames:
                  type: array
                  items:
                    type: string
                temperatures:
                  type: array
                  items:
                    type: string
                    enum:
                      - hot
                      - warm
                      - cold
                      - frozen
                priorities:
                  type: array
                  items:
                    type: string
                    enum:
                      - urgent
                      - high
                      - medium
                      - low
                      - none
                referredBy:
                  anyOf:
                    - type: string
                    - type: "null"
                origins:
                  type: array
                  items:
                    type: string
                tagIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                valueMin:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                valueMax:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                expectedClosingDateFrom:
                  type: string
                expectedClosingDateTo:
                  type: string
                offerIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                companyIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                leadIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                cardIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                status:
                  type: string
                  enum:
                    - open
                    - won
                    - lost
                forecastEligible:
                  type: boolean
                forecastIncludeWon:
                  type: boolean
          required:
            - pipelineId
        value:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 9007199254740991
            - type: "null"
      required:
        - value
    OpportunitiesBulkSetClosingDateInput:
      type: object
      properties:
        cardIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        allMatching:
          type: boolean
        scope:
          type: object
          properties:
            pipelineId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            stageId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            filters:
              type: object
              properties:
                viewAsAttendantId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                search:
                  anyOf:
                    - type: string
                    - type: "null"
                attendantIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                productNames:
                  type: array
                  items:
                    type: string
                funnelNames:
                  type: array
                  items:
                    type: string
                temperatures:
                  type: array
                  items:
                    type: string
                    enum:
                      - hot
                      - warm
                      - cold
                      - frozen
                priorities:
                  type: array
                  items:
                    type: string
                    enum:
                      - urgent
                      - high
                      - medium
                      - low
                      - none
                referredBy:
                  anyOf:
                    - type: string
                    - type: "null"
                origins:
                  type: array
                  items:
                    type: string
                tagIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                valueMin:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                valueMax:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                expectedClosingDateFrom:
                  type: string
                expectedClosingDateTo:
                  type: string
                offerIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                companyIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                leadIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                cardIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                status:
                  type: string
                  enum:
                    - open
                    - won
                    - lost
                forecastEligible:
                  type: boolean
                forecastIncludeWon:
                  type: boolean
          required:
            - pipelineId
        expectedClosingDate:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: "null"
      required:
        - expectedClosingDate
    OpportunitiesBulkSetCustomFieldInput:
      type: object
      properties:
        cardIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        allMatching:
          type: boolean
        scope:
          type: object
          properties:
            pipelineId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            stageId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            filters:
              type: object
              properties:
                viewAsAttendantId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                search:
                  anyOf:
                    - type: string
                    - type: "null"
                attendantIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                productNames:
                  type: array
                  items:
                    type: string
                funnelNames:
                  type: array
                  items:
                    type: string
                temperatures:
                  type: array
                  items:
                    type: string
                    enum:
                      - hot
                      - warm
                      - cold
                      - frozen
                priorities:
                  type: array
                  items:
                    type: string
                    enum:
                      - urgent
                      - high
                      - medium
                      - low
                      - none
                referredBy:
                  anyOf:
                    - type: string
                    - type: "null"
                origins:
                  type: array
                  items:
                    type: string
                tagIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                valueMin:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                valueMax:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                expectedClosingDateFrom:
                  type: string
                expectedClosingDateTo:
                  type: string
                offerIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                companyIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                leadIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                cardIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                status:
                  type: string
                  enum:
                    - open
                    - won
                    - lost
                forecastEligible:
                  type: boolean
                forecastIncludeWon:
                  type: boolean
          required:
            - pipelineId
        customFieldId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        value:
          anyOf:
            - type: string
            - type: number
            - type: boolean
            - type: array
              items:
                type: string
            - type: "null"
      required:
        - customFieldId
        - value
    OpportunitiesBulkCreateNextActionInput:
      type: object
      properties:
        cardIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        allMatching:
          type: boolean
        scope:
          type: object
          properties:
            pipelineId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            stageId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            filters:
              type: object
              properties:
                viewAsAttendantId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                search:
                  anyOf:
                    - type: string
                    - type: "null"
                attendantIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                productNames:
                  type: array
                  items:
                    type: string
                funnelNames:
                  type: array
                  items:
                    type: string
                temperatures:
                  type: array
                  items:
                    type: string
                    enum:
                      - hot
                      - warm
                      - cold
                      - frozen
                priorities:
                  type: array
                  items:
                    type: string
                    enum:
                      - urgent
                      - high
                      - medium
                      - low
                      - none
                referredBy:
                  anyOf:
                    - type: string
                    - type: "null"
                origins:
                  type: array
                  items:
                    type: string
                tagIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                valueMin:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                valueMax:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                expectedClosingDateFrom:
                  type: string
                expectedClosingDateTo:
                  type: string
                offerIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                companyIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                leadIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                cardIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                status:
                  type: string
                  enum:
                    - open
                    - won
                    - lost
                forecastEligible:
                  type: boolean
                forecastIncludeWon:
                  type: boolean
          required:
            - pipelineId
        type:
          type: string
          enum:
            - task
            - call
            - whatsapp
            - meeting
        title:
          type: string
          minLength: 1
          maxLength: 200
        description:
          type: string
          maxLength: 2000
        deadline:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        attendantId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - type
        - title
    OpportunitiesBulkDeleteInput:
      type: object
      properties:
        cardIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        allMatching:
          type: boolean
        scope:
          type: object
          properties:
            pipelineId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            stageId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            filters:
              type: object
              properties:
                viewAsAttendantId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                search:
                  anyOf:
                    - type: string
                    - type: "null"
                attendantIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                productNames:
                  type: array
                  items:
                    type: string
                funnelNames:
                  type: array
                  items:
                    type: string
                temperatures:
                  type: array
                  items:
                    type: string
                    enum:
                      - hot
                      - warm
                      - cold
                      - frozen
                priorities:
                  type: array
                  items:
                    type: string
                    enum:
                      - urgent
                      - high
                      - medium
                      - low
                      - none
                referredBy:
                  anyOf:
                    - type: string
                    - type: "null"
                origins:
                  type: array
                  items:
                    type: string
                tagIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                valueMin:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                valueMax:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                expectedClosingDateFrom:
                  type: string
                expectedClosingDateTo:
                  type: string
                offerIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                companyIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                leadIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                cardIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                status:
                  type: string
                  enum:
                    - open
                    - won
                    - lost
                forecastEligible:
                  type: boolean
                forecastIncludeWon:
                  type: boolean
          required:
            - pipelineId
    OpportunitiesBulkJobStatusOutput:
      type: object
      properties:
        jobId:
          type: string
        state:
          type: string
          enum:
            - waiting
            - waiting-children
            - active
            - completed
            - failed
            - delayed
            - prioritized
            - unknown
        progress:
          type: number
          minimum: 0
          maximum: 100
        affected:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        failedReason:
          type: string
        meta:
          type: object
          propertyNames:
            type: string
          additionalProperties: {}
      required:
        - jobId
        - state
        - progress
      additionalProperties: false
    OpportunitiesBulkJobHistoryOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              jobId:
                type: string
              jobName:
                type: string
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              status:
                type: string
                enum:
                  - pending
                  - active
                  - completed
                  - failed
              progress:
                type: number
                minimum: 0
                maximum: 100
              metadata:
                type: object
                propertyNames:
                  type: string
                additionalProperties: {}
              result:
                type: object
                properties:
                  affected:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  meta:
                    type: object
                    propertyNames:
                      type: string
                    additionalProperties: {}
                additionalProperties: false
              error:
                type: string
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              startedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              completedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - jobId
              - jobName
              - ownerId
              - status
              - progress
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    TasksListInput:
      type: object
      properties:
        page:
          default: 1
          type: number
          minimum: 1
        perPage:
          default: 10
          type: number
          minimum: 1
          maximum: 2000
        viewAsAttendantId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        search:
          type: string
        types:
          type: array
          items:
            type: string
            enum:
              - call
              - whatsapp
              - meeting
              - task
        attendantIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        includeUnassigned:
          type: boolean
        pipelineIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        opportunityCardId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        startDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        endDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        priorities:
          type: array
          items:
            type: string
            enum:
              - urgent
              - high
              - medium
              - low
              - none
        outcomes:
          type: array
          items:
            type: string
            enum:
              - positive
              - negative
              - pending
        withoutDeadline:
          type: boolean
        statuses:
          type: array
          items:
            type: string
            enum:
              - open
              - scheduled
              - resolved
              - cancelled
        cardStatuses:
          type: array
          items:
            type: string
            enum:
              - open
              - won
              - lost
    TasksListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              attendantId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              opportunityCardId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              title:
                type: string
              description:
                anyOf:
                  - type: string
                  - type: "null"
              deadline:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              durationMinutes:
                anyOf:
                  - type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  - type: "null"
              status:
                type: string
                enum:
                  - open
                  - scheduled
                  - resolved
                  - cancelled
              resolvedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              type:
                type: string
                enum:
                  - call
                  - whatsapp
                  - meeting
                  - task
              priority:
                type: string
                enum:
                  - urgent
                  - high
                  - medium
                  - low
                  - none
              outcome:
                anyOf:
                  - type: boolean
                  - type: "null"
              outcomeNote:
                anyOf:
                  - type: string
                  - type: "null"
              attachmentUrl:
                anyOf:
                  - type: string
                  - type: "null"
              attachmentName:
                anyOf:
                  - type: string
                  - type: "null"
              scheduledCallId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              attendantName:
                anyOf:
                  - type: string
                  - type: "null"
              pipelineId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              pipelineName:
                anyOf:
                  - type: string
                  - type: "null"
              opportunityCardTitle:
                anyOf:
                  - type: string
                  - type: "null"
              contactName:
                anyOf:
                  - type: string
                  - type: "null"
            required:
              - id
              - opportunityCardId
              - title
              - status
              - type
              - priority
              - ownerId
              - createdAt
              - updatedAt
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    TasksSummaryInput:
      type: object
      properties:
        viewAsAttendantId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        search:
          type: string
        types:
          type: array
          items:
            type: string
            enum:
              - call
              - whatsapp
              - meeting
              - task
        attendantIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        includeUnassigned:
          type: boolean
        pipelineIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        opportunityCardId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        startDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        endDate:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        priorities:
          type: array
          items:
            type: string
            enum:
              - urgent
              - high
              - medium
              - low
              - none
        outcomes:
          type: array
          items:
            type: string
            enum:
              - positive
              - negative
              - pending
        withoutDeadline:
          type: boolean
        overdueBefore:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        allDayStart:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
    TasksSummaryOutput:
      type: object
      properties:
        total:
          type: number
        open:
          type: number
        resolved:
          type: number
        overdue:
          type: number
      required:
        - total
        - open
        - resolved
        - overdue
      additionalProperties: false
    TasksGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        attendantId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        opportunityCardId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        title:
          type: string
        description:
          anyOf:
            - type: string
            - type: "null"
        deadline:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        durationMinutes:
          anyOf:
            - type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            - type: "null"
        status:
          type: string
          enum:
            - open
            - scheduled
            - resolved
            - cancelled
        resolvedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        type:
          type: string
          enum:
            - call
            - whatsapp
            - meeting
            - task
        priority:
          type: string
          enum:
            - urgent
            - high
            - medium
            - low
            - none
        outcome:
          anyOf:
            - type: boolean
            - type: "null"
        outcomeNote:
          anyOf:
            - type: string
            - type: "null"
        attachmentUrl:
          anyOf:
            - type: string
            - type: "null"
        attachmentName:
          anyOf:
            - type: string
            - type: "null"
        scheduledCallId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        attendantName:
          anyOf:
            - type: string
            - type: "null"
        pipelineId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        pipelineName:
          anyOf:
            - type: string
            - type: "null"
        opportunityCardTitle:
          anyOf:
            - type: string
            - type: "null"
        contactName:
          anyOf:
            - type: string
            - type: "null"
      required:
        - id
        - opportunityCardId
        - title
        - status
        - type
        - priority
        - ownerId
        - createdAt
        - updatedAt
      additionalProperties: false
    TasksCreateInput:
      type: object
      properties:
        title:
          type: string
        description:
          type: string
        opportunityCardId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        attendantId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        deadline:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        durationMinutes:
          type: integer
          minimum: 5
          maximum: 480
        status:
          type: string
          enum:
            - open
            - scheduled
            - resolved
            - cancelled
        type:
          type: string
          enum:
            - call
            - whatsapp
            - meeting
            - task
        priority:
          type: string
          enum:
            - urgent
            - high
            - medium
            - low
            - none
        attachmentUrl:
          type: string
        attachmentName:
          type: string
      required:
        - title
        - opportunityCardId
    TasksUpdateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        title:
          type: string
        description:
          type: string
        status:
          type: string
          enum:
            - open
            - scheduled
            - resolved
            - cancelled
        type:
          type: string
          enum:
            - call
            - whatsapp
            - meeting
            - task
        priority:
          type: string
          enum:
            - urgent
            - high
            - medium
            - low
            - none
        attendantId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        deadline:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        durationMinutes:
          anyOf:
            - type: integer
              minimum: 5
              maximum: 480
            - type: "null"
        outcome:
          anyOf:
            - type: boolean
            - type: "null"
        outcomeNote:
          anyOf:
            - type: string
            - type: "null"
        attachmentUrl:
          anyOf:
            - type: string
            - type: "null"
        attachmentName:
          anyOf:
            - type: string
            - type: "null"
      required:
        - id
    TasksUpdateOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    TasksDeleteInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    TasksDeleteOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    TasksCreateBatchInput:
      type: object
      properties:
        tasks:
          type: array
          items:
            type: object
            properties:
              title:
                type: string
              description:
                type: string
              opportunityCardId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              attendantId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              deadline:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              durationMinutes:
                type: integer
                minimum: 5
                maximum: 480
              status:
                type: string
                enum:
                  - open
                  - scheduled
                  - resolved
                  - cancelled
              type:
                type: string
                enum:
                  - call
                  - whatsapp
                  - meeting
                  - task
              priority:
                type: string
                enum:
                  - urgent
                  - high
                  - medium
                  - low
                  - none
              attachmentUrl:
                type: string
              attachmentName:
                type: string
            required:
              - title
              - opportunityCardId
      required:
        - tasks
    TasksCreateBatchOutput:
      type: object
      properties:
        ids:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - ids
      additionalProperties: false
    TasksConvertToScheduledInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        scheduledCallId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
        - scheduledCallId
    TasksConvertToScheduledOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    PipelinesListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              description:
                anyOf:
                  - type: string
                  - type: "null"
              color:
                anyOf:
                  - type: string
                  - type: "null"
              groupName:
                anyOf:
                  - type: string
                  - type: "null"
              archivedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              playbookId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              defaultCopilotAgentId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              attendantIds:
                type: array
                items:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              attendantTypeIds:
                type: array
                items:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              totalStages:
                type: number
              totalContacts:
                type: number
              totalValue:
                type: number
              wonCount:
                type: number
              wonValue:
                type: number
              lostCount:
                type: number
              lostValue:
                type: number
              openCount:
                type: number
              openValue:
                type: number
              stagesBreakdown:
                type: array
                items:
                  type: object
                  properties:
                    stageId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    stageName:
                      type: string
                    displayOrder:
                      type: number
                    cardCount:
                      type: number
                    totalValue:
                      type: number
                  required:
                    - stageId
                    - stageName
                    - displayOrder
                    - cardCount
                    - totalValue
                  additionalProperties: false
              ingestConfig:
                type: object
                properties:
                  mode:
                    type: string
                    enum:
                      - by-offer
                      - by-funnel
                  offerMappings:
                    type: object
                    propertyNames:
                      type: string
                    additionalProperties:
                      type: array
                      items:
                        type: string
                  funnelIds:
                    type: array
                    items:
                      type: string
                additionalProperties: false
              lastActivityAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - id
              - name
              - ownerId
              - createdAt
              - updatedAt
              - attendantIds
              - attendantTypeIds
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    PipelinesCreateInput:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
        groupName:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        attendantTypeIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        attendantIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        stages:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                minLength: 1
                maxLength: 255
              color:
                type: string
                maxLength: 7
              metaPixelEvent:
                type: string
                maxLength: 100
            required:
              - name
      required:
        - name
    PipelinesCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
        description:
          anyOf:
            - type: string
            - type: "null"
        color:
          anyOf:
            - type: string
            - type: "null"
        groupName:
          anyOf:
            - type: string
            - type: "null"
        archivedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        playbookId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        defaultCopilotAgentId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        attendantIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        attendantTypeIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        totalStages:
          type: number
        totalContacts:
          type: number
        totalValue:
          type: number
        wonCount:
          type: number
        wonValue:
          type: number
        lostCount:
          type: number
        lostValue:
          type: number
        openCount:
          type: number
        openValue:
          type: number
        stagesBreakdown:
          type: array
          items:
            type: object
            properties:
              stageId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              stageName:
                type: string
              displayOrder:
                type: number
              cardCount:
                type: number
              totalValue:
                type: number
            required:
              - stageId
              - stageName
              - displayOrder
              - cardCount
              - totalValue
            additionalProperties: false
        ingestConfig:
          type: object
          properties:
            mode:
              type: string
              enum:
                - by-offer
                - by-funnel
            offerMappings:
              type: object
              propertyNames:
                type: string
              additionalProperties:
                type: array
                items:
                  type: string
            funnelIds:
              type: array
              items:
                type: string
          additionalProperties: false
        lastActivityAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - name
        - ownerId
        - createdAt
        - updatedAt
        - attendantIds
        - attendantTypeIds
      additionalProperties: false
    PipelinesUpdateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          minLength: 1
          maxLength: 255
        description:
          anyOf:
            - type: string
            - type: "null"
        color:
          anyOf:
            - type: string
            - type: "null"
        groupName:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        archived:
          type: boolean
        attendantTypeIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        attendantIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    PipelinesUpdateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
        description:
          anyOf:
            - type: string
            - type: "null"
        color:
          anyOf:
            - type: string
            - type: "null"
        groupName:
          anyOf:
            - type: string
            - type: "null"
        archivedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        playbookId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        defaultCopilotAgentId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        attendantIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        attendantTypeIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        totalStages:
          type: number
        totalContacts:
          type: number
        totalValue:
          type: number
        wonCount:
          type: number
        wonValue:
          type: number
        lostCount:
          type: number
        lostValue:
          type: number
        openCount:
          type: number
        openValue:
          type: number
        stagesBreakdown:
          type: array
          items:
            type: object
            properties:
              stageId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              stageName:
                type: string
              displayOrder:
                type: number
              cardCount:
                type: number
              totalValue:
                type: number
            required:
              - stageId
              - stageName
              - displayOrder
              - cardCount
              - totalValue
            additionalProperties: false
        ingestConfig:
          type: object
          properties:
            mode:
              type: string
              enum:
                - by-offer
                - by-funnel
            offerMappings:
              type: object
              propertyNames:
                type: string
              additionalProperties:
                type: array
                items:
                  type: string
            funnelIds:
              type: array
              items:
                type: string
          additionalProperties: false
        lastActivityAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - name
        - ownerId
        - createdAt
        - updatedAt
        - attendantIds
        - attendantTypeIds
      additionalProperties: false
    PipelinesDeleteInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    PipelinesDeleteOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    PipelinesAttendantTypesGetOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              pipelineId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              attendantTypeId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              displayOrder:
                type: number
              commissionType:
                anyOf:
                  - anyOf:
                      - type: string
                        const: percentage
                      - type: string
                        const: fixed
                      - type: "null"
                        const: null
                  - type: "null"
              commissionPercentBp:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 10000
                  - type: "null"
              commissionFixedCents:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              attendantTypeName:
                type: string
              attendantTypeColor:
                anyOf:
                  - type: string
                  - type: "null"
              attendantTypeEmoji:
                anyOf:
                  - type: string
                  - type: "null"
            required:
              - id
              - pipelineId
              - attendantTypeId
              - displayOrder
              - createdAt
              - attendantTypeName
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    PipelinesAttendantTypesSetInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        types:
          type: array
          items:
            type: object
            properties:
              attendantTypeId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              commissionType:
                anyOf:
                  - anyOf:
                      - type: string
                        const: percentage
                      - type: string
                        const: fixed
                      - type: "null"
                        const: null
                  - type: "null"
              commissionPercentBp:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 10000
                  - type: "null"
              commissionFixedCents:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  - type: "null"
            required:
              - attendantTypeId
      required:
        - id
        - types
    PipelinesAttendantTypesSetOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              pipelineId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              attendantTypeId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              displayOrder:
                type: number
              commissionType:
                anyOf:
                  - anyOf:
                      - type: string
                        const: percentage
                      - type: string
                        const: fixed
                      - type: "null"
                        const: null
                  - type: "null"
              commissionPercentBp:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 10000
                  - type: "null"
              commissionFixedCents:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              attendantTypeName:
                type: string
              attendantTypeColor:
                anyOf:
                  - type: string
                  - type: "null"
              attendantTypeEmoji:
                anyOf:
                  - type: string
                  - type: "null"
            required:
              - id
              - pipelineId
              - attendantTypeId
              - displayOrder
              - createdAt
              - attendantTypeName
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    StagesListInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        viewAsAttendantId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        search:
          anyOf:
            - type: string
            - type: "null"
        attendantIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productNames:
          type: array
          items:
            type: string
        funnelNames:
          type: array
          items:
            type: string
        temperatures:
          type: array
          items:
            type: string
            enum:
              - hot
              - warm
              - cold
              - frozen
        priorities:
          type: array
          items:
            type: string
            enum:
              - urgent
              - high
              - medium
              - low
              - none
        referredBy:
          anyOf:
            - type: string
            - type: "null"
        origins:
          type: array
          items:
            type: string
        tagIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        valueMin:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        valueMax:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        expectedClosingDateFrom:
          type: string
        expectedClosingDateTo:
          type: string
        offerIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        companyIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        leadIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        status:
          type: string
          enum:
            - open
            - won
            - lost
        conditions:
          maxItems: 200
          type: array
          items:
            type: object
            properties:
              id:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              field:
                type: string
                enum:
                  - title
                  - value
                  - isRecurring
                  - priority
                  - temperature
                  - status
                  - origin
                  - referredBy
                  - lossReason
                  - createdAt
                  - updatedAt
                  - expectedClosingDate
                  - wonAt
                  - lostAt
                  - productId
                  - offerId
                  - pipelineId
                  - stageId
                  - funnelId
                  - responsibleAttendantId
                  - tagId
                  - attendantId
                  - companyId
                  - leadId
                  - customFieldText
                  - customFieldNumber
                  - customFieldDate
                  - customFieldBoolean
                  - customFieldSelect
                  - taskStatus
                  - taskType
                  - taskDeadline
                  - hasOpenTask
                  - children
                  - lead
              operator:
                type: string
                enum:
                  - childrenAnd
                  - childrenOr
                  - equals
                  - contains
                  - startsWith
                  - endsWith
                  - greaterThan
                  - greaterThanOrEqual
                  - lessThan
                  - lessThanOrEqual
                  - in
                  - isNotEmpty
              negation:
                type: boolean
              parentId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              order:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              valueString:
                anyOf:
                  - type: string
                  - type: "null"
              valueNumber:
                anyOf:
                  - type: number
                  - type: "null"
              valueDate:
                anyOf:
                  - type: string
                  - type: "null"
              valueBool:
                anyOf:
                  - type: boolean
                  - type: "null"
              valueUuid:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              customFieldId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
            required:
              - field
              - operator
              - negation
              - order
      required:
        - id
    StagesListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              displayOrder:
                type: number
              color:
                anyOf:
                  - type: string
                  - type: "null"
              metaPixelEvent:
                anyOf:
                  - type: string
                  - type: "null"
              ingestConfig:
                anyOf:
                  - type: object
                    properties:
                      mode:
                        type: string
                        enum:
                          - by-offer
                          - by-funnel
                      offerMappings:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties:
                          type: array
                          items:
                            type: string
                      funnelIds:
                        type: array
                        items:
                          type: string
                    additionalProperties: false
                  - type: "null"
              pipelineId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              cardCount:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              totalValue:
                type: number
            required:
              - id
              - name
              - displayOrder
              - pipelineId
              - ownerId
              - createdAt
              - updatedAt
              - cardCount
              - totalValue
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    StagesCreateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          minLength: 1
          maxLength: 255
        color:
          type: string
          maxLength: 7
        metaPixelEvent:
          type: string
          maxLength: 100
      required:
        - id
        - name
    StagesCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
        displayOrder:
          type: number
        color:
          anyOf:
            - type: string
            - type: "null"
        metaPixelEvent:
          anyOf:
            - type: string
            - type: "null"
        ingestConfig:
          anyOf:
            - type: object
              properties:
                mode:
                  type: string
                  enum:
                    - by-offer
                    - by-funnel
                offerMappings:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    type: array
                    items:
                      type: string
                funnelIds:
                  type: array
                  items:
                    type: string
              additionalProperties: false
            - type: "null"
        pipelineId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - name
        - displayOrder
        - pipelineId
        - ownerId
        - createdAt
        - updatedAt
      additionalProperties: false
    StagesUpdateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          minLength: 1
          maxLength: 255
        color:
          anyOf:
            - type: string
              maxLength: 7
            - type: "null"
        metaPixelEvent:
          anyOf:
            - type: string
              maxLength: 100
            - type: "null"
      required:
        - id
    StagesUpdateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
        displayOrder:
          type: number
        color:
          anyOf:
            - type: string
            - type: "null"
        metaPixelEvent:
          anyOf:
            - type: string
            - type: "null"
        ingestConfig:
          anyOf:
            - type: object
              properties:
                mode:
                  type: string
                  enum:
                    - by-offer
                    - by-funnel
                offerMappings:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    type: array
                    items:
                      type: string
                funnelIds:
                  type: array
                  items:
                    type: string
              additionalProperties: false
            - type: "null"
        pipelineId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - name
        - displayOrder
        - pipelineId
        - ownerId
        - createdAt
        - updatedAt
      additionalProperties: false
    StagesDeleteInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    StagesDeleteOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    StagesReorderInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        stageIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
        - stageIds
    StagesReorderOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    CardsListInput:
      type: object
      properties:
        page:
          default: 1
          type: number
          minimum: 1
        perPage:
          default: 10
          type: number
          minimum: 1
          maximum: 2000
        viewAsAttendantId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        pipelineId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        stageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        search:
          anyOf:
            - type: string
            - type: "null"
        attendantIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productNames:
          type: array
          items:
            type: string
        funnelNames:
          type: array
          items:
            type: string
        temperatures:
          type: array
          items:
            type: string
            enum:
              - hot
              - warm
              - cold
              - frozen
        priorities:
          type: array
          items:
            type: string
            enum:
              - urgent
              - high
              - medium
              - low
              - none
        referredBy:
          anyOf:
            - type: string
            - type: "null"
        origins:
          type: array
          items:
            type: string
        tagIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        valueMin:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        valueMax:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        expectedClosingDateFrom:
          type: string
        expectedClosingDateTo:
          type: string
        offerIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        companyIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        leadIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        cardIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        status:
          type: string
          enum:
            - open
            - won
            - lost
        forecastEligible:
          type: boolean
        forecastIncludeWon:
          type: boolean
        cardOrderField:
          type: string
          enum:
            - manual
            - created_at
            - stage_time
        cardOrderDir:
          type: string
          enum:
            - asc
            - desc
        conditions:
          maxItems: 200
          type: array
          items:
            type: object
            properties:
              id:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              field:
                type: string
                enum:
                  - title
                  - value
                  - isRecurring
                  - priority
                  - temperature
                  - status
                  - origin
                  - referredBy
                  - lossReason
                  - createdAt
                  - updatedAt
                  - expectedClosingDate
                  - wonAt
                  - lostAt
                  - productId
                  - offerId
                  - pipelineId
                  - stageId
                  - funnelId
                  - responsibleAttendantId
                  - tagId
                  - attendantId
                  - companyId
                  - leadId
                  - customFieldText
                  - customFieldNumber
                  - customFieldDate
                  - customFieldBoolean
                  - customFieldSelect
                  - taskStatus
                  - taskType
                  - taskDeadline
                  - hasOpenTask
                  - children
                  - lead
              operator:
                type: string
                enum:
                  - childrenAnd
                  - childrenOr
                  - equals
                  - contains
                  - startsWith
                  - endsWith
                  - greaterThan
                  - greaterThanOrEqual
                  - lessThan
                  - lessThanOrEqual
                  - in
                  - isNotEmpty
              negation:
                type: boolean
              parentId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              order:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              valueString:
                anyOf:
                  - type: string
                  - type: "null"
              valueNumber:
                anyOf:
                  - type: number
                  - type: "null"
              valueDate:
                anyOf:
                  - type: string
                  - type: "null"
              valueBool:
                anyOf:
                  - type: boolean
                  - type: "null"
              valueUuid:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              customFieldId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
            required:
              - field
              - operator
              - negation
              - order
    CardsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              pipelineId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              stageId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              title:
                anyOf:
                  - type: string
                  - type: "null"
              value:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  - type: "null"
              probability:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 100
                  - type: "null"
              attendantIds:
                type: array
                items:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              attendantAssignments:
                type: array
                items:
                  type: object
                  properties:
                    attendantId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    attendantName:
                      anyOf:
                        - type: string
                        - type: "null"
                    attendantTypeId:
                      anyOf:
                        - type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        - type: "null"
                    attendantTypeName:
                      anyOf:
                        - type: string
                        - type: "null"
                    isPrimary:
                      type: boolean
                    commissionType:
                      anyOf:
                        - anyOf:
                            - type: string
                              const: percentage
                            - type: string
                              const: fixed
                            - type: "null"
                              const: null
                        - type: "null"
                    commissionPercentBp:
                      anyOf:
                        - type: integer
                          minimum: 0
                          maximum: 10000
                        - type: "null"
                    commissionFixedCents:
                      anyOf:
                        - type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        - type: "null"
                  required:
                    - attendantId
                    - isPrimary
                  additionalProperties: false
              companyId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              productIds:
                type: array
                items:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              productNames:
                type: array
                items:
                  type: string
              offerIds:
                type: array
                items:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              offerNames:
                type: array
                items:
                  type: string
              leadIds:
                type: array
                items:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              companyIds:
                type: array
                items:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              productId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              funnelId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              priority:
                type: string
                enum:
                  - urgent
                  - high
                  - medium
                  - low
                  - none
              temperature:
                anyOf:
                  - anyOf:
                      - type: string
                        const: hot
                      - type: string
                        const: warm
                      - type: string
                        const: cold
                      - type: string
                        const: frozen
                      - type: "null"
                        const: null
                  - type: "null"
              expectedClosingDate:
                anyOf:
                  - type: string
                    format: date
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                  - type: "null"
              origin:
                anyOf:
                  - type: string
                  - type: "null"
              status:
                type: string
                enum:
                  - open
                  - won
                  - lost
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              leadName:
                anyOf:
                  - type: string
                  - type: "null"
              companyName:
                anyOf:
                  - type: string
                  - type: "null"
              leadNames:
                type: array
                items:
                  type: string
              companyNames:
                type: array
                items:
                  type: string
              productName:
                anyOf:
                  - type: string
                  - type: "null"
              funnelName:
                anyOf:
                  - type: string
                  - type: "null"
              referredBy:
                anyOf:
                  - type: string
                  - type: "null"
              lossReason:
                anyOf:
                  - type: string
                  - type: "null"
              lossObservation:
                anyOf:
                  - type: string
                  - type: "null"
              wonAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              lostAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              tags:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                    color:
                      type: string
                  required:
                    - id
                    - name
                    - color
                  additionalProperties: false
              stageName:
                type: string
              pipelineName:
                type: string
              responsibleAttendantId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              responsibleAttendantName:
                anyOf:
                  - type: string
                  - type: "null"
              unassignedReason:
                anyOf:
                  - anyOf:
                      - type: string
                        const: auto_assign_off
                      - type: string
                        const: frozen_temperature
                      - type: string
                        const: no_eligible_members
                      - type: string
                        const: all_at_cap
                      - type: string
                        const: no_pipeline_attendants
                      - type: "null"
                        const: null
                  - type: "null"
              openScheduledCall:
                anyOf:
                  - type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      leadId:
                        anyOf:
                          - type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          - type: "null"
                      attendantId:
                        anyOf:
                          - type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          - type: "null"
                      opportunityCardId:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      subject:
                        anyOf:
                          - type: string
                          - type: "null"
                      notes:
                        anyOf:
                          - type: string
                          - type: "null"
                      meetingLink:
                        anyOf:
                          - type: string
                          - type: "null"
                      startAt:
                        type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      endAt:
                        type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      status:
                        type: string
                        enum:
                          - scheduled
                          - confirmed
                    required:
                      - id
                      - opportunityCardId
                      - startAt
                      - endAt
                      - status
                    additionalProperties: false
                  - type: "null"
              openTask:
                anyOf:
                  - type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      title:
                        type: string
                      type:
                        type: string
                      deadline:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          - type: "null"
                      attendantName:
                        anyOf:
                          - type: string
                          - type: "null"
                    required:
                      - id
                      - title
                      - type
                    additionalProperties: false
                  - type: "null"
            required:
              - id
              - pipelineId
              - stageId
              - attendantIds
              - attendantAssignments
              - productIds
              - productNames
              - offerIds
              - offerNames
              - leadIds
              - companyIds
              - priority
              - status
              - ownerId
              - createdAt
              - updatedAt
              - leadNames
              - companyNames
              - tags
              - stageName
              - pipelineName
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    CardsListByLeadOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              pipelineId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              stageId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              title:
                anyOf:
                  - type: string
                  - type: "null"
              pipelineName:
                type: string
              stageName:
                type: string
              value:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  - type: "null"
              status:
                type: string
                enum:
                  - open
                  - won
                  - lost
              priority:
                type: string
                enum:
                  - urgent
                  - high
                  - medium
                  - low
                  - none
              temperature:
                anyOf:
                  - anyOf:
                      - type: string
                        const: hot
                      - type: string
                        const: warm
                      - type: string
                        const: cold
                      - type: string
                        const: frozen
                      - type: "null"
                        const: null
                  - type: "null"
              attendantAssignments:
                type: array
                items:
                  type: object
                  properties:
                    attendantId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    attendantName:
                      anyOf:
                        - type: string
                        - type: "null"
                    attendantTypeId:
                      anyOf:
                        - type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        - type: "null"
                    attendantTypeName:
                      anyOf:
                        - type: string
                        - type: "null"
                    isPrimary:
                      type: boolean
                    commissionType:
                      anyOf:
                        - anyOf:
                            - type: string
                              const: percentage
                            - type: string
                              const: fixed
                            - type: "null"
                              const: null
                        - type: "null"
                    commissionPercentBp:
                      anyOf:
                        - type: integer
                          minimum: 0
                          maximum: 10000
                        - type: "null"
                    commissionFixedCents:
                      anyOf:
                        - type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        - type: "null"
                  required:
                    - attendantId
                    - isPrimary
                  additionalProperties: false
              leadIds:
                type: array
                items:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              leadNames:
                type: array
                items:
                  type: string
              companyIds:
                type: array
                items:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              companyNames:
                type: array
                items:
                  type: string
              origin:
                anyOf:
                  - type: string
                  - type: "null"
              productName:
                anyOf:
                  - type: string
                  - type: "null"
              offerNames:
                type: array
                items:
                  type: string
              funnelName:
                anyOf:
                  - type: string
                  - type: "null"
              expectedClosingDate:
                anyOf:
                  - type: string
                    format: date
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                  - type: "null"
              responsibleAttendantId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              isRecurring:
                type: boolean
            required:
              - id
              - pipelineId
              - stageId
              - pipelineName
              - stageName
              - status
              - priority
              - attendantAssignments
              - leadIds
              - leadNames
              - companyIds
              - companyNames
              - offerNames
              - isRecurring
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    CardsGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        pipelineId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        stageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        title:
          anyOf:
            - type: string
            - type: "null"
        value:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 9007199254740991
            - type: "null"
        probability:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 100
            - type: "null"
        attendantIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        attendantAssignments:
          type: array
          items:
            type: object
            properties:
              attendantId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              attendantName:
                anyOf:
                  - type: string
                  - type: "null"
              attendantTypeId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              attendantTypeName:
                anyOf:
                  - type: string
                  - type: "null"
              isPrimary:
                type: boolean
              commissionType:
                anyOf:
                  - anyOf:
                      - type: string
                        const: percentage
                      - type: string
                        const: fixed
                      - type: "null"
                        const: null
                  - type: "null"
              commissionPercentBp:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 10000
                  - type: "null"
              commissionFixedCents:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  - type: "null"
            required:
              - attendantId
              - isPrimary
            additionalProperties: false
        companyId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        productIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productNames:
          type: array
          items:
            type: string
        offerIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offerNames:
          type: array
          items:
            type: string
        leadIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        companyIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        funnelId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        priority:
          type: string
          enum:
            - urgent
            - high
            - medium
            - low
            - none
        temperature:
          anyOf:
            - anyOf:
                - type: string
                  const: hot
                - type: string
                  const: warm
                - type: string
                  const: cold
                - type: string
                  const: frozen
                - type: "null"
                  const: null
            - type: "null"
        expectedClosingDate:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: "null"
        origin:
          anyOf:
            - type: string
            - type: "null"
        status:
          type: string
          enum:
            - open
            - won
            - lost
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        leadName:
          anyOf:
            - type: string
            - type: "null"
        companyName:
          anyOf:
            - type: string
            - type: "null"
        leadNames:
          type: array
          items:
            type: string
        companyNames:
          type: array
          items:
            type: string
        productName:
          anyOf:
            - type: string
            - type: "null"
        funnelName:
          anyOf:
            - type: string
            - type: "null"
        referredBy:
          anyOf:
            - type: string
            - type: "null"
        lossReason:
          anyOf:
            - type: string
            - type: "null"
        lossObservation:
          anyOf:
            - type: string
            - type: "null"
        wonAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        lostAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        tags:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              color:
                type: string
            required:
              - id
              - name
              - color
            additionalProperties: false
        stageName:
          type: string
        pipelineName:
          type: string
        responsibleAttendantId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        responsibleAttendantName:
          anyOf:
            - type: string
            - type: "null"
        unassignedReason:
          anyOf:
            - anyOf:
                - type: string
                  const: auto_assign_off
                - type: string
                  const: frozen_temperature
                - type: string
                  const: no_eligible_members
                - type: string
                  const: all_at_cap
                - type: string
                  const: no_pipeline_attendants
                - type: "null"
                  const: null
            - type: "null"
        openScheduledCall:
          anyOf:
            - type: object
              properties:
                id:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                leadId:
                  anyOf:
                    - type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    - type: "null"
                attendantId:
                  anyOf:
                    - type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    - type: "null"
                opportunityCardId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                subject:
                  anyOf:
                    - type: string
                    - type: "null"
                notes:
                  anyOf:
                    - type: string
                    - type: "null"
                meetingLink:
                  anyOf:
                    - type: string
                    - type: "null"
                startAt:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                endAt:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                status:
                  type: string
                  enum:
                    - scheduled
                    - confirmed
              required:
                - id
                - opportunityCardId
                - startAt
                - endAt
                - status
              additionalProperties: false
            - type: "null"
        openTask:
          anyOf:
            - type: object
              properties:
                id:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                title:
                  type: string
                type:
                  type: string
                deadline:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    - type: "null"
                attendantName:
                  anyOf:
                    - type: string
                    - type: "null"
              required:
                - id
                - title
                - type
              additionalProperties: false
            - type: "null"
      required:
        - id
        - pipelineId
        - stageId
        - attendantIds
        - attendantAssignments
        - productIds
        - productNames
        - offerIds
        - offerNames
        - leadIds
        - companyIds
        - priority
        - status
        - ownerId
        - createdAt
        - updatedAt
        - leadNames
        - companyNames
        - tags
        - stageName
        - pipelineName
      additionalProperties: false
    CardsCreateInput:
      type: object
      properties:
        leadIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        pipelineId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        stageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        title:
          type: string
        value:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        probability:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 100
            - type: "null"
        attendantIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        companyId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offerIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        companyIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        funnelId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        priority:
          type: string
          enum:
            - urgent
            - high
            - medium
            - low
            - none
        temperature:
          type: string
          enum:
            - hot
            - warm
            - cold
            - frozen
        expectedClosingDate:
          type: string
        origin:
          type: string
        referredBy:
          anyOf:
            - type: string
            - type: "null"
        isRecurring:
          type: boolean
        customFieldValues:
          type: array
          items:
            type: object
            properties:
              customFieldId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              value: {}
            required:
              - customFieldId
              - value
      required:
        - leadIds
        - pipelineId
        - stageId
    CardsCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        pipelineId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        stageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        title:
          anyOf:
            - type: string
            - type: "null"
        value:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 9007199254740991
            - type: "null"
        probability:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 100
            - type: "null"
        productIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offerIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        funnelId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        priority:
          type: string
          enum:
            - urgent
            - high
            - medium
            - low
            - none
        temperature:
          anyOf:
            - anyOf:
                - type: string
                  const: hot
                - type: string
                  const: warm
                - type: string
                  const: cold
                - type: string
                  const: frozen
                - type: "null"
                  const: null
            - type: "null"
        expectedClosingDate:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: "null"
        origin:
          anyOf:
            - type: string
            - type: "null"
        referredBy:
          anyOf:
            - type: string
            - type: "null"
        lossReason:
          anyOf:
            - type: string
            - type: "null"
        lossObservation:
          anyOf:
            - type: string
            - type: "null"
        wonAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        lostAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        firstAttemptAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        firstAttemptChannel:
          anyOf:
            - type: string
            - type: "null"
        firstAttemptAttendantId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        firstConnectedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        firstConnectedChannel:
          anyOf:
            - type: string
            - type: "null"
        slaFirstContactNotifiedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        responsibleAttendantId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        unassignedReason:
          anyOf:
            - anyOf:
                - type: string
                  const: auto_assign_off
                - type: string
                  const: frozen_temperature
                - type: string
                  const: no_eligible_members
                - type: string
                  const: all_at_cap
                - type: string
                  const: no_pipeline_attendants
                - type: "null"
                  const: null
            - type: "null"
        isRecurring:
          type: boolean
        status:
          type: string
          enum:
            - open
            - won
            - lost
        position:
          type: string
        stageEnteredAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - pipelineId
        - stageId
        - productIds
        - offerIds
        - priority
        - isRecurring
        - status
        - position
        - stageEnteredAt
        - ownerId
        - createdAt
        - updatedAt
      additionalProperties: false
    CardsUpdateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        title:
          anyOf:
            - type: string
            - type: "null"
        value:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 9007199254740991
            - type: "null"
        probability:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 100
            - type: "null"
        attendantIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        companyId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        productIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offerIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        leadIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        companyIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        funnelId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        priority:
          type: string
          enum:
            - urgent
            - high
            - medium
            - low
            - none
        temperature:
          anyOf:
            - anyOf:
                - type: string
                  const: hot
                - type: string
                  const: warm
                - type: string
                  const: cold
                - type: string
                  const: frozen
                - type: "null"
                  const: null
            - type: "null"
        expectedClosingDate:
          anyOf:
            - type: string
            - type: "null"
        origin:
          anyOf:
            - type: string
            - type: "null"
        referredBy:
          anyOf:
            - type: string
            - type: "null"
        lossReason:
          anyOf:
            - type: string
            - type: "null"
        lossObservation:
          anyOf:
            - type: string
            - type: "null"
        responsibleAttendantId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        status:
          type: string
          enum:
            - open
            - won
            - lost
        isRecurring:
          type: boolean
      required:
        - id
    CardsUpdateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        pipelineId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        stageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        title:
          anyOf:
            - type: string
            - type: "null"
        value:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 9007199254740991
            - type: "null"
        probability:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 100
            - type: "null"
        productIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offerIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        funnelId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        priority:
          type: string
          enum:
            - urgent
            - high
            - medium
            - low
            - none
        temperature:
          anyOf:
            - anyOf:
                - type: string
                  const: hot
                - type: string
                  const: warm
                - type: string
                  const: cold
                - type: string
                  const: frozen
                - type: "null"
                  const: null
            - type: "null"
        expectedClosingDate:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: "null"
        origin:
          anyOf:
            - type: string
            - type: "null"
        referredBy:
          anyOf:
            - type: string
            - type: "null"
        lossReason:
          anyOf:
            - type: string
            - type: "null"
        lossObservation:
          anyOf:
            - type: string
            - type: "null"
        wonAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        lostAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        firstAttemptAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        firstAttemptChannel:
          anyOf:
            - type: string
            - type: "null"
        firstAttemptAttendantId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        firstConnectedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        firstConnectedChannel:
          anyOf:
            - type: string
            - type: "null"
        slaFirstContactNotifiedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        responsibleAttendantId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        unassignedReason:
          anyOf:
            - anyOf:
                - type: string
                  const: auto_assign_off
                - type: string
                  const: frozen_temperature
                - type: string
                  const: no_eligible_members
                - type: string
                  const: all_at_cap
                - type: string
                  const: no_pipeline_attendants
                - type: "null"
                  const: null
            - type: "null"
        isRecurring:
          type: boolean
        status:
          type: string
          enum:
            - open
            - won
            - lost
        position:
          type: string
        stageEnteredAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - pipelineId
        - stageId
        - productIds
        - offerIds
        - priority
        - isRecurring
        - status
        - position
        - stageEnteredAt
        - ownerId
        - createdAt
        - updatedAt
      additionalProperties: false
    CardsDeleteInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    CardsDeleteOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    CardsMoveInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        stageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        beforeCardId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        afterCardId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        cardOrderField:
          type: string
          enum:
            - manual
            - created_at
            - stage_time
        cardOrderDir:
          type: string
          enum:
            - asc
            - desc
      required:
        - id
        - stageId
    CardsMoveOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        pipelineId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        stageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        title:
          anyOf:
            - type: string
            - type: "null"
        value:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 9007199254740991
            - type: "null"
        probability:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 100
            - type: "null"
        productIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offerIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        funnelId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        priority:
          type: string
          enum:
            - urgent
            - high
            - medium
            - low
            - none
        temperature:
          anyOf:
            - anyOf:
                - type: string
                  const: hot
                - type: string
                  const: warm
                - type: string
                  const: cold
                - type: string
                  const: frozen
                - type: "null"
                  const: null
            - type: "null"
        expectedClosingDate:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: "null"
        origin:
          anyOf:
            - type: string
            - type: "null"
        referredBy:
          anyOf:
            - type: string
            - type: "null"
        lossReason:
          anyOf:
            - type: string
            - type: "null"
        lossObservation:
          anyOf:
            - type: string
            - type: "null"
        wonAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        lostAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        firstAttemptAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        firstAttemptChannel:
          anyOf:
            - type: string
            - type: "null"
        firstAttemptAttendantId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        firstConnectedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        firstConnectedChannel:
          anyOf:
            - type: string
            - type: "null"
        slaFirstContactNotifiedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        responsibleAttendantId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        unassignedReason:
          anyOf:
            - anyOf:
                - type: string
                  const: auto_assign_off
                - type: string
                  const: frozen_temperature
                - type: string
                  const: no_eligible_members
                - type: string
                  const: all_at_cap
                - type: string
                  const: no_pipeline_attendants
                - type: "null"
                  const: null
            - type: "null"
        isRecurring:
          type: boolean
        status:
          type: string
          enum:
            - open
            - won
            - lost
        position:
          type: string
        stageEnteredAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - pipelineId
        - stageId
        - productIds
        - offerIds
        - priority
        - isRecurring
        - status
        - position
        - stageEnteredAt
        - ownerId
        - createdAt
        - updatedAt
      additionalProperties: false
    CardsAssignAttendantsInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        assignments:
          type: array
          items:
            type: object
            properties:
              attendantId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              attendantTypeId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              isPrimary:
                type: boolean
              commissionType:
                anyOf:
                  - anyOf:
                      - type: string
                        const: percentage
                      - type: string
                        const: fixed
                      - type: "null"
                        const: null
                  - type: "null"
              commissionPercentBp:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 10000
                  - type: "null"
              commissionFixedCents:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  - type: "null"
            required:
              - attendantId
      required:
        - id
        - assignments
    CardsAssignAttendantsOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        pipelineId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        stageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        title:
          anyOf:
            - type: string
            - type: "null"
        value:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 9007199254740991
            - type: "null"
        probability:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 100
            - type: "null"
        productIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offerIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        funnelId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        priority:
          type: string
          enum:
            - urgent
            - high
            - medium
            - low
            - none
        temperature:
          anyOf:
            - anyOf:
                - type: string
                  const: hot
                - type: string
                  const: warm
                - type: string
                  const: cold
                - type: string
                  const: frozen
                - type: "null"
                  const: null
            - type: "null"
        expectedClosingDate:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: "null"
        origin:
          anyOf:
            - type: string
            - type: "null"
        referredBy:
          anyOf:
            - type: string
            - type: "null"
        lossReason:
          anyOf:
            - type: string
            - type: "null"
        lossObservation:
          anyOf:
            - type: string
            - type: "null"
        wonAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        lostAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        firstAttemptAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        firstAttemptChannel:
          anyOf:
            - type: string
            - type: "null"
        firstAttemptAttendantId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        firstConnectedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        firstConnectedChannel:
          anyOf:
            - type: string
            - type: "null"
        slaFirstContactNotifiedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        responsibleAttendantId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        unassignedReason:
          anyOf:
            - anyOf:
                - type: string
                  const: auto_assign_off
                - type: string
                  const: frozen_temperature
                - type: string
                  const: no_eligible_members
                - type: string
                  const: all_at_cap
                - type: string
                  const: no_pipeline_attendants
                - type: "null"
                  const: null
            - type: "null"
        isRecurring:
          type: boolean
        status:
          type: string
          enum:
            - open
            - won
            - lost
        position:
          type: string
        stageEnteredAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - pipelineId
        - stageId
        - productIds
        - offerIds
        - priority
        - isRecurring
        - status
        - position
        - stageEnteredAt
        - ownerId
        - createdAt
        - updatedAt
      additionalProperties: false
    CardsImportFromListsInput:
      type: object
      properties:
        pipelineId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        stageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        listIds:
          default: []
          maxItems: 50
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        segmentIds:
          maxItems: 50
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        assignment:
          type: object
          properties:
            mode:
              type: string
              enum:
                - fixed
                - multiple
                - round_robin
            attendantId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            attendantIds:
              maxItems: 100
              type: array
              items:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            teamId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          required:
            - mode
      required:
        - pipelineId
        - stageId
    CardsImportFromListsOutput:
      anyOf:
        - type: object
          properties:
            mode:
              type: string
              enum:
                - sync
            created:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            skipped:
              type: integer
              minimum: 0
              maximum: 9007199254740991
          required:
            - mode
            - created
            - skipped
          additionalProperties: false
        - type: object
          properties:
            mode:
              type: string
              enum:
                - async
            jobId:
              type: string
            totalLeads:
              type: integer
              minimum: 0
              maximum: 9007199254740991
          required:
            - mode
            - jobId
            - totalLeads
          additionalProperties: false
    CardsHistoryOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              cardId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              fromStageId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              toStageId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              movedBy:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - cardId
              - toStageId
              - createdAt
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    CardsAtRiskOutput:
      type: object
      properties:
        highPriority:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              pipelineName:
                type: string
              value:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  - type: "null"
              ownerName:
                anyOf:
                  - type: string
                  - type: "null"
              daysIdle:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              isActive:
                type: boolean
              noNextAction:
                type: boolean
              isFrozen:
                type: boolean
            required:
              - id
              - name
              - pipelineName
              - daysIdle
              - isActive
            additionalProperties: false
        attention:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              pipelineName:
                type: string
              value:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  - type: "null"
              ownerName:
                anyOf:
                  - type: string
                  - type: "null"
              daysIdle:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              isActive:
                type: boolean
              noNextAction:
                type: boolean
              isFrozen:
                type: boolean
            required:
              - id
              - name
              - pipelineName
              - daysIdle
              - isActive
            additionalProperties: false
        total:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
      required:
        - highPriority
        - attention
        - total
      additionalProperties: false
    PipelinesSettingsGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        pipelineId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        autoAssign:
          type: boolean
        autoAssignStrategy:
          type: string
          enum:
            - manual
            - round_robin
            - load_balanced
        teamId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        assignResponsibleOnScheduling:
          type: boolean
        restrictSchedulingToPeers:
          type: boolean
        slaEnabled:
          type: boolean
        slaInactivityDays:
          type: number
        slaTargetStageId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        slaFirstContactEnabled:
          type: boolean
        slaFirstContactMinutes:
          type: integer
          minimum: 1
          maximum: 1440
        notifyOnCreated:
          type: boolean
        notifyOnMoved:
          type: boolean
        notifyOnWon:
          type: boolean
        notifyOnLost:
          type: boolean
        requireValueOnWon:
          type: boolean
        requireExpectedDateOnWon:
          type: boolean
        lostReasons:
          type: array
          items:
            type: string
        restrictLossReasons:
          type: boolean
        defaultPriority:
          type: string
          enum:
            - urgent
            - high
            - medium
            - low
            - none
        defaultTemperature:
          anyOf:
            - anyOf:
                - type: string
                  const: hot
                - type: string
                  const: warm
                - type: string
                  const: cold
                - type: string
                  const: frozen
                - type: "null"
                  const: null
            - type: "null"
        defaultCurrency:
          type: string
        commissionEarnOn:
          type: string
          enum:
            - won
            - contract
            - first_payment
        commissionClawbackOn:
          type: boolean
        commissionClawbackDays:
          type: integer
          minimum: 1
          maximum: 365
        commissionInstallmentsOn:
          type: boolean
        commissionInstallments:
          type: integer
          minimum: 1
          maximum: 24
        commissionSplitsOn:
          type: boolean
        commissionTiersOn:
          type: boolean
        commissionVisAttendant:
          type: string
          enum:
            - self
            - team
            - none
        commissionVisManager:
          type: string
          enum:
            - team
            - all
        commissionShowOnCard:
          type: boolean
        commissionSplits:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            type: integer
            minimum: 0
            maximum: 100
        commissionTiers:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                minLength: 1
                maxLength: 40
              label:
                type: string
                minLength: 1
                maxLength: 80
              from:
                type: number
                minimum: 0
              multiplier:
                type: number
                minimum: 0
                maximum: 100
            required:
              - id
              - label
              - from
              - multiplier
            additionalProperties: false
        routingMode:
          type: string
          enum:
            - round_robin
            - criteria
            - manual
        routingCapOn:
          type: boolean
        routingCaps:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            type: integer
            minimum: 0
            maximum: 9007199254740991
        routingReassignOn:
          type: boolean
        routingReassignDays:
          type: integer
          minimum: 1
          maximum: 90
        routingStickyOn:
          type: boolean
        routingHoursOn:
          type: boolean
        routingHoursFrom:
          type: string
          pattern: ^\d{2}:\d{2}$
        routingHoursTo:
          type: string
          pattern: ^\d{2}:\d{2}$
        routingAfterHours:
          type: string
          enum:
            - buffer
            - dispatcher
            - continue_distributing
        routingDays:
          minItems: 7
          maxItems: 7
          type: array
          items: {}
        routingCriteria:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                minLength: 1
                maxLength: 40
              field:
                type: string
                minLength: 1
                maxLength: 80
              op:
                type: string
                enum:
                  - eq
                  - neq
                  - gt
                  - gte
                  - lt
                  - lte
                  - contains
              value:
                type: string
                maxLength: 200
              route:
                type: string
                minLength: 1
                maxLength: 64
            required:
              - id
              - field
              - op
              - value
              - route
            additionalProperties: false
        cardDisplay:
          type: object
          properties:
            hideWhenEmpty:
              type: boolean
            showCompanyName:
              type: boolean
            showAssignedAttendant:
              type: boolean
            showContactCard:
              type: boolean
            showProductName:
              type: boolean
            showTotalValue:
              type: boolean
            showFunnelName:
              type: boolean
            showDate:
              type: boolean
            showPaymentStatus:
              type: boolean
            showScheduledMeeting:
              type: boolean
            showNextAction:
              type: boolean
          additionalProperties: false
        ingestConfig:
          type: object
          properties:
            mode:
              type: string
              enum:
                - by-offer
                - by-funnel
            offerMappings:
              type: object
              propertyNames:
                type: string
              additionalProperties:
                type: array
                items:
                  type: string
            funnelIds:
              type: array
              items:
                type: string
          additionalProperties: false
        drawerLayout:
          type: object
          properties:
            sectionOrder:
              type: array
              items:
                type: string
            contactSectionOrder:
              type: array
              items:
                type: string
          additionalProperties: false
        cardOrderField:
          type: string
          enum:
            - manual
            - created_at
            - stage_time
        cardOrderDir:
          type: string
          enum:
            - asc
            - desc
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - pipelineId
        - autoAssign
        - autoAssignStrategy
        - assignResponsibleOnScheduling
        - restrictSchedulingToPeers
        - slaEnabled
        - slaInactivityDays
        - slaFirstContactEnabled
        - slaFirstContactMinutes
        - notifyOnCreated
        - notifyOnMoved
        - notifyOnWon
        - notifyOnLost
        - requireValueOnWon
        - requireExpectedDateOnWon
        - lostReasons
        - restrictLossReasons
        - defaultPriority
        - defaultCurrency
        - commissionEarnOn
        - commissionClawbackOn
        - commissionClawbackDays
        - commissionInstallmentsOn
        - commissionInstallments
        - commissionSplitsOn
        - commissionTiersOn
        - commissionVisAttendant
        - commissionVisManager
        - commissionShowOnCard
        - commissionSplits
        - commissionTiers
        - routingMode
        - routingCapOn
        - routingCaps
        - routingReassignOn
        - routingReassignDays
        - routingStickyOn
        - routingHoursOn
        - routingHoursFrom
        - routingHoursTo
        - routingAfterHours
        - routingDays
        - routingCriteria
        - cardDisplay
        - ingestConfig
        - drawerLayout
        - cardOrderField
        - cardOrderDir
        - createdAt
        - updatedAt
      additionalProperties: false
    PipelinesSettingsUpdateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        autoAssign:
          type: boolean
        autoAssignStrategy:
          type: string
          enum:
            - manual
            - round_robin
            - load_balanced
        teamId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        assignResponsibleOnScheduling:
          type: boolean
        restrictSchedulingToPeers:
          type: boolean
        slaEnabled:
          type: boolean
        slaInactivityDays:
          type: number
        slaTargetStageId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        slaFirstContactEnabled:
          type: boolean
        slaFirstContactMinutes:
          type: integer
          minimum: 1
          maximum: 1440
        notifyOnCreated:
          type: boolean
        notifyOnMoved:
          type: boolean
        notifyOnWon:
          type: boolean
        notifyOnLost:
          type: boolean
        requireValueOnWon:
          type: boolean
        requireExpectedDateOnWon:
          type: boolean
        lostReasons:
          type: array
          items:
            type: string
        restrictLossReasons:
          type: boolean
        defaultPriority:
          type: string
          enum:
            - urgent
            - high
            - medium
            - low
            - none
        defaultTemperature:
          anyOf:
            - anyOf:
                - type: string
                  const: hot
                - type: string
                  const: warm
                - type: string
                  const: cold
                - type: string
                  const: frozen
                - type: "null"
                  const: null
            - type: "null"
        defaultCurrency:
          type: string
        commissionEarnOn:
          type: string
          enum:
            - won
            - contract
            - first_payment
        commissionClawbackOn:
          type: boolean
        commissionClawbackDays:
          type: integer
          minimum: 1
          maximum: 365
        commissionInstallmentsOn:
          type: boolean
        commissionInstallments:
          type: integer
          minimum: 1
          maximum: 24
        commissionSplitsOn:
          type: boolean
        commissionSplits:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            type: integer
            minimum: 0
            maximum: 100
        commissionTiersOn:
          type: boolean
        commissionTiers:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                minLength: 1
                maxLength: 40
              label:
                type: string
                minLength: 1
                maxLength: 80
              from:
                type: number
                minimum: 0
              multiplier:
                type: number
                minimum: 0
                maximum: 100
            required:
              - id
              - label
              - from
              - multiplier
        commissionVisAttendant:
          type: string
          enum:
            - self
            - team
            - none
        commissionVisManager:
          type: string
          enum:
            - team
            - all
        commissionShowOnCard:
          type: boolean
        routingMode:
          type: string
          enum:
            - round_robin
            - criteria
            - manual
        routingCapOn:
          type: boolean
        routingCaps:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            type: integer
            minimum: 0
            maximum: 9007199254740991
        routingReassignOn:
          type: boolean
        routingReassignDays:
          type: integer
          minimum: 1
          maximum: 90
        routingStickyOn:
          type: boolean
        routingHoursOn:
          type: boolean
        routingHoursFrom:
          type: string
          pattern: ^\d{2}:\d{2}$
        routingHoursTo:
          type: string
          pattern: ^\d{2}:\d{2}$
        routingAfterHours:
          type: string
          enum:
            - buffer
            - dispatcher
            - continue_distributing
        routingDays:
          minItems: 7
          maxItems: 7
          type: array
          items: {}
        routingCriteria:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                minLength: 1
                maxLength: 40
              field:
                type: string
                minLength: 1
                maxLength: 80
              op:
                type: string
                enum:
                  - eq
                  - neq
                  - gt
                  - gte
                  - lt
                  - lte
                  - contains
              value:
                type: string
                maxLength: 200
              route:
                type: string
                minLength: 1
                maxLength: 64
            required:
              - id
              - field
              - op
              - value
              - route
        cardDisplay:
          type: object
          properties:
            hideWhenEmpty:
              type: boolean
            showCompanyName:
              type: boolean
            showAssignedAttendant:
              type: boolean
            showContactCard:
              type: boolean
            showProductName:
              type: boolean
            showTotalValue:
              type: boolean
            showFunnelName:
              type: boolean
            showDate:
              type: boolean
            showPaymentStatus:
              type: boolean
            showScheduledMeeting:
              type: boolean
            showNextAction:
              type: boolean
        drawerLayout:
          type: object
          properties:
            sectionOrder:
              type: array
              items:
                type: string
            contactSectionOrder:
              type: array
              items:
                type: string
        cardOrderField:
          type: string
          enum:
            - manual
            - created_at
            - stage_time
        cardOrderDir:
          type: string
          enum:
            - asc
            - desc
      required:
        - id
    PipelinesAnalyticsOutput:
      type: object
      properties:
        totalPersons:
          type: number
        openDealsCount:
          type: number
        openDealsValue:
          type: number
        stages:
          type: array
          items:
            type: object
            properties:
              stageId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              stageName:
                type: string
              cardCount:
                type: number
              totalValue:
                type: number
            required:
              - stageId
              - stageName
              - cardCount
              - totalValue
            additionalProperties: false
      required:
        - totalPersons
        - openDealsCount
        - openDealsValue
        - stages
      additionalProperties: false
    OpportunitiesQueryInput:
      type: object
      properties:
        filters:
          maxItems: 200
          type: array
          items:
            type: object
            properties:
              id:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              field:
                type: string
                enum:
                  - title
                  - value
                  - isRecurring
                  - priority
                  - temperature
                  - status
                  - origin
                  - referredBy
                  - lossReason
                  - createdAt
                  - updatedAt
                  - expectedClosingDate
                  - wonAt
                  - lostAt
                  - productId
                  - offerId
                  - pipelineId
                  - stageId
                  - funnelId
                  - responsibleAttendantId
                  - tagId
                  - attendantId
                  - companyId
                  - leadId
                  - customFieldText
                  - customFieldNumber
                  - customFieldDate
                  - customFieldBoolean
                  - customFieldSelect
                  - taskStatus
                  - taskType
                  - taskDeadline
                  - hasOpenTask
                  - children
                  - lead
              operator:
                type: string
                enum:
                  - childrenAnd
                  - childrenOr
                  - equals
                  - contains
                  - startsWith
                  - endsWith
                  - greaterThan
                  - greaterThanOrEqual
                  - lessThan
                  - lessThanOrEqual
                  - in
                  - isNotEmpty
              negation:
                type: boolean
              parentId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              order:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              valueString:
                anyOf:
                  - type: string
                  - type: "null"
              valueNumber:
                anyOf:
                  - type: number
                  - type: "null"
              valueDate:
                anyOf:
                  - type: string
                  - type: "null"
              valueBool:
                anyOf:
                  - type: boolean
                  - type: "null"
              valueUuid:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              customFieldId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
            required:
              - field
              - operator
              - negation
              - order
        pipelineId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        limit:
          type: integer
          minimum: 1
          maximum: 200
        offset:
          type: integer
          minimum: 0
          maximum: 9007199254740991
      required:
        - filters
    OpportunitiesQueryOutput:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        cardIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - count
        - cardIds
      additionalProperties: false
    CardsInsightsOutput:
      type: object
      properties:
        cardId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        snapshot:
          type: object
          properties:
            cardId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            title:
              anyOf:
                - type: string
                - type: "null"
            valueCents:
              anyOf:
                - type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                - type: "null"
            temperature:
              anyOf:
                - type: string
                  enum:
                    - hot
                    - warm
                    - cold
                    - frozen
                - type: "null"
            priority:
              type: string
              enum:
                - urgent
                - high
                - medium
                - low
                - none
            expectedClosingDate:
              anyOf:
                - type: string
                  format: date
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                - type: "null"
            origin:
              anyOf:
                - type: string
                - type: "null"
            offerNames:
              type: array
              items:
                type: string
            productNames:
              type: array
              items:
                type: string
            funnelName:
              anyOf:
                - type: string
                - type: "null"
            pipelineName:
              type: string
            stageName:
              type: string
            hasOpenScheduledCall:
              type: boolean
            linkedContacts:
              type: array
              items:
                type: object
                properties:
                  leadId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  name:
                    anyOf:
                      - type: string
                      - type: "null"
                  email:
                    anyOf:
                      - type: string
                      - type: "null"
                  isPrimary:
                    type: boolean
                required:
                  - leadId
                  - name
                  - email
                  - isPrimary
                additionalProperties: false
            customFields:
              type: array
              items:
                type: object
                properties:
                  customFieldId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  fieldName:
                    type: string
                  displayName:
                    type: string
                  fieldType:
                    type: string
                  displayValue:
                    type: string
                required:
                  - customFieldId
                  - fieldName
                  - displayName
                  - fieldType
                  - displayValue
                additionalProperties: false
          required:
            - cardId
            - title
            - valueCents
            - temperature
            - priority
            - expectedClosingDate
            - origin
            - offerNames
            - productNames
            - funnelName
            - pipelineName
            - stageName
            - hasOpenScheduledCall
            - linkedContacts
            - customFields
          additionalProperties: false
        purchaseBehavior:
          type: object
          properties:
            ltvCents:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            avgTicketCents:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            totalPurchases:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            totalVisits:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
          required:
            - ltvCents
            - avgTicketCents
            - totalPurchases
            - totalVisits
          additionalProperties: false
        recentPurchases:
          type: array
          items:
            type: object
            properties:
              transactionId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              offerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              offerName:
                type: string
              valueCents:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              paymentMethod:
                type: string
              occurredAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              leadName:
                anyOf:
                  - type: string
                  - type: "null"
            required:
              - transactionId
              - offerId
              - offerName
              - valueCents
              - paymentMethod
              - occurredAt
              - leadName
            additionalProperties: false
        recentActivities:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              category:
                type: string
              eventName:
                type: string
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - name
              - category
              - eventName
              - createdAt
            additionalProperties: false
        activeFunnels:
          type: array
          items:
            type: object
            properties:
              funnelId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              funnelName:
                type: string
              funnelVersion:
                type: string
                enum:
                  - v3
                  - v4
              lastNodeId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              lastEventAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - funnelId
              - funnelName
              - funnelVersion
              - lastNodeId
              - lastEventAt
            additionalProperties: false
        messaging:
          type: object
          properties:
            byChannel:
              type: array
              items:
                type: object
                properties:
                  channel:
                    type: string
                  sent:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                required:
                  - channel
                  - sent
                additionalProperties: false
            emailClicks:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
          required:
            - byChannel
            - emailClicks
          additionalProperties: false
        membersArea:
          type: object
          properties:
            areas:
              type: array
              items:
                type: object
                properties:
                  portalId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  portalName:
                    type: string
                required:
                  - portalId
                  - portalName
                additionalProperties: false
            lastLoginAt:
              anyOf:
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                - type: "null"
            recentCompletedLessons:
              type: array
              items:
                type: object
                properties:
                  lessonId:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  lessonTitle:
                    type: string
                  completedAt:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                required:
                  - lessonId
                  - lessonTitle
                  - completedAt
                additionalProperties: false
          required:
            - areas
            - lastLoginAt
            - recentCompletedLessons
          additionalProperties: false
      required:
        - cardId
        - snapshot
        - purchaseBehavior
        - recentPurchases
        - recentActivities
        - activeFunnels
        - messaging
        - membersArea
      additionalProperties: false
    CardsApplyTagsInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        tagIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
        - tagIds
    CardsApplyTagsOutput:
      type: object
      properties:
        applied:
          type: number
      required:
        - applied
      additionalProperties: false
    CardsRemoveTagsInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        tagIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
        - tagIds
    CardsRemoveTagsOutput:
      type: object
      properties:
        deleted:
          type: number
      required:
        - deleted
      additionalProperties: false
    CardsAttendantCommissionUpdateInput:
      type: object
      properties:
        cardId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        attendantId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        commissionType:
          anyOf:
            - anyOf:
                - type: string
                  const: percentage
                - type: string
                  const: fixed
                - type: "null"
                  const: null
            - type: "null"
        commissionPercentBp:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 10000
            - type: "null"
        commissionFixedCents:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 9007199254740991
            - type: "null"
      required:
        - cardId
        - attendantId
    CardsAttendantCommissionUpdateOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    CardsImportJobStatusOutput:
      type: object
      properties:
        jobId:
          type: string
        state:
          type: string
          enum:
            - waiting
            - waiting-children
            - active
            - completed
            - failed
            - delayed
            - prioritized
            - unknown
        progress:
          type: number
          minimum: 0
          maximum: 100
        affected:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        failedReason:
          type: string
        meta:
          type: object
          propertyNames:
            type: string
          additionalProperties: {}
      required:
        - jobId
        - state
        - progress
      additionalProperties: false
    PipelinesForecastInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        viewAsAttendantId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        search:
          anyOf:
            - type: string
            - type: "null"
        attendantIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productNames:
          type: array
          items:
            type: string
        funnelNames:
          type: array
          items:
            type: string
        temperatures:
          type: array
          items:
            type: string
            enum:
              - hot
              - warm
              - cold
              - frozen
        priorities:
          type: array
          items:
            type: string
            enum:
              - urgent
              - high
              - medium
              - low
              - none
        referredBy:
          anyOf:
            - type: string
            - type: "null"
        origins:
          type: array
          items:
            type: string
        tagIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        valueMin:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        valueMax:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        expectedClosingDateFrom:
          type: string
        expectedClosingDateTo:
          type: string
        offerIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        companyIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        leadIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        cardIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        status:
          type: string
          enum:
            - open
            - won
            - lost
        forecastEligible:
          type: boolean
        forecastIncludeWon:
          type: boolean
        conditions:
          maxItems: 200
          type: array
          items:
            type: object
            properties:
              id:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              field:
                type: string
                enum:
                  - title
                  - value
                  - isRecurring
                  - priority
                  - temperature
                  - status
                  - origin
                  - referredBy
                  - lossReason
                  - createdAt
                  - updatedAt
                  - expectedClosingDate
                  - wonAt
                  - lostAt
                  - productId
                  - offerId
                  - pipelineId
                  - stageId
                  - funnelId
                  - responsibleAttendantId
                  - tagId
                  - attendantId
                  - companyId
                  - leadId
                  - customFieldText
                  - customFieldNumber
                  - customFieldDate
                  - customFieldBoolean
                  - customFieldSelect
                  - taskStatus
                  - taskType
                  - taskDeadline
                  - hasOpenTask
                  - children
                  - lead
              operator:
                type: string
                enum:
                  - childrenAnd
                  - childrenOr
                  - equals
                  - contains
                  - startsWith
                  - endsWith
                  - greaterThan
                  - greaterThanOrEqual
                  - lessThan
                  - lessThanOrEqual
                  - in
                  - isNotEmpty
              negation:
                type: boolean
              parentId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              order:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              valueString:
                anyOf:
                  - type: string
                  - type: "null"
              valueNumber:
                anyOf:
                  - type: number
                  - type: "null"
              valueDate:
                anyOf:
                  - type: string
                  - type: "null"
              valueBool:
                anyOf:
                  - type: boolean
                  - type: "null"
              valueUuid:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              customFieldId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
            required:
              - field
              - operator
              - negation
              - order
        granularity:
          type: string
          enum:
            - day
            - week
            - month
      required:
        - id
    PipelinesForecastOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              periodStart:
                type: string
                format: date
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
              openCount:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              openValue:
                type: number
              openWeightedValue:
                type: number
              wonCount:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              wonValue:
                type: number
              forecastValue:
                type: number
            required:
              - periodStart
              - openCount
              - openValue
              - openWeightedValue
              - wonCount
              - wonValue
              - forecastValue
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    PipelinesCommissionsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              cardId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              attendantId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              leadId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              earnOn:
                type: string
                enum:
                  - won
                  - contract
                  - first_payment
              baseCents:
                anyOf:
                  - type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  - type: "null"
              commissionType:
                type: string
                enum:
                  - percentage
                  - fixed
              commissionPercentBp:
                anyOf:
                  - type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  - type: "null"
              commissionFixedCents:
                anyOf:
                  - type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  - type: "null"
              amountCents:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              status:
                type: string
                enum:
                  - pending
                  - confirmed
                  - reversed
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - cardId
              - attendantId
              - earnOn
              - commissionType
              - amountCents
              - status
              - createdAt
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    PipelinesHandoffsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              pipelineId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              fromStageId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              toStageId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              assignToRole:
                type: string
                minLength: 1
                maxLength: 32
              checklist:
                type: array
                items:
                  type: string
                  minLength: 1
                  maxLength: 80
              isActive:
                type: boolean
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - pipelineId
              - fromStageId
              - toStageId
              - assignToRole
              - checklist
              - isActive
              - ownerId
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    PipelinesHandoffCreateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        fromStageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        toStageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        assignToRole:
          type: string
          minLength: 1
          maxLength: 32
        checklist:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 80
        isActive:
          type: boolean
      required:
        - id
        - fromStageId
        - toStageId
        - assignToRole
        - checklist
    PipelinesHandoffCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        pipelineId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        fromStageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        toStageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        assignToRole:
          type: string
          minLength: 1
          maxLength: 32
        checklist:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 80
        isActive:
          type: boolean
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - pipelineId
        - fromStageId
        - toStageId
        - assignToRole
        - checklist
        - isActive
        - ownerId
        - createdAt
        - updatedAt
      additionalProperties: false
    PipelinesHandoffUpdateInput:
      type: object
      properties:
        handoffId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        fromStageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        toStageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        assignToRole:
          type: string
          minLength: 1
          maxLength: 32
        checklist:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 80
        isActive:
          type: boolean
      required:
        - handoffId
    PipelinesHandoffUpdateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        pipelineId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        fromStageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        toStageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        assignToRole:
          type: string
          minLength: 1
          maxLength: 32
        checklist:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 80
        isActive:
          type: boolean
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - pipelineId
        - fromStageId
        - toStageId
        - assignToRole
        - checklist
        - isActive
        - ownerId
        - createdAt
        - updatedAt
      additionalProperties: false
    PipelinesHandoffDeleteInput:
      type: object
      properties:
        handoffId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - handoffId
    PipelinesHandoffDeleteOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    PipelinesAttendantRoutingUpdateInput:
      type: object
      properties:
        pipelineId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        attendantId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        weight:
          type: integer
          minimum: 0
          maximum: 10
        cap:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 9007199254740991
            - type: "null"
      required:
        - pipelineId
        - attendantId
    PipelinesAttendantRoutingUpdateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        attendantId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        pipelineId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        weight:
          type: integer
          minimum: 0
          maximum: 10
        cap:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 9007199254740991
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - attendantId
        - pipelineId
        - weight
        - createdAt
      additionalProperties: false
    ProposalTemplatesListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              ownerId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              name:
                type: string
              title:
                type: string
              description:
                anyOf:
                  - type: string
                  - type: "null"
              kind:
                type: string
                enum:
                  - slide_deck
                  - document
                  - pdf
              status:
                type: string
                enum:
                  - draft
                  - active
                  - archived
              position:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              config:
                type: object
                properties:
                  reveal:
                    type: object
                    properties:
                      transition:
                        anyOf:
                          - type: string
                            enum:
                              - none
                          - type: string
                            enum:
                              - fade
                          - type: string
                            enum:
                              - slide
                          - type: string
                            enum:
                              - convex
                          - type: string
                            enum:
                              - concave
                          - type: string
                            enum:
                              - zoom
                      transitionSpeed:
                        anyOf:
                          - type: string
                            enum:
                              - default
                          - type: string
                            enum:
                              - fast
                          - type: string
                            enum:
                              - slow
                      width:
                        type: integer
                        minimum: 320
                        maximum: 4096
                      height:
                        type: integer
                        minimum: 240
                        maximum: 4096
                      controls:
                        type: boolean
                      progress:
                        type: boolean
                    required:
                      - transition
                    additionalProperties: false
                  theme:
                    type: object
                    properties:
                      primaryColor:
                        type: string
                        maxLength: 32
                      bgColor:
                        type: string
                        maxLength: 32
                      font:
                        type: string
                        maxLength: 120
                      logoUrl:
                        type: string
                        maxLength: 2048
                    additionalProperties: false
                  document:
                    type: object
                    properties:
                      variables:
                        type: array
                        items:
                          type: string
                    additionalProperties: false
                  themeCss:
                    type: string
                    maxLength: 20000
                additionalProperties: false
              thumbnailUrl:
                anyOf:
                  - type: string
                  - type: "null"
              documentKey:
                anyOf:
                  - type: string
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              coverHtml:
                anyOf:
                  - type: string
                  - type: "null"
            required:
              - id
              - name
              - title
              - kind
              - status
              - position
              - config
              - createdAt
              - updatedAt
              - coverHtml
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    ProposalTemplatesGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        name:
          type: string
        title:
          type: string
        description:
          anyOf:
            - type: string
            - type: "null"
        kind:
          type: string
          enum:
            - slide_deck
            - document
            - pdf
        status:
          type: string
          enum:
            - draft
            - active
            - archived
        position:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        config:
          type: object
          properties:
            reveal:
              type: object
              properties:
                transition:
                  anyOf:
                    - type: string
                      enum:
                        - none
                    - type: string
                      enum:
                        - fade
                    - type: string
                      enum:
                        - slide
                    - type: string
                      enum:
                        - convex
                    - type: string
                      enum:
                        - concave
                    - type: string
                      enum:
                        - zoom
                transitionSpeed:
                  anyOf:
                    - type: string
                      enum:
                        - default
                    - type: string
                      enum:
                        - fast
                    - type: string
                      enum:
                        - slow
                width:
                  type: integer
                  minimum: 320
                  maximum: 4096
                height:
                  type: integer
                  minimum: 240
                  maximum: 4096
                controls:
                  type: boolean
                progress:
                  type: boolean
              required:
                - transition
              additionalProperties: false
            theme:
              type: object
              properties:
                primaryColor:
                  type: string
                  maxLength: 32
                bgColor:
                  type: string
                  maxLength: 32
                font:
                  type: string
                  maxLength: 120
                logoUrl:
                  type: string
                  maxLength: 2048
              additionalProperties: false
            document:
              type: object
              properties:
                variables:
                  type: array
                  items:
                    type: string
              additionalProperties: false
            themeCss:
              type: string
              maxLength: 20000
          additionalProperties: false
        thumbnailUrl:
          anyOf:
            - type: string
            - type: "null"
        documentKey:
          anyOf:
            - type: string
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        pages:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              ownerId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              templateId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              position:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              name:
                anyOf:
                  - type: string
                  - type: "null"
              transition:
                anyOf:
                  - type: string
                  - type: "null"
              source:
                type: object
                propertyNames:
                  type: string
                additionalProperties: {}
              compiledHtml:
                type: string
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - templateId
              - position
              - source
              - compiledHtml
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - id
        - name
        - title
        - kind
        - status
        - position
        - config
        - createdAt
        - updatedAt
        - pages
      additionalProperties: false
    ProposalTemplatesCreateInput:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
        title:
          type: string
          maxLength: 255
        description:
          anyOf:
            - type: string
            - type: "null"
        kind:
          type: string
          enum:
            - slide_deck
            - document
            - pdf
        status:
          type: string
          enum:
            - draft
            - active
            - archived
        config:
          type: object
          properties:
            reveal:
              type: object
              properties:
                transition:
                  anyOf:
                    - type: string
                      enum:
                        - none
                    - type: string
                      enum:
                        - fade
                    - type: string
                      enum:
                        - slide
                    - type: string
                      enum:
                        - convex
                    - type: string
                      enum:
                        - concave
                    - type: string
                      enum:
                        - zoom
                transitionSpeed:
                  anyOf:
                    - type: string
                      enum:
                        - default
                    - type: string
                      enum:
                        - fast
                    - type: string
                      enum:
                        - slow
                width:
                  type: integer
                  minimum: 320
                  maximum: 4096
                height:
                  type: integer
                  minimum: 240
                  maximum: 4096
                controls:
                  type: boolean
                progress:
                  type: boolean
              required:
                - transition
            theme:
              type: object
              properties:
                primaryColor:
                  type: string
                  maxLength: 32
                bgColor:
                  type: string
                  maxLength: 32
                font:
                  type: string
                  maxLength: 120
                logoUrl:
                  type: string
                  maxLength: 2048
            document:
              type: object
              properties:
                variables:
                  type: array
                  items:
                    type: string
            themeCss:
              type: string
              maxLength: 20000
        thumbnailUrl:
          anyOf:
            - type: string
            - type: "null"
        documentKey:
          anyOf:
            - type: string
            - type: "null"
      required:
        - name
    ProposalTemplatesCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        name:
          type: string
        title:
          type: string
        description:
          anyOf:
            - type: string
            - type: "null"
        kind:
          type: string
          enum:
            - slide_deck
            - document
            - pdf
        status:
          type: string
          enum:
            - draft
            - active
            - archived
        position:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        config:
          type: object
          properties:
            reveal:
              type: object
              properties:
                transition:
                  anyOf:
                    - type: string
                      enum:
                        - none
                    - type: string
                      enum:
                        - fade
                    - type: string
                      enum:
                        - slide
                    - type: string
                      enum:
                        - convex
                    - type: string
                      enum:
                        - concave
                    - type: string
                      enum:
                        - zoom
                transitionSpeed:
                  anyOf:
                    - type: string
                      enum:
                        - default
                    - type: string
                      enum:
                        - fast
                    - type: string
                      enum:
                        - slow
                width:
                  type: integer
                  minimum: 320
                  maximum: 4096
                height:
                  type: integer
                  minimum: 240
                  maximum: 4096
                controls:
                  type: boolean
                progress:
                  type: boolean
              required:
                - transition
              additionalProperties: false
            theme:
              type: object
              properties:
                primaryColor:
                  type: string
                  maxLength: 32
                bgColor:
                  type: string
                  maxLength: 32
                font:
                  type: string
                  maxLength: 120
                logoUrl:
                  type: string
                  maxLength: 2048
              additionalProperties: false
            document:
              type: object
              properties:
                variables:
                  type: array
                  items:
                    type: string
              additionalProperties: false
            themeCss:
              type: string
              maxLength: 20000
          additionalProperties: false
        thumbnailUrl:
          anyOf:
            - type: string
            - type: "null"
        documentKey:
          anyOf:
            - type: string
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        pages:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              ownerId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              templateId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              position:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              name:
                anyOf:
                  - type: string
                  - type: "null"
              transition:
                anyOf:
                  - type: string
                  - type: "null"
              source:
                type: object
                propertyNames:
                  type: string
                additionalProperties: {}
              compiledHtml:
                type: string
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - templateId
              - position
              - source
              - compiledHtml
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - id
        - name
        - title
        - kind
        - status
        - position
        - config
        - createdAt
        - updatedAt
        - pages
      additionalProperties: false
    ProposalTemplatesUpdateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          minLength: 1
          maxLength: 255
        title:
          type: string
          maxLength: 255
        description:
          anyOf:
            - type: string
            - type: "null"
        kind:
          type: string
          enum:
            - slide_deck
            - document
            - pdf
        status:
          type: string
          enum:
            - draft
            - active
            - archived
        config:
          type: object
          properties:
            reveal:
              type: object
              properties:
                transition:
                  anyOf:
                    - type: string
                      enum:
                        - none
                    - type: string
                      enum:
                        - fade
                    - type: string
                      enum:
                        - slide
                    - type: string
                      enum:
                        - convex
                    - type: string
                      enum:
                        - concave
                    - type: string
                      enum:
                        - zoom
                transitionSpeed:
                  anyOf:
                    - type: string
                      enum:
                        - default
                    - type: string
                      enum:
                        - fast
                    - type: string
                      enum:
                        - slow
                width:
                  type: integer
                  minimum: 320
                  maximum: 4096
                height:
                  type: integer
                  minimum: 240
                  maximum: 4096
                controls:
                  type: boolean
                progress:
                  type: boolean
              required:
                - transition
            theme:
              type: object
              properties:
                primaryColor:
                  type: string
                  maxLength: 32
                bgColor:
                  type: string
                  maxLength: 32
                font:
                  type: string
                  maxLength: 120
                logoUrl:
                  type: string
                  maxLength: 2048
            document:
              type: object
              properties:
                variables:
                  type: array
                  items:
                    type: string
            themeCss:
              type: string
              maxLength: 20000
        thumbnailUrl:
          anyOf:
            - type: string
            - type: "null"
        documentKey:
          anyOf:
            - type: string
            - type: "null"
        expectedUpdatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
    ProposalTemplatesUpdateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        name:
          type: string
        title:
          type: string
        description:
          anyOf:
            - type: string
            - type: "null"
        kind:
          type: string
          enum:
            - slide_deck
            - document
            - pdf
        status:
          type: string
          enum:
            - draft
            - active
            - archived
        position:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        config:
          type: object
          properties:
            reveal:
              type: object
              properties:
                transition:
                  anyOf:
                    - type: string
                      enum:
                        - none
                    - type: string
                      enum:
                        - fade
                    - type: string
                      enum:
                        - slide
                    - type: string
                      enum:
                        - convex
                    - type: string
                      enum:
                        - concave
                    - type: string
                      enum:
                        - zoom
                transitionSpeed:
                  anyOf:
                    - type: string
                      enum:
                        - default
                    - type: string
                      enum:
                        - fast
                    - type: string
                      enum:
                        - slow
                width:
                  type: integer
                  minimum: 320
                  maximum: 4096
                height:
                  type: integer
                  minimum: 240
                  maximum: 4096
                controls:
                  type: boolean
                progress:
                  type: boolean
              required:
                - transition
              additionalProperties: false
            theme:
              type: object
              properties:
                primaryColor:
                  type: string
                  maxLength: 32
                bgColor:
                  type: string
                  maxLength: 32
                font:
                  type: string
                  maxLength: 120
                logoUrl:
                  type: string
                  maxLength: 2048
              additionalProperties: false
            document:
              type: object
              properties:
                variables:
                  type: array
                  items:
                    type: string
              additionalProperties: false
            themeCss:
              type: string
              maxLength: 20000
          additionalProperties: false
        thumbnailUrl:
          anyOf:
            - type: string
            - type: "null"
        documentKey:
          anyOf:
            - type: string
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        pages:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              ownerId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              templateId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              position:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              name:
                anyOf:
                  - type: string
                  - type: "null"
              transition:
                anyOf:
                  - type: string
                  - type: "null"
              source:
                type: object
                propertyNames:
                  type: string
                additionalProperties: {}
              compiledHtml:
                type: string
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - templateId
              - position
              - source
              - compiledHtml
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - id
        - name
        - title
        - kind
        - status
        - position
        - config
        - createdAt
        - updatedAt
        - pages
      additionalProperties: false
    ProposalTemplatesPageUpsertInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        pageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        position:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        source:
          type: object
          propertyNames:
            type: string
          additionalProperties: {}
        compiledHtml:
          type: string
        transition:
          anyOf:
            - type: string
              maxLength: 16
            - type: "null"
      required:
        - id
    ProposalTemplatesPageUpsertOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        name:
          type: string
        title:
          type: string
        description:
          anyOf:
            - type: string
            - type: "null"
        kind:
          type: string
          enum:
            - slide_deck
            - document
            - pdf
        status:
          type: string
          enum:
            - draft
            - active
            - archived
        position:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        config:
          type: object
          properties:
            reveal:
              type: object
              properties:
                transition:
                  anyOf:
                    - type: string
                      enum:
                        - none
                    - type: string
                      enum:
                        - fade
                    - type: string
                      enum:
                        - slide
                    - type: string
                      enum:
                        - convex
                    - type: string
                      enum:
                        - concave
                    - type: string
                      enum:
                        - zoom
                transitionSpeed:
                  anyOf:
                    - type: string
                      enum:
                        - default
                    - type: string
                      enum:
                        - fast
                    - type: string
                      enum:
                        - slow
                width:
                  type: integer
                  minimum: 320
                  maximum: 4096
                height:
                  type: integer
                  minimum: 240
                  maximum: 4096
                controls:
                  type: boolean
                progress:
                  type: boolean
              required:
                - transition
              additionalProperties: false
            theme:
              type: object
              properties:
                primaryColor:
                  type: string
                  maxLength: 32
                bgColor:
                  type: string
                  maxLength: 32
                font:
                  type: string
                  maxLength: 120
                logoUrl:
                  type: string
                  maxLength: 2048
              additionalProperties: false
            document:
              type: object
              properties:
                variables:
                  type: array
                  items:
                    type: string
              additionalProperties: false
            themeCss:
              type: string
              maxLength: 20000
          additionalProperties: false
        thumbnailUrl:
          anyOf:
            - type: string
            - type: "null"
        documentKey:
          anyOf:
            - type: string
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        pages:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              ownerId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              templateId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              position:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              name:
                anyOf:
                  - type: string
                  - type: "null"
              transition:
                anyOf:
                  - type: string
                  - type: "null"
              source:
                type: object
                propertyNames:
                  type: string
                additionalProperties: {}
              compiledHtml:
                type: string
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - templateId
              - position
              - source
              - compiledHtml
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - id
        - name
        - title
        - kind
        - status
        - position
        - config
        - createdAt
        - updatedAt
        - pages
      additionalProperties: false
    ProposalTemplatesDeleteInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    ProposalTemplatesDeleteOutput:
      type: object
      properties:
        ok:
          type: boolean
      required:
        - ok
      additionalProperties: false
    ProposalsConsolidateInput:
      type: object
      properties:
        templateId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        opportunityId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        leadId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        title:
          type: string
          maxLength: 255
      required:
        - templateId
    ProposalsConsolidateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        templateId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        kind:
          type: string
          enum:
            - slide_deck
            - document
            - pdf
        opportunityId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        leadId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        title:
          type: string
        slug:
          type: string
        status:
          type: string
          enum:
            - draft
            - sent
            - viewed
            - accepted
            - rejected
            - expired
        variables:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            type: string
        publishedUrl:
          anyOf:
            - type: string
            - type: "null"
        documentKey:
          anyOf:
            - type: string
            - type: "null"
        publishedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        viewedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        acceptedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        expiresAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - ownerId
        - kind
        - title
        - slug
        - status
        - variables
        - createdAt
        - updatedAt
      additionalProperties: false
    ProposalsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              templateId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              kind:
                type: string
                enum:
                  - slide_deck
                  - document
                  - pdf
              opportunityId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              leadId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              title:
                type: string
              slug:
                type: string
              status:
                type: string
                enum:
                  - draft
                  - sent
                  - viewed
                  - accepted
                  - rejected
                  - expired
              variables:
                type: object
                propertyNames:
                  type: string
                additionalProperties:
                  type: string
              publishedUrl:
                anyOf:
                  - type: string
                  - type: "null"
              documentKey:
                anyOf:
                  - type: string
                  - type: "null"
              publishedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              viewedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              acceptedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              expiresAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              leadName:
                anyOf:
                  - type: string
                  - type: "null"
              opportunityTitle:
                anyOf:
                  - type: string
                  - type: "null"
              opportunityValue:
                anyOf:
                  - type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  - type: "null"
              templateName:
                anyOf:
                  - type: string
                  - type: "null"
            required:
              - id
              - ownerId
              - kind
              - title
              - slug
              - status
              - variables
              - createdAt
              - updatedAt
              - leadName
              - opportunityTitle
              - opportunityValue
              - templateName
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    ProposalsGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        templateId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        kind:
          type: string
          enum:
            - slide_deck
            - document
            - pdf
        opportunityId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        leadId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        title:
          type: string
        slug:
          type: string
        status:
          type: string
          enum:
            - draft
            - sent
            - viewed
            - accepted
            - rejected
            - expired
        variables:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            type: string
        publishedUrl:
          anyOf:
            - type: string
            - type: "null"
        documentKey:
          anyOf:
            - type: string
            - type: "null"
        publishedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        viewedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        acceptedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        expiresAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - ownerId
        - kind
        - title
        - slug
        - status
        - variables
        - createdAt
        - updatedAt
      additionalProperties: false
    ScheduledCallsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              leadId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              attendantId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              createdByAttendantId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              opportunityCardId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              appointmentScheduleId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              subject:
                anyOf:
                  - type: string
                  - type: "null"
              meetingLink:
                anyOf:
                  - type: string
                  - type: "null"
              meetRoomCode:
                anyOf:
                  - type: string
                  - type: "null"
              startAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              endAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              status:
                type: string
                enum:
                  - scheduled
                  - confirmed
                  - completed
                  - cancelled
                  - no_show
              notes:
                anyOf:
                  - type: string
                  - type: "null"
              attachmentUrl:
                anyOf:
                  - type: string
                    pattern: ^https:\/\/.+$
                  - type: "null"
              attachmentName:
                anyOf:
                  - type: string
                  - type: "null"
              cancellationReason:
                anyOf:
                  - type: string
                  - type: "null"
              bufferMinutes:
                type: number
              reminderSentAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              externalEventId:
                anyOf:
                  - type: string
                  - type: "null"
              leadJoinedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              recordingStatus:
                anyOf:
                  - anyOf:
                      - type: string
                        const: recording
                      - type: string
                        const: processing
                      - type: string
                        const: ready
                      - type: string
                        const: failed
                      - type: "null"
                        const: null
                  - type: "null"
              recordingUrl:
                anyOf:
                  - type: string
                    pattern: ^https:\/\/.+$
                  - type: "null"
              recordingDurationSeconds:
                anyOf:
                  - type: number
                  - type: "null"
              recordingFailureReason:
                anyOf:
                  - type: string
                  - type: "null"
              recordingHasVideo:
                type: boolean
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              recordingInsights:
                anyOf:
                  - type: object
                    properties:
                      attendantTalkSeconds:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      participantsTalkSeconds:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      overlapSeconds:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      silenceSeconds:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      attendantTalkRatio:
                        type: number
                        minimum: 0
                        maximum: 1
                      longestAttendantMonologueSeconds:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      longestParticipantsMonologueSeconds:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      firstSpeaker:
                        anyOf:
                          - anyOf:
                              - type: string
                                const: attendant
                              - type: string
                                const: participants
                              - type: "null"
                                const: null
                          - type: "null"
                      lastSpeaker:
                        anyOf:
                          - anyOf:
                              - type: string
                                const: attendant
                              - type: string
                                const: participants
                              - type: "null"
                                const: null
                          - type: "null"
                      timeline:
                        maxItems: 60000
                        type: array
                        items:
                          type: object
                          properties:
                            s:
                              type: number
                              minimum: 0
                            e:
                              type: number
                              minimum: 0
                            who:
                              type: string
                              enum:
                                - attendant
                                - participants
                                - both
                          required:
                            - s
                            - e
                            - who
                          additionalProperties: false
                      sampleMs:
                        type: integer
                        minimum: 1
                        maximum: 10000
                      silenceThreshold:
                        type: number
                        minimum: 0
                        maximum: 1
                      id:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      scheduledCallId:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      source:
                        type: string
                        enum:
                          - extension
                          - meet
                      version:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      createdAt:
                        type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      updatedAt:
                        type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    required:
                      - attendantTalkSeconds
                      - participantsTalkSeconds
                      - overlapSeconds
                      - silenceSeconds
                      - attendantTalkRatio
                      - longestAttendantMonologueSeconds
                      - longestParticipantsMonologueSeconds
                      - timeline
                      - sampleMs
                      - silenceThreshold
                      - id
                      - scheduledCallId
                      - source
                      - version
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                  - type: "null"
              meetSummary:
                anyOf:
                  - type: object
                    properties:
                      summary:
                        type: string
                      keyPoints:
                        type: array
                        items:
                          type: string
                      tasks:
                        type: array
                        items:
                          type: object
                          properties:
                            atMs:
                              type: number
                            text:
                              type: string
                            assigneeName:
                              anyOf:
                                - type: string
                                - type: "null"
                          required:
                            - atMs
                            - text
                          additionalProperties: false
                      chapters:
                        type: array
                        items:
                          type: object
                          properties:
                            atMs:
                              type: number
                            title:
                              type: string
                          required:
                            - atMs
                            - title
                          additionalProperties: false
                      generatedAt:
                        type: string
                    required:
                      - summary
                      - keyPoints
                      - tasks
                      - chapters
                      - generatedAt
                    additionalProperties: false
                  - type: "null"
              leadName:
                anyOf:
                  - type: string
                  - type: "null"
              leadEmail:
                anyOf:
                  - type: string
                  - type: "null"
              leadPhone:
                anyOf:
                  - type: string
                  - type: "null"
              attendantName:
                anyOf:
                  - type: string
                  - type: "null"
              createdByAttendantName:
                anyOf:
                  - type: string
                  - type: "null"
              playbookId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              playbookName:
                anyOf:
                  - type: string
                  - type: "null"
              copilotAgentName:
                anyOf:
                  - type: string
                  - type: "null"
              appointmentScheduleName:
                anyOf:
                  - type: string
                  - type: "null"
              appointmentScheduleColor:
                anyOf:
                  - type: string
                  - type: "null"
              opportunityPipelineName:
                anyOf:
                  - type: string
                  - type: "null"
              opportunityCardTitle:
                anyOf:
                  - type: string
                  - type: "null"
            required:
              - id
              - startAt
              - endAt
              - status
              - bufferMinutes
              - recordingHasVideo
              - ownerId
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    ScheduledCallsGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        leadId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        attendantId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        createdByAttendantId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        opportunityCardId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        appointmentScheduleId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        subject:
          anyOf:
            - type: string
            - type: "null"
        meetingLink:
          anyOf:
            - type: string
            - type: "null"
        meetRoomCode:
          anyOf:
            - type: string
            - type: "null"
        startAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        endAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        status:
          type: string
          enum:
            - scheduled
            - confirmed
            - completed
            - cancelled
            - no_show
        notes:
          anyOf:
            - type: string
            - type: "null"
        attachmentUrl:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        attachmentName:
          anyOf:
            - type: string
            - type: "null"
        cancellationReason:
          anyOf:
            - type: string
            - type: "null"
        bufferMinutes:
          type: number
        reminderSentAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        externalEventId:
          anyOf:
            - type: string
            - type: "null"
        leadJoinedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        recordingStatus:
          anyOf:
            - anyOf:
                - type: string
                  const: recording
                - type: string
                  const: processing
                - type: string
                  const: ready
                - type: string
                  const: failed
                - type: "null"
                  const: null
            - type: "null"
        recordingUrl:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        recordingDurationSeconds:
          anyOf:
            - type: number
            - type: "null"
        recordingFailureReason:
          anyOf:
            - type: string
            - type: "null"
        recordingHasVideo:
          type: boolean
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        recordingInsights:
          anyOf:
            - type: object
              properties:
                attendantTalkSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                participantsTalkSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                overlapSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                silenceSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                attendantTalkRatio:
                  type: number
                  minimum: 0
                  maximum: 1
                longestAttendantMonologueSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                longestParticipantsMonologueSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                firstSpeaker:
                  anyOf:
                    - anyOf:
                        - type: string
                          const: attendant
                        - type: string
                          const: participants
                        - type: "null"
                          const: null
                    - type: "null"
                lastSpeaker:
                  anyOf:
                    - anyOf:
                        - type: string
                          const: attendant
                        - type: string
                          const: participants
                        - type: "null"
                          const: null
                    - type: "null"
                timeline:
                  maxItems: 60000
                  type: array
                  items:
                    type: object
                    properties:
                      s:
                        type: number
                        minimum: 0
                      e:
                        type: number
                        minimum: 0
                      who:
                        type: string
                        enum:
                          - attendant
                          - participants
                          - both
                    required:
                      - s
                      - e
                      - who
                    additionalProperties: false
                sampleMs:
                  type: integer
                  minimum: 1
                  maximum: 10000
                silenceThreshold:
                  type: number
                  minimum: 0
                  maximum: 1
                id:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                scheduledCallId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                source:
                  type: string
                  enum:
                    - extension
                    - meet
                version:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                createdAt:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                updatedAt:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              required:
                - attendantTalkSeconds
                - participantsTalkSeconds
                - overlapSeconds
                - silenceSeconds
                - attendantTalkRatio
                - longestAttendantMonologueSeconds
                - longestParticipantsMonologueSeconds
                - timeline
                - sampleMs
                - silenceThreshold
                - id
                - scheduledCallId
                - source
                - version
                - createdAt
                - updatedAt
              additionalProperties: false
            - type: "null"
        meetSummary:
          anyOf:
            - type: object
              properties:
                summary:
                  type: string
                keyPoints:
                  type: array
                  items:
                    type: string
                tasks:
                  type: array
                  items:
                    type: object
                    properties:
                      atMs:
                        type: number
                      text:
                        type: string
                      assigneeName:
                        anyOf:
                          - type: string
                          - type: "null"
                    required:
                      - atMs
                      - text
                    additionalProperties: false
                chapters:
                  type: array
                  items:
                    type: object
                    properties:
                      atMs:
                        type: number
                      title:
                        type: string
                    required:
                      - atMs
                      - title
                    additionalProperties: false
                generatedAt:
                  type: string
              required:
                - summary
                - keyPoints
                - tasks
                - chapters
                - generatedAt
              additionalProperties: false
            - type: "null"
        leadName:
          anyOf:
            - type: string
            - type: "null"
        leadEmail:
          anyOf:
            - type: string
            - type: "null"
        leadPhone:
          anyOf:
            - type: string
            - type: "null"
        attendantName:
          anyOf:
            - type: string
            - type: "null"
        createdByAttendantName:
          anyOf:
            - type: string
            - type: "null"
        playbookId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        playbookName:
          anyOf:
            - type: string
            - type: "null"
        copilotAgentName:
          anyOf:
            - type: string
            - type: "null"
        appointmentScheduleName:
          anyOf:
            - type: string
            - type: "null"
        appointmentScheduleColor:
          anyOf:
            - type: string
            - type: "null"
        opportunityPipelineName:
          anyOf:
            - type: string
            - type: "null"
        opportunityCardTitle:
          anyOf:
            - type: string
            - type: "null"
      required:
        - id
        - startAt
        - endAt
        - status
        - bufferMinutes
        - recordingHasVideo
        - ownerId
        - createdAt
        - updatedAt
      additionalProperties: false
    ScheduledCallsCreateInput:
      type: object
      properties:
        leadId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        attendantId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        memberId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        opportunityCardId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        appointmentScheduleId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        subject:
          type: string
        meetingLink:
          type: string
        startAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        endAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        notes:
          type: string
        attachmentUrl:
          type: string
          pattern: ^https:\/\/.+$
        attachmentName:
          type: string
        bufferMinutes:
          type: number
        linkAttendantToPipeline:
          type: boolean
        allowOutsideAvailability:
          type: boolean
        allowConflict:
          type: boolean
      required:
        - leadId
        - startAt
        - endAt
    ScheduledCallsCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        leadId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        attendantId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        createdByAttendantId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        opportunityCardId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        appointmentScheduleId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        subject:
          anyOf:
            - type: string
            - type: "null"
        meetingLink:
          anyOf:
            - type: string
            - type: "null"
        meetRoomCode:
          anyOf:
            - type: string
            - type: "null"
        startAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        endAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        status:
          type: string
          enum:
            - scheduled
            - confirmed
            - completed
            - cancelled
            - no_show
        notes:
          anyOf:
            - type: string
            - type: "null"
        attachmentUrl:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        attachmentName:
          anyOf:
            - type: string
            - type: "null"
        cancellationReason:
          anyOf:
            - type: string
            - type: "null"
        bufferMinutes:
          type: number
        reminderSentAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        externalEventId:
          anyOf:
            - type: string
            - type: "null"
        leadJoinedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        recordingStatus:
          anyOf:
            - anyOf:
                - type: string
                  const: recording
                - type: string
                  const: processing
                - type: string
                  const: ready
                - type: string
                  const: failed
                - type: "null"
                  const: null
            - type: "null"
        recordingUrl:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        recordingDurationSeconds:
          anyOf:
            - type: number
            - type: "null"
        recordingFailureReason:
          anyOf:
            - type: string
            - type: "null"
        recordingHasVideo:
          type: boolean
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        recordingInsights:
          anyOf:
            - type: object
              properties:
                attendantTalkSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                participantsTalkSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                overlapSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                silenceSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                attendantTalkRatio:
                  type: number
                  minimum: 0
                  maximum: 1
                longestAttendantMonologueSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                longestParticipantsMonologueSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                firstSpeaker:
                  anyOf:
                    - anyOf:
                        - type: string
                          const: attendant
                        - type: string
                          const: participants
                        - type: "null"
                          const: null
                    - type: "null"
                lastSpeaker:
                  anyOf:
                    - anyOf:
                        - type: string
                          const: attendant
                        - type: string
                          const: participants
                        - type: "null"
                          const: null
                    - type: "null"
                timeline:
                  maxItems: 60000
                  type: array
                  items:
                    type: object
                    properties:
                      s:
                        type: number
                        minimum: 0
                      e:
                        type: number
                        minimum: 0
                      who:
                        type: string
                        enum:
                          - attendant
                          - participants
                          - both
                    required:
                      - s
                      - e
                      - who
                    additionalProperties: false
                sampleMs:
                  type: integer
                  minimum: 1
                  maximum: 10000
                silenceThreshold:
                  type: number
                  minimum: 0
                  maximum: 1
                id:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                scheduledCallId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                source:
                  type: string
                  enum:
                    - extension
                    - meet
                version:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                createdAt:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                updatedAt:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              required:
                - attendantTalkSeconds
                - participantsTalkSeconds
                - overlapSeconds
                - silenceSeconds
                - attendantTalkRatio
                - longestAttendantMonologueSeconds
                - longestParticipantsMonologueSeconds
                - timeline
                - sampleMs
                - silenceThreshold
                - id
                - scheduledCallId
                - source
                - version
                - createdAt
                - updatedAt
              additionalProperties: false
            - type: "null"
        meetSummary:
          anyOf:
            - type: object
              properties:
                summary:
                  type: string
                keyPoints:
                  type: array
                  items:
                    type: string
                tasks:
                  type: array
                  items:
                    type: object
                    properties:
                      atMs:
                        type: number
                      text:
                        type: string
                      assigneeName:
                        anyOf:
                          - type: string
                          - type: "null"
                    required:
                      - atMs
                      - text
                    additionalProperties: false
                chapters:
                  type: array
                  items:
                    type: object
                    properties:
                      atMs:
                        type: number
                      title:
                        type: string
                    required:
                      - atMs
                      - title
                    additionalProperties: false
                generatedAt:
                  type: string
              required:
                - summary
                - keyPoints
                - tasks
                - chapters
                - generatedAt
              additionalProperties: false
            - type: "null"
        leadName:
          anyOf:
            - type: string
            - type: "null"
        leadEmail:
          anyOf:
            - type: string
            - type: "null"
        leadPhone:
          anyOf:
            - type: string
            - type: "null"
        attendantName:
          anyOf:
            - type: string
            - type: "null"
        createdByAttendantName:
          anyOf:
            - type: string
            - type: "null"
        playbookId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        playbookName:
          anyOf:
            - type: string
            - type: "null"
        copilotAgentName:
          anyOf:
            - type: string
            - type: "null"
        appointmentScheduleName:
          anyOf:
            - type: string
            - type: "null"
        appointmentScheduleColor:
          anyOf:
            - type: string
            - type: "null"
        opportunityPipelineName:
          anyOf:
            - type: string
            - type: "null"
        opportunityCardTitle:
          anyOf:
            - type: string
            - type: "null"
      required:
        - id
        - startAt
        - endAt
        - status
        - bufferMinutes
        - recordingHasVideo
        - ownerId
        - createdAt
        - updatedAt
      additionalProperties: false
    ScheduledCallsUpdateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        subject:
          anyOf:
            - type: string
            - type: "null"
        meetingLink:
          anyOf:
            - type: string
            - type: "null"
        startAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        endAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        status:
          type: string
          enum:
            - scheduled
            - confirmed
            - completed
            - cancelled
            - no_show
        notes:
          anyOf:
            - type: string
            - type: "null"
        attachmentUrl:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        attachmentName:
          anyOf:
            - type: string
            - type: "null"
        appointmentScheduleId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        opportunityCardId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        allowOutsideAvailability:
          type: boolean
      required:
        - id
    ScheduledCallsUpdateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        leadId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        attendantId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        createdByAttendantId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        opportunityCardId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        appointmentScheduleId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        subject:
          anyOf:
            - type: string
            - type: "null"
        meetingLink:
          anyOf:
            - type: string
            - type: "null"
        meetRoomCode:
          anyOf:
            - type: string
            - type: "null"
        startAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        endAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        status:
          type: string
          enum:
            - scheduled
            - confirmed
            - completed
            - cancelled
            - no_show
        notes:
          anyOf:
            - type: string
            - type: "null"
        attachmentUrl:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        attachmentName:
          anyOf:
            - type: string
            - type: "null"
        cancellationReason:
          anyOf:
            - type: string
            - type: "null"
        bufferMinutes:
          type: number
        reminderSentAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        externalEventId:
          anyOf:
            - type: string
            - type: "null"
        leadJoinedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        recordingStatus:
          anyOf:
            - anyOf:
                - type: string
                  const: recording
                - type: string
                  const: processing
                - type: string
                  const: ready
                - type: string
                  const: failed
                - type: "null"
                  const: null
            - type: "null"
        recordingUrl:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        recordingDurationSeconds:
          anyOf:
            - type: number
            - type: "null"
        recordingFailureReason:
          anyOf:
            - type: string
            - type: "null"
        recordingHasVideo:
          type: boolean
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        recordingInsights:
          anyOf:
            - type: object
              properties:
                attendantTalkSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                participantsTalkSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                overlapSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                silenceSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                attendantTalkRatio:
                  type: number
                  minimum: 0
                  maximum: 1
                longestAttendantMonologueSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                longestParticipantsMonologueSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                firstSpeaker:
                  anyOf:
                    - anyOf:
                        - type: string
                          const: attendant
                        - type: string
                          const: participants
                        - type: "null"
                          const: null
                    - type: "null"
                lastSpeaker:
                  anyOf:
                    - anyOf:
                        - type: string
                          const: attendant
                        - type: string
                          const: participants
                        - type: "null"
                          const: null
                    - type: "null"
                timeline:
                  maxItems: 60000
                  type: array
                  items:
                    type: object
                    properties:
                      s:
                        type: number
                        minimum: 0
                      e:
                        type: number
                        minimum: 0
                      who:
                        type: string
                        enum:
                          - attendant
                          - participants
                          - both
                    required:
                      - s
                      - e
                      - who
                    additionalProperties: false
                sampleMs:
                  type: integer
                  minimum: 1
                  maximum: 10000
                silenceThreshold:
                  type: number
                  minimum: 0
                  maximum: 1
                id:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                scheduledCallId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                source:
                  type: string
                  enum:
                    - extension
                    - meet
                version:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                createdAt:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                updatedAt:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              required:
                - attendantTalkSeconds
                - participantsTalkSeconds
                - overlapSeconds
                - silenceSeconds
                - attendantTalkRatio
                - longestAttendantMonologueSeconds
                - longestParticipantsMonologueSeconds
                - timeline
                - sampleMs
                - silenceThreshold
                - id
                - scheduledCallId
                - source
                - version
                - createdAt
                - updatedAt
              additionalProperties: false
            - type: "null"
        meetSummary:
          anyOf:
            - type: object
              properties:
                summary:
                  type: string
                keyPoints:
                  type: array
                  items:
                    type: string
                tasks:
                  type: array
                  items:
                    type: object
                    properties:
                      atMs:
                        type: number
                      text:
                        type: string
                      assigneeName:
                        anyOf:
                          - type: string
                          - type: "null"
                    required:
                      - atMs
                      - text
                    additionalProperties: false
                chapters:
                  type: array
                  items:
                    type: object
                    properties:
                      atMs:
                        type: number
                      title:
                        type: string
                    required:
                      - atMs
                      - title
                    additionalProperties: false
                generatedAt:
                  type: string
              required:
                - summary
                - keyPoints
                - tasks
                - chapters
                - generatedAt
              additionalProperties: false
            - type: "null"
        leadName:
          anyOf:
            - type: string
            - type: "null"
        leadEmail:
          anyOf:
            - type: string
            - type: "null"
        leadPhone:
          anyOf:
            - type: string
            - type: "null"
        attendantName:
          anyOf:
            - type: string
            - type: "null"
        createdByAttendantName:
          anyOf:
            - type: string
            - type: "null"
        playbookId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        playbookName:
          anyOf:
            - type: string
            - type: "null"
        copilotAgentName:
          anyOf:
            - type: string
            - type: "null"
        appointmentScheduleName:
          anyOf:
            - type: string
            - type: "null"
        appointmentScheduleColor:
          anyOf:
            - type: string
            - type: "null"
        opportunityPipelineName:
          anyOf:
            - type: string
            - type: "null"
        opportunityCardTitle:
          anyOf:
            - type: string
            - type: "null"
      required:
        - id
        - startAt
        - endAt
        - status
        - bufferMinutes
        - recordingHasVideo
        - ownerId
        - createdAt
        - updatedAt
      additionalProperties: false
    ScheduledCallsCancelInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        reason:
          type: string
          maxLength: 500
      required:
        - id
    ScheduledCallsCancelOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        leadId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        attendantId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        createdByAttendantId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        opportunityCardId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        appointmentScheduleId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        subject:
          anyOf:
            - type: string
            - type: "null"
        meetingLink:
          anyOf:
            - type: string
            - type: "null"
        meetRoomCode:
          anyOf:
            - type: string
            - type: "null"
        startAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        endAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        status:
          type: string
          enum:
            - scheduled
            - confirmed
            - completed
            - cancelled
            - no_show
        notes:
          anyOf:
            - type: string
            - type: "null"
        attachmentUrl:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        attachmentName:
          anyOf:
            - type: string
            - type: "null"
        cancellationReason:
          anyOf:
            - type: string
            - type: "null"
        bufferMinutes:
          type: number
        reminderSentAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        externalEventId:
          anyOf:
            - type: string
            - type: "null"
        leadJoinedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        recordingStatus:
          anyOf:
            - anyOf:
                - type: string
                  const: recording
                - type: string
                  const: processing
                - type: string
                  const: ready
                - type: string
                  const: failed
                - type: "null"
                  const: null
            - type: "null"
        recordingUrl:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        recordingDurationSeconds:
          anyOf:
            - type: number
            - type: "null"
        recordingFailureReason:
          anyOf:
            - type: string
            - type: "null"
        recordingHasVideo:
          type: boolean
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        recordingInsights:
          anyOf:
            - type: object
              properties:
                attendantTalkSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                participantsTalkSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                overlapSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                silenceSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                attendantTalkRatio:
                  type: number
                  minimum: 0
                  maximum: 1
                longestAttendantMonologueSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                longestParticipantsMonologueSeconds:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                firstSpeaker:
                  anyOf:
                    - anyOf:
                        - type: string
                          const: attendant
                        - type: string
                          const: participants
                        - type: "null"
                          const: null
                    - type: "null"
                lastSpeaker:
                  anyOf:
                    - anyOf:
                        - type: string
                          const: attendant
                        - type: string
                          const: participants
                        - type: "null"
                          const: null
                    - type: "null"
                timeline:
                  maxItems: 60000
                  type: array
                  items:
                    type: object
                    properties:
                      s:
                        type: number
                        minimum: 0
                      e:
                        type: number
                        minimum: 0
                      who:
                        type: string
                        enum:
                          - attendant
                          - participants
                          - both
                    required:
                      - s
                      - e
                      - who
                    additionalProperties: false
                sampleMs:
                  type: integer
                  minimum: 1
                  maximum: 10000
                silenceThreshold:
                  type: number
                  minimum: 0
                  maximum: 1
                id:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                scheduledCallId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                source:
                  type: string
                  enum:
                    - extension
                    - meet
                version:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                createdAt:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                updatedAt:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              required:
                - attendantTalkSeconds
                - participantsTalkSeconds
                - overlapSeconds
                - silenceSeconds
                - attendantTalkRatio
                - longestAttendantMonologueSeconds
                - longestParticipantsMonologueSeconds
                - timeline
                - sampleMs
                - silenceThreshold
                - id
                - scheduledCallId
                - source
                - version
                - createdAt
                - updatedAt
              additionalProperties: false
            - type: "null"
        meetSummary:
          anyOf:
            - type: object
              properties:
                summary:
                  type: string
                keyPoints:
                  type: array
                  items:
                    type: string
                tasks:
                  type: array
                  items:
                    type: object
                    properties:
                      atMs:
                        type: number
                      text:
                        type: string
                      assigneeName:
                        anyOf:
                          - type: string
                          - type: "null"
                    required:
                      - atMs
                      - text
                    additionalProperties: false
                chapters:
                  type: array
                  items:
                    type: object
                    properties:
                      atMs:
                        type: number
                      title:
                        type: string
                    required:
                      - atMs
                      - title
                    additionalProperties: false
                generatedAt:
                  type: string
              required:
                - summary
                - keyPoints
                - tasks
                - chapters
                - generatedAt
              additionalProperties: false
            - type: "null"
        leadName:
          anyOf:
            - type: string
            - type: "null"
        leadEmail:
          anyOf:
            - type: string
            - type: "null"
        leadPhone:
          anyOf:
            - type: string
            - type: "null"
        attendantName:
          anyOf:
            - type: string
            - type: "null"
        createdByAttendantName:
          anyOf:
            - type: string
            - type: "null"
        playbookId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        playbookName:
          anyOf:
            - type: string
            - type: "null"
        copilotAgentName:
          anyOf:
            - type: string
            - type: "null"
        appointmentScheduleName:
          anyOf:
            - type: string
            - type: "null"
        appointmentScheduleColor:
          anyOf:
            - type: string
            - type: "null"
        opportunityPipelineName:
          anyOf:
            - type: string
            - type: "null"
        opportunityCardTitle:
          anyOf:
            - type: string
            - type: "null"
      required:
        - id
        - startAt
        - endAt
        - status
        - bufferMinutes
        - recordingHasVideo
        - ownerId
        - createdAt
        - updatedAt
      additionalProperties: false
    ScheduledCallsManageLinkOutput:
      type: object
      properties:
        url:
          anyOf:
            - type: string
              format: uri
            - type: "null"
      additionalProperties: false
    TagsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              color:
                type: string
                minLength: 6
                maxLength: 6
              system:
                type: boolean
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              leadsCount:
                type: number
            required:
              - id
              - name
              - ownerId
              - color
              - system
              - createdAt
              - updatedAt
              - leadsCount
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    TagsManualListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              color:
                anyOf:
                  - type: string
                  - type: "null"
              leadsCount:
                type: number
              growthSeries:
                type: array
                items:
                  type: object
                  properties:
                    date:
                      type: string
                    count:
                      type: number
                  required:
                    - date
                    - count
                  additionalProperties: false
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - name
              - leadsCount
              - growthSeries
              - createdAt
              - updatedAt
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    TagsManualLeadsTimelineOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              leadId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                anyOf:
                  - type: string
                  - type: "null"
              email:
                anyOf:
                  - type: string
                  - type: "null"
              telephone:
                anyOf:
                  - type: string
                  - type: "null"
              appliedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - leadId
              - appliedAt
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    TagsSystemListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              eventName:
                type: string
              category:
                type: string
              count:
                type: number
              lastSeenAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - eventName
              - category
              - count
              - lastSeenAt
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    TagsSystemActivitiesOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              eventName:
                type: string
              category:
                type: string
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              leadId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              leadName:
                anyOf:
                  - type: string
                  - type: "null"
              leadEmail:
                anyOf:
                  - type: string
                  - type: "null"
              leadTelephone:
                anyOf:
                  - type: string
                  - type: "null"
            required:
              - id
              - eventName
              - category
              - createdAt
              - leadId
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    TagsGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        color:
          type: string
          minLength: 6
          maxLength: 6
        system:
          type: boolean
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        leadsCount:
          type: number
      required:
        - id
        - name
        - ownerId
        - color
        - system
        - createdAt
        - updatedAt
        - leadsCount
      additionalProperties: false
    TagsCreateInput:
      type: object
      properties:
        name:
          type: string
        color:
          type: string
          minLength: 6
          maxLength: 6
      required:
        - name
    TagsCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        color:
          type: string
          minLength: 6
          maxLength: 6
        system:
          type: boolean
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - name
        - ownerId
        - color
        - system
        - createdAt
        - updatedAt
      additionalProperties: false
    TagsUpdateInput:
      type: object
      properties:
        tagId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
        color:
          type: string
          minLength: 6
          maxLength: 6
      required:
        - tagId
    TagsUpdateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        color:
          type: string
          minLength: 6
          maxLength: 6
        system:
          type: boolean
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - name
        - ownerId
        - color
        - system
        - createdAt
        - updatedAt
      additionalProperties: false
    TagsDeleteInput:
      type: object
      properties:
        tagId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - tagId
    TagsDeleteOutput:
      type: object
      properties:
        deleted:
          type: boolean
      required:
        - deleted
      additionalProperties: false
    TagsCloneInput:
      type: object
      properties:
        tagId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - tagId
    TagsCloneOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        color:
          type: string
          minLength: 6
          maxLength: 6
        system:
          type: boolean
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - name
        - ownerId
        - color
        - system
        - createdAt
        - updatedAt
      additionalProperties: false
    CrmTagsApplyToLeadsInput:
      type: object
      properties:
        leadIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        tagId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - leadIds
        - tagId
    CrmTagsApplyToLeadsOutput:
      type: object
      properties:
        applied:
          type: number
      required:
        - applied
      additionalProperties: false
    CrmTagsRemoveFromLeadsInput:
      type: object
      properties:
        leadIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        tagId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - leadIds
        - tagId
    CrmTagsRemoveFromLeadsOutput:
      type: object
      properties:
        deleted:
          type: number
      required:
        - deleted
      additionalProperties: false
    CrmTagsBatchApplyToLeadsInput:
      type: object
      properties:
        leadIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        tagIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - leadIds
        - tagIds
    CrmTagsBatchApplyToLeadsOutput:
      type: object
      properties:
        applied:
          type: number
      required:
        - applied
      additionalProperties: false
    CheckoutSetInput:
      type: object
      properties:
        pageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offerId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
      required:
        - pageId
        - offerId
    CheckoutSetOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    CheckoutGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          maxLength: 255
        description:
          anyOf:
            - type: string
            - type: "null"
        assets:
          type: array
          items:
            type: string
        type:
          type: string
          enum:
            - advertorial
            - capture
            - quiz
            - presell
            - sales
            - checkout
            - upsell
            - downsell
            - termsPrivacy
            - thankYou
            - vsl
            - webinar
        imageUrl:
          anyOf:
            - type: string
              pattern: ^https?:\/\/.+$
            - type: "null"
        path:
          type: string
          maxLength: 255
          pattern: ^\/(?:[a-z0-9_-]+\/)*[a-z0-9_-]*$
          description: Path must start with / and can only contain letters, numbers, -, _
            and / https://regex101.com/r/UXuOGQ/1
        projectId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        domainId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        templateId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        styleGuideId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        editorVersion:
          type: string
          enum:
            - v2
            - v3
            - external
        externalUrl:
          anyOf:
            - type: string
              pattern: ^https?:\/\/.+$
            - type: "null"
        externalConfig:
          anyOf:
            - type: object
              properties:
                hasProduct:
                  default: false
                  type: boolean
                productValue:
                  anyOf:
                    - type: number
                      minimum: 0
                    - type: "null"
                productName:
                  anyOf:
                    - type: string
                      maxLength: 255
                    - type: "null"
                productImageUrl:
                  anyOf:
                    - type: string
                      pattern: ^https?:\/\/.+$
                    - type: "null"
                externalCategory:
                  anyOf:
                    - anyOf:
                        - type: string
                          const: capture
                        - type: string
                          const: sales
                        - type: string
                          const: other
                        - type: "null"
                          const: null
                    - type: "null"
              required:
                - hasProduct
              additionalProperties: false
            - type: "null"
        triggerMap:
          anyOf:
            - type: object
              properties:
                pageTriggers:
                  type: array
                  items:
                    type: string
                    enum:
                      - visual_connection
                      - undefined
                      - page_viewed
                      - scroll
                      - time_on_page
                      - exit_intent
                      - button_click
                      - link_click
                      - form_submit
                      - contact_captured
                      - video
                      - video_started
                      - video_paused
                      - video_completed
                      - checkout_viewed
                      - cart_abandoned
                      - purchase_approved
                      - purchase_declined
                      - card_declined
                      - pix_generated
                      - pix_expired
                      - boleto_generated
                      - boleto_expired
                      - refund_requested
                      - refund_completed
                      - chargeback
                      - upsell_accepted
                      - upsell_declined
                      - downsell_accepted
                      - downsell_declined
                      - subscription_created
                      - subscription_cancelled
                      - subscription_renewed
                      - subscription_renewal_failed
                      - subscription_card_updated
                      - trial_started
                      - trial_expired
                      - trial_converted
                      - members_area_accessed
                      - course_started
                      - lesson_completed
                      - module_completed
                      - course_completed
                      - certificate_issued
                      - affiliate_requested
                      - affiliate_approved
                      - affiliate_rejected
                      - affiliate_sale
                      - contact_created
                      - contact_updated
                      - tag_added
                      - tag_removed
                      - list_added
                      - list_removed
                      - lead_score_changed
                      - field_updated
                      - inactivity
                      - email_opened
                      - email_clicked
                      - email_not_opened
                      - email_unsubscribed
                      - email_replied
                      - whatsapp_message_received
                      - whatsapp_keyword
                      - whatsapp_button_clicked
                      - instagram_comment
                      - instagram_dm
                      - instagram_lead_form
                      - sms_clicked
                      - sms_replied
                      - telegram_message
                      - telegram_command
                      - call_answered
                      - call_missed
                      - broadcast_list
                      - broadcast_tag
                      - broadcast_segment
                      - scheduled_datetime
                      - delay_after_event
                      - delay_before_date
                      - manual_trigger
                      - api_webhook
                      - date_based
                elements:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                      componentType:
                        type: string
                      label:
                        type: string
                      content:
                        type: string
                      triggers:
                        type: array
                        items:
                          type: string
                          enum:
                            - visual_connection
                            - undefined
                            - page_viewed
                            - scroll
                            - time_on_page
                            - exit_intent
                            - button_click
                            - link_click
                            - form_submit
                            - contact_captured
                            - video
                            - video_started
                            - video_paused
                            - video_completed
                            - checkout_viewed
                            - cart_abandoned
                            - purchase_approved
                            - purchase_declined
                            - card_declined
                            - pix_generated
                            - pix_expired
                            - boleto_generated
                            - boleto_expired
                            - refund_requested
                            - refund_completed
                            - chargeback
                            - upsell_accepted
                            - upsell_declined
                            - downsell_accepted
                            - downsell_declined
                            - subscription_created
                            - subscription_cancelled
                            - subscription_renewed
                            - subscription_renewal_failed
                            - subscription_card_updated
                            - trial_started
                            - trial_expired
                            - trial_converted
                            - members_area_accessed
                            - course_started
                            - lesson_completed
                            - module_completed
                            - course_completed
                            - certificate_issued
                            - affiliate_requested
                            - affiliate_approved
                            - affiliate_rejected
                            - affiliate_sale
                            - contact_created
                            - contact_updated
                            - tag_added
                            - tag_removed
                            - list_added
                            - list_removed
                            - lead_score_changed
                            - field_updated
                            - inactivity
                            - email_opened
                            - email_clicked
                            - email_not_opened
                            - email_unsubscribed
                            - email_replied
                            - whatsapp_message_received
                            - whatsapp_keyword
                            - whatsapp_button_clicked
                            - instagram_comment
                            - instagram_dm
                            - instagram_lead_form
                            - sms_clicked
                            - sms_replied
                            - telegram_message
                            - telegram_command
                            - call_answered
                            - call_missed
                            - broadcast_list
                            - broadcast_tag
                            - broadcast_segment
                            - scheduled_datetime
                            - delay_after_event
                            - delay_before_date
                            - manual_trigger
                            - api_webhook
                            - date_based
                      annotated:
                        type: boolean
                    required:
                      - id
                      - componentType
                      - label
                      - triggers
                    additionalProperties: false
                availableTriggers:
                  type: array
                  items:
                    type: string
                    enum:
                      - visual_connection
                      - undefined
                      - page_viewed
                      - scroll
                      - time_on_page
                      - exit_intent
                      - button_click
                      - link_click
                      - form_submit
                      - contact_captured
                      - video
                      - video_started
                      - video_paused
                      - video_completed
                      - checkout_viewed
                      - cart_abandoned
                      - purchase_approved
                      - purchase_declined
                      - card_declined
                      - pix_generated
                      - pix_expired
                      - boleto_generated
                      - boleto_expired
                      - refund_requested
                      - refund_completed
                      - chargeback
                      - upsell_accepted
                      - upsell_declined
                      - downsell_accepted
                      - downsell_declined
                      - subscription_created
                      - subscription_cancelled
                      - subscription_renewed
                      - subscription_renewal_failed
                      - subscription_card_updated
                      - trial_started
                      - trial_expired
                      - trial_converted
                      - members_area_accessed
                      - course_started
                      - lesson_completed
                      - module_completed
                      - course_completed
                      - certificate_issued
                      - affiliate_requested
                      - affiliate_approved
                      - affiliate_rejected
                      - affiliate_sale
                      - contact_created
                      - contact_updated
                      - tag_added
                      - tag_removed
                      - list_added
                      - list_removed
                      - lead_score_changed
                      - field_updated
                      - inactivity
                      - email_opened
                      - email_clicked
                      - email_not_opened
                      - email_unsubscribed
                      - email_replied
                      - whatsapp_message_received
                      - whatsapp_keyword
                      - whatsapp_button_clicked
                      - instagram_comment
                      - instagram_dm
                      - instagram_lead_form
                      - sms_clicked
                      - sms_replied
                      - telegram_message
                      - telegram_command
                      - call_answered
                      - call_missed
                      - broadcast_list
                      - broadcast_tag
                      - broadcast_segment
                      - scheduled_datetime
                      - delay_after_event
                      - delay_before_date
                      - manual_trigger
                      - api_webhook
                      - date_based
                media:
                  type: array
                  items:
                    type: object
                    properties:
                      provider:
                        type: string
                        enum:
                          - vturb
                      videoId:
                        type: string
                        maxLength: 128
                      label:
                        type: string
                        maxLength: 255
                    required:
                      - provider
                      - videoId
                    additionalProperties: false
                analyzedAt:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              required:
                - pageTriggers
                - elements
                - availableTriggers
                - analyzedAt
              additionalProperties: false
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        lastPublishedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        offerId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        favIcon:
          anyOf:
            - type: string
              pattern: ^https?:\/\/.+$
            - type: "null"
        title:
          anyOf:
            - type: string
            - type: "null"
        thumbnail:
          anyOf:
            - type: string
              pattern: ^https?:\/\/.+$
            - type: "null"
        whatsappConfig:
          anyOf:
            - {}
            - type: "null"
        webchatConfig:
          anyOf:
            - {}
            - type: "null"
        allowFrameAncestors:
          default: true
          type: boolean
        configDescription:
          anyOf:
            - type: string
            - type: "null"
        domainName:
          anyOf:
            - type: string
            - type: "null"
        projectSlug:
          type: string
        pageUrl:
          type: string
          pattern: ^https?:\/\/.+$
        publishedTemplateId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
      required:
        - id
        - name
        - assets
        - type
        - path
        - projectId
        - ownerId
        - editorVersion
        - createdAt
        - updatedAt
        - allowFrameAncestors
        - projectSlug
        - pageUrl
      additionalProperties: false
    PagesListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
                maxLength: 255
              description:
                anyOf:
                  - type: string
                  - type: "null"
              assets:
                type: array
                items:
                  type: string
              type:
                type: string
                enum:
                  - advertorial
                  - capture
                  - quiz
                  - presell
                  - sales
                  - checkout
                  - upsell
                  - downsell
                  - termsPrivacy
                  - thankYou
                  - vsl
                  - webinar
              imageUrl:
                anyOf:
                  - type: string
                    pattern: ^https?:\/\/.+$
                  - type: "null"
              path:
                type: string
                maxLength: 255
                pattern: ^\/(?:[a-z0-9_-]+\/)*[a-z0-9_-]*$
                description: Path must start with / and can only contain letters, numbers, -, _
                  and / https://regex101.com/r/UXuOGQ/1
              projectId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              domainId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              templateId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              styleGuideId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              editorVersion:
                type: string
                enum:
                  - v2
                  - v3
                  - external
              externalUrl:
                anyOf:
                  - type: string
                    pattern: ^https?:\/\/.+$
                  - type: "null"
              externalConfig:
                anyOf:
                  - type: object
                    properties:
                      hasProduct:
                        default: false
                        type: boolean
                      productValue:
                        anyOf:
                          - type: number
                            minimum: 0
                          - type: "null"
                      productName:
                        anyOf:
                          - type: string
                            maxLength: 255
                          - type: "null"
                      productImageUrl:
                        anyOf:
                          - type: string
                            pattern: ^https?:\/\/.+$
                          - type: "null"
                      externalCategory:
                        anyOf:
                          - anyOf:
                              - type: string
                                const: capture
                              - type: string
                                const: sales
                              - type: string
                                const: other
                              - type: "null"
                                const: null
                          - type: "null"
                    required:
                      - hasProduct
                    additionalProperties: false
                  - type: "null"
              triggerMap:
                anyOf:
                  - type: object
                    properties:
                      pageTriggers:
                        type: array
                        items:
                          type: string
                          enum:
                            - visual_connection
                            - undefined
                            - page_viewed
                            - scroll
                            - time_on_page
                            - exit_intent
                            - button_click
                            - link_click
                            - form_submit
                            - contact_captured
                            - video
                            - video_started
                            - video_paused
                            - video_completed
                            - checkout_viewed
                            - cart_abandoned
                            - purchase_approved
                            - purchase_declined
                            - card_declined
                            - pix_generated
                            - pix_expired
                            - boleto_generated
                            - boleto_expired
                            - refund_requested
                            - refund_completed
                            - chargeback
                            - upsell_accepted
                            - upsell_declined
                            - downsell_accepted
                            - downsell_declined
                            - subscription_created
                            - subscription_cancelled
                            - subscription_renewed
                            - subscription_renewal_failed
                            - subscription_card_updated
                            - trial_started
                            - trial_expired
                            - trial_converted
                            - members_area_accessed
                            - course_started
                            - lesson_completed
                            - module_completed
                            - course_completed
                            - certificate_issued
                            - affiliate_requested
                            - affiliate_approved
                            - affiliate_rejected
                            - affiliate_sale
                            - contact_created
                            - contact_updated
                            - tag_added
                            - tag_removed
                            - list_added
                            - list_removed
                            - lead_score_changed
                            - field_updated
                            - inactivity
                            - email_opened
                            - email_clicked
                            - email_not_opened
                            - email_unsubscribed
                            - email_replied
                            - whatsapp_message_received
                            - whatsapp_keyword
                            - whatsapp_button_clicked
                            - instagram_comment
                            - instagram_dm
                            - instagram_lead_form
                            - sms_clicked
                            - sms_replied
                            - telegram_message
                            - telegram_command
                            - call_answered
                            - call_missed
                            - broadcast_list
                            - broadcast_tag
                            - broadcast_segment
                            - scheduled_datetime
                            - delay_after_event
                            - delay_before_date
                            - manual_trigger
                            - api_webhook
                            - date_based
                      elements:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            componentType:
                              type: string
                            label:
                              type: string
                            content:
                              type: string
                            triggers:
                              type: array
                              items:
                                type: string
                                enum:
                                  - visual_connection
                                  - undefined
                                  - page_viewed
                                  - scroll
                                  - time_on_page
                                  - exit_intent
                                  - button_click
                                  - link_click
                                  - form_submit
                                  - contact_captured
                                  - video
                                  - video_started
                                  - video_paused
                                  - video_completed
                                  - checkout_viewed
                                  - cart_abandoned
                                  - purchase_approved
                                  - purchase_declined
                                  - card_declined
                                  - pix_generated
                                  - pix_expired
                                  - boleto_generated
                                  - boleto_expired
                                  - refund_requested
                                  - refund_completed
                                  - chargeback
                                  - upsell_accepted
                                  - upsell_declined
                                  - downsell_accepted
                                  - downsell_declined
                                  - subscription_created
                                  - subscription_cancelled
                                  - subscription_renewed
                                  - subscription_renewal_failed
                                  - subscription_card_updated
                                  - trial_started
                                  - trial_expired
                                  - trial_converted
                                  - members_area_accessed
                                  - course_started
                                  - lesson_completed
                                  - module_completed
                                  - course_completed
                                  - certificate_issued
                                  - affiliate_requested
                                  - affiliate_approved
                                  - affiliate_rejected
                                  - affiliate_sale
                                  - contact_created
                                  - contact_updated
                                  - tag_added
                                  - tag_removed
                                  - list_added
                                  - list_removed
                                  - lead_score_changed
                                  - field_updated
                                  - inactivity
                                  - email_opened
                                  - email_clicked
                                  - email_not_opened
                                  - email_unsubscribed
                                  - email_replied
                                  - whatsapp_message_received
                                  - whatsapp_keyword
                                  - whatsapp_button_clicked
                                  - instagram_comment
                                  - instagram_dm
                                  - instagram_lead_form
                                  - sms_clicked
                                  - sms_replied
                                  - telegram_message
                                  - telegram_command
                                  - call_answered
                                  - call_missed
                                  - broadcast_list
                                  - broadcast_tag
                                  - broadcast_segment
                                  - scheduled_datetime
                                  - delay_after_event
                                  - delay_before_date
                                  - manual_trigger
                                  - api_webhook
                                  - date_based
                            annotated:
                              type: boolean
                          required:
                            - id
                            - componentType
                            - label
                            - triggers
                          additionalProperties: false
                      availableTriggers:
                        type: array
                        items:
                          type: string
                          enum:
                            - visual_connection
                            - undefined
                            - page_viewed
                            - scroll
                            - time_on_page
                            - exit_intent
                            - button_click
                            - link_click
                            - form_submit
                            - contact_captured
                            - video
                            - video_started
                            - video_paused
                            - video_completed
                            - checkout_viewed
                            - cart_abandoned
                            - purchase_approved
                            - purchase_declined
                            - card_declined
                            - pix_generated
                            - pix_expired
                            - boleto_generated
                            - boleto_expired
                            - refund_requested
                            - refund_completed
                            - chargeback
                            - upsell_accepted
                            - upsell_declined
                            - downsell_accepted
                            - downsell_declined
                            - subscription_created
                            - subscription_cancelled
                            - subscription_renewed
                            - subscription_renewal_failed
                            - subscription_card_updated
                            - trial_started
                            - trial_expired
                            - trial_converted
                            - members_area_accessed
                            - course_started
                            - lesson_completed
                            - module_completed
                            - course_completed
                            - certificate_issued
                            - affiliate_requested
                            - affiliate_approved
                            - affiliate_rejected
                            - affiliate_sale
                            - contact_created
                            - contact_updated
                            - tag_added
                            - tag_removed
                            - list_added
                            - list_removed
                            - lead_score_changed
                            - field_updated
                            - inactivity
                            - email_opened
                            - email_clicked
                            - email_not_opened
                            - email_unsubscribed
                            - email_replied
                            - whatsapp_message_received
                            - whatsapp_keyword
                            - whatsapp_button_clicked
                            - instagram_comment
                            - instagram_dm
                            - instagram_lead_form
                            - sms_clicked
                            - sms_replied
                            - telegram_message
                            - telegram_command
                            - call_answered
                            - call_missed
                            - broadcast_list
                            - broadcast_tag
                            - broadcast_segment
                            - scheduled_datetime
                            - delay_after_event
                            - delay_before_date
                            - manual_trigger
                            - api_webhook
                            - date_based
                      media:
                        type: array
                        items:
                          type: object
                          properties:
                            provider:
                              type: string
                              enum:
                                - vturb
                            videoId:
                              type: string
                              maxLength: 128
                            label:
                              type: string
                              maxLength: 255
                          required:
                            - provider
                            - videoId
                          additionalProperties: false
                      analyzedAt:
                        type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    required:
                      - pageTriggers
                      - elements
                      - availableTriggers
                      - analyzedAt
                    additionalProperties: false
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              lastPublishedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              offerId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              favIcon:
                anyOf:
                  - type: string
                    pattern: ^https?:\/\/.+$
                  - type: "null"
              title:
                anyOf:
                  - type: string
                  - type: "null"
              thumbnail:
                anyOf:
                  - type: string
                    pattern: ^https?:\/\/.+$
                  - type: "null"
              whatsappConfig:
                anyOf:
                  - {}
                  - type: "null"
              webchatConfig:
                anyOf:
                  - {}
                  - type: "null"
              allowFrameAncestors:
                default: true
                type: boolean
              configDescription:
                anyOf:
                  - type: string
                  - type: "null"
              domainName:
                anyOf:
                  - type: string
                  - type: "null"
              projectSlug:
                type: string
              pageUrl:
                type: string
                pattern: ^https?:\/\/.+$
              publishedTemplateId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              metrics:
                type: object
                properties:
                  totalViews:
                    default: 0
                    type: number
                  uniqueViews:
                    default: 0
                    type: number
                required:
                  - totalViews
                  - uniqueViews
                additionalProperties: false
              linkedFunnels:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                  required:
                    - id
                    - name
                  additionalProperties: false
            required:
              - id
              - name
              - assets
              - type
              - path
              - projectId
              - ownerId
              - editorVersion
              - createdAt
              - updatedAt
              - allowFrameAncestors
              - projectSlug
              - pageUrl
              - metrics
              - linkedFunnels
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    PagesTemplatesListInput:
      type: object
      properties:
        page:
          default: 1
          type: number
          minimum: 1
        perPage:
          default: 10
          type: number
          minimum: 1
          maximum: 2000
        search:
          type: string
        type:
          type: array
          items:
            type: string
            enum:
              - advertorial
              - capture
              - quiz
              - presell
              - sales
              - checkout
              - upsell
              - downsell
              - termsPrivacy
              - thankYou
              - vsl
              - webinar
        tags:
          type: array
          items:
            type: string
        orderBy:
          default: createdAt
          type: string
          enum:
            - name
            - createdAt
            - cloneCount
            - popular
        orderByMode:
          default: desc
          type: string
          enum:
            - asc
            - desc
    PagesTemplatesListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              description:
                anyOf:
                  - type: string
                  - type: "null"
              cloneCount:
                default: 0
                type: integer
                minimum: 0
                maximum: 9007199254740991
              featured:
                default: false
                type: boolean
              planCategoryId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              type:
                type: string
                enum:
                  - advertorial
                  - capture
                  - quiz
                  - presell
                  - sales
                  - checkout
                  - upsell
                  - downsell
                  - termsPrivacy
                  - thankYou
                  - vsl
                  - webinar
              tags:
                default: []
                type: array
                items:
                  type: string
              imageUrl:
                anyOf:
                  - type: string
                    pattern: ^https?:\/\/.+$
                  - type: "null"
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              originalPageId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              pageName:
                anyOf:
                  - type: string
                  - type: "null"
              pageDescription:
                anyOf:
                  - type: string
                  - type: "null"
              pagePath:
                anyOf:
                  - type: string
                  - type: "null"
              projectId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              projectSlug:
                anyOf:
                  - type: string
                  - type: "null"
              domainName:
                anyOf:
                  - type: string
                  - type: "null"
              domainId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              planCategoryName:
                anyOf:
                  - type: string
                  - type: "null"
              canUse:
                type: boolean
            required:
              - id
              - name
              - cloneCount
              - featured
              - type
              - tags
              - ownerId
              - createdAt
              - updatedAt
              - canUse
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    PagesCreateInput:
      type: object
      properties:
        name:
          type: string
          maxLength: 255
        description:
          anyOf:
            - type: string
            - type: "null"
        type:
          type: string
          enum:
            - advertorial
            - capture
            - quiz
            - presell
            - sales
            - checkout
            - upsell
            - downsell
            - termsPrivacy
            - thankYou
            - vsl
            - webinar
        path:
          type: string
          maxLength: 255
          pattern: ^\/(?:[a-z0-9_-]+\/)*[a-z0-9_-]*$
          description: Path must start with / and can only contain letters, numbers, -, _
            and / https://regex101.com/r/UXuOGQ/1
        domainId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        projectId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        styleGuideId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        templateId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        funnelId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        sourceUrl:
          type: string
          pattern: ^https?:\/\/.+$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - name
        - type
        - path
        - projectId
    PagesCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
      additionalProperties: false
    PagesCreateExternalInput:
      type: object
      properties:
        name:
          type: string
          maxLength: 255
        description:
          anyOf:
            - type: string
            - type: "null"
        type:
          type: string
          enum:
            - advertorial
            - capture
            - quiz
            - presell
            - sales
            - checkout
            - upsell
            - downsell
            - termsPrivacy
            - thankYou
            - vsl
            - webinar
        projectId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        externalUrl:
          type: string
          pattern: ^https?:\/\/.+$
        externalConfig:
          type: object
          properties:
            hasProduct:
              default: false
              type: boolean
            productValue:
              anyOf:
                - type: number
                  minimum: 0
                - type: "null"
            productName:
              anyOf:
                - type: string
                  maxLength: 255
                - type: "null"
            productImageUrl:
              anyOf:
                - type: string
                  pattern: ^https?:\/\/.+$
                - type: "null"
            externalCategory:
              anyOf:
                - anyOf:
                    - type: string
                      const: capture
                    - type: string
                      const: sales
                    - type: string
                      const: other
                    - type: "null"
                      const: null
                - type: "null"
      required:
        - name
        - type
        - projectId
        - externalUrl
    PagesCreateExternalOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
      additionalProperties: false
    PagesRecipesListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                anyOf:
                  - type: string
                    enum:
                      - capture
                  - type: string
                    enum:
                      - sales
                  - type: string
                    enum:
                      - checkout
                  - type: string
                    enum:
                      - thank-you
                  - type: string
                    enum:
                      - upsell
                  - type: string
                    enum:
                      - downsell
              compatiblePageTypes:
                type: array
                items:
                  type: string
                  enum:
                    - advertorial
                    - capture
                    - quiz
                    - presell
                    - sales
                    - checkout
                    - upsell
                    - downsell
                    - termsPrivacy
                    - thankYou
                    - vsl
                    - webinar
              requiredSections:
                type: array
                items:
                  type: string
              optionalSections:
                type: array
                items:
                  type: string
              capabilities:
                type: object
                properties:
                  leadCapture:
                    anyOf:
                      - type: string
                        enum:
                          - required
                      - type: string
                        enum:
                          - optional
                      - type: string
                        enum:
                          - forbidden
                  checkout:
                    anyOf:
                      - type: string
                        enum:
                          - required
                      - type: string
                        enum:
                          - optional
                      - type: string
                        enum:
                          - forbidden
                  cta:
                    anyOf:
                      - type: string
                        enum:
                          - required
                      - type: string
                        enum:
                          - optional
                      - type: string
                        enum:
                          - forbidden
                required:
                  - leadCapture
                  - checkout
                  - cta
                additionalProperties: false
            required:
              - id
              - compatiblePageTypes
              - requiredSections
              - optionalSections
              - capabilities
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    PagesImagesSearchOutput:
      type: object
      properties:
        total:
          type: number
        pages:
          type: number
        images:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              thumb:
                type: string
              full:
                type: string
              credit:
                type: object
                properties:
                  author:
                    type: string
                  authorUrl:
                    type: string
                  source:
                    type: string
                  sourceUrl:
                    type: string
                  license:
                    type: string
                additionalProperties: false
            required:
              - id
              - thumb
              - full
            additionalProperties: false
      required:
        - total
        - pages
        - images
      additionalProperties: false
    PagesGenerationContextGetOutput:
      type: object
      properties:
        manifest:
          type: object
          properties:
            recipeId:
              anyOf:
                - type: string
                  enum:
                    - capture
                - type: string
                  enum:
                    - sales
                - type: string
                  enum:
                    - checkout
                - type: string
                  enum:
                    - thank-you
                - type: string
                  enum:
                    - upsell
                - type: string
                  enum:
                    - downsell
            designIdOrSlug:
              type: string
              minLength: 1
              maxLength: 255
          required:
            - recipeId
          additionalProperties: false
        recipe:
          type: object
          properties:
            id:
              anyOf:
                - type: string
                  enum:
                    - capture
                - type: string
                  enum:
                    - sales
                - type: string
                  enum:
                    - checkout
                - type: string
                  enum:
                    - thank-you
                - type: string
                  enum:
                    - upsell
                - type: string
                  enum:
                    - downsell
            compatiblePageTypes:
              type: array
              items:
                type: string
                enum:
                  - advertorial
                  - capture
                  - quiz
                  - presell
                  - sales
                  - checkout
                  - upsell
                  - downsell
                  - termsPrivacy
                  - thankYou
                  - vsl
                  - webinar
            requiredSections:
              type: array
              items:
                type: string
            optionalSections:
              type: array
              items:
                type: string
            capabilities:
              type: object
              properties:
                leadCapture:
                  anyOf:
                    - type: string
                      enum:
                        - required
                    - type: string
                      enum:
                        - optional
                    - type: string
                      enum:
                        - forbidden
                checkout:
                  anyOf:
                    - type: string
                      enum:
                        - required
                    - type: string
                      enum:
                        - optional
                    - type: string
                      enum:
                        - forbidden
                cta:
                  anyOf:
                    - type: string
                      enum:
                        - required
                    - type: string
                      enum:
                        - optional
                    - type: string
                      enum:
                        - forbidden
              required:
                - leadCapture
                - checkout
                - cta
              additionalProperties: false
          required:
            - id
            - compatiblePageTypes
            - requiredSections
            - optionalSections
            - capabilities
          additionalProperties: false
        styleGuideId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        tokenCss:
          type: string
        tokenNames:
          type: array
          items:
            type: string
      required:
        - manifest
        - recipe
        - styleGuideId
        - tokenCss
        - tokenNames
      additionalProperties: false
    PagesValidateHtmlOutput:
      type: object
      properties:
        valid:
          type: boolean
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
              message:
                type: string
            required:
              - code
              - message
            additionalProperties: false
        warnings:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
              message:
                type: string
            required:
              - code
              - message
            additionalProperties: false
        capabilities:
          type: object
          properties:
            leadCaptureForms:
              type: number
              minimum: 0
            checkoutBlocks:
              type: number
              minimum: 0
            ctas:
              type: number
              minimum: 0
            links:
              type: number
              minimum: 0
          required:
            - leadCaptureForms
            - checkoutBlocks
            - ctas
            - links
          additionalProperties: false
        styleGuideId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        tokenCss:
          type: string
      required:
        - valid
        - errors
        - warnings
        - capabilities
        - styleGuideId
        - tokenCss
      additionalProperties: false
    PagesImportHtmlInput:
      type: object
      properties:
        pageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        placement:
          type: object
          properties:
            projectId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            name:
              type: string
              maxLength: 255
            type:
              type: string
              enum:
                - advertorial
                - capture
                - quiz
                - presell
                - sales
                - checkout
                - upsell
                - downsell
                - termsPrivacy
                - thankYou
                - vsl
                - webinar
            path:
              type: string
              maxLength: 255
              pattern: ^\/(?:[a-z0-9_-]+\/)*[a-z0-9_-]*$
              description: Path must start with / and can only contain letters, numbers, -, _
                and / https://regex101.com/r/UXuOGQ/1
            domainId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            funnelId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          required:
            - projectId
            - name
            - type
            - path
        funnelId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        html:
          type: string
          minLength: 1
          maxLength: 2000000
        publish:
          default: true
          type: boolean
        offerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        manifest:
          type: object
          properties:
            recipeId:
              anyOf:
                - type: string
                  enum:
                    - capture
                - type: string
                  enum:
                    - sales
                - type: string
                  enum:
                    - checkout
                - type: string
                  enum:
                    - thank-you
                - type: string
                  enum:
                    - upsell
                - type: string
                  enum:
                    - downsell
            designIdOrSlug:
              type: string
              minLength: 1
              maxLength: 255
          required:
            - recipeId
      required:
        - html
    PagesImportHtmlOutput:
      type: object
      properties:
        pageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        targetUrl:
          type: string
          pattern: ^https?:\/\/.+$
        warnings:
          type: array
          items:
            type: string
      required:
        - pageId
        - targetUrl
        - warnings
      additionalProperties: false
    PagesImportHtmlDraftInput:
      type: object
      properties:
        pageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        placement:
          type: object
          properties:
            projectId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            name:
              type: string
              maxLength: 255
            type:
              type: string
              enum:
                - advertorial
                - capture
                - quiz
                - presell
                - sales
                - checkout
                - upsell
                - downsell
                - termsPrivacy
                - thankYou
                - vsl
                - webinar
            path:
              type: string
              maxLength: 255
              pattern: ^\/(?:[a-z0-9_-]+\/)*[a-z0-9_-]*$
              description: Path must start with / and can only contain letters, numbers, -, _
                and / https://regex101.com/r/UXuOGQ/1
            domainId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            funnelId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          required:
            - projectId
            - name
            - type
            - path
        funnelId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        html:
          type: string
          minLength: 1
          maxLength: 2000000
        offerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        manifest:
          type: object
          properties:
            recipeId:
              anyOf:
                - type: string
                  enum:
                    - capture
                - type: string
                  enum:
                    - sales
                - type: string
                  enum:
                    - checkout
                - type: string
                  enum:
                    - thank-you
                - type: string
                  enum:
                    - upsell
                - type: string
                  enum:
                    - downsell
            designIdOrSlug:
              type: string
              minLength: 1
              maxLength: 255
          required:
            - recipeId
      required:
        - html
        - manifest
    PageDesignsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              slug:
                type: string
                maxLength: 64
                pattern: ^[a-z0-9-]+$
              title:
                type: string
                maxLength: 120
              description:
                type: string
              content:
                type: string
              brandId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              status:
                type: string
                enum:
                  - draft
                  - published
                  - archived
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              ownerId:
                anyOf:
                  - type: string
                  - type: "null"
            required:
              - id
              - slug
              - title
              - description
              - content
              - status
              - createdAt
              - updatedAt
            additionalProperties: false
            description: A page design visible to the workspace (global or workspace-owned)
      required:
        - data
      additionalProperties: false
    PageDesignsGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        slug:
          type: string
          maxLength: 64
          pattern: ^[a-z0-9-]+$
        title:
          type: string
          maxLength: 120
        description:
          type: string
        content:
          type: string
        ownerId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        brandId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        tags:
          type: array
          items:
            type: string
        coverImageUrl:
          anyOf:
            - type: string
            - type: "null"
        status:
          type: string
          enum:
            - draft
            - published
            - archived
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - slug
        - title
        - description
        - content
        - tags
        - status
        - createdAt
        - updatedAt
      additionalProperties: false
    PagesCloneInput:
      type: object
      properties:
        pageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        newOwnerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        newProjectId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        newStyleGuideId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        isImport:
          default: false
          type: boolean
        offerId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        path:
          description: Path must start with / and can only contain letters, numbers, -, _
            and / https://regex101.com/r/UXuOGQ/1
          type: string
          maxLength: 255
          pattern: ^\/(?:[a-z0-9_-]+\/)*[a-z0-9_-]*$
        domainId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
      required:
        - pageId
    PagesCloneOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
      additionalProperties: false
    PagesPublishInput:
      type: object
      properties:
        pageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - pageId
    PagesPublishOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    PagesUpdateInput:
      type: object
      properties:
        pageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        data:
          type: object
          properties:
            name:
              type: string
              maxLength: 255
            description:
              anyOf:
                - type: string
                - type: "null"
            path:
              description: Path must start with / and can only contain letters, numbers, -, _
                and / https://regex101.com/r/UXuOGQ/1
              type: string
              maxLength: 255
              pattern: ^\/(?:[a-z0-9_-]+\/)*[a-z0-9_-]*$
            domainId:
              anyOf:
                - type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                - type: "null"
            type:
              type: string
              enum:
                - advertorial
                - capture
                - quiz
                - presell
                - sales
                - checkout
                - upsell
                - downsell
                - termsPrivacy
                - thankYou
                - vsl
                - webinar
            projectId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            externalUrl:
              type: string
              pattern: ^https?:\/\/.+$
            externalConfig:
              type: object
              properties:
                hasProduct:
                  default: false
                  type: boolean
                productValue:
                  anyOf:
                    - type: number
                      minimum: 0
                    - type: "null"
                productName:
                  anyOf:
                    - type: string
                      maxLength: 255
                    - type: "null"
                productImageUrl:
                  anyOf:
                    - type: string
                      pattern: ^https?:\/\/.+$
                    - type: "null"
                externalCategory:
                  anyOf:
                    - anyOf:
                        - type: string
                          const: capture
                        - type: string
                          const: sales
                        - type: string
                          const: other
                        - type: "null"
                          const: null
                    - type: "null"
      required:
        - pageId
        - data
    PagesUpdateOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    PagesUpdateConfigInput:
      type: object
      properties:
        pageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        data:
          type: object
          properties:
            id:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            pageId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            favIcon:
              anyOf:
                - type: string
                  pattern: ^https?:\/\/.+$
                - type: "null"
            title:
              anyOf:
                - type: string
                - type: "null"
            description:
              anyOf:
                - type: string
                - type: "null"
            thumbnail:
              anyOf:
                - type: string
                  pattern: ^https?:\/\/.+$
                - type: "null"
            whatsappConfig:
              anyOf:
                - {}
                - type: "null"
            webchatConfig:
              anyOf:
                - {}
                - type: "null"
            allowFrameAncestors:
              default: true
              type: boolean
            createdAt:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            updatedAt:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - pageId
        - data
    PagesDeleteOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    PagesGetExternalScriptOutput:
      type: object
      properties:
        headScript:
          type: string
      required:
        - headScript
      additionalProperties: false
    RedirectDomainsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              status:
                type: string
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              rootRedirectUrl:
                anyOf:
                  - type: string
                  - type: "null"
              totalLinks:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              activeLinks:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              totalClicks:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              rootClicks:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              links:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    path:
                      type: string
                    targetUrl:
                      type: string
                      maxLength: 2048
                    isActive:
                      default: true
                      type: boolean
                    statusCode:
                      type: string
                      enum:
                        - MOVED_PERMANENTLY
                        - FOUND
                        - TEMPORARY_REDIRECT
                        - PERMANENT_REDIRECT
                    scheduledUrl:
                      anyOf:
                        - type: string
                          maxLength: 2048
                        - type: "null"
                    scheduledAt:
                      anyOf:
                        - type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        - type: "null"
                    scheduleEnqueuedAt:
                      anyOf:
                        - type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        - type: "null"
                    domainId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    ownerId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    createdAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    updatedAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    deletedAt:
                      anyOf:
                        - type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        - type: "null"
                    domainName:
                      type: string
                    totalClicks:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    uniqueClicks:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                  required:
                    - id
                    - path
                    - targetUrl
                    - isActive
                    - statusCode
                    - domainId
                    - ownerId
                    - createdAt
                    - updatedAt
                    - domainName
                    - totalClicks
                    - uniqueClicks
                  additionalProperties: false
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - name
              - status
              - ownerId
              - rootRedirectUrl
              - totalLinks
              - activeLinks
              - totalClicks
              - rootClicks
              - links
              - createdAt
              - updatedAt
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    RedirectLinksListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              path:
                type: string
              targetUrl:
                type: string
                maxLength: 2048
              isActive:
                default: true
                type: boolean
              statusCode:
                type: string
                enum:
                  - MOVED_PERMANENTLY
                  - FOUND
                  - TEMPORARY_REDIRECT
                  - PERMANENT_REDIRECT
              scheduledUrl:
                anyOf:
                  - type: string
                    maxLength: 2048
                  - type: "null"
              scheduledAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              scheduleEnqueuedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              domainId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              domainName:
                type: string
              totalClicks:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              uniqueClicks:
                type: integer
                minimum: 0
                maximum: 9007199254740991
            required:
              - id
              - path
              - targetUrl
              - isActive
              - statusCode
              - domainId
              - ownerId
              - createdAt
              - updatedAt
              - domainName
              - totalClicks
              - uniqueClicks
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    RedirectLinksGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        path:
          type: string
        targetUrl:
          type: string
          maxLength: 2048
        isActive:
          default: true
          type: boolean
        statusCode:
          type: string
          enum:
            - MOVED_PERMANENTLY
            - FOUND
            - TEMPORARY_REDIRECT
            - PERMANENT_REDIRECT
        scheduledUrl:
          anyOf:
            - type: string
              maxLength: 2048
            - type: "null"
        scheduledAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        scheduleEnqueuedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        domainId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - path
        - targetUrl
        - isActive
        - statusCode
        - domainId
        - ownerId
        - createdAt
        - updatedAt
      additionalProperties: false
    RedirectLinksCreateInput:
      type: object
      properties:
        path:
          type: string
          minLength: 1
          maxLength: 2048
          pattern: ^
        targetUrl:
          type: string
          maxLength: 2048
          pattern: ^https:\/\/.+$
        domainId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        isActive:
          default: true
          type: boolean
        statusCode:
          type: string
          enum:
            - MOVED_PERMANENTLY
            - FOUND
            - TEMPORARY_REDIRECT
            - PERMANENT_REDIRECT
        scheduledUrl:
          anyOf:
            - type: string
              maxLength: 2048
              pattern: ^https:\/\/.+$
            - type: "null"
        scheduledAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - path
        - targetUrl
        - domainId
    RedirectLinksCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        path:
          type: string
        targetUrl:
          type: string
          maxLength: 2048
        isActive:
          default: true
          type: boolean
        statusCode:
          type: string
          enum:
            - MOVED_PERMANENTLY
            - FOUND
            - TEMPORARY_REDIRECT
            - PERMANENT_REDIRECT
        scheduledUrl:
          anyOf:
            - type: string
              maxLength: 2048
            - type: "null"
        scheduledAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        scheduleEnqueuedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        domainId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - path
        - targetUrl
        - isActive
        - statusCode
        - domainId
        - ownerId
        - createdAt
        - updatedAt
      additionalProperties: false
    RedirectLinksBulkCreateInput:
      type: object
      properties:
        links:
          type: array
          items:
            type: object
            properties:
              path:
                type: string
                minLength: 1
                maxLength: 2048
                pattern: ^
              targetUrl:
                type: string
                maxLength: 2048
                pattern: ^https:\/\/.+$
              domainId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              isActive:
                default: true
                type: boolean
              statusCode:
                type: string
                enum:
                  - MOVED_PERMANENTLY
                  - FOUND
                  - TEMPORARY_REDIRECT
                  - PERMANENT_REDIRECT
              scheduledUrl:
                anyOf:
                  - type: string
                    maxLength: 2048
                    pattern: ^https:\/\/.+$
                  - type: "null"
              scheduledAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - path
              - targetUrl
              - domainId
      required:
        - links
    RedirectLinksBulkCreateOutput:
      type: object
      properties:
        created:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              path:
                type: string
              targetUrl:
                type: string
                maxLength: 2048
              isActive:
                default: true
                type: boolean
              statusCode:
                type: string
                enum:
                  - MOVED_PERMANENTLY
                  - FOUND
                  - TEMPORARY_REDIRECT
                  - PERMANENT_REDIRECT
              scheduledUrl:
                anyOf:
                  - type: string
                    maxLength: 2048
                  - type: "null"
              scheduledAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              scheduleEnqueuedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              domainId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - id
              - path
              - targetUrl
              - isActive
              - statusCode
              - domainId
              - ownerId
              - createdAt
              - updatedAt
            additionalProperties: false
        failed:
          type: array
          items:
            type: object
            properties:
              index:
                type: number
              path:
                type: string
              error:
                type: string
            required:
              - index
              - path
              - error
            additionalProperties: false
      required:
        - created
        - failed
      additionalProperties: false
    RedirectLinksUpdateInput:
      type: object
      properties:
        redirectLinkId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        path:
          type: string
          minLength: 1
          maxLength: 2048
          pattern: ^
        targetUrl:
          type: string
          maxLength: 2048
          pattern: ^https:\/\/.+$
        isActive:
          type: boolean
        statusCode:
          type: string
          enum:
            - MOVED_PERMANENTLY
            - FOUND
            - TEMPORARY_REDIRECT
            - PERMANENT_REDIRECT
        scheduledUrl:
          anyOf:
            - type: string
              maxLength: 2048
              pattern: ^https:\/\/.+$
            - type: "null"
        scheduledAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - redirectLinkId
    RedirectLinksUpdateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        path:
          type: string
        targetUrl:
          type: string
          maxLength: 2048
        isActive:
          default: true
          type: boolean
        statusCode:
          type: string
          enum:
            - MOVED_PERMANENTLY
            - FOUND
            - TEMPORARY_REDIRECT
            - PERMANENT_REDIRECT
        scheduledUrl:
          anyOf:
            - type: string
              maxLength: 2048
            - type: "null"
        scheduledAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        scheduleEnqueuedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        domainId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - path
        - targetUrl
        - isActive
        - statusCode
        - domainId
        - ownerId
        - createdAt
        - updatedAt
      additionalProperties: false
    RedirectLinksDeleteInput:
      type: object
      properties:
        redirectLinkId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - redirectLinkId
    RedirectLinksDeleteOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    FlowsListInput:
      type: object
      properties:
        page:
          default: 1
          type: number
          minimum: 1
        perPage:
          default: 10
          type: number
          minimum: 1
          maximum: 2000
        modes:
          type: array
          items:
            type: string
            enum:
              - template
              - draft
              - scheduled
              - active
              - closed
              - archived
        category:
          type: string
          enum:
            - atendimento
            - vendas
            - suporte
            - marketing
            - cobranca
            - onboarding
            - retencao
            - pesquisa
            - agendamento
            - qualificacao
            - feedback
            - notificacao
            - integracao
            - teste
            - outro
        projectId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        funnelId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
        orderBy:
          default: createdAt
          type: string
          enum:
            - id
            - name
            - mode
            - modeMeta
            - category
            - shareId
            - shareSingle
            - shareCount
            - executionDebounceSeconds
            - dispatchBatchSize
            - dispatchIntervalMinutes
            - dispatchSnapshotListId
            - icon
            - goal
            - useCases
            - groupName
            - projectId
            - ownerId
            - funnelId
            - importedId
            - scheduledJobId
            - startStepId
            - deletedAt
            - createdAt
            - updatedAt
            - contactsCount
            - instancesCount
        orderByMode:
          default: desc
          type: string
          enum:
            - asc
            - desc
        types:
          type: array
          items:
            type: string
        triggerEventNames:
          type: array
          items:
            type: string
        actionTypes:
          type: array
          items:
            type: string
        groupName:
          type: string
        withoutGroup:
          type: boolean
        managementTypes:
          type: array
          items:
            type: string
            enum:
              - normal
              - pipeline
              - funnel
              - scheduling
              - webinar
        includeManaged:
          default: false
          type: boolean
    FlowsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
                maxLength: 255
              mode:
                type: string
                enum:
                  - template
                  - draft
                  - scheduled
                  - active
                  - closed
                  - archived
              modeMeta:
                anyOf:
                  - type: object
                    properties:
                      locked:
                        type: boolean
                      lostChat:
                        type: string
                      suspendedByChannel:
                        type: object
                        properties:
                          appId:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          at:
                            type: string
                        required:
                          - appId
                          - at
                        additionalProperties: false
                      invalidIds:
                        type: array
                        items:
                          type: string
                      managed:
                        anyOf:
                          - type: object
                            properties:
                              kind:
                                type: string
                                enum:
                                  - pipeline
                              source:
                                anyOf:
                                  - type: string
                                    enum:
                                      - entrada_externa
                                  - type: string
                                    enum:
                                      - gatilho_passagem
                                  - type: string
                                    enum:
                                      - atribuicao
                                  - type: string
                                    enum:
                                      - acao_delay
                              pipelineId:
                                type: string
                                format: uuid
                                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              stageId:
                                type: string
                                format: uuid
                                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                            required:
                              - source
                              - pipelineId
                              - stageId
                            additionalProperties: false
                          - type: object
                            properties:
                              kind:
                                type: string
                                enum:
                                  - scheduling
                              source:
                                type: string
                                enum:
                                  - notificacao
                              eventTypeId:
                                type: string
                                format: uuid
                                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                            required:
                              - kind
                              - source
                              - eventTypeId
                            additionalProperties: false
                          - type: object
                            properties:
                              kind:
                                type: string
                                enum:
                                  - livechat
                              source:
                                type: string
                                enum:
                                  - automacao
                              automationId:
                                type: string
                                format: uuid
                                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                            required:
                              - kind
                              - source
                              - automationId
                            additionalProperties: false
                          - type: object
                            properties:
                              kind:
                                type: string
                                enum:
                                  - webinar
                              source:
                                anyOf:
                                  - type: string
                                    enum:
                                      - pos_inscricao
                                  - type: string
                                    enum:
                                      - lembrete
                                  - type: string
                                    enum:
                                      - presenca
                                  - type: string
                                    enum:
                                      - engajamento
                                  - type: string
                                    enum:
                                      - oferta
                                  - type: string
                                    enum:
                                      - pos_evento
                              webinarId:
                                type: string
                                format: uuid
                                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                            required:
                              - kind
                              - source
                              - webinarId
                            additionalProperties: false
                    required:
                      - locked
                    additionalProperties: false
                  - type: "null"
              category:
                type: string
                enum:
                  - atendimento
                  - vendas
                  - suporte
                  - marketing
                  - cobranca
                  - onboarding
                  - retencao
                  - pesquisa
                  - agendamento
                  - qualificacao
                  - feedback
                  - notificacao
                  - integracao
                  - teste
                  - outro
              shareId:
                anyOf:
                  - type: string
                    maxLength: 8
                  - type: "null"
              shareSingle:
                default: false
                type: boolean
              shareCount:
                default: 0
                type: number
              executionDebounceSeconds:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              dispatchBatchSize:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  - type: "null"
              dispatchIntervalMinutes:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  - type: "null"
              dispatchSnapshotListId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              icon:
                anyOf:
                  - type: string
                  - type: "null"
              goal:
                anyOf:
                  - type: string
                  - type: "null"
              useCases:
                anyOf:
                  - type: string
                  - type: "null"
              groupName:
                anyOf:
                  - type: string
                    maxLength: 255
                  - type: "null"
              projectId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              funnelId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              importedId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              scheduledJobId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              startStepId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              types:
                anyOf:
                  - type: array
                    items:
                      type: string
                  - type: "null"
              triggers:
                anyOf:
                  - type: array
                    items:
                      type: string
                  - type: "null"
              ctr:
                type: object
                properties:
                  totalSent:
                    type: number
                  totalOpened:
                    type: number
                  ctr:
                    type: number
                required:
                  - totalSent
                  - totalOpened
                  - ctr
                additionalProperties: false
              startStep:
                anyOf:
                  - type: object
                    properties:
                      id:
                        type: string
                      type:
                        type: string
                      meta: {}
                      input: {}
                      action:
                        type: string
                      target: {}
                      triggerStart:
                        type: array
                        items: {}
                      triggerExit:
                        type: array
                        items: {}
                    required:
                      - id
                      - type
                    additionalProperties: false
                  - type: "null"
              instancesCount:
                anyOf:
                  - type: number
                  - type: string
                  - type: "null"
              contactsCount:
                anyOf:
                  - type: number
                  - type: string
                  - type: "null"
              optInCounts:
                anyOf:
                  - type: object
                    properties:
                      email:
                        type: number
                      whatsapp:
                        type: number
                      sms:
                        type: number
                      telegram:
                        type: number
                      instagram:
                        type: number
                      voice:
                        type: number
                    required:
                      - email
                      - whatsapp
                      - sms
                      - telegram
                      - instagram
                      - voice
                    additionalProperties: false
                  - type: "null"
            required:
              - id
              - name
              - mode
              - category
              - shareSingle
              - shareCount
              - executionDebounceSeconds
              - projectId
              - ownerId
              - createdAt
              - updatedAt
              - types
              - triggers
              - ctr
              - startStep
              - instancesCount
              - contactsCount
              - optInCounts
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
        analytics:
          type: object
          properties:
            totalExecutions:
              type: number
            totalExecutionsFinished:
              type: number
            totalFlowsActive:
              type: number
            totalFlowsTrigger:
              type: number
          required:
            - totalExecutions
            - totalExecutionsFinished
            - totalFlowsActive
            - totalFlowsTrigger
          additionalProperties: false
      required:
        - data
        - meta
        - analytics
      additionalProperties: false
    FlowsGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          maxLength: 255
        mode:
          type: string
          enum:
            - template
            - draft
            - scheduled
            - active
            - closed
            - archived
        modeMeta:
          anyOf:
            - type: object
              properties:
                locked:
                  type: boolean
                lostChat:
                  type: string
                suspendedByChannel:
                  type: object
                  properties:
                    appId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    at:
                      type: string
                  required:
                    - appId
                    - at
                  additionalProperties: false
                invalidIds:
                  type: array
                  items:
                    type: string
                managed:
                  anyOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - pipeline
                        source:
                          anyOf:
                            - type: string
                              enum:
                                - entrada_externa
                            - type: string
                              enum:
                                - gatilho_passagem
                            - type: string
                              enum:
                                - atribuicao
                            - type: string
                              enum:
                                - acao_delay
                        pipelineId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        stageId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      required:
                        - source
                        - pipelineId
                        - stageId
                      additionalProperties: false
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - scheduling
                        source:
                          type: string
                          enum:
                            - notificacao
                        eventTypeId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      required:
                        - kind
                        - source
                        - eventTypeId
                      additionalProperties: false
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - livechat
                        source:
                          type: string
                          enum:
                            - automacao
                        automationId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      required:
                        - kind
                        - source
                        - automationId
                      additionalProperties: false
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - webinar
                        source:
                          anyOf:
                            - type: string
                              enum:
                                - pos_inscricao
                            - type: string
                              enum:
                                - lembrete
                            - type: string
                              enum:
                                - presenca
                            - type: string
                              enum:
                                - engajamento
                            - type: string
                              enum:
                                - oferta
                            - type: string
                              enum:
                                - pos_evento
                        webinarId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      required:
                        - kind
                        - source
                        - webinarId
                      additionalProperties: false
              required:
                - locked
              additionalProperties: false
            - type: "null"
        category:
          type: string
          enum:
            - atendimento
            - vendas
            - suporte
            - marketing
            - cobranca
            - onboarding
            - retencao
            - pesquisa
            - agendamento
            - qualificacao
            - feedback
            - notificacao
            - integracao
            - teste
            - outro
        shareId:
          anyOf:
            - type: string
              maxLength: 8
            - type: "null"
        shareSingle:
          default: false
          type: boolean
        shareCount:
          default: 0
          type: number
        executionDebounceSeconds:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        dispatchBatchSize:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 9007199254740991
            - type: "null"
        dispatchIntervalMinutes:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 9007199254740991
            - type: "null"
        dispatchSnapshotListId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        icon:
          anyOf:
            - type: string
            - type: "null"
        goal:
          anyOf:
            - type: string
            - type: "null"
        useCases:
          anyOf:
            - type: string
            - type: "null"
        groupName:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        projectId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        funnelId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        importedId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        scheduledJobId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        startStepId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        steps:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              type:
                type: string
              dependencies:
                type: array
                items:
                  type: string
              input: {}
              meta: {}
              action:
                type: string
              target: {}
              flowId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              triggerStart:
                type: array
                items: {}
              triggerExit:
                type: array
                items: {}
              analytics:
                type: object
                properties:
                  sendMessageMetrics:
                    type: object
                    properties:
                      totalSent:
                        type: number
                      deliveredCount:
                        type: number
                      deliveredPercentage:
                        type: number
                      openedCount:
                        type: number
                      openedPercentage:
                        type: number
                      clickedCount:
                        type: number
                      clickedPercentage:
                        type: number
                      failedCount:
                        type: number
                      failedPercentage:
                        type: number
                      invalidNumberCount:
                        type: number
                      invalidNumberPercentage:
                        type: number
                      lastExecutedAt:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          - type: "null"
                      buttonClicks:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties:
                          type: number
                    required:
                      - totalSent
                      - deliveredCount
                      - deliveredPercentage
                      - openedCount
                      - openedPercentage
                      - clickedCount
                      - clickedPercentage
                      - failedCount
                      - failedPercentage
                      - invalidNumberCount
                      - invalidNumberPercentage
                    additionalProperties: false
                  waitMetrics:
                    type: object
                    properties:
                      totalWaiting:
                        type: number
                      totalCompleted:
                        type: number
                      totalInstances:
                        type: number
                    required:
                      - totalWaiting
                      - totalCompleted
                      - totalInstances
                    additionalProperties: false
                  executionMetrics:
                    type: object
                    properties:
                      totalExecutions:
                        type: number
                      successfulExecutions:
                        type: number
                      failedExecutions:
                        type: number
                      successfulExecutionsPercentage:
                        type: number
                      failedExecutionsPercentage:
                        type: number
                    required:
                      - totalExecutions
                      - successfulExecutions
                      - failedExecutions
                      - successfulExecutionsPercentage
                      - failedExecutionsPercentage
                    additionalProperties: false
                required:
                  - executionMetrics
                additionalProperties: false
            required:
              - id
              - type
            additionalProperties: false
        analytics:
          type: object
          properties:
            totalExecutions:
              type: number
            uniqueContacts:
              type: number
            emailsCollected:
              type: number
            phonesCollected:
              type: number
          required:
            - totalExecutions
            - uniqueContacts
            - emailsCollected
            - phonesCollected
          additionalProperties: false
      required:
        - id
        - name
        - mode
        - category
        - shareSingle
        - shareCount
        - executionDebounceSeconds
        - projectId
        - ownerId
        - createdAt
        - updatedAt
        - steps
      additionalProperties: false
    FlowsCreateInput:
      type: object
      properties:
        category:
          type: string
          enum:
            - atendimento
            - vendas
            - suporte
            - marketing
            - cobranca
            - onboarding
            - retencao
            - pesquisa
            - agendamento
            - qualificacao
            - feedback
            - notificacao
            - integracao
            - teste
            - outro
        icon:
          anyOf:
            - type: string
            - type: "null"
        goal:
          anyOf:
            - type: string
            - type: "null"
        useCases:
          anyOf:
            - type: string
            - type: "null"
        executionDebounceSeconds:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        funnelId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        groupName:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        dispatchBatchSize:
          type: integer
          minimum: 1
          maximum: 10000
        dispatchIntervalMinutes:
          type: integer
          minimum: 0
          maximum: 1440
        name:
          type: string
          maxLength: 255
        projectId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - name
        - projectId
    FlowsCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          maxLength: 255
        mode:
          type: string
          enum:
            - template
            - draft
            - scheduled
            - active
            - closed
            - archived
        modeMeta:
          anyOf:
            - type: object
              properties:
                locked:
                  type: boolean
                lostChat:
                  type: string
                suspendedByChannel:
                  type: object
                  properties:
                    appId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    at:
                      type: string
                  required:
                    - appId
                    - at
                  additionalProperties: false
                invalidIds:
                  type: array
                  items:
                    type: string
                managed:
                  anyOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - pipeline
                        source:
                          anyOf:
                            - type: string
                              enum:
                                - entrada_externa
                            - type: string
                              enum:
                                - gatilho_passagem
                            - type: string
                              enum:
                                - atribuicao
                            - type: string
                              enum:
                                - acao_delay
                        pipelineId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        stageId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      required:
                        - source
                        - pipelineId
                        - stageId
                      additionalProperties: false
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - scheduling
                        source:
                          type: string
                          enum:
                            - notificacao
                        eventTypeId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      required:
                        - kind
                        - source
                        - eventTypeId
                      additionalProperties: false
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - livechat
                        source:
                          type: string
                          enum:
                            - automacao
                        automationId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      required:
                        - kind
                        - source
                        - automationId
                      additionalProperties: false
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - webinar
                        source:
                          anyOf:
                            - type: string
                              enum:
                                - pos_inscricao
                            - type: string
                              enum:
                                - lembrete
                            - type: string
                              enum:
                                - presenca
                            - type: string
                              enum:
                                - engajamento
                            - type: string
                              enum:
                                - oferta
                            - type: string
                              enum:
                                - pos_evento
                        webinarId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      required:
                        - kind
                        - source
                        - webinarId
                      additionalProperties: false
              required:
                - locked
              additionalProperties: false
            - type: "null"
        category:
          type: string
          enum:
            - atendimento
            - vendas
            - suporte
            - marketing
            - cobranca
            - onboarding
            - retencao
            - pesquisa
            - agendamento
            - qualificacao
            - feedback
            - notificacao
            - integracao
            - teste
            - outro
        shareId:
          anyOf:
            - type: string
              maxLength: 8
            - type: "null"
        shareSingle:
          default: false
          type: boolean
        shareCount:
          default: 0
          type: number
        executionDebounceSeconds:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        dispatchBatchSize:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 9007199254740991
            - type: "null"
        dispatchIntervalMinutes:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 9007199254740991
            - type: "null"
        dispatchSnapshotListId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        icon:
          anyOf:
            - type: string
            - type: "null"
        goal:
          anyOf:
            - type: string
            - type: "null"
        useCases:
          anyOf:
            - type: string
            - type: "null"
        groupName:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        projectId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        funnelId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        importedId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        scheduledJobId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        startStepId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        steps:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              type:
                type: string
              dependencies:
                type: array
                items:
                  type: string
              input: {}
              meta: {}
              action:
                type: string
              target: {}
              flowId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              triggerStart:
                type: array
                items: {}
              triggerExit:
                type: array
                items: {}
            required:
              - id
              - type
            additionalProperties: false
      required:
        - id
        - name
        - mode
        - category
        - shareSingle
        - shareCount
        - executionDebounceSeconds
        - projectId
        - ownerId
        - createdAt
        - updatedAt
        - steps
      additionalProperties: false
    FlowsUpdateInput:
      type: object
      properties:
        flowId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          maxLength: 255
        category:
          type: string
          enum:
            - atendimento
            - vendas
            - suporte
            - marketing
            - cobranca
            - onboarding
            - retencao
            - pesquisa
            - agendamento
            - qualificacao
            - feedback
            - notificacao
            - integracao
            - teste
            - outro
        icon:
          anyOf:
            - type: string
            - type: "null"
        goal:
          anyOf:
            - type: string
            - type: "null"
        useCases:
          anyOf:
            - type: string
            - type: "null"
        startStepId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        projectId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        executionDebounceSeconds:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        funnelId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        groupName:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        dispatchBatchSize:
          type: integer
          minimum: 1
          maximum: 10000
        dispatchIntervalMinutes:
          type: integer
          minimum: 0
          maximum: 1440
      required:
        - flowId
    FlowsUpdateOutput:
      type: object
      properties:
        updated:
          type: boolean
      required:
        - updated
      additionalProperties: false
    FlowsDeleteInput:
      type: object
      properties:
        flowId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - flowId
    FlowsDeleteOutput:
      type: object
      properties:
        deleted:
          type: boolean
      required:
        - deleted
      additionalProperties: false
    FlowsGetModeOutput:
      type: object
      properties:
        mode:
          type: string
      required:
        - mode
      additionalProperties: false
    FlowsActivateInput:
      type: object
      properties:
        flowId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - flowId
    FlowsActivateOutput:
      type: object
      properties:
        activated:
          type: boolean
      required:
        - activated
      additionalProperties: false
    FlowsCloseInput:
      type: object
      properties:
        flowId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - flowId
    FlowsCloseOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          maxLength: 255
        mode:
          type: string
          enum:
            - template
            - draft
            - scheduled
            - active
            - closed
            - archived
        modeMeta:
          anyOf:
            - type: object
              properties:
                locked:
                  type: boolean
                lostChat:
                  type: string
                suspendedByChannel:
                  type: object
                  properties:
                    appId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    at:
                      type: string
                  required:
                    - appId
                    - at
                  additionalProperties: false
                invalidIds:
                  type: array
                  items:
                    type: string
                managed:
                  anyOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - pipeline
                        source:
                          anyOf:
                            - type: string
                              enum:
                                - entrada_externa
                            - type: string
                              enum:
                                - gatilho_passagem
                            - type: string
                              enum:
                                - atribuicao
                            - type: string
                              enum:
                                - acao_delay
                        pipelineId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        stageId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      required:
                        - source
                        - pipelineId
                        - stageId
                      additionalProperties: false
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - scheduling
                        source:
                          type: string
                          enum:
                            - notificacao
                        eventTypeId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      required:
                        - kind
                        - source
                        - eventTypeId
                      additionalProperties: false
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - livechat
                        source:
                          type: string
                          enum:
                            - automacao
                        automationId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      required:
                        - kind
                        - source
                        - automationId
                      additionalProperties: false
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - webinar
                        source:
                          anyOf:
                            - type: string
                              enum:
                                - pos_inscricao
                            - type: string
                              enum:
                                - lembrete
                            - type: string
                              enum:
                                - presenca
                            - type: string
                              enum:
                                - engajamento
                            - type: string
                              enum:
                                - oferta
                            - type: string
                              enum:
                                - pos_evento
                        webinarId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      required:
                        - kind
                        - source
                        - webinarId
                      additionalProperties: false
              required:
                - locked
              additionalProperties: false
            - type: "null"
        category:
          type: string
          enum:
            - atendimento
            - vendas
            - suporte
            - marketing
            - cobranca
            - onboarding
            - retencao
            - pesquisa
            - agendamento
            - qualificacao
            - feedback
            - notificacao
            - integracao
            - teste
            - outro
        shareId:
          anyOf:
            - type: string
              maxLength: 8
            - type: "null"
        shareSingle:
          default: false
          type: boolean
        shareCount:
          default: 0
          type: number
        executionDebounceSeconds:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        dispatchBatchSize:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 9007199254740991
            - type: "null"
        dispatchIntervalMinutes:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 9007199254740991
            - type: "null"
        dispatchSnapshotListId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        icon:
          anyOf:
            - type: string
            - type: "null"
        goal:
          anyOf:
            - type: string
            - type: "null"
        useCases:
          anyOf:
            - type: string
            - type: "null"
        groupName:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        projectId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        funnelId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        importedId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        scheduledJobId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        startStepId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - name
        - mode
        - category
        - shareSingle
        - shareCount
        - executionDebounceSeconds
        - projectId
        - ownerId
        - createdAt
        - updatedAt
      additionalProperties: false
    FlowsArchiveInput:
      type: object
      properties:
        flowId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - flowId
    FlowsArchiveOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          maxLength: 255
        mode:
          type: string
          enum:
            - template
            - draft
            - scheduled
            - active
            - closed
            - archived
        modeMeta:
          anyOf:
            - type: object
              properties:
                locked:
                  type: boolean
                lostChat:
                  type: string
                suspendedByChannel:
                  type: object
                  properties:
                    appId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    at:
                      type: string
                  required:
                    - appId
                    - at
                  additionalProperties: false
                invalidIds:
                  type: array
                  items:
                    type: string
                managed:
                  anyOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - pipeline
                        source:
                          anyOf:
                            - type: string
                              enum:
                                - entrada_externa
                            - type: string
                              enum:
                                - gatilho_passagem
                            - type: string
                              enum:
                                - atribuicao
                            - type: string
                              enum:
                                - acao_delay
                        pipelineId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        stageId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      required:
                        - source
                        - pipelineId
                        - stageId
                      additionalProperties: false
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - scheduling
                        source:
                          type: string
                          enum:
                            - notificacao
                        eventTypeId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      required:
                        - kind
                        - source
                        - eventTypeId
                      additionalProperties: false
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - livechat
                        source:
                          type: string
                          enum:
                            - automacao
                        automationId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      required:
                        - kind
                        - source
                        - automationId
                      additionalProperties: false
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - webinar
                        source:
                          anyOf:
                            - type: string
                              enum:
                                - pos_inscricao
                            - type: string
                              enum:
                                - lembrete
                            - type: string
                              enum:
                                - presenca
                            - type: string
                              enum:
                                - engajamento
                            - type: string
                              enum:
                                - oferta
                            - type: string
                              enum:
                                - pos_evento
                        webinarId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      required:
                        - kind
                        - source
                        - webinarId
                      additionalProperties: false
              required:
                - locked
              additionalProperties: false
            - type: "null"
        category:
          type: string
          enum:
            - atendimento
            - vendas
            - suporte
            - marketing
            - cobranca
            - onboarding
            - retencao
            - pesquisa
            - agendamento
            - qualificacao
            - feedback
            - notificacao
            - integracao
            - teste
            - outro
        shareId:
          anyOf:
            - type: string
              maxLength: 8
            - type: "null"
        shareSingle:
          default: false
          type: boolean
        shareCount:
          default: 0
          type: number
        executionDebounceSeconds:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        dispatchBatchSize:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 9007199254740991
            - type: "null"
        dispatchIntervalMinutes:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 9007199254740991
            - type: "null"
        dispatchSnapshotListId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        icon:
          anyOf:
            - type: string
            - type: "null"
        goal:
          anyOf:
            - type: string
            - type: "null"
        useCases:
          anyOf:
            - type: string
            - type: "null"
        groupName:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        projectId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        funnelId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        importedId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        scheduledJobId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        startStepId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - name
        - mode
        - category
        - shareSingle
        - shareCount
        - executionDebounceSeconds
        - projectId
        - ownerId
        - createdAt
        - updatedAt
      additionalProperties: false
    FlowsStructureGetOutput:
      type: object
      properties:
        flowId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        startStepId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        steps:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              type:
                type: string
              action:
                type: string
              isEntry:
                type: boolean
              triggerStart:
                type: array
                items:
                  type: object
                  properties:
                    type:
                      default: start
                      anyOf:
                        - type: string
                          enum:
                            - start
                        - type: string
                          enum:
                            - exit
                    eventName:
                      type: string
                      maxLength: 128
                    constraints:
                      minItems: 0
                      maxItems: 5
                      type: array
                      items:
                        type: object
                        properties:
                          field:
                            type: string
                            maxLength: 128
                          op:
                            anyOf:
                              - type: string
                                enum:
                                  - EQ
                              - type: string
                                enum:
                                  - NEQ
                              - type: string
                                enum:
                                  - GT
                              - type: string
                                enum:
                                  - GTE
                              - type: string
                                enum:
                                  - LT
                              - type: string
                                enum:
                                  - LTE
                              - type: string
                                enum:
                                  - EXISTS
                              - type: string
                                enum:
                                  - IN
                              - type: string
                                enum:
                                  - CONTAINS
                              - type: string
                                enum:
                                  - NOT_CONTAINS
                              - type: string
                                enum:
                                  - STARTS_WITH
                              - type: string
                                enum:
                                  - REGEX
                              - type: string
                                enum:
                                  - WORD_MATCH
                          valueType:
                            anyOf:
                              - type: string
                                enum:
                                  - STRING
                              - type: string
                                enum:
                                  - NUMBER
                              - type: string
                                enum:
                                  - BOOLEAN
                              - type: string
                                enum:
                                  - DATE
                              - type: string
                                enum:
                                  - UUID
                              - type: string
                                enum:
                                  - SEGMENT
                          valueString:
                            type: string
                          valueNumber:
                            type: number
                          valueBoolean:
                            type: boolean
                          valueDate:
                            type: string
                            format: date-time
                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          valueUuid:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          valueJson: {}
                          caseSensitive:
                            type: boolean
                        required:
                          - field
                          - op
                          - valueType
                        additionalProperties: false
                  required:
                    - type
                    - eventName
                    - constraints
                  additionalProperties: false
              triggerExit:
                type: array
                items:
                  type: object
                  properties:
                    type:
                      default: start
                      anyOf:
                        - type: string
                          enum:
                            - start
                        - type: string
                          enum:
                            - exit
                    eventName:
                      type: string
                      maxLength: 128
                    constraints:
                      minItems: 0
                      maxItems: 5
                      type: array
                      items:
                        type: object
                        properties:
                          field:
                            type: string
                            maxLength: 128
                          op:
                            anyOf:
                              - type: string
                                enum:
                                  - EQ
                              - type: string
                                enum:
                                  - NEQ
                              - type: string
                                enum:
                                  - GT
                              - type: string
                                enum:
                                  - GTE
                              - type: string
                                enum:
                                  - LT
                              - type: string
                                enum:
                                  - LTE
                              - type: string
                                enum:
                                  - EXISTS
                              - type: string
                                enum:
                                  - IN
                              - type: string
                                enum:
                                  - CONTAINS
                              - type: string
                                enum:
                                  - NOT_CONTAINS
                              - type: string
                                enum:
                                  - STARTS_WITH
                              - type: string
                                enum:
                                  - REGEX
                              - type: string
                                enum:
                                  - WORD_MATCH
                          valueType:
                            anyOf:
                              - type: string
                                enum:
                                  - STRING
                              - type: string
                                enum:
                                  - NUMBER
                              - type: string
                                enum:
                                  - BOOLEAN
                              - type: string
                                enum:
                                  - DATE
                              - type: string
                                enum:
                                  - UUID
                              - type: string
                                enum:
                                  - SEGMENT
                          valueString:
                            type: string
                          valueNumber:
                            type: number
                          valueBoolean:
                            type: boolean
                          valueDate:
                            type: string
                            format: date-time
                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          valueUuid:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          valueJson: {}
                          caseSensitive:
                            type: boolean
                        required:
                          - field
                          - op
                          - valueType
                        additionalProperties: false
                  required:
                    - type
                    - eventName
                    - constraints
                  additionalProperties: false
            required:
              - id
              - type
              - isEntry
            additionalProperties: false
        edges:
          type: array
          items:
            type: object
            properties:
              from:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              handle:
                type: string
              to:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            required:
              - from
              - to
            additionalProperties: false
      required:
        - flowId
        - steps
        - edges
      additionalProperties: false
    FlowsTriggersCatalogOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              eventName:
                type: string
              label:
                type: string
              description:
                type: string
              group:
                type: string
              scopes:
                type: array
                items:
                  type: object
                  properties:
                    field:
                      type: string
                    label:
                      type: string
                    valueType:
                      type: string
                    op:
                      type: string
                  required:
                    - field
                    - label
                    - valueType
                    - op
                  additionalProperties: false
            required:
              - eventName
              - label
              - description
              - group
              - scopes
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    FlowsActionsCatalogOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              key:
                type: string
              label:
                type: string
              description:
                type: string
              section:
                type: string
              stepType:
                type: string
              action:
                type: string
              channel:
                type: string
              httpPreset:
                type: string
              comingSoon:
                type: boolean
            required:
              - key
              - label
              - description
              - section
              - stepType
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    FlowsConditionalsCatalogOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
              label:
                type: string
              description:
                type: string
              fields:
                type: array
                items:
                  type: object
                  properties:
                    field:
                      type: string
                    label:
                      type: string
                    valueType:
                      type: string
                    enumValues:
                      type: array
                      items:
                        type: string
                    entity:
                      type: string
                    optional:
                      type: boolean
                  required:
                    - field
                    - label
                    - valueType
                  additionalProperties: false
            required:
              - type
              - label
              - description
              - fields
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    InstagramPostsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              caption:
                type: string
              mediaType:
                type: string
              mediaProductType:
                type: string
              mediaUrl:
                type: string
              permalink:
                type: string
              timestamp:
                type: string
              commentsCount:
                type: number
              likeCount:
                type: number
              thumbnailUrl:
                type: string
            required:
              - id
              - mediaType
              - permalink
              - timestamp
            additionalProperties: false
        meta:
          type: object
          properties:
            next:
              type: string
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    FlowsValidateOutput:
      type: object
      properties:
        valid:
          type: boolean
        stepCount:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        hasEntryTrigger:
          type: boolean
        danglingTargets:
          type: array
          items:
            type: object
            properties:
              stepId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              handle:
                type: string
              target:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            required:
              - stepId
              - target
            additionalProperties: false
        orphanStepIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        incompleteChannelSteps:
          type: array
          items:
            type: object
            properties:
              stepId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              channel:
                type: string
              reason:
                type: string
              preview:
                type: string
            required:
              - stepId
              - channel
              - reason
            additionalProperties: false
      required:
        - valid
        - stepCount
        - hasEntryTrigger
        - danglingTargets
        - orphanStepIds
        - incompleteChannelSteps
      additionalProperties: false
    FlowsStepCreateInput:
      type: object
      properties:
        flowId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        type:
          type: string
        input:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties: {}
            - type: string
        action:
          type: string
        target:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        dependencies:
          type: array
          items:
            type: string
        meta: {}
        triggerStart:
          type: array
          items:
            type: object
            properties:
              type:
                default: start
                anyOf:
                  - type: string
                    enum:
                      - start
                  - type: string
                    enum:
                      - exit
              eventName:
                type: string
                maxLength: 128
              constraints:
                minItems: 0
                maxItems: 5
                type: array
                items:
                  type: object
                  properties:
                    field:
                      type: string
                      maxLength: 128
                    op:
                      anyOf:
                        - type: string
                          enum:
                            - EQ
                        - type: string
                          enum:
                            - NEQ
                        - type: string
                          enum:
                            - GT
                        - type: string
                          enum:
                            - GTE
                        - type: string
                          enum:
                            - LT
                        - type: string
                          enum:
                            - LTE
                        - type: string
                          enum:
                            - EXISTS
                        - type: string
                          enum:
                            - IN
                        - type: string
                          enum:
                            - CONTAINS
                        - type: string
                          enum:
                            - NOT_CONTAINS
                        - type: string
                          enum:
                            - STARTS_WITH
                        - type: string
                          enum:
                            - REGEX
                        - type: string
                          enum:
                            - WORD_MATCH
                    valueType:
                      anyOf:
                        - type: string
                          enum:
                            - STRING
                        - type: string
                          enum:
                            - NUMBER
                        - type: string
                          enum:
                            - BOOLEAN
                        - type: string
                          enum:
                            - DATE
                        - type: string
                          enum:
                            - UUID
                        - type: string
                          enum:
                            - SEGMENT
                    valueString:
                      type: string
                    valueNumber:
                      type: number
                    valueBoolean:
                      type: boolean
                    valueDate:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    valueUuid:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    valueJson: {}
                    caseSensitive:
                      type: boolean
                  required:
                    - field
                    - op
                    - valueType
            required:
              - eventName
              - constraints
        triggerExit:
          type: array
          items:
            type: object
            properties:
              type:
                default: start
                anyOf:
                  - type: string
                    enum:
                      - start
                  - type: string
                    enum:
                      - exit
              eventName:
                type: string
                maxLength: 128
              constraints:
                minItems: 0
                maxItems: 5
                type: array
                items:
                  type: object
                  properties:
                    field:
                      type: string
                      maxLength: 128
                    op:
                      anyOf:
                        - type: string
                          enum:
                            - EQ
                        - type: string
                          enum:
                            - NEQ
                        - type: string
                          enum:
                            - GT
                        - type: string
                          enum:
                            - GTE
                        - type: string
                          enum:
                            - LT
                        - type: string
                          enum:
                            - LTE
                        - type: string
                          enum:
                            - EXISTS
                        - type: string
                          enum:
                            - IN
                        - type: string
                          enum:
                            - CONTAINS
                        - type: string
                          enum:
                            - NOT_CONTAINS
                        - type: string
                          enum:
                            - STARTS_WITH
                        - type: string
                          enum:
                            - REGEX
                        - type: string
                          enum:
                            - WORD_MATCH
                    valueType:
                      anyOf:
                        - type: string
                          enum:
                            - STRING
                        - type: string
                          enum:
                            - NUMBER
                        - type: string
                          enum:
                            - BOOLEAN
                        - type: string
                          enum:
                            - DATE
                        - type: string
                          enum:
                            - UUID
                        - type: string
                          enum:
                            - SEGMENT
                    valueString:
                      type: string
                    valueNumber:
                      type: number
                    valueBoolean:
                      type: boolean
                    valueDate:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    valueUuid:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    valueJson: {}
                    caseSensitive:
                      type: boolean
                  required:
                    - field
                    - op
                    - valueType
            required:
              - eventName
              - constraints
      required:
        - flowId
        - type
    FlowsStepCreateOutput:
      type: object
      properties:
        step:
          type: object
          properties:
            id:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            type:
              type: string
            dependencies:
              type: array
              items:
                type: string
            input: {}
            meta: {}
            action:
              type: string
            target: {}
            flowId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            triggerStart:
              type: array
              items:
                type: object
                properties:
                  type:
                    default: start
                    anyOf:
                      - type: string
                        enum:
                          - start
                      - type: string
                        enum:
                          - exit
                  eventName:
                    type: string
                    maxLength: 128
                  constraints:
                    minItems: 0
                    maxItems: 5
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          maxLength: 128
                        op:
                          anyOf:
                            - type: string
                              enum:
                                - EQ
                            - type: string
                              enum:
                                - NEQ
                            - type: string
                              enum:
                                - GT
                            - type: string
                              enum:
                                - GTE
                            - type: string
                              enum:
                                - LT
                            - type: string
                              enum:
                                - LTE
                            - type: string
                              enum:
                                - EXISTS
                            - type: string
                              enum:
                                - IN
                            - type: string
                              enum:
                                - CONTAINS
                            - type: string
                              enum:
                                - NOT_CONTAINS
                            - type: string
                              enum:
                                - STARTS_WITH
                            - type: string
                              enum:
                                - REGEX
                            - type: string
                              enum:
                                - WORD_MATCH
                        valueType:
                          anyOf:
                            - type: string
                              enum:
                                - STRING
                            - type: string
                              enum:
                                - NUMBER
                            - type: string
                              enum:
                                - BOOLEAN
                            - type: string
                              enum:
                                - DATE
                            - type: string
                              enum:
                                - UUID
                            - type: string
                              enum:
                                - SEGMENT
                        valueString:
                          type: string
                        valueNumber:
                          type: number
                        valueBoolean:
                          type: boolean
                        valueDate:
                          type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        valueUuid:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        valueJson: {}
                        caseSensitive:
                          type: boolean
                      required:
                        - field
                        - op
                        - valueType
                      additionalProperties: false
                required:
                  - type
                  - eventName
                  - constraints
                additionalProperties: false
            triggerExit:
              type: array
              items:
                type: object
                properties:
                  type:
                    default: start
                    anyOf:
                      - type: string
                        enum:
                          - start
                      - type: string
                        enum:
                          - exit
                  eventName:
                    type: string
                    maxLength: 128
                  constraints:
                    minItems: 0
                    maxItems: 5
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          maxLength: 128
                        op:
                          anyOf:
                            - type: string
                              enum:
                                - EQ
                            - type: string
                              enum:
                                - NEQ
                            - type: string
                              enum:
                                - GT
                            - type: string
                              enum:
                                - GTE
                            - type: string
                              enum:
                                - LT
                            - type: string
                              enum:
                                - LTE
                            - type: string
                              enum:
                                - EXISTS
                            - type: string
                              enum:
                                - IN
                            - type: string
                              enum:
                                - CONTAINS
                            - type: string
                              enum:
                                - NOT_CONTAINS
                            - type: string
                              enum:
                                - STARTS_WITH
                            - type: string
                              enum:
                                - REGEX
                            - type: string
                              enum:
                                - WORD_MATCH
                        valueType:
                          anyOf:
                            - type: string
                              enum:
                                - STRING
                            - type: string
                              enum:
                                - NUMBER
                            - type: string
                              enum:
                                - BOOLEAN
                            - type: string
                              enum:
                                - DATE
                            - type: string
                              enum:
                                - UUID
                            - type: string
                              enum:
                                - SEGMENT
                        valueString:
                          type: string
                        valueNumber:
                          type: number
                        valueBoolean:
                          type: boolean
                        valueDate:
                          type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        valueUuid:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        valueJson: {}
                        caseSensitive:
                          type: boolean
                      required:
                        - field
                        - op
                        - valueType
                      additionalProperties: false
                required:
                  - type
                  - eventName
                  - constraints
                additionalProperties: false
          required:
            - id
            - type
          additionalProperties: false
      required:
        - step
      additionalProperties: false
    FlowsStepUpdateInput:
      type: object
      properties:
        flowId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        stepId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        input:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties: {}
            - type: string
        action:
          type: string
        dependencies:
          type: array
          items:
            type: string
        meta: {}
      required:
        - flowId
        - stepId
    FlowsStepUpdateOutput:
      type: object
      properties:
        step:
          type: object
          properties:
            id:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            type:
              type: string
            dependencies:
              type: array
              items:
                type: string
            input: {}
            meta: {}
            action:
              type: string
            target: {}
            flowId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            triggerStart:
              type: array
              items:
                type: object
                properties:
                  type:
                    default: start
                    anyOf:
                      - type: string
                        enum:
                          - start
                      - type: string
                        enum:
                          - exit
                  eventName:
                    type: string
                    maxLength: 128
                  constraints:
                    minItems: 0
                    maxItems: 5
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          maxLength: 128
                        op:
                          anyOf:
                            - type: string
                              enum:
                                - EQ
                            - type: string
                              enum:
                                - NEQ
                            - type: string
                              enum:
                                - GT
                            - type: string
                              enum:
                                - GTE
                            - type: string
                              enum:
                                - LT
                            - type: string
                              enum:
                                - LTE
                            - type: string
                              enum:
                                - EXISTS
                            - type: string
                              enum:
                                - IN
                            - type: string
                              enum:
                                - CONTAINS
                            - type: string
                              enum:
                                - NOT_CONTAINS
                            - type: string
                              enum:
                                - STARTS_WITH
                            - type: string
                              enum:
                                - REGEX
                            - type: string
                              enum:
                                - WORD_MATCH
                        valueType:
                          anyOf:
                            - type: string
                              enum:
                                - STRING
                            - type: string
                              enum:
                                - NUMBER
                            - type: string
                              enum:
                                - BOOLEAN
                            - type: string
                              enum:
                                - DATE
                            - type: string
                              enum:
                                - UUID
                            - type: string
                              enum:
                                - SEGMENT
                        valueString:
                          type: string
                        valueNumber:
                          type: number
                        valueBoolean:
                          type: boolean
                        valueDate:
                          type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        valueUuid:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        valueJson: {}
                        caseSensitive:
                          type: boolean
                      required:
                        - field
                        - op
                        - valueType
                      additionalProperties: false
                required:
                  - type
                  - eventName
                  - constraints
                additionalProperties: false
            triggerExit:
              type: array
              items:
                type: object
                properties:
                  type:
                    default: start
                    anyOf:
                      - type: string
                        enum:
                          - start
                      - type: string
                        enum:
                          - exit
                  eventName:
                    type: string
                    maxLength: 128
                  constraints:
                    minItems: 0
                    maxItems: 5
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          maxLength: 128
                        op:
                          anyOf:
                            - type: string
                              enum:
                                - EQ
                            - type: string
                              enum:
                                - NEQ
                            - type: string
                              enum:
                                - GT
                            - type: string
                              enum:
                                - GTE
                            - type: string
                              enum:
                                - LT
                            - type: string
                              enum:
                                - LTE
                            - type: string
                              enum:
                                - EXISTS
                            - type: string
                              enum:
                                - IN
                            - type: string
                              enum:
                                - CONTAINS
                            - type: string
                              enum:
                                - NOT_CONTAINS
                            - type: string
                              enum:
                                - STARTS_WITH
                            - type: string
                              enum:
                                - REGEX
                            - type: string
                              enum:
                                - WORD_MATCH
                        valueType:
                          anyOf:
                            - type: string
                              enum:
                                - STRING
                            - type: string
                              enum:
                                - NUMBER
                            - type: string
                              enum:
                                - BOOLEAN
                            - type: string
                              enum:
                                - DATE
                            - type: string
                              enum:
                                - UUID
                            - type: string
                              enum:
                                - SEGMENT
                        valueString:
                          type: string
                        valueNumber:
                          type: number
                        valueBoolean:
                          type: boolean
                        valueDate:
                          type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        valueUuid:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        valueJson: {}
                        caseSensitive:
                          type: boolean
                      required:
                        - field
                        - op
                        - valueType
                      additionalProperties: false
                required:
                  - type
                  - eventName
                  - constraints
                additionalProperties: false
          required:
            - id
            - type
          additionalProperties: false
      required:
        - step
      additionalProperties: false
    FlowsStepConnectInput:
      type: object
      properties:
        flowId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        stepId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        handle:
          type: string
        target:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
      required:
        - flowId
        - stepId
    FlowsStepConnectOutput:
      type: object
      properties:
        step:
          type: object
          properties:
            id:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            type:
              type: string
            dependencies:
              type: array
              items:
                type: string
            input: {}
            meta: {}
            action:
              type: string
            target: {}
            flowId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            triggerStart:
              type: array
              items:
                type: object
                properties:
                  type:
                    default: start
                    anyOf:
                      - type: string
                        enum:
                          - start
                      - type: string
                        enum:
                          - exit
                  eventName:
                    type: string
                    maxLength: 128
                  constraints:
                    minItems: 0
                    maxItems: 5
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          maxLength: 128
                        op:
                          anyOf:
                            - type: string
                              enum:
                                - EQ
                            - type: string
                              enum:
                                - NEQ
                            - type: string
                              enum:
                                - GT
                            - type: string
                              enum:
                                - GTE
                            - type: string
                              enum:
                                - LT
                            - type: string
                              enum:
                                - LTE
                            - type: string
                              enum:
                                - EXISTS
                            - type: string
                              enum:
                                - IN
                            - type: string
                              enum:
                                - CONTAINS
                            - type: string
                              enum:
                                - NOT_CONTAINS
                            - type: string
                              enum:
                                - STARTS_WITH
                            - type: string
                              enum:
                                - REGEX
                            - type: string
                              enum:
                                - WORD_MATCH
                        valueType:
                          anyOf:
                            - type: string
                              enum:
                                - STRING
                            - type: string
                              enum:
                                - NUMBER
                            - type: string
                              enum:
                                - BOOLEAN
                            - type: string
                              enum:
                                - DATE
                            - type: string
                              enum:
                                - UUID
                            - type: string
                              enum:
                                - SEGMENT
                        valueString:
                          type: string
                        valueNumber:
                          type: number
                        valueBoolean:
                          type: boolean
                        valueDate:
                          type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        valueUuid:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        valueJson: {}
                        caseSensitive:
                          type: boolean
                      required:
                        - field
                        - op
                        - valueType
                      additionalProperties: false
                required:
                  - type
                  - eventName
                  - constraints
                additionalProperties: false
            triggerExit:
              type: array
              items:
                type: object
                properties:
                  type:
                    default: start
                    anyOf:
                      - type: string
                        enum:
                          - start
                      - type: string
                        enum:
                          - exit
                  eventName:
                    type: string
                    maxLength: 128
                  constraints:
                    minItems: 0
                    maxItems: 5
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          maxLength: 128
                        op:
                          anyOf:
                            - type: string
                              enum:
                                - EQ
                            - type: string
                              enum:
                                - NEQ
                            - type: string
                              enum:
                                - GT
                            - type: string
                              enum:
                                - GTE
                            - type: string
                              enum:
                                - LT
                            - type: string
                              enum:
                                - LTE
                            - type: string
                              enum:
                                - EXISTS
                            - type: string
                              enum:
                                - IN
                            - type: string
                              enum:
                                - CONTAINS
                            - type: string
                              enum:
                                - NOT_CONTAINS
                            - type: string
                              enum:
                                - STARTS_WITH
                            - type: string
                              enum:
                                - REGEX
                            - type: string
                              enum:
                                - WORD_MATCH
                        valueType:
                          anyOf:
                            - type: string
                              enum:
                                - STRING
                            - type: string
                              enum:
                                - NUMBER
                            - type: string
                              enum:
                                - BOOLEAN
                            - type: string
                              enum:
                                - DATE
                            - type: string
                              enum:
                                - UUID
                            - type: string
                              enum:
                                - SEGMENT
                        valueString:
                          type: string
                        valueNumber:
                          type: number
                        valueBoolean:
                          type: boolean
                        valueDate:
                          type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        valueUuid:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        valueJson: {}
                        caseSensitive:
                          type: boolean
                      required:
                        - field
                        - op
                        - valueType
                      additionalProperties: false
                required:
                  - type
                  - eventName
                  - constraints
                additionalProperties: false
          required:
            - id
            - type
          additionalProperties: false
      required:
        - step
      additionalProperties: false
    FlowsStepTriggersSetInput:
      type: object
      properties:
        flowId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        stepId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        triggerStart:
          type: array
          items:
            type: object
            properties:
              type:
                default: start
                anyOf:
                  - type: string
                    enum:
                      - start
                  - type: string
                    enum:
                      - exit
              eventName:
                type: string
                maxLength: 128
              constraints:
                minItems: 0
                maxItems: 5
                type: array
                items:
                  type: object
                  properties:
                    field:
                      type: string
                      maxLength: 128
                    op:
                      anyOf:
                        - type: string
                          enum:
                            - EQ
                        - type: string
                          enum:
                            - NEQ
                        - type: string
                          enum:
                            - GT
                        - type: string
                          enum:
                            - GTE
                        - type: string
                          enum:
                            - LT
                        - type: string
                          enum:
                            - LTE
                        - type: string
                          enum:
                            - EXISTS
                        - type: string
                          enum:
                            - IN
                        - type: string
                          enum:
                            - CONTAINS
                        - type: string
                          enum:
                            - NOT_CONTAINS
                        - type: string
                          enum:
                            - STARTS_WITH
                        - type: string
                          enum:
                            - REGEX
                        - type: string
                          enum:
                            - WORD_MATCH
                    valueType:
                      anyOf:
                        - type: string
                          enum:
                            - STRING
                        - type: string
                          enum:
                            - NUMBER
                        - type: string
                          enum:
                            - BOOLEAN
                        - type: string
                          enum:
                            - DATE
                        - type: string
                          enum:
                            - UUID
                        - type: string
                          enum:
                            - SEGMENT
                    valueString:
                      type: string
                    valueNumber:
                      type: number
                    valueBoolean:
                      type: boolean
                    valueDate:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    valueUuid:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    valueJson: {}
                    caseSensitive:
                      type: boolean
                  required:
                    - field
                    - op
                    - valueType
            required:
              - eventName
              - constraints
        triggerExit:
          type: array
          items:
            type: object
            properties:
              type:
                default: start
                anyOf:
                  - type: string
                    enum:
                      - start
                  - type: string
                    enum:
                      - exit
              eventName:
                type: string
                maxLength: 128
              constraints:
                minItems: 0
                maxItems: 5
                type: array
                items:
                  type: object
                  properties:
                    field:
                      type: string
                      maxLength: 128
                    op:
                      anyOf:
                        - type: string
                          enum:
                            - EQ
                        - type: string
                          enum:
                            - NEQ
                        - type: string
                          enum:
                            - GT
                        - type: string
                          enum:
                            - GTE
                        - type: string
                          enum:
                            - LT
                        - type: string
                          enum:
                            - LTE
                        - type: string
                          enum:
                            - EXISTS
                        - type: string
                          enum:
                            - IN
                        - type: string
                          enum:
                            - CONTAINS
                        - type: string
                          enum:
                            - NOT_CONTAINS
                        - type: string
                          enum:
                            - STARTS_WITH
                        - type: string
                          enum:
                            - REGEX
                        - type: string
                          enum:
                            - WORD_MATCH
                    valueType:
                      anyOf:
                        - type: string
                          enum:
                            - STRING
                        - type: string
                          enum:
                            - NUMBER
                        - type: string
                          enum:
                            - BOOLEAN
                        - type: string
                          enum:
                            - DATE
                        - type: string
                          enum:
                            - UUID
                        - type: string
                          enum:
                            - SEGMENT
                    valueString:
                      type: string
                    valueNumber:
                      type: number
                    valueBoolean:
                      type: boolean
                    valueDate:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    valueUuid:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    valueJson: {}
                    caseSensitive:
                      type: boolean
                  required:
                    - field
                    - op
                    - valueType
            required:
              - eventName
              - constraints
      required:
        - flowId
        - stepId
    FlowsStepTriggersSetOutput:
      type: object
      properties:
        triggerStart:
          type: array
          items:
            type: object
            properties:
              type:
                default: start
                anyOf:
                  - type: string
                    enum:
                      - start
                  - type: string
                    enum:
                      - exit
              eventName:
                type: string
                maxLength: 128
              constraints:
                minItems: 0
                maxItems: 5
                type: array
                items:
                  type: object
                  properties:
                    field:
                      type: string
                      maxLength: 128
                    op:
                      anyOf:
                        - type: string
                          enum:
                            - EQ
                        - type: string
                          enum:
                            - NEQ
                        - type: string
                          enum:
                            - GT
                        - type: string
                          enum:
                            - GTE
                        - type: string
                          enum:
                            - LT
                        - type: string
                          enum:
                            - LTE
                        - type: string
                          enum:
                            - EXISTS
                        - type: string
                          enum:
                            - IN
                        - type: string
                          enum:
                            - CONTAINS
                        - type: string
                          enum:
                            - NOT_CONTAINS
                        - type: string
                          enum:
                            - STARTS_WITH
                        - type: string
                          enum:
                            - REGEX
                        - type: string
                          enum:
                            - WORD_MATCH
                    valueType:
                      anyOf:
                        - type: string
                          enum:
                            - STRING
                        - type: string
                          enum:
                            - NUMBER
                        - type: string
                          enum:
                            - BOOLEAN
                        - type: string
                          enum:
                            - DATE
                        - type: string
                          enum:
                            - UUID
                        - type: string
                          enum:
                            - SEGMENT
                    valueString:
                      type: string
                    valueNumber:
                      type: number
                    valueBoolean:
                      type: boolean
                    valueDate:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    valueUuid:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    valueJson: {}
                    caseSensitive:
                      type: boolean
                  required:
                    - field
                    - op
                    - valueType
                  additionalProperties: false
            required:
              - type
              - eventName
              - constraints
            additionalProperties: false
        triggerExit:
          type: array
          items:
            type: object
            properties:
              type:
                default: start
                anyOf:
                  - type: string
                    enum:
                      - start
                  - type: string
                    enum:
                      - exit
              eventName:
                type: string
                maxLength: 128
              constraints:
                minItems: 0
                maxItems: 5
                type: array
                items:
                  type: object
                  properties:
                    field:
                      type: string
                      maxLength: 128
                    op:
                      anyOf:
                        - type: string
                          enum:
                            - EQ
                        - type: string
                          enum:
                            - NEQ
                        - type: string
                          enum:
                            - GT
                        - type: string
                          enum:
                            - GTE
                        - type: string
                          enum:
                            - LT
                        - type: string
                          enum:
                            - LTE
                        - type: string
                          enum:
                            - EXISTS
                        - type: string
                          enum:
                            - IN
                        - type: string
                          enum:
                            - CONTAINS
                        - type: string
                          enum:
                            - NOT_CONTAINS
                        - type: string
                          enum:
                            - STARTS_WITH
                        - type: string
                          enum:
                            - REGEX
                        - type: string
                          enum:
                            - WORD_MATCH
                    valueType:
                      anyOf:
                        - type: string
                          enum:
                            - STRING
                        - type: string
                          enum:
                            - NUMBER
                        - type: string
                          enum:
                            - BOOLEAN
                        - type: string
                          enum:
                            - DATE
                        - type: string
                          enum:
                            - UUID
                        - type: string
                          enum:
                            - SEGMENT
                    valueString:
                      type: string
                    valueNumber:
                      type: number
                    valueBoolean:
                      type: boolean
                    valueDate:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    valueUuid:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    valueJson: {}
                    caseSensitive:
                      type: boolean
                  required:
                    - field
                    - op
                    - valueType
                  additionalProperties: false
            required:
              - type
              - eventName
              - constraints
            additionalProperties: false
      required:
        - triggerStart
        - triggerExit
      additionalProperties: false
    FlowsStepDeleteInput:
      type: object
      properties:
        flowId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        stepId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - flowId
        - stepId
    FlowsStepDeleteOutput:
      type: object
      properties:
        deleted:
          type: boolean
      required:
        - deleted
      additionalProperties: false
    FlowsSendEmailInput:
      type: object
      properties:
        flowId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Id of the flow to add the step to. Must be in `draft` or `template`
            mode (granular step edits are rejected on active/scheduled/closed
            flows).
        subject:
          type: string
          description: Email subject line. Supports {name}/{email}/{telephone}
            personalization tokens.
        format:
          type: string
          enum:
            - html
            - text
          description: "`html` (default): renders inside the standard branded template
            from the slot fields. `text`: plain text, uses `content` instead, no
            template."
        locale:
          type: string
          enum:
            - pt-BR
            - en
          description: Template copy locale for placeholder fallbacks. Defaults to pt-BR.
        eyebrow:
          type: string
          description: 'Small uppercase label above the title, e.g. "TUDO PRONTO!".
            `format: html` only.'
        title:
          type: string
          description: "Email heading (H1) inside the template. `format: html` only."
        subtitle:
          type: string
          description: "Heading introducing the main message, shown below the
            illustration. `format: html` only."
        body:
          type: string
          description: "Main paragraph text under `subtitle` (plain text, no HTML tags —
            the template supplies the styling). `format: html` only, but
            effectively required for it."
        benefitsTitle:
          type: string
          description: 'Heading of the benefits card, e.g. "O que você encontra por aqui".
            `format: html` only.'
        benefits:
          type: array
          items:
            type: string
          description: "Checklist items inside the benefits card, each rendered with a
            check icon. Defaults to 3 placeholder items. `format: html` only."
        ctaLabel:
          type: string
          description: "CTA button label. `format: html` only."
        ctaHref:
          type: string
          description: "CTA button link — a real URL, or a checkout token ({checkout} /
            {checkout:offerId}). `format: html` only."
        ctaNote:
          type: string
          description: "Small text under the CTA button, e.g. a fallback instruction.
            `format: html` only."
        footerNote:
          type: string
          description: "Small print at the very bottom of the email (e.g. company
            address). `format: html` only. OMIT IT: the tool fills this with the
            sender's own business name + registered address (account profile),
            which is what an email needs at the bottom. Pass a value only when
            the user dictates different small print — and never invent an
            address."
        logoUrl:
          type: string
          description: "Absolute https URL of the logo shown at the TOP of the email.
            `format: html` only. OMIT IT: the tool resolves the workspace brand
            logo, then the user's profile photo, and falls back to writing the
            sender's name as text. Pass a value only when the user points at a
            specific image (e.g. one they just uploaded); a relative path or a
            `data:` URI is rejected (a sent email has no page origin, and inline
            images are stripped by Gmail/Outlook)."
        fontFamily:
          type: string
          description: 'CSS font-family stack for the whole email (e.g. "Georgia, serif").
            Default Arial/Helvetica. `format: html` only.'
        accentColor:
          type: string
          description: "CTA button background color (hex). Default `#D4FF00`. `format:
            html` only."
        buttonTextColor:
          type: string
          description: "CTA button text color (hex). Default `#000000`. `format: html`
            only."
        titleColor:
          type: string
          description: "Title (H1) text color (hex). Default `#1F2123`. `format: html`
            only."
        textColor:
          type: string
          description: "Subtitle + body paragraph text color (hex). Default `#363940`.
            `format: html` only."
        footerTextColor:
          type: string
          description: "Footer note text color (hex). Default `#697077`. `format: html`
            only."
        cardBackground:
          type: string
          description: "Email wrapper background (hex or CSS gradient). Defaults to the
            standard neutral backdrop (`#F4F5F5`). `format: html` only."
        contentWidthPx:
          type: number
          description: "Card max-width in px. Default `640`. `format: html` only."
        content:
          type: string
          description: "Plain text body. Required when `format: text`; ignored for
            `format: html` (use the slot fields, or `customHtml`, instead).
            Personalization tokens: {name}/{email}/{telephone},
            {checkout}/{checkout:offerId}."
        customHtml:
          type: string
          description: "A complete, self-contained, email-safe HTML body — `format: html`
            only, and REPLACES the slot fields entirely when present. Use this
            to actually reproduce a chosen design (the slot-only mode can only
            recolor the fixed skeleton). Any `<style>` block / `var(--...)` left
            in is auto-inlined server-side before sending (safety net, not a
            license to skip inline styles), but layout is NOT rewritten —
            flexbox/grid still silently break in real inboxes. See the
            clickmax-flows skill email-authoring reference for the authoring
            rules (table layout, inline styles only, one CTA)."
        emailSenderSignatureId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: "Verified sender signature id (EmailSenderSignatures). Resolve one
            with `email_sender_signatures_list` (pick `confirmed: true`) and
            pass it whenever one exists; never fabricate a uuid. Omit ONLY when
            the workspace has no confirmed signature at all — the node saves
            fine, but sending will fail (fatal at hermes message creation, not
            caught by activation) until a signature is added. When you omit it,
            you MUST tell the user in your reply that they have no sender email
            configured yet and the message will not send until they add and
            verify one."
        target:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Id of the next step to connect this message output to. Optional —
            omit and wire it later with flows_step_connect (use that, with a
            handle, for branch outputs).
      required:
        - flowId
        - subject
    FlowsSendSmsInput:
      type: object
      properties:
        flowId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Id of the flow to add the step to. Must be in `draft` or `template`
            mode (granular step edits are rejected on active/scheduled/closed
            flows).
        content:
          type: string
          description: "Message body. Personalization tokens use a flat lead key in SINGLE
            braces: {name}, {email}, {telephone} (the only recognized lead
            fields — never {{name}} nor {nome}). Checkout links: {checkout}
            (flow default offer) or {checkout:offerId}."
        target:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Id of the next step to connect this message output to. Optional —
            omit and wire it later with flows_step_connect (use that, with a
            handle, for branch outputs).
      required:
        - flowId
        - content
    FlowsSendWhatsappInput:
      type: object
      properties:
        flowId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Id of the flow to add the step to. Must be in `draft` or `template`
            mode (granular step edits are rejected on active/scheduled/closed
            flows).
        content:
          type: string
          description: "Meaning depends on `format`. `format: 'text'`: the free-form
            message body — personalization tokens use a flat lead key in SINGLE
            braces: {name}, {email}, {telephone} (never {{name}}/{nome});
            checkout links: {checkout} or {checkout:offerId}. `format:
            'template'`: this is NOT the message text — it is the approved
            template's `elementName` (resolve with
            `gupshup_templates_list`/`gupshup_templates_get`), and the real copy
            comes from the template itself, personalized via `paramMapping`.
            Writing prose here in template mode points the node at a template
            that does not exist and the builder rejects it as
            `templateNotFound`."
        format:
          type: string
          enum:
            - text
            - template
          description: "`text`: free-form body, delivers ONLY inside the 24h customer-care
            window (a message the contact sent in the last 24h) — fails outside
            it, and is only accepted here together with `numberStrategy:
            context`. `template`: a template body (set `gupshupTemplateId` +
            `paramMapping`), the only way to reach a contact OUTSIDE that window
            and the right choice for every non-WhatsApp trigger. Pick based on
            whether the window is open, never based on cost — both formats bill
            the same way (per Meta conversation window), so `text` is not the
            'free' option."
        gupshupAppId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Specific WABA app (channel instance) id — resolve it with
            `channel_instances_list`. Required for the send to work when
            `numberStrategy` is `fixed` (there is no workspace default
            fallback). Ignored with `numberStrategy` `context`.
        gupshupTemplateId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: "Approved template id, required when `format: template` —
            resolve/confirm it with
            `gupshup_templates_get`/`gupshup_templates_list` (must be `status:
            approved`)."
        numberStrategy:
          type: string
          enum:
            - context
            - fixed
          description: "`context`: use the app the trigger brought in the instance state.
            Only correct when the flow's trigger IS itself an inbound WhatsApp
            message — check with `flows_structure_get` first. `fixed`: use
            `gupshupAppId` (required in this mode) — the correct choice for any
            other trigger (funnel, tag, schedule, checkout). Real fallback
            behavior of `context` WITHOUT actual trigger context: the step falls
            back to the owner's single live WhatsApp number, and only fails
            permanently at send time if there are 0 or 2+ live numbers —
            fragile, disappears the moment a 2nd number is connected, do not
            rely on it."
        paramMapping:
          type: array
          items:
            type: string
          description: "Positional template params: each item is a {{...}} placeholder
            resolved against lead + flow state, matching the template param
            order."
        callback:
          type: boolean
          description: Set true when the next step awaits the contact reply/button click —
            halts the instance until the GupShup interaction event arrives.
        target:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Id of the next step to connect this message output to. Optional —
            omit and wire it later with flows_step_connect (use that, with a
            handle, for branch outputs).
      required:
        - flowId
        - content
        - format
        - numberStrategy
    FlowsSendVoiceInput:
      type: object
      properties:
        flowId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Id of the flow to add the step to. Must be in `draft` or `template`
            mode (granular step edits are rejected on active/scheduled/closed
            flows).
        content:
          type: string
          description: Audio URL/reference to play in the call (the recorded/uploaded URA
            audio).
        fileExtension:
          type: string
          description: Audio file extension (e.g. `mp3`), when relevant.
        target:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Id of the next step to connect this message output to. Optional —
            omit and wire it later with flows_step_connect (use that, with a
            handle, for branch outputs).
      required:
        - flowId
        - content
    FlowsSendTelegramInput:
      type: object
      properties:
        flowId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Id of the flow to add the step to. Must be in `draft` or `template`
            mode (granular step edits are rejected on active/scheduled/closed
            flows).
        content:
          type: string
          description: "Message body. Personalization tokens use a flat lead key in SINGLE
            braces: {name}, {email}, {telephone} (the only recognized lead
            fields — never {{name}} nor {nome}). Checkout links: {checkout}
            (flow default offer) or {checkout:offerId}."
        format:
          type: string
          enum:
            - text
            - image
            - video
            - audio
            - file
          description: Message format. Defaults to `text`; for media, `content` is the
            media URL.
        telegramBotId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: "Sender Telegram bot id (channel instance). Resolve one with
            `channel_instances_list` (channel: telegram, status: live) and pass
            it whenever one exists; never fabricate a uuid. Omit ONLY when the
            workspace has no live Telegram bot connected at all — the node saves
            fine, but sending will fail (fatal at hermes message creation, not
            caught by activation) until a bot is connected. When you omit it,
            you MUST tell the user in your reply that they have no Telegram bot
            connected yet and the message will not send until they connect one."
        fileExtension:
          type: string
          description: File extension for image/video/audio/file formats.
        callback:
          type: boolean
          description: Set true when the next step awaits the contact reply — halts the
            instance.
        target:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Id of the next step to connect this message output to. Optional —
            omit and wire it later with flows_step_connect (use that, with a
            handle, for branch outputs).
      required:
        - flowId
        - content
    FlowsSendInstagramInput:
      type: object
      properties:
        flowId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Id of the flow to add the step to. Must be in `draft` or `template`
            mode (granular step edits are rejected on active/scheduled/closed
            flows).
        content:
          type: string
          description: "Message body. Personalization tokens use a flat lead key in SINGLE
            braces: {name}, {email}, {telephone} (the only recognized lead
            fields — never {{name}} nor {nome}). Checkout links: {checkout}
            (flow default offer) or {checkout:offerId}."
        target:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Id of the next step to connect this message output to. Optional —
            omit and wire it later with flows_step_connect (use that, with a
            handle, for branch outputs).
      required:
        - flowId
        - content
    FunnelsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
                maxLength: 255
              description:
                anyOf:
                  - type: string
                  - type: "null"
              status:
                type: string
                enum:
                  - draft
                  - published
                  - unpublished_changes
                  - disabled
              settings:
                type: object
                properties:
                  domain:
                    anyOf:
                      - type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          name:
                            type: string
                        required:
                          - id
                          - name
                        additionalProperties: false
                      - type: "null"
                  indexNewPagesByDefault:
                    type: boolean
                  facebookPixelId:
                    anyOf:
                      - type: string
                      - type: "null"
                  googleAnalyticsId:
                    anyOf:
                      - type: string
                      - type: "null"
                  hideBadge:
                    type: boolean
                  ogImage:
                    anyOf:
                      - type: string
                      - type: "null"
                  favicon:
                    anyOf:
                      - type: string
                      - type: "null"
                  analytics:
                    type: object
                    properties:
                      dateRange:
                        anyOf:
                          - type: object
                            properties:
                              mode:
                                type: string
                                enum:
                                  - preset
                              presetId:
                                type: string
                              startDate:
                                type: string
                              endDate:
                                type: string
                            required:
                              - mode
                              - presetId
                              - startDate
                              - endDate
                            additionalProperties: false
                          - type: object
                            properties:
                              mode:
                                type: string
                                enum:
                                  - fixed
                              startDate:
                                type: string
                              endDate:
                                type: string
                            required:
                              - mode
                              - startDate
                              - endDate
                            additionalProperties: false
                          - type: object
                            properties:
                              mode:
                                type: string
                                enum:
                                  - since
                              startDate:
                                type: string
                            required:
                              - mode
                              - startDate
                            additionalProperties: false
                      widgets:
                        type: object
                        properties:
                          order:
                            type: array
                            items:
                              type: string
                          enabled:
                            type: array
                            items:
                              type: string
                        required:
                          - order
                          - enabled
                        additionalProperties: false
                    additionalProperties: false
                additionalProperties: false
              isTemplateSource:
                default: false
                type: boolean
              objective:
                anyOf:
                  - anyOf:
                      - type: string
                        const: capture
                      - type: string
                        const: sales
                      - type: string
                        const: scheduling
                      - type: string
                        const: diagnosis
                      - type: string
                        const: custom
                      - type: "null"
                        const: null
                  - type: "null"
              layoutSummary:
                anyOf:
                  - type: object
                    properties:
                      nodes:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            type:
                              type: string
                              enum:
                                - page
                                - draft
                                - notes
                                - traffic_source
                                - ab_test
                                - conditional
                                - workflow
                                - external_link
                                - quiz
                                - sticker
                                - text
                                - trigger
                            pageType:
                              type: string
                            status:
                              type: string
                              enum:
                                - draft
                                - published
                                - unpublished_changes
                                - disabled
                            x:
                              type: number
                            y:
                              type: number
                          required:
                            - id
                            - type
                            - status
                            - x
                            - y
                          additionalProperties: false
                      edges:
                        type: array
                        items:
                          type: object
                          properties:
                            from:
                              type: string
                            to:
                              type: string
                          required:
                            - from
                            - to
                          additionalProperties: false
                      needsRearrange:
                        type: boolean
                    required:
                      - nodes
                      - edges
                    additionalProperties: false
                  - type: "null"
              drawings:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    tool:
                      type: string
                      enum:
                        - marker
                        - highlighter
                    color:
                      type: string
                      maxLength: 32
                    width:
                      type: number
                      minimum: 0.5
                      maximum: 64
                    points:
                      maxItems: 4096
                      type: array
                      items:
                        type: number
                    authorId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  required:
                    - id
                    - tool
                    - color
                    - width
                    - points
                  additionalProperties: false
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              projectId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              publishedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - id
              - name
              - status
              - settings
              - isTemplateSource
              - drawings
              - ownerId
              - projectId
              - createdAt
              - updatedAt
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    FunnelsGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          maxLength: 255
        description:
          anyOf:
            - type: string
            - type: "null"
        status:
          type: string
          enum:
            - draft
            - published
            - unpublished_changes
            - disabled
        settings:
          type: object
          properties:
            domain:
              anyOf:
                - type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                  required:
                    - id
                    - name
                  additionalProperties: false
                - type: "null"
            indexNewPagesByDefault:
              type: boolean
            facebookPixelId:
              anyOf:
                - type: string
                - type: "null"
            googleAnalyticsId:
              anyOf:
                - type: string
                - type: "null"
            hideBadge:
              type: boolean
            ogImage:
              anyOf:
                - type: string
                - type: "null"
            favicon:
              anyOf:
                - type: string
                - type: "null"
            analytics:
              type: object
              properties:
                dateRange:
                  anyOf:
                    - type: object
                      properties:
                        mode:
                          type: string
                          enum:
                            - preset
                        presetId:
                          type: string
                        startDate:
                          type: string
                        endDate:
                          type: string
                      required:
                        - mode
                        - presetId
                        - startDate
                        - endDate
                      additionalProperties: false
                    - type: object
                      properties:
                        mode:
                          type: string
                          enum:
                            - fixed
                        startDate:
                          type: string
                        endDate:
                          type: string
                      required:
                        - mode
                        - startDate
                        - endDate
                      additionalProperties: false
                    - type: object
                      properties:
                        mode:
                          type: string
                          enum:
                            - since
                        startDate:
                          type: string
                      required:
                        - mode
                        - startDate
                      additionalProperties: false
                widgets:
                  type: object
                  properties:
                    order:
                      type: array
                      items:
                        type: string
                    enabled:
                      type: array
                      items:
                        type: string
                  required:
                    - order
                    - enabled
                  additionalProperties: false
              additionalProperties: false
          additionalProperties: false
        isTemplateSource:
          default: false
          type: boolean
        objective:
          anyOf:
            - anyOf:
                - type: string
                  const: capture
                - type: string
                  const: sales
                - type: string
                  const: scheduling
                - type: string
                  const: diagnosis
                - type: string
                  const: custom
                - type: "null"
                  const: null
            - type: "null"
        layoutSummary:
          anyOf:
            - type: object
              properties:
                nodes:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                      type:
                        type: string
                        enum:
                          - page
                          - draft
                          - notes
                          - traffic_source
                          - ab_test
                          - conditional
                          - workflow
                          - external_link
                          - quiz
                          - sticker
                          - text
                          - trigger
                      pageType:
                        type: string
                      status:
                        type: string
                        enum:
                          - draft
                          - published
                          - unpublished_changes
                          - disabled
                      x:
                        type: number
                      y:
                        type: number
                    required:
                      - id
                      - type
                      - status
                      - x
                      - y
                    additionalProperties: false
                edges:
                  type: array
                  items:
                    type: object
                    properties:
                      from:
                        type: string
                      to:
                        type: string
                    required:
                      - from
                      - to
                    additionalProperties: false
                needsRearrange:
                  type: boolean
              required:
                - nodes
                - edges
              additionalProperties: false
            - type: "null"
        drawings:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              tool:
                type: string
                enum:
                  - marker
                  - highlighter
              color:
                type: string
                maxLength: 32
              width:
                type: number
                minimum: 0.5
                maximum: 64
              points:
                maxItems: 4096
                type: array
                items:
                  type: number
              authorId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            required:
              - id
              - tool
              - color
              - width
              - points
            additionalProperties: false
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        projectId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        publishedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        projectSlug:
          type: string
        nodes:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              type:
                type: string
                enum:
                  - page
                  - draft
                  - notes
                  - traffic_source
                  - ab_test
                  - conditional
                  - workflow
                  - external_link
                  - quiz
                  - sticker
                  - text
                  - trigger
              label:
                anyOf:
                  - type: string
                    maxLength: 255
                  - type: "null"
              status:
                type: string
                enum:
                  - draft
                  - published
                  - unpublished_changes
                  - disabled
              contentType:
                type: string
                enum:
                  - html_upload
                  - editor3
                  - none
              pageId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              position:
                type: object
                properties:
                  x:
                    type: number
                  y:
                    type: number
                required:
                  - x
                  - y
                additionalProperties: false
              config:
                type: object
                propertyNames:
                  type: string
                additionalProperties: {}
              funnelId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              flowId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              exitTrigger:
                anyOf:
                  - type: object
                    properties:
                      type:
                        type: string
                      label:
                        type: string
                      config:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                      removeOnConversion:
                        type: boolean
                      flowTriggerId:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      eventName:
                        type: string
                      constraints:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            op:
                              type: string
                            valueType:
                              type: string
                            value: {}
                          required:
                            - field
                            - op
                            - valueType
                          additionalProperties: false
                    additionalProperties: false
                  - type: "null"
              publishedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              pageOfferId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              pagePath:
                anyOf:
                  - type: string
                  - type: "null"
            required:
              - id
              - type
              - status
              - contentType
              - position
              - config
              - funnelId
              - createdAt
              - updatedAt
              - pageOfferId
              - pagePath
            additionalProperties: false
        triggers:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              triggerType:
                type: string
                enum:
                  - visual_connection
                  - undefined
                  - page_viewed
                  - scroll
                  - time_on_page
                  - exit_intent
                  - button_click
                  - link_click
                  - form_submit
                  - contact_captured
                  - video
                  - video_started
                  - video_paused
                  - video_completed
                  - checkout_viewed
                  - cart_abandoned
                  - purchase_approved
                  - purchase_declined
                  - card_declined
                  - pix_generated
                  - pix_expired
                  - boleto_generated
                  - boleto_expired
                  - refund_requested
                  - refund_completed
                  - chargeback
                  - upsell_accepted
                  - upsell_declined
                  - downsell_accepted
                  - downsell_declined
                  - subscription_created
                  - subscription_cancelled
                  - subscription_renewed
                  - subscription_renewal_failed
                  - subscription_card_updated
                  - trial_started
                  - trial_expired
                  - trial_converted
                  - members_area_accessed
                  - course_started
                  - lesson_completed
                  - module_completed
                  - course_completed
                  - certificate_issued
                  - affiliate_requested
                  - affiliate_approved
                  - affiliate_rejected
                  - affiliate_sale
                  - contact_created
                  - contact_updated
                  - tag_added
                  - tag_removed
                  - list_added
                  - list_removed
                  - lead_score_changed
                  - field_updated
                  - inactivity
                  - email_opened
                  - email_clicked
                  - email_not_opened
                  - email_unsubscribed
                  - email_replied
                  - whatsapp_message_received
                  - whatsapp_keyword
                  - whatsapp_button_clicked
                  - instagram_comment
                  - instagram_dm
                  - instagram_lead_form
                  - sms_clicked
                  - sms_replied
                  - telegram_message
                  - telegram_command
                  - call_answered
                  - call_missed
                  - broadcast_list
                  - broadcast_tag
                  - broadcast_segment
                  - scheduled_datetime
                  - delay_after_event
                  - delay_before_date
                  - manual_trigger
                  - api_webhook
                  - date_based
              label:
                anyOf:
                  - type: string
                    maxLength: 255
                  - type: "null"
              sortOrder:
                type: number
              sourceNodeId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              targetNodeId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              config:
                anyOf:
                  - type: object
                    properties:
                      scrollPercentage:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      timeInSeconds:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      elementId:
                        type: string
                      selectedElements:
                        type: array
                        items:
                          type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      elementId:
                        type: string
                      selectedElements:
                        type: array
                        items:
                          type: string
                      formId:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      videoPercentage:
                        type: number
                      elementId:
                        type: string
                      videoId:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      elementId:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      videoAction:
                        type: string
                        enum:
                          - play
                          - complete
                      videoPercentage:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      tagIds:
                        type: array
                        items:
                          type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      listIds:
                        type: array
                        items:
                          type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      fieldIds:
                        type: array
                        items:
                          type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      keyword:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      command:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      scrollPercentage:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      inactivityDays:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      funnelId:
                        type: string
                      productId:
                        type: string
                      planId:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      targetType:
                        type: string
                        enum:
                          - list
                          - tag
                          - segment
                      targetId:
                        type: string
                      dispatchAt:
                        type: string
                      delayDays:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      webhookUrl:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      dateField:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      campaignId:
                        type: string
                      buttonId:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties: {}
                    additionalProperties: {}
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - id
              - triggerType
              - sortOrder
              - sourceNodeId
              - targetNodeId
              - config
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - id
        - name
        - status
        - settings
        - isTemplateSource
        - drawings
        - ownerId
        - projectId
        - createdAt
        - updatedAt
        - projectSlug
        - nodes
        - triggers
      additionalProperties: false
    FunnelsCreateInput:
      type: object
      properties:
        name:
          type: string
          maxLength: 255
        projectId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        description:
          anyOf:
            - type: string
            - type: "null"
        domainId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        objective:
          type: string
          enum:
            - capture
            - sales
            - scheduling
            - diagnosis
            - custom
      required:
        - name
        - projectId
    FunnelsCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          maxLength: 255
        description:
          anyOf:
            - type: string
            - type: "null"
        status:
          type: string
          enum:
            - draft
            - published
            - unpublished_changes
            - disabled
        settings:
          type: object
          properties:
            domain:
              anyOf:
                - type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                  required:
                    - id
                    - name
                  additionalProperties: false
                - type: "null"
            indexNewPagesByDefault:
              type: boolean
            facebookPixelId:
              anyOf:
                - type: string
                - type: "null"
            googleAnalyticsId:
              anyOf:
                - type: string
                - type: "null"
            hideBadge:
              type: boolean
            ogImage:
              anyOf:
                - type: string
                - type: "null"
            favicon:
              anyOf:
                - type: string
                - type: "null"
            analytics:
              type: object
              properties:
                dateRange:
                  anyOf:
                    - type: object
                      properties:
                        mode:
                          type: string
                          enum:
                            - preset
                        presetId:
                          type: string
                        startDate:
                          type: string
                        endDate:
                          type: string
                      required:
                        - mode
                        - presetId
                        - startDate
                        - endDate
                      additionalProperties: false
                    - type: object
                      properties:
                        mode:
                          type: string
                          enum:
                            - fixed
                        startDate:
                          type: string
                        endDate:
                          type: string
                      required:
                        - mode
                        - startDate
                        - endDate
                      additionalProperties: false
                    - type: object
                      properties:
                        mode:
                          type: string
                          enum:
                            - since
                        startDate:
                          type: string
                      required:
                        - mode
                        - startDate
                      additionalProperties: false
                widgets:
                  type: object
                  properties:
                    order:
                      type: array
                      items:
                        type: string
                    enabled:
                      type: array
                      items:
                        type: string
                  required:
                    - order
                    - enabled
                  additionalProperties: false
              additionalProperties: false
          additionalProperties: false
        isTemplateSource:
          default: false
          type: boolean
        objective:
          anyOf:
            - anyOf:
                - type: string
                  const: capture
                - type: string
                  const: sales
                - type: string
                  const: scheduling
                - type: string
                  const: diagnosis
                - type: string
                  const: custom
                - type: "null"
                  const: null
            - type: "null"
        layoutSummary:
          anyOf:
            - type: object
              properties:
                nodes:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                      type:
                        type: string
                        enum:
                          - page
                          - draft
                          - notes
                          - traffic_source
                          - ab_test
                          - conditional
                          - workflow
                          - external_link
                          - quiz
                          - sticker
                          - text
                          - trigger
                      pageType:
                        type: string
                      status:
                        type: string
                        enum:
                          - draft
                          - published
                          - unpublished_changes
                          - disabled
                      x:
                        type: number
                      y:
                        type: number
                    required:
                      - id
                      - type
                      - status
                      - x
                      - y
                    additionalProperties: false
                edges:
                  type: array
                  items:
                    type: object
                    properties:
                      from:
                        type: string
                      to:
                        type: string
                    required:
                      - from
                      - to
                    additionalProperties: false
                needsRearrange:
                  type: boolean
              required:
                - nodes
                - edges
              additionalProperties: false
            - type: "null"
        drawings:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              tool:
                type: string
                enum:
                  - marker
                  - highlighter
              color:
                type: string
                maxLength: 32
              width:
                type: number
                minimum: 0.5
                maximum: 64
              points:
                maxItems: 4096
                type: array
                items:
                  type: number
              authorId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            required:
              - id
              - tool
              - color
              - width
              - points
            additionalProperties: false
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        projectId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        publishedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - name
        - status
        - settings
        - isTemplateSource
        - drawings
        - ownerId
        - projectId
        - createdAt
        - updatedAt
      additionalProperties: false
    FunnelsUpdateInput:
      type: object
      properties:
        funnelId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          maxLength: 255
        description:
          anyOf:
            - type: string
            - type: "null"
        objective:
          anyOf:
            - anyOf:
                - type: string
                  const: capture
                - type: string
                  const: sales
                - type: string
                  const: scheduling
                - type: string
                  const: diagnosis
                - type: string
                  const: custom
                - type: "null"
                  const: null
            - type: "null"
        projectId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - funnelId
    FunnelsDeleteInput:
      type: object
      properties:
        funnelId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - funnelId
    FunnelsDeleteOutput:
      type: object
      properties:
        deleted:
          type: boolean
      required:
        - deleted
      additionalProperties: false
    FunnelsPublishInput:
      type: object
      properties:
        funnelId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        nodeIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - funnelId
        - nodeIds
    FunnelsPublishOutput:
      type: object
      properties:
        published:
          type: boolean
          const: true
      required:
        - published
      additionalProperties: false
    FunnelsDeactivateInput:
      type: object
      properties:
        funnelId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - funnelId
    FunnelsDeactivateOutput:
      type: object
      properties:
        deactivated:
          type: boolean
          const: true
      required:
        - deactivated
      additionalProperties: false
    FunnelsAnalyticsOutput:
      type: object
      properties:
        funnelVisits:
          type: number
        uniqueVisitors:
          type: number
        signups:
          type: number
        buyers:
          type: number
        revenue:
          type: number
        averageTicket:
          type: number
        refunds:
          type: number
        refundAmount:
          type: number
      required:
        - funnelVisits
        - uniqueVisitors
        - signups
        - buyers
        - revenue
        - averageTicket
        - refunds
        - refundAmount
      additionalProperties: false
    FunnelsStructureGetOutput:
      type: object
      properties:
        funnelId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        status:
          type: string
          enum:
            - draft
            - published
            - unpublished_changes
            - disabled
        nodes:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              type:
                type: string
                enum:
                  - page
                  - draft
                  - notes
                  - traffic_source
                  - ab_test
                  - conditional
                  - workflow
                  - external_link
                  - quiz
                  - sticker
                  - text
                  - trigger
              label:
                anyOf:
                  - type: string
                  - type: "null"
              pageType:
                type: string
              slug:
                type: string
              status:
                type: string
                enum:
                  - draft
                  - published
                  - unpublished_changes
                  - disabled
              hasPage:
                type: boolean
              triggers:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    type:
                      type: string
                      enum:
                        - visual_connection
                        - undefined
                        - page_viewed
                        - scroll
                        - time_on_page
                        - exit_intent
                        - button_click
                        - link_click
                        - form_submit
                        - contact_captured
                        - video
                        - video_started
                        - video_paused
                        - video_completed
                        - checkout_viewed
                        - cart_abandoned
                        - purchase_approved
                        - purchase_declined
                        - card_declined
                        - pix_generated
                        - pix_expired
                        - boleto_generated
                        - boleto_expired
                        - refund_requested
                        - refund_completed
                        - chargeback
                        - upsell_accepted
                        - upsell_declined
                        - downsell_accepted
                        - downsell_declined
                        - subscription_created
                        - subscription_cancelled
                        - subscription_renewed
                        - subscription_renewal_failed
                        - subscription_card_updated
                        - trial_started
                        - trial_expired
                        - trial_converted
                        - members_area_accessed
                        - course_started
                        - lesson_completed
                        - module_completed
                        - course_completed
                        - certificate_issued
                        - affiliate_requested
                        - affiliate_approved
                        - affiliate_rejected
                        - affiliate_sale
                        - contact_created
                        - contact_updated
                        - tag_added
                        - tag_removed
                        - list_added
                        - list_removed
                        - lead_score_changed
                        - field_updated
                        - inactivity
                        - email_opened
                        - email_clicked
                        - email_not_opened
                        - email_unsubscribed
                        - email_replied
                        - whatsapp_message_received
                        - whatsapp_keyword
                        - whatsapp_button_clicked
                        - instagram_comment
                        - instagram_dm
                        - instagram_lead_form
                        - sms_clicked
                        - sms_replied
                        - telegram_message
                        - telegram_command
                        - call_answered
                        - call_missed
                        - broadcast_list
                        - broadcast_tag
                        - broadcast_segment
                        - scheduled_datetime
                        - delay_after_event
                        - delay_before_date
                        - manual_trigger
                        - api_webhook
                        - date_based
                    label:
                      type: string
                    connectedTo:
                      anyOf:
                        - type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        - type: "null"
                  required:
                    - id
                    - type
                    - label
                  additionalProperties: false
              inputTriggers:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    type:
                      type: string
                    label:
                      type: string
                    sourceNodeId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    sourceTriggerId:
                      type: string
                    createdByFunnel:
                      type: boolean
                  required:
                    - id
                    - type
                  additionalProperties: false
              flowId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
            required:
              - id
              - type
              - status
              - hasPage
              - triggers
            additionalProperties: false
        edges:
          type: array
          items:
            type: object
            properties:
              from:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              handleId:
                type: string
              via:
                anyOf:
                  - type: string
                    enum:
                      - trigger
                  - type: string
                    enum:
                      - variant
                  - type: string
                    enum:
                      - branch
                  - type: string
                    enum:
                      - output
                  - type: string
                    enum:
                      - workflow_input
              to:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              label:
                type: string
            required:
              - from
              - handleId
              - via
              - to
            additionalProperties: false
      required:
        - funnelId
        - status
        - nodes
        - edges
      additionalProperties: false
    FunnelsValidateOutput:
      type: object
      properties:
        valid:
          type: boolean
        nodeCount:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        danglingTriggers:
          type: array
          items:
            type: object
            properties:
              nodeId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              handleId:
                type: string
              via:
                anyOf:
                  - type: string
                    enum:
                      - trigger
                  - type: string
                    enum:
                      - variant
                  - type: string
                    enum:
                      - branch
                  - type: string
                    enum:
                      - output
                  - type: string
                    enum:
                      - workflow_input
              target:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            required:
              - nodeId
              - handleId
              - via
              - target
            additionalProperties: false
        disconnectedTriggers:
          type: array
          items:
            type: object
            properties:
              nodeId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              handleId:
                type: string
              via:
                anyOf:
                  - type: string
                    enum:
                      - trigger
                  - type: string
                    enum:
                      - variant
                  - type: string
                    enum:
                      - branch
                  - type: string
                    enum:
                      - output
                  - type: string
                    enum:
                      - workflow_input
            required:
              - nodeId
              - handleId
              - via
            additionalProperties: false
        orphanNodeIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        nodesMissingPage:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        nodesWithUnusedPage:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        workflowsMissingFlow:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - valid
        - nodeCount
        - danglingTriggers
        - disconnectedTriggers
        - orphanNodeIds
        - nodesMissingPage
        - nodesWithUnusedPage
        - workflowsMissingFlow
      additionalProperties: false
    FunnelsNodeCreateInput:
      type: object
      properties:
        funnelId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        type:
          type: string
          enum:
            - page
            - draft
            - notes
            - traffic_source
            - ab_test
            - conditional
            - workflow
            - external_link
            - quiz
            - sticker
            - text
            - trigger
        title:
          type: string
          maxLength: 255
        slug:
          type: string
        pageType:
          type: string
        position:
          type: object
          properties:
            x:
              type: number
            y:
              type: number
          required:
            - x
            - y
        config:
          type: object
          propertyNames:
            type: string
          additionalProperties: {}
        triggers:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                enum:
                  - visual_connection
                  - undefined
                  - page_viewed
                  - scroll
                  - time_on_page
                  - exit_intent
                  - button_click
                  - link_click
                  - form_submit
                  - contact_captured
                  - video
                  - video_started
                  - video_paused
                  - video_completed
                  - checkout_viewed
                  - cart_abandoned
                  - purchase_approved
                  - purchase_declined
                  - card_declined
                  - pix_generated
                  - pix_expired
                  - boleto_generated
                  - boleto_expired
                  - refund_requested
                  - refund_completed
                  - chargeback
                  - upsell_accepted
                  - upsell_declined
                  - downsell_accepted
                  - downsell_declined
                  - subscription_created
                  - subscription_cancelled
                  - subscription_renewed
                  - subscription_renewal_failed
                  - subscription_card_updated
                  - trial_started
                  - trial_expired
                  - trial_converted
                  - members_area_accessed
                  - course_started
                  - lesson_completed
                  - module_completed
                  - course_completed
                  - certificate_issued
                  - affiliate_requested
                  - affiliate_approved
                  - affiliate_rejected
                  - affiliate_sale
                  - contact_created
                  - contact_updated
                  - tag_added
                  - tag_removed
                  - list_added
                  - list_removed
                  - lead_score_changed
                  - field_updated
                  - inactivity
                  - email_opened
                  - email_clicked
                  - email_not_opened
                  - email_unsubscribed
                  - email_replied
                  - whatsapp_message_received
                  - whatsapp_keyword
                  - whatsapp_button_clicked
                  - instagram_comment
                  - instagram_dm
                  - instagram_lead_form
                  - sms_clicked
                  - sms_replied
                  - telegram_message
                  - telegram_command
                  - call_answered
                  - call_missed
                  - broadcast_list
                  - broadcast_tag
                  - broadcast_segment
                  - scheduled_datetime
                  - delay_after_event
                  - delay_before_date
                  - manual_trigger
                  - api_webhook
                  - date_based
              label:
                type: string
                maxLength: 255
              connectedTo:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              config:
                anyOf:
                  - type: object
                    properties:
                      scrollPercentage:
                        type: number
                  - type: object
                    properties:
                      timeInSeconds:
                        type: number
                  - type: object
                    properties:
                      elementId:
                        type: string
                      selectedElements:
                        type: array
                        items:
                          type: string
                  - type: object
                    properties:
                      elementId:
                        type: string
                      selectedElements:
                        type: array
                        items:
                          type: string
                      formId:
                        type: string
                  - type: object
                    properties:
                      videoPercentage:
                        type: number
                      elementId:
                        type: string
                      videoId:
                        type: string
                  - type: object
                    properties:
                      elementId:
                        type: string
                  - type: object
                    properties:
                      videoAction:
                        type: string
                        enum:
                          - play
                          - complete
                      videoPercentage:
                        type: number
                  - type: object
                    properties:
                      tagIds:
                        type: array
                        items:
                          type: string
                  - type: object
                    properties:
                      listIds:
                        type: array
                        items:
                          type: string
                  - type: object
                    properties:
                      fieldIds:
                        type: array
                        items:
                          type: string
                  - type: object
                    properties:
                      keyword:
                        type: string
                  - type: object
                    properties:
                      command:
                        type: string
                  - type: object
                    properties:
                      scrollPercentage:
                        type: number
                  - type: object
                    properties:
                      inactivityDays:
                        type: number
                  - type: object
                    properties:
                      funnelId:
                        type: string
                      productId:
                        type: string
                      planId:
                        type: string
                  - type: object
                    properties:
                      targetType:
                        type: string
                        enum:
                          - list
                          - tag
                          - segment
                      targetId:
                        type: string
                      dispatchAt:
                        type: string
                      delayDays:
                        type: number
                  - type: object
                    properties:
                      webhookUrl:
                        type: string
                  - type: object
                    properties:
                      dateField:
                        type: string
                  - type: object
                    properties:
                      campaignId:
                        type: string
                      buttonId:
                        type: string
                  - type: object
                    properties: {}
                    additionalProperties: {}
            required:
              - type
              - label
        userHelpMessage:
          type: string
      required:
        - funnelId
    FunnelsNodeCreateOutput:
      type: object
      properties:
        node:
          type: object
          properties:
            id:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            type:
              type: string
              enum:
                - page
                - draft
                - notes
                - traffic_source
                - ab_test
                - conditional
                - workflow
                - external_link
                - quiz
                - sticker
                - text
                - trigger
            label:
              anyOf:
                - type: string
                - type: "null"
            status:
              type: string
              enum:
                - draft
                - published
                - unpublished_changes
                - disabled
            contentType:
              type: string
              enum:
                - html_upload
                - editor3
                - none
            pageId:
              anyOf:
                - type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                - type: "null"
            position:
              type: object
              properties:
                x:
                  type: number
                y:
                  type: number
              required:
                - x
                - y
              additionalProperties: false
            config:
              type: object
              propertyNames:
                type: string
              additionalProperties: {}
            triggers:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  type:
                    type: string
                    enum:
                      - visual_connection
                      - undefined
                      - page_viewed
                      - scroll
                      - time_on_page
                      - exit_intent
                      - button_click
                      - link_click
                      - form_submit
                      - contact_captured
                      - video
                      - video_started
                      - video_paused
                      - video_completed
                      - checkout_viewed
                      - cart_abandoned
                      - purchase_approved
                      - purchase_declined
                      - card_declined
                      - pix_generated
                      - pix_expired
                      - boleto_generated
                      - boleto_expired
                      - refund_requested
                      - refund_completed
                      - chargeback
                      - upsell_accepted
                      - upsell_declined
                      - downsell_accepted
                      - downsell_declined
                      - subscription_created
                      - subscription_cancelled
                      - subscription_renewed
                      - subscription_renewal_failed
                      - subscription_card_updated
                      - trial_started
                      - trial_expired
                      - trial_converted
                      - members_area_accessed
                      - course_started
                      - lesson_completed
                      - module_completed
                      - course_completed
                      - certificate_issued
                      - affiliate_requested
                      - affiliate_approved
                      - affiliate_rejected
                      - affiliate_sale
                      - contact_created
                      - contact_updated
                      - tag_added
                      - tag_removed
                      - list_added
                      - list_removed
                      - lead_score_changed
                      - field_updated
                      - inactivity
                      - email_opened
                      - email_clicked
                      - email_not_opened
                      - email_unsubscribed
                      - email_replied
                      - whatsapp_message_received
                      - whatsapp_keyword
                      - whatsapp_button_clicked
                      - instagram_comment
                      - instagram_dm
                      - instagram_lead_form
                      - sms_clicked
                      - sms_replied
                      - telegram_message
                      - telegram_command
                      - call_answered
                      - call_missed
                      - broadcast_list
                      - broadcast_tag
                      - broadcast_segment
                      - scheduled_datetime
                      - delay_after_event
                      - delay_before_date
                      - manual_trigger
                      - api_webhook
                      - date_based
                  label:
                    type: string
                  connectedTo:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  config:
                    anyOf:
                      - type: object
                        properties:
                          scrollPercentage:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          timeInSeconds:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          elementId:
                            type: string
                          selectedElements:
                            type: array
                            items:
                              type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          elementId:
                            type: string
                          selectedElements:
                            type: array
                            items:
                              type: string
                          formId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          videoPercentage:
                            type: number
                          elementId:
                            type: string
                          videoId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          elementId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          videoAction:
                            type: string
                            enum:
                              - play
                              - complete
                          videoPercentage:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          tagIds:
                            type: array
                            items:
                              type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          listIds:
                            type: array
                            items:
                              type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          fieldIds:
                            type: array
                            items:
                              type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          keyword:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          command:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          scrollPercentage:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          inactivityDays:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          funnelId:
                            type: string
                          productId:
                            type: string
                          planId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          targetType:
                            type: string
                            enum:
                              - list
                              - tag
                              - segment
                          targetId:
                            type: string
                          dispatchAt:
                            type: string
                          delayDays:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          webhookUrl:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          dateField:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          campaignId:
                            type: string
                          buttonId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties: {}
                        additionalProperties: {}
                required:
                  - id
                  - type
                  - label
                additionalProperties: false
          required:
            - id
            - type
            - status
            - contentType
            - position
            - config
            - triggers
          additionalProperties: false
        annotationNodeId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - node
      additionalProperties: false
    FunnelsSequenceCreateInput:
      type: object
      properties:
        funnelId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        template:
          type: string
          enum:
            - upsell-downsell
            - lead-magnet
            - webinar
            - tripwire
            - vsl-auto
            - sales
        position:
          type: object
          properties:
            x:
              type: number
            y:
              type: number
          required:
            - x
            - y
      required:
        - funnelId
        - template
    FunnelsSequenceCreateOutput:
      type: object
      properties:
        nodes:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              type:
                type: string
                enum:
                  - page
                  - draft
                  - notes
                  - traffic_source
                  - ab_test
                  - conditional
                  - workflow
                  - external_link
                  - quiz
                  - sticker
                  - text
                  - trigger
              label:
                anyOf:
                  - type: string
                  - type: "null"
              status:
                type: string
                enum:
                  - draft
                  - published
                  - unpublished_changes
                  - disabled
              contentType:
                type: string
                enum:
                  - html_upload
                  - editor3
                  - none
              pageId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              position:
                type: object
                properties:
                  x:
                    type: number
                  y:
                    type: number
                required:
                  - x
                  - y
                additionalProperties: false
              config:
                type: object
                propertyNames:
                  type: string
                additionalProperties: {}
              triggers:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    type:
                      type: string
                      enum:
                        - visual_connection
                        - undefined
                        - page_viewed
                        - scroll
                        - time_on_page
                        - exit_intent
                        - button_click
                        - link_click
                        - form_submit
                        - contact_captured
                        - video
                        - video_started
                        - video_paused
                        - video_completed
                        - checkout_viewed
                        - cart_abandoned
                        - purchase_approved
                        - purchase_declined
                        - card_declined
                        - pix_generated
                        - pix_expired
                        - boleto_generated
                        - boleto_expired
                        - refund_requested
                        - refund_completed
                        - chargeback
                        - upsell_accepted
                        - upsell_declined
                        - downsell_accepted
                        - downsell_declined
                        - subscription_created
                        - subscription_cancelled
                        - subscription_renewed
                        - subscription_renewal_failed
                        - subscription_card_updated
                        - trial_started
                        - trial_expired
                        - trial_converted
                        - members_area_accessed
                        - course_started
                        - lesson_completed
                        - module_completed
                        - course_completed
                        - certificate_issued
                        - affiliate_requested
                        - affiliate_approved
                        - affiliate_rejected
                        - affiliate_sale
                        - contact_created
                        - contact_updated
                        - tag_added
                        - tag_removed
                        - list_added
                        - list_removed
                        - lead_score_changed
                        - field_updated
                        - inactivity
                        - email_opened
                        - email_clicked
                        - email_not_opened
                        - email_unsubscribed
                        - email_replied
                        - whatsapp_message_received
                        - whatsapp_keyword
                        - whatsapp_button_clicked
                        - instagram_comment
                        - instagram_dm
                        - instagram_lead_form
                        - sms_clicked
                        - sms_replied
                        - telegram_message
                        - telegram_command
                        - call_answered
                        - call_missed
                        - broadcast_list
                        - broadcast_tag
                        - broadcast_segment
                        - scheduled_datetime
                        - delay_after_event
                        - delay_before_date
                        - manual_trigger
                        - api_webhook
                        - date_based
                    label:
                      type: string
                    connectedTo:
                      anyOf:
                        - type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        - type: "null"
                    config:
                      anyOf:
                        - type: object
                          properties:
                            scrollPercentage:
                              type: number
                          additionalProperties: false
                        - type: object
                          properties:
                            timeInSeconds:
                              type: number
                          additionalProperties: false
                        - type: object
                          properties:
                            elementId:
                              type: string
                            selectedElements:
                              type: array
                              items:
                                type: string
                          additionalProperties: false
                        - type: object
                          properties:
                            elementId:
                              type: string
                            selectedElements:
                              type: array
                              items:
                                type: string
                            formId:
                              type: string
                          additionalProperties: false
                        - type: object
                          properties:
                            videoPercentage:
                              type: number
                            elementId:
                              type: string
                            videoId:
                              type: string
                          additionalProperties: false
                        - type: object
                          properties:
                            elementId:
                              type: string
                          additionalProperties: false
                        - type: object
                          properties:
                            videoAction:
                              type: string
                              enum:
                                - play
                                - complete
                            videoPercentage:
                              type: number
                          additionalProperties: false
                        - type: object
                          properties:
                            tagIds:
                              type: array
                              items:
                                type: string
                          additionalProperties: false
                        - type: object
                          properties:
                            listIds:
                              type: array
                              items:
                                type: string
                          additionalProperties: false
                        - type: object
                          properties:
                            fieldIds:
                              type: array
                              items:
                                type: string
                          additionalProperties: false
                        - type: object
                          properties:
                            keyword:
                              type: string
                          additionalProperties: false
                        - type: object
                          properties:
                            command:
                              type: string
                          additionalProperties: false
                        - type: object
                          properties:
                            scrollPercentage:
                              type: number
                          additionalProperties: false
                        - type: object
                          properties:
                            inactivityDays:
                              type: number
                          additionalProperties: false
                        - type: object
                          properties:
                            funnelId:
                              type: string
                            productId:
                              type: string
                            planId:
                              type: string
                          additionalProperties: false
                        - type: object
                          properties:
                            targetType:
                              type: string
                              enum:
                                - list
                                - tag
                                - segment
                            targetId:
                              type: string
                            dispatchAt:
                              type: string
                            delayDays:
                              type: number
                          additionalProperties: false
                        - type: object
                          properties:
                            webhookUrl:
                              type: string
                          additionalProperties: false
                        - type: object
                          properties:
                            dateField:
                              type: string
                          additionalProperties: false
                        - type: object
                          properties:
                            campaignId:
                              type: string
                            buttonId:
                              type: string
                          additionalProperties: false
                        - type: object
                          properties: {}
                          additionalProperties: {}
                  required:
                    - id
                    - type
                    - label
                  additionalProperties: false
            required:
              - id
              - type
              - status
              - contentType
              - position
              - config
              - triggers
            additionalProperties: false
      required:
        - nodes
      additionalProperties: false
    FunnelsTriggersConnectInput:
      type: object
      properties:
        funnelId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        connections:
          minItems: 1
          type: array
          items:
            type: object
            properties:
              nodeId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              triggerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              target:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
            required:
              - nodeId
              - triggerId
      required:
        - funnelId
        - connections
    FunnelsTriggersConnectOutput:
      type: object
      properties:
        triggers:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              type:
                type: string
                enum:
                  - visual_connection
                  - undefined
                  - page_viewed
                  - scroll
                  - time_on_page
                  - exit_intent
                  - button_click
                  - link_click
                  - form_submit
                  - contact_captured
                  - video
                  - video_started
                  - video_paused
                  - video_completed
                  - checkout_viewed
                  - cart_abandoned
                  - purchase_approved
                  - purchase_declined
                  - card_declined
                  - pix_generated
                  - pix_expired
                  - boleto_generated
                  - boleto_expired
                  - refund_requested
                  - refund_completed
                  - chargeback
                  - upsell_accepted
                  - upsell_declined
                  - downsell_accepted
                  - downsell_declined
                  - subscription_created
                  - subscription_cancelled
                  - subscription_renewed
                  - subscription_renewal_failed
                  - subscription_card_updated
                  - trial_started
                  - trial_expired
                  - trial_converted
                  - members_area_accessed
                  - course_started
                  - lesson_completed
                  - module_completed
                  - course_completed
                  - certificate_issued
                  - affiliate_requested
                  - affiliate_approved
                  - affiliate_rejected
                  - affiliate_sale
                  - contact_created
                  - contact_updated
                  - tag_added
                  - tag_removed
                  - list_added
                  - list_removed
                  - lead_score_changed
                  - field_updated
                  - inactivity
                  - email_opened
                  - email_clicked
                  - email_not_opened
                  - email_unsubscribed
                  - email_replied
                  - whatsapp_message_received
                  - whatsapp_keyword
                  - whatsapp_button_clicked
                  - instagram_comment
                  - instagram_dm
                  - instagram_lead_form
                  - sms_clicked
                  - sms_replied
                  - telegram_message
                  - telegram_command
                  - call_answered
                  - call_missed
                  - broadcast_list
                  - broadcast_tag
                  - broadcast_segment
                  - scheduled_datetime
                  - delay_after_event
                  - delay_before_date
                  - manual_trigger
                  - api_webhook
                  - date_based
              label:
                type: string
              connectedTo:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              config:
                anyOf:
                  - type: object
                    properties:
                      scrollPercentage:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      timeInSeconds:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      elementId:
                        type: string
                      selectedElements:
                        type: array
                        items:
                          type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      elementId:
                        type: string
                      selectedElements:
                        type: array
                        items:
                          type: string
                      formId:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      videoPercentage:
                        type: number
                      elementId:
                        type: string
                      videoId:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      elementId:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      videoAction:
                        type: string
                        enum:
                          - play
                          - complete
                      videoPercentage:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      tagIds:
                        type: array
                        items:
                          type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      listIds:
                        type: array
                        items:
                          type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      fieldIds:
                        type: array
                        items:
                          type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      keyword:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      command:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      scrollPercentage:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      inactivityDays:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      funnelId:
                        type: string
                      productId:
                        type: string
                      planId:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      targetType:
                        type: string
                        enum:
                          - list
                          - tag
                          - segment
                      targetId:
                        type: string
                      dispatchAt:
                        type: string
                      delayDays:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      webhookUrl:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      dateField:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      campaignId:
                        type: string
                      buttonId:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties: {}
                    additionalProperties: {}
            required:
              - id
              - type
              - label
            additionalProperties: false
      required:
        - triggers
      additionalProperties: false
    FunnelsNodeTriggersUpdateInput:
      type: object
      properties:
        funnelId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        nodeId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        toDelete:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        toCreate:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                enum:
                  - visual_connection
                  - undefined
                  - page_viewed
                  - scroll
                  - time_on_page
                  - exit_intent
                  - button_click
                  - link_click
                  - form_submit
                  - contact_captured
                  - video
                  - video_started
                  - video_paused
                  - video_completed
                  - checkout_viewed
                  - cart_abandoned
                  - purchase_approved
                  - purchase_declined
                  - card_declined
                  - pix_generated
                  - pix_expired
                  - boleto_generated
                  - boleto_expired
                  - refund_requested
                  - refund_completed
                  - chargeback
                  - upsell_accepted
                  - upsell_declined
                  - downsell_accepted
                  - downsell_declined
                  - subscription_created
                  - subscription_cancelled
                  - subscription_renewed
                  - subscription_renewal_failed
                  - subscription_card_updated
                  - trial_started
                  - trial_expired
                  - trial_converted
                  - members_area_accessed
                  - course_started
                  - lesson_completed
                  - module_completed
                  - course_completed
                  - certificate_issued
                  - affiliate_requested
                  - affiliate_approved
                  - affiliate_rejected
                  - affiliate_sale
                  - contact_created
                  - contact_updated
                  - tag_added
                  - tag_removed
                  - list_added
                  - list_removed
                  - lead_score_changed
                  - field_updated
                  - inactivity
                  - email_opened
                  - email_clicked
                  - email_not_opened
                  - email_unsubscribed
                  - email_replied
                  - whatsapp_message_received
                  - whatsapp_keyword
                  - whatsapp_button_clicked
                  - instagram_comment
                  - instagram_dm
                  - instagram_lead_form
                  - sms_clicked
                  - sms_replied
                  - telegram_message
                  - telegram_command
                  - call_answered
                  - call_missed
                  - broadcast_list
                  - broadcast_tag
                  - broadcast_segment
                  - scheduled_datetime
                  - delay_after_event
                  - delay_before_date
                  - manual_trigger
                  - api_webhook
                  - date_based
              label:
                type: string
                maxLength: 255
              connectedTo:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              config:
                anyOf:
                  - type: object
                    properties:
                      scrollPercentage:
                        type: number
                  - type: object
                    properties:
                      timeInSeconds:
                        type: number
                  - type: object
                    properties:
                      elementId:
                        type: string
                      selectedElements:
                        type: array
                        items:
                          type: string
                  - type: object
                    properties:
                      elementId:
                        type: string
                      selectedElements:
                        type: array
                        items:
                          type: string
                      formId:
                        type: string
                  - type: object
                    properties:
                      videoPercentage:
                        type: number
                      elementId:
                        type: string
                      videoId:
                        type: string
                  - type: object
                    properties:
                      elementId:
                        type: string
                  - type: object
                    properties:
                      videoAction:
                        type: string
                        enum:
                          - play
                          - complete
                      videoPercentage:
                        type: number
                  - type: object
                    properties:
                      tagIds:
                        type: array
                        items:
                          type: string
                  - type: object
                    properties:
                      listIds:
                        type: array
                        items:
                          type: string
                  - type: object
                    properties:
                      fieldIds:
                        type: array
                        items:
                          type: string
                  - type: object
                    properties:
                      keyword:
                        type: string
                  - type: object
                    properties:
                      command:
                        type: string
                  - type: object
                    properties:
                      scrollPercentage:
                        type: number
                  - type: object
                    properties:
                      inactivityDays:
                        type: number
                  - type: object
                    properties:
                      funnelId:
                        type: string
                      productId:
                        type: string
                      planId:
                        type: string
                  - type: object
                    properties:
                      targetType:
                        type: string
                        enum:
                          - list
                          - tag
                          - segment
                      targetId:
                        type: string
                      dispatchAt:
                        type: string
                      delayDays:
                        type: number
                  - type: object
                    properties:
                      webhookUrl:
                        type: string
                  - type: object
                    properties:
                      dateField:
                        type: string
                  - type: object
                    properties:
                      campaignId:
                        type: string
                      buttonId:
                        type: string
                  - type: object
                    properties: {}
                    additionalProperties: {}
            required:
              - type
              - label
      required:
        - funnelId
        - nodeId
    FunnelsNodeTriggersUpdateOutput:
      type: object
      properties:
        triggers:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              type:
                type: string
                enum:
                  - visual_connection
                  - undefined
                  - page_viewed
                  - scroll
                  - time_on_page
                  - exit_intent
                  - button_click
                  - link_click
                  - form_submit
                  - contact_captured
                  - video
                  - video_started
                  - video_paused
                  - video_completed
                  - checkout_viewed
                  - cart_abandoned
                  - purchase_approved
                  - purchase_declined
                  - card_declined
                  - pix_generated
                  - pix_expired
                  - boleto_generated
                  - boleto_expired
                  - refund_requested
                  - refund_completed
                  - chargeback
                  - upsell_accepted
                  - upsell_declined
                  - downsell_accepted
                  - downsell_declined
                  - subscription_created
                  - subscription_cancelled
                  - subscription_renewed
                  - subscription_renewal_failed
                  - subscription_card_updated
                  - trial_started
                  - trial_expired
                  - trial_converted
                  - members_area_accessed
                  - course_started
                  - lesson_completed
                  - module_completed
                  - course_completed
                  - certificate_issued
                  - affiliate_requested
                  - affiliate_approved
                  - affiliate_rejected
                  - affiliate_sale
                  - contact_created
                  - contact_updated
                  - tag_added
                  - tag_removed
                  - list_added
                  - list_removed
                  - lead_score_changed
                  - field_updated
                  - inactivity
                  - email_opened
                  - email_clicked
                  - email_not_opened
                  - email_unsubscribed
                  - email_replied
                  - whatsapp_message_received
                  - whatsapp_keyword
                  - whatsapp_button_clicked
                  - instagram_comment
                  - instagram_dm
                  - instagram_lead_form
                  - sms_clicked
                  - sms_replied
                  - telegram_message
                  - telegram_command
                  - call_answered
                  - call_missed
                  - broadcast_list
                  - broadcast_tag
                  - broadcast_segment
                  - scheduled_datetime
                  - delay_after_event
                  - delay_before_date
                  - manual_trigger
                  - api_webhook
                  - date_based
              label:
                type: string
              connectedTo:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              config:
                anyOf:
                  - type: object
                    properties:
                      scrollPercentage:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      timeInSeconds:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      elementId:
                        type: string
                      selectedElements:
                        type: array
                        items:
                          type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      elementId:
                        type: string
                      selectedElements:
                        type: array
                        items:
                          type: string
                      formId:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      videoPercentage:
                        type: number
                      elementId:
                        type: string
                      videoId:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      elementId:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      videoAction:
                        type: string
                        enum:
                          - play
                          - complete
                      videoPercentage:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      tagIds:
                        type: array
                        items:
                          type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      listIds:
                        type: array
                        items:
                          type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      fieldIds:
                        type: array
                        items:
                          type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      keyword:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      command:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      scrollPercentage:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      inactivityDays:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      funnelId:
                        type: string
                      productId:
                        type: string
                      planId:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      targetType:
                        type: string
                        enum:
                          - list
                          - tag
                          - segment
                      targetId:
                        type: string
                      dispatchAt:
                        type: string
                      delayDays:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      webhookUrl:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      dateField:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      campaignId:
                        type: string
                      buttonId:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties: {}
                    additionalProperties: {}
            required:
              - id
              - type
              - label
            additionalProperties: false
      required:
        - triggers
      additionalProperties: false
    FunnelsNodeConnectPageInput:
      type: object
      properties:
        funnelId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        nodeId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        pageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - funnelId
        - nodeId
        - pageId
    FunnelsNodeConnectPageOutput:
      type: object
      properties:
        node:
          type: object
          properties:
            id:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            type:
              type: string
              enum:
                - page
                - draft
                - notes
                - traffic_source
                - ab_test
                - conditional
                - workflow
                - external_link
                - quiz
                - sticker
                - text
                - trigger
            label:
              anyOf:
                - type: string
                - type: "null"
            status:
              type: string
              enum:
                - draft
                - published
                - unpublished_changes
                - disabled
            contentType:
              type: string
              enum:
                - html_upload
                - editor3
                - none
            pageId:
              anyOf:
                - type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                - type: "null"
            position:
              type: object
              properties:
                x:
                  type: number
                y:
                  type: number
              required:
                - x
                - y
              additionalProperties: false
            config:
              type: object
              propertyNames:
                type: string
              additionalProperties: {}
            triggers:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  type:
                    type: string
                    enum:
                      - visual_connection
                      - undefined
                      - page_viewed
                      - scroll
                      - time_on_page
                      - exit_intent
                      - button_click
                      - link_click
                      - form_submit
                      - contact_captured
                      - video
                      - video_started
                      - video_paused
                      - video_completed
                      - checkout_viewed
                      - cart_abandoned
                      - purchase_approved
                      - purchase_declined
                      - card_declined
                      - pix_generated
                      - pix_expired
                      - boleto_generated
                      - boleto_expired
                      - refund_requested
                      - refund_completed
                      - chargeback
                      - upsell_accepted
                      - upsell_declined
                      - downsell_accepted
                      - downsell_declined
                      - subscription_created
                      - subscription_cancelled
                      - subscription_renewed
                      - subscription_renewal_failed
                      - subscription_card_updated
                      - trial_started
                      - trial_expired
                      - trial_converted
                      - members_area_accessed
                      - course_started
                      - lesson_completed
                      - module_completed
                      - course_completed
                      - certificate_issued
                      - affiliate_requested
                      - affiliate_approved
                      - affiliate_rejected
                      - affiliate_sale
                      - contact_created
                      - contact_updated
                      - tag_added
                      - tag_removed
                      - list_added
                      - list_removed
                      - lead_score_changed
                      - field_updated
                      - inactivity
                      - email_opened
                      - email_clicked
                      - email_not_opened
                      - email_unsubscribed
                      - email_replied
                      - whatsapp_message_received
                      - whatsapp_keyword
                      - whatsapp_button_clicked
                      - instagram_comment
                      - instagram_dm
                      - instagram_lead_form
                      - sms_clicked
                      - sms_replied
                      - telegram_message
                      - telegram_command
                      - call_answered
                      - call_missed
                      - broadcast_list
                      - broadcast_tag
                      - broadcast_segment
                      - scheduled_datetime
                      - delay_after_event
                      - delay_before_date
                      - manual_trigger
                      - api_webhook
                      - date_based
                  label:
                    type: string
                  connectedTo:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  config:
                    anyOf:
                      - type: object
                        properties:
                          scrollPercentage:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          timeInSeconds:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          elementId:
                            type: string
                          selectedElements:
                            type: array
                            items:
                              type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          elementId:
                            type: string
                          selectedElements:
                            type: array
                            items:
                              type: string
                          formId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          videoPercentage:
                            type: number
                          elementId:
                            type: string
                          videoId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          elementId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          videoAction:
                            type: string
                            enum:
                              - play
                              - complete
                          videoPercentage:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          tagIds:
                            type: array
                            items:
                              type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          listIds:
                            type: array
                            items:
                              type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          fieldIds:
                            type: array
                            items:
                              type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          keyword:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          command:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          scrollPercentage:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          inactivityDays:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          funnelId:
                            type: string
                          productId:
                            type: string
                          planId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          targetType:
                            type: string
                            enum:
                              - list
                              - tag
                              - segment
                          targetId:
                            type: string
                          dispatchAt:
                            type: string
                          delayDays:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          webhookUrl:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          dateField:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          campaignId:
                            type: string
                          buttonId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties: {}
                        additionalProperties: {}
                required:
                  - id
                  - type
                  - label
                additionalProperties: false
          required:
            - id
            - type
            - status
            - contentType
            - position
            - config
            - triggers
          additionalProperties: false
        triggersNeedingElement:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              type:
                type: string
                enum:
                  - visual_connection
                  - undefined
                  - page_viewed
                  - scroll
                  - time_on_page
                  - exit_intent
                  - button_click
                  - link_click
                  - form_submit
                  - contact_captured
                  - video
                  - video_started
                  - video_paused
                  - video_completed
                  - checkout_viewed
                  - cart_abandoned
                  - purchase_approved
                  - purchase_declined
                  - card_declined
                  - pix_generated
                  - pix_expired
                  - boleto_generated
                  - boleto_expired
                  - refund_requested
                  - refund_completed
                  - chargeback
                  - upsell_accepted
                  - upsell_declined
                  - downsell_accepted
                  - downsell_declined
                  - subscription_created
                  - subscription_cancelled
                  - subscription_renewed
                  - subscription_renewal_failed
                  - subscription_card_updated
                  - trial_started
                  - trial_expired
                  - trial_converted
                  - members_area_accessed
                  - course_started
                  - lesson_completed
                  - module_completed
                  - course_completed
                  - certificate_issued
                  - affiliate_requested
                  - affiliate_approved
                  - affiliate_rejected
                  - affiliate_sale
                  - contact_created
                  - contact_updated
                  - tag_added
                  - tag_removed
                  - list_added
                  - list_removed
                  - lead_score_changed
                  - field_updated
                  - inactivity
                  - email_opened
                  - email_clicked
                  - email_not_opened
                  - email_unsubscribed
                  - email_replied
                  - whatsapp_message_received
                  - whatsapp_keyword
                  - whatsapp_button_clicked
                  - instagram_comment
                  - instagram_dm
                  - instagram_lead_form
                  - sms_clicked
                  - sms_replied
                  - telegram_message
                  - telegram_command
                  - call_answered
                  - call_missed
                  - broadcast_list
                  - broadcast_tag
                  - broadcast_segment
                  - scheduled_datetime
                  - delay_after_event
                  - delay_before_date
                  - manual_trigger
                  - api_webhook
                  - date_based
              label:
                type: string
              connectedTo:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              config:
                anyOf:
                  - type: object
                    properties:
                      scrollPercentage:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      timeInSeconds:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      elementId:
                        type: string
                      selectedElements:
                        type: array
                        items:
                          type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      elementId:
                        type: string
                      selectedElements:
                        type: array
                        items:
                          type: string
                      formId:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      videoPercentage:
                        type: number
                      elementId:
                        type: string
                      videoId:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      elementId:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      videoAction:
                        type: string
                        enum:
                          - play
                          - complete
                      videoPercentage:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      tagIds:
                        type: array
                        items:
                          type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      listIds:
                        type: array
                        items:
                          type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      fieldIds:
                        type: array
                        items:
                          type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      keyword:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      command:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      scrollPercentage:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      inactivityDays:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      funnelId:
                        type: string
                      productId:
                        type: string
                      planId:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      targetType:
                        type: string
                        enum:
                          - list
                          - tag
                          - segment
                      targetId:
                        type: string
                      dispatchAt:
                        type: string
                      delayDays:
                        type: number
                    additionalProperties: false
                  - type: object
                    properties:
                      webhookUrl:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      dateField:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties:
                      campaignId:
                        type: string
                      buttonId:
                        type: string
                    additionalProperties: false
                  - type: object
                    properties: {}
                    additionalProperties: {}
            required:
              - id
              - type
              - label
            additionalProperties: false
        replacedPageId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
      required:
        - node
        - triggersNeedingElement
      additionalProperties: false
    FunnelsAbtestVariantsUpdateInput:
      type: object
      properties:
        funnelId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        nodeId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        variants:
          minItems: 1
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              label:
                type: string
                maxLength: 255
              percentage:
                type: number
                minimum: 0
                maximum: 100
              connectedTo:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              handleColor:
                type: string
            required:
              - label
              - percentage
      required:
        - funnelId
        - nodeId
        - variants
    FunnelsAbtestVariantsUpdateOutput:
      type: object
      properties:
        variants:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              label:
                type: string
              percentage:
                type: number
              connectedTo:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              handleColor:
                type: string
            required:
              - id
              - label
              - percentage
            additionalProperties: false
      required:
        - variants
      additionalProperties: false
    FunnelsTrafficSourceUpdateInput:
      type: object
      properties:
        funnelId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        nodeId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        connectedTo:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        links:
          type: array
          items:
            type: object
            propertyNames:
              type: string
            additionalProperties: {}
      required:
        - funnelId
        - nodeId
    FunnelsTrafficSourceUpdateOutput:
      type: object
      properties:
        node:
          type: object
          properties:
            id:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            type:
              type: string
              enum:
                - page
                - draft
                - notes
                - traffic_source
                - ab_test
                - conditional
                - workflow
                - external_link
                - quiz
                - sticker
                - text
                - trigger
            label:
              anyOf:
                - type: string
                - type: "null"
            status:
              type: string
              enum:
                - draft
                - published
                - unpublished_changes
                - disabled
            contentType:
              type: string
              enum:
                - html_upload
                - editor3
                - none
            pageId:
              anyOf:
                - type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                - type: "null"
            position:
              type: object
              properties:
                x:
                  type: number
                y:
                  type: number
              required:
                - x
                - y
              additionalProperties: false
            config:
              type: object
              propertyNames:
                type: string
              additionalProperties: {}
            triggers:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  type:
                    type: string
                    enum:
                      - visual_connection
                      - undefined
                      - page_viewed
                      - scroll
                      - time_on_page
                      - exit_intent
                      - button_click
                      - link_click
                      - form_submit
                      - contact_captured
                      - video
                      - video_started
                      - video_paused
                      - video_completed
                      - checkout_viewed
                      - cart_abandoned
                      - purchase_approved
                      - purchase_declined
                      - card_declined
                      - pix_generated
                      - pix_expired
                      - boleto_generated
                      - boleto_expired
                      - refund_requested
                      - refund_completed
                      - chargeback
                      - upsell_accepted
                      - upsell_declined
                      - downsell_accepted
                      - downsell_declined
                      - subscription_created
                      - subscription_cancelled
                      - subscription_renewed
                      - subscription_renewal_failed
                      - subscription_card_updated
                      - trial_started
                      - trial_expired
                      - trial_converted
                      - members_area_accessed
                      - course_started
                      - lesson_completed
                      - module_completed
                      - course_completed
                      - certificate_issued
                      - affiliate_requested
                      - affiliate_approved
                      - affiliate_rejected
                      - affiliate_sale
                      - contact_created
                      - contact_updated
                      - tag_added
                      - tag_removed
                      - list_added
                      - list_removed
                      - lead_score_changed
                      - field_updated
                      - inactivity
                      - email_opened
                      - email_clicked
                      - email_not_opened
                      - email_unsubscribed
                      - email_replied
                      - whatsapp_message_received
                      - whatsapp_keyword
                      - whatsapp_button_clicked
                      - instagram_comment
                      - instagram_dm
                      - instagram_lead_form
                      - sms_clicked
                      - sms_replied
                      - telegram_message
                      - telegram_command
                      - call_answered
                      - call_missed
                      - broadcast_list
                      - broadcast_tag
                      - broadcast_segment
                      - scheduled_datetime
                      - delay_after_event
                      - delay_before_date
                      - manual_trigger
                      - api_webhook
                      - date_based
                  label:
                    type: string
                  connectedTo:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  config:
                    anyOf:
                      - type: object
                        properties:
                          scrollPercentage:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          timeInSeconds:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          elementId:
                            type: string
                          selectedElements:
                            type: array
                            items:
                              type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          elementId:
                            type: string
                          selectedElements:
                            type: array
                            items:
                              type: string
                          formId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          videoPercentage:
                            type: number
                          elementId:
                            type: string
                          videoId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          elementId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          videoAction:
                            type: string
                            enum:
                              - play
                              - complete
                          videoPercentage:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          tagIds:
                            type: array
                            items:
                              type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          listIds:
                            type: array
                            items:
                              type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          fieldIds:
                            type: array
                            items:
                              type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          keyword:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          command:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          scrollPercentage:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          inactivityDays:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          funnelId:
                            type: string
                          productId:
                            type: string
                          planId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          targetType:
                            type: string
                            enum:
                              - list
                              - tag
                              - segment
                          targetId:
                            type: string
                          dispatchAt:
                            type: string
                          delayDays:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          webhookUrl:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          dateField:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          campaignId:
                            type: string
                          buttonId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties: {}
                        additionalProperties: {}
                required:
                  - id
                  - type
                  - label
                additionalProperties: false
          required:
            - id
            - type
            - status
            - contentType
            - position
            - config
            - triggers
          additionalProperties: false
      required:
        - node
      additionalProperties: false
    FunnelsConditionalBranchesUpdateInput:
      type: object
      properties:
        funnelId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        nodeId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        branches:
          minItems: 1
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              label:
                type: string
                maxLength: 255
              outcome:
                type: string
                enum:
                  - "true"
                  - "false"
              color:
                type: string
              connectedTo:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              rules:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    field:
                      type: string
                    operator:
                      type: string
                      enum:
                        - equals
                        - not_equals
                        - greater_than
                        - greater_than_or_equal
                        - less_than
                        - less_than_or_equal
                        - contains
                        - not_contains
                        - is_empty
                        - is_not_empty
                    value:
                      anyOf:
                        - type: string
                        - type: number
                  required:
                    - field
                    - operator
              matchType:
                type: string
                enum:
                  - AND
                  - OR
            required:
              - label
              - outcome
      required:
        - funnelId
        - nodeId
        - branches
    FunnelsConditionalBranchesUpdateOutput:
      type: object
      properties:
        branches:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              label:
                type: string
              outcome:
                type: string
                enum:
                  - "true"
                  - "false"
              color:
                type: string
              connectedTo:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              rules:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    field:
                      type: string
                    operator:
                      type: string
                      enum:
                        - equals
                        - not_equals
                        - greater_than
                        - greater_than_or_equal
                        - less_than
                        - less_than_or_equal
                        - contains
                        - not_contains
                        - is_empty
                        - is_not_empty
                    value:
                      anyOf:
                        - type: string
                        - type: number
                  required:
                    - id
                    - field
                    - operator
                  additionalProperties: false
              matchType:
                type: string
                enum:
                  - AND
                  - OR
            required:
              - id
              - label
              - outcome
            additionalProperties: false
      required:
        - branches
      additionalProperties: false
    FunnelsWorkflowExitTriggerSetInput:
      type: object
      properties:
        funnelId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        nodeId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        exitTrigger:
          anyOf:
            - type: object
              properties:
                type:
                  type: string
                label:
                  type: string
                config:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties: {}
                removeOnConversion:
                  type: boolean
                flowTriggerId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                eventName:
                  type: string
                constraints:
                  type: array
                  items:
                    type: object
                    properties:
                      field:
                        type: string
                      op:
                        type: string
                      valueType:
                        type: string
                      value: {}
                    required:
                      - field
                      - op
                      - valueType
            - type: "null"
      required:
        - funnelId
        - nodeId
    FunnelsWorkflowExitTriggerSetOutput:
      type: object
      properties:
        node:
          type: object
          properties:
            id:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            type:
              type: string
              enum:
                - page
                - draft
                - notes
                - traffic_source
                - ab_test
                - conditional
                - workflow
                - external_link
                - quiz
                - sticker
                - text
                - trigger
            label:
              anyOf:
                - type: string
                - type: "null"
            status:
              type: string
              enum:
                - draft
                - published
                - unpublished_changes
                - disabled
            contentType:
              type: string
              enum:
                - html_upload
                - editor3
                - none
            pageId:
              anyOf:
                - type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                - type: "null"
            position:
              type: object
              properties:
                x:
                  type: number
                y:
                  type: number
              required:
                - x
                - y
              additionalProperties: false
            config:
              type: object
              propertyNames:
                type: string
              additionalProperties: {}
            triggers:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  type:
                    type: string
                    enum:
                      - visual_connection
                      - undefined
                      - page_viewed
                      - scroll
                      - time_on_page
                      - exit_intent
                      - button_click
                      - link_click
                      - form_submit
                      - contact_captured
                      - video
                      - video_started
                      - video_paused
                      - video_completed
                      - checkout_viewed
                      - cart_abandoned
                      - purchase_approved
                      - purchase_declined
                      - card_declined
                      - pix_generated
                      - pix_expired
                      - boleto_generated
                      - boleto_expired
                      - refund_requested
                      - refund_completed
                      - chargeback
                      - upsell_accepted
                      - upsell_declined
                      - downsell_accepted
                      - downsell_declined
                      - subscription_created
                      - subscription_cancelled
                      - subscription_renewed
                      - subscription_renewal_failed
                      - subscription_card_updated
                      - trial_started
                      - trial_expired
                      - trial_converted
                      - members_area_accessed
                      - course_started
                      - lesson_completed
                      - module_completed
                      - course_completed
                      - certificate_issued
                      - affiliate_requested
                      - affiliate_approved
                      - affiliate_rejected
                      - affiliate_sale
                      - contact_created
                      - contact_updated
                      - tag_added
                      - tag_removed
                      - list_added
                      - list_removed
                      - lead_score_changed
                      - field_updated
                      - inactivity
                      - email_opened
                      - email_clicked
                      - email_not_opened
                      - email_unsubscribed
                      - email_replied
                      - whatsapp_message_received
                      - whatsapp_keyword
                      - whatsapp_button_clicked
                      - instagram_comment
                      - instagram_dm
                      - instagram_lead_form
                      - sms_clicked
                      - sms_replied
                      - telegram_message
                      - telegram_command
                      - call_answered
                      - call_missed
                      - broadcast_list
                      - broadcast_tag
                      - broadcast_segment
                      - scheduled_datetime
                      - delay_after_event
                      - delay_before_date
                      - manual_trigger
                      - api_webhook
                      - date_based
                  label:
                    type: string
                  connectedTo:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  config:
                    anyOf:
                      - type: object
                        properties:
                          scrollPercentage:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          timeInSeconds:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          elementId:
                            type: string
                          selectedElements:
                            type: array
                            items:
                              type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          elementId:
                            type: string
                          selectedElements:
                            type: array
                            items:
                              type: string
                          formId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          videoPercentage:
                            type: number
                          elementId:
                            type: string
                          videoId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          elementId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          videoAction:
                            type: string
                            enum:
                              - play
                              - complete
                          videoPercentage:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          tagIds:
                            type: array
                            items:
                              type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          listIds:
                            type: array
                            items:
                              type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          fieldIds:
                            type: array
                            items:
                              type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          keyword:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          command:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          scrollPercentage:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          inactivityDays:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          funnelId:
                            type: string
                          productId:
                            type: string
                          planId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          targetType:
                            type: string
                            enum:
                              - list
                              - tag
                              - segment
                          targetId:
                            type: string
                          dispatchAt:
                            type: string
                          delayDays:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          webhookUrl:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          dateField:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          campaignId:
                            type: string
                          buttonId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties: {}
                        additionalProperties: {}
                required:
                  - id
                  - type
                  - label
                additionalProperties: false
          required:
            - id
            - type
            - status
            - contentType
            - position
            - config
            - triggers
          additionalProperties: false
      required:
        - node
      additionalProperties: false
    FunnelsWorkflowFlowSetInput:
      type: object
      properties:
        funnelId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        nodeId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        flowId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
      required:
        - funnelId
        - nodeId
    FunnelsWorkflowFlowSetOutput:
      type: object
      properties:
        node:
          type: object
          properties:
            id:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            type:
              type: string
              enum:
                - page
                - draft
                - notes
                - traffic_source
                - ab_test
                - conditional
                - workflow
                - external_link
                - quiz
                - sticker
                - text
                - trigger
            label:
              anyOf:
                - type: string
                - type: "null"
            status:
              type: string
              enum:
                - draft
                - published
                - unpublished_changes
                - disabled
            contentType:
              type: string
              enum:
                - html_upload
                - editor3
                - none
            pageId:
              anyOf:
                - type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                - type: "null"
            position:
              type: object
              properties:
                x:
                  type: number
                y:
                  type: number
              required:
                - x
                - y
              additionalProperties: false
            config:
              type: object
              propertyNames:
                type: string
              additionalProperties: {}
            triggers:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  type:
                    type: string
                    enum:
                      - visual_connection
                      - undefined
                      - page_viewed
                      - scroll
                      - time_on_page
                      - exit_intent
                      - button_click
                      - link_click
                      - form_submit
                      - contact_captured
                      - video
                      - video_started
                      - video_paused
                      - video_completed
                      - checkout_viewed
                      - cart_abandoned
                      - purchase_approved
                      - purchase_declined
                      - card_declined
                      - pix_generated
                      - pix_expired
                      - boleto_generated
                      - boleto_expired
                      - refund_requested
                      - refund_completed
                      - chargeback
                      - upsell_accepted
                      - upsell_declined
                      - downsell_accepted
                      - downsell_declined
                      - subscription_created
                      - subscription_cancelled
                      - subscription_renewed
                      - subscription_renewal_failed
                      - subscription_card_updated
                      - trial_started
                      - trial_expired
                      - trial_converted
                      - members_area_accessed
                      - course_started
                      - lesson_completed
                      - module_completed
                      - course_completed
                      - certificate_issued
                      - affiliate_requested
                      - affiliate_approved
                      - affiliate_rejected
                      - affiliate_sale
                      - contact_created
                      - contact_updated
                      - tag_added
                      - tag_removed
                      - list_added
                      - list_removed
                      - lead_score_changed
                      - field_updated
                      - inactivity
                      - email_opened
                      - email_clicked
                      - email_not_opened
                      - email_unsubscribed
                      - email_replied
                      - whatsapp_message_received
                      - whatsapp_keyword
                      - whatsapp_button_clicked
                      - instagram_comment
                      - instagram_dm
                      - instagram_lead_form
                      - sms_clicked
                      - sms_replied
                      - telegram_message
                      - telegram_command
                      - call_answered
                      - call_missed
                      - broadcast_list
                      - broadcast_tag
                      - broadcast_segment
                      - scheduled_datetime
                      - delay_after_event
                      - delay_before_date
                      - manual_trigger
                      - api_webhook
                      - date_based
                  label:
                    type: string
                  connectedTo:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  config:
                    anyOf:
                      - type: object
                        properties:
                          scrollPercentage:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          timeInSeconds:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          elementId:
                            type: string
                          selectedElements:
                            type: array
                            items:
                              type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          elementId:
                            type: string
                          selectedElements:
                            type: array
                            items:
                              type: string
                          formId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          videoPercentage:
                            type: number
                          elementId:
                            type: string
                          videoId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          elementId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          videoAction:
                            type: string
                            enum:
                              - play
                              - complete
                          videoPercentage:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          tagIds:
                            type: array
                            items:
                              type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          listIds:
                            type: array
                            items:
                              type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          fieldIds:
                            type: array
                            items:
                              type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          keyword:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          command:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          scrollPercentage:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          inactivityDays:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          funnelId:
                            type: string
                          productId:
                            type: string
                          planId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          targetType:
                            type: string
                            enum:
                              - list
                              - tag
                              - segment
                          targetId:
                            type: string
                          dispatchAt:
                            type: string
                          delayDays:
                            type: number
                        additionalProperties: false
                      - type: object
                        properties:
                          webhookUrl:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          dateField:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties:
                          campaignId:
                            type: string
                          buttonId:
                            type: string
                        additionalProperties: false
                      - type: object
                        properties: {}
                        additionalProperties: {}
                required:
                  - id
                  - type
                  - label
                additionalProperties: false
          required:
            - id
            - type
            - status
            - contentType
            - position
            - config
            - triggers
          additionalProperties: false
      required:
        - node
      additionalProperties: false
    FunnelsWorkflowAutomationCreateInput:
      type: object
      properties:
        funnelId:
          type: string
        projectId:
          type: string
        capturePageNodeId:
          type: string
        title:
          type: string
      required:
        - funnelId
        - projectId
        - capturePageNodeId
        - title
    FunnelsWorkflowAutomationCreateOutput:
      type: object
      properties:
        flowId:
          type: string
        workflowNodeId:
          type: string
        entryStepId:
          type: string
      required:
        - flowId
        - workflowNodeId
      additionalProperties: false
    FunnelsNodeDeleteInput:
      type: object
      properties:
        funnelId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        nodeId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - funnelId
        - nodeId
    FunnelsNodeDeleteOutput:
      type: object
      properties:
        deleted:
          type: boolean
      required:
        - deleted
      additionalProperties: false
    FunnelsPageTriggersCatalogOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              pageType:
                type: string
              triggers:
                type: array
                items:
                  type: object
                  properties:
                    type:
                      type: string
                    label:
                      type: string
                  required:
                    - type
                    - label
                  additionalProperties: false
            required:
              - pageType
              - triggers
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    HelpdeskSearchOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              slug:
                type: string
                maxLength: 160
              title:
                type: string
                maxLength: 255
              excerpt:
                anyOf:
                  - type: string
                  - type: "null"
              icon:
                anyOf:
                  - type: string
                    maxLength: 100
                  - type: "null"
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              moduleSlug:
                type: string
              moduleTitle:
                type: string
              featureSlug:
                type: string
              featureTitle:
                type: string
            required:
              - id
              - slug
              - title
              - updatedAt
              - moduleSlug
              - moduleTitle
              - featureSlug
              - featureTitle
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    HelpdeskArticleGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        slug:
          type: string
          maxLength: 160
        title:
          type: string
          maxLength: 255
        excerpt:
          anyOf:
            - type: string
            - type: "null"
        body:
          type: string
        keywords:
          type: array
          items:
            type: string
        icon:
          anyOf:
            - type: string
              maxLength: 100
            - type: "null"
        position:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        published:
          type: boolean
        publishedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        featureId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - slug
        - title
        - body
        - keywords
        - position
        - published
        - featureId
        - createdAt
        - updatedAt
      additionalProperties: false
    HelpdeskArticleGetBySlugOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        slug:
          type: string
          maxLength: 160
        title:
          type: string
          maxLength: 255
        excerpt:
          anyOf:
            - type: string
            - type: "null"
        body:
          type: string
        keywords:
          type: array
          items:
            type: string
        icon:
          anyOf:
            - type: string
              maxLength: 100
            - type: "null"
        position:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        published:
          type: boolean
        publishedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        featureId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - slug
        - title
        - body
        - keywords
        - position
        - published
        - featureId
        - createdAt
        - updatedAt
      additionalProperties: false
    HelpdeskTreeOutput:
      type: object
      properties:
        modules:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              slug:
                type: string
                maxLength: 120
              title:
                type: string
                maxLength: 255
              description:
                anyOf:
                  - type: string
                  - type: "null"
              icon:
                anyOf:
                  - type: string
                    maxLength: 100
                  - type: "null"
              position:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              features:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    slug:
                      type: string
                      maxLength: 120
                    title:
                      type: string
                      maxLength: 255
                    description:
                      anyOf:
                        - type: string
                        - type: "null"
                    icon:
                      anyOf:
                        - type: string
                          maxLength: 100
                        - type: "null"
                    position:
                      type: integer
                      minimum: -9007199254740991
                      maximum: 9007199254740991
                    articles:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          slug:
                            type: string
                            maxLength: 160
                          title:
                            type: string
                            maxLength: 255
                          excerpt:
                            anyOf:
                              - type: string
                              - type: "null"
                          icon:
                            anyOf:
                              - type: string
                                maxLength: 100
                              - type: "null"
                          position:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                        required:
                          - id
                          - slug
                          - title
                          - position
                        additionalProperties: false
                  required:
                    - id
                    - slug
                    - title
                    - position
                    - articles
                  additionalProperties: false
            required:
              - id
              - slug
              - title
              - position
              - features
            additionalProperties: false
      required:
        - modules
      additionalProperties: false
    HelpdeskReleasesListOutput:
      type: object
      properties:
        releases:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              version:
                type: string
                maxLength: 50
              title:
                type: string
                maxLength: 255
              summary:
                anyOf:
                  - type: string
                  - type: "null"
              body:
                type: string
              published:
                type: boolean
              publishedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - id
              - version
              - title
              - body
              - published
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - releases
      additionalProperties: false
    HelpdeskReleaseLatestOutput:
      type: object
      properties:
        release:
          anyOf:
            - type: object
              properties:
                id:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                version:
                  type: string
                  maxLength: 50
                title:
                  type: string
                  maxLength: 255
                summary:
                  anyOf:
                    - type: string
                    - type: "null"
                body:
                  type: string
                published:
                  type: boolean
                publishedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    - type: "null"
                createdAt:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                updatedAt:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                deletedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    - type: "null"
              required:
                - id
                - version
                - title
                - body
                - published
                - createdAt
                - updatedAt
              additionalProperties: false
            - type: "null"
      required:
        - release
      additionalProperties: false
    ChannelInstancesListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              channel:
                type: string
              stableKey:
                type: string
              displayName:
                anyOf:
                  - type: string
                  - type: "null"
              status:
                type: string
              phone:
                anyOf:
                  - type: string
                  - type: "null"
              wabaDisplayName:
                anyOf:
                  - type: string
                  - type: "null"
              numberStatus:
                anyOf:
                  - type: string
                  - type: "null"
              qualityRating:
                anyOf:
                  - type: string
                  - type: "null"
              businessVerified:
                anyOf:
                  - type: boolean
                  - type: "null"
              messagingLimitTier:
                anyOf:
                  - type: string
                  - type: "null"
              telegramBotName:
                anyOf:
                  - type: string
                  - type: "null"
              telegramUsername:
                anyOf:
                  - type: string
                  - type: "null"
              instagramName:
                anyOf:
                  - type: string
                  - type: "null"
              instagramUsername:
                anyOf:
                  - type: string
                  - type: "null"
              archivedAt:
                anyOf:
                  - type: string
                  - type: "null"
              archivedReason:
                anyOf:
                  - type: string
                  - type: "null"
              createdAt:
                type: string
              updatedAt:
                type: string
            required:
              - id
              - channel
              - stableKey
              - displayName
              - status
              - archivedAt
              - archivedReason
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    EmailSenderSignaturesListInput:
      type: object
      properties:
        page:
          type: number
          description: 1-based page number. Defaults to 1.
        perPage:
          type: number
          description: Items per page, max 2000. Defaults to 10.
        confirmed:
          type: boolean
          description: Filter to only verified (true) or only unverified (false) signatures.
        domainNames:
          type: array
          items:
            type: string
          description: Filter to signatures on these sending domains.
    EmailSenderSignaturesListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              domain:
                type: string
              name:
                type: string
              emailAddress:
                type: string
              replyToEmailAddress:
                anyOf:
                  - type: string
                  - type: "null"
              confirmed:
                type: boolean
            required:
              - id
              - domain
              - name
              - emailAddress
              - replyToEmailAddress
              - confirmed
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    GupshupTemplatesListInput:
      type: object
      properties:
        page:
          type: number
          description: 1-based page number. Defaults to 1.
        perPage:
          type: number
          description: Items per page, max 2000. Defaults to 10.
        name:
          type: string
          description: Substring filter on `elementName`.
        status:
          type: array
          items:
            type: string
            enum:
              - draft
              - pending
              - approved
              - rejected
              - failed
          description: Filter by approval status.
        category:
          type: string
          enum:
            - MARKETING
            - UTILITY
            - AUTHENTICATION
          description: Filter by Meta category.
        channelInstanceId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: "WhatsApp number (channel instance) to scope this to — resolve with
            `channel_instances_list`. Recommended whenever the workspace may
            have more than one number: omitting it falls back to the oldest live
            number, which is ambiguous the moment a 2nd number is connected
            (same class of bug as gupshupAppId/FLOWS-1082)."
    GupshupTemplatesListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              elementName:
                type: string
              category:
                type: string
              status:
                type: string
                enum:
                  - draft
                  - pending
                  - approved
                  - rejected
                  - failed
              templateType:
                type: string
                enum:
                  - TEXT
                  - IMAGE
                  - VIDEO
                  - DOCUMENT
                  - LOCATION
              header:
                type: string
              body:
                type: string
              footer:
                type: string
              quality:
                type: string
              languageCode:
                type: string
              positionParams:
                type: array
                items:
                  type: string
              headerMediaUrl:
                anyOf:
                  - type: string
                  - type: "null"
              buttons:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    type:
                      type: string
                      enum:
                        - QUICK_REPLY
                        - URL
                        - OTP
                        - COPY_CODE
                    text:
                      type: string
                    url:
                      anyOf:
                        - type: string
                        - type: "null"
                    suffix:
                      anyOf:
                        - type: string
                        - type: "null"
                    couponCode:
                      anyOf:
                        - type: string
                        - type: "null"
                    order:
                      type: number
                  required:
                    - id
                    - text
                    - order
                  additionalProperties: false
              createdAt:
                type: string
              updatedAt:
                type: string
              externalId:
                type: string
              reason:
                type: string
              reviewedAt:
                type: string
            required:
              - id
              - elementName
              - headerMediaUrl
              - buttons
              - createdAt
              - updatedAt
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
        statusCounts:
          type: object
          properties:
            all:
              type: number
            approved:
              type: number
            pending:
              type: number
            rejected:
              type: number
            failed:
              type: number
            draft:
              type: number
          required:
            - all
            - approved
            - pending
            - rejected
            - failed
            - draft
          additionalProperties: false
      required:
        - data
        - meta
        - statusCounts
      additionalProperties: false
    GupshupTemplatesGetOutput:
      type: object
      properties:
        id:
          type: string
        elementName:
          type: string
        category:
          type: string
        status:
          type: string
          enum:
            - draft
            - pending
            - approved
            - rejected
            - failed
        templateType:
          type: string
          enum:
            - TEXT
            - IMAGE
            - VIDEO
            - DOCUMENT
            - LOCATION
        header:
          type: string
        body:
          type: string
        footer:
          type: string
        quality:
          type: string
        languageCode:
          type: string
        positionParams:
          type: array
          items:
            type: string
        headerMediaUrl:
          anyOf:
            - type: string
            - type: "null"
        buttons:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              type:
                type: string
                enum:
                  - QUICK_REPLY
                  - URL
                  - OTP
                  - COPY_CODE
              text:
                type: string
              url:
                anyOf:
                  - type: string
                  - type: "null"
              suffix:
                anyOf:
                  - type: string
                  - type: "null"
              couponCode:
                anyOf:
                  - type: string
                  - type: "null"
              order:
                type: number
            required:
              - id
              - text
              - order
            additionalProperties: false
      required:
        - id
        - headerMediaUrl
        - buttons
      additionalProperties: false
    GupshupTemplateLibraryListOutput:
      type: object
      properties:
        status:
          type: string
        templates:
          type: array
          items:
            type: object
            properties:
              elementName:
                type: string
              category:
                type: string
                enum:
                  - UTILITY
                  - AUTHENTICATION
              languageCode:
                type: string
              templateType:
                type: string
                enum:
                  - TEXT
                  - IMAGE
                  - VIDEO
                  - DOCUMENT
                  - LOCATION
              data:
                type: string
              industry:
                type: string
              topic:
                type: string
              useCase:
                type: string
            required:
              - elementName
              - category
              - languageCode
            additionalProperties: false
      required:
        - status
        - templates
      additionalProperties: false
    GupshupTemplateLibraryCreateInput:
      type: object
      properties:
        elementName:
          type: string
          description: Workspace-local template name, 6-24 characters.
        libraryTemplateName:
          type: string
          description: Exact `elementName` of the Meta library entry to import — resolve
            with `gupshup_template_library_list`, never invented.
        category:
          type: string
          enum:
            - UTILITY
            - AUTHENTICATION
        languageCode:
          type: string
        buttons:
          type: string
          description: Raw GupShup buttons override string — leave unset for the library
            defaults.
        channelInstanceId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: "WhatsApp number (channel instance) to scope this to — resolve with
            `channel_instances_list`. Recommended whenever the workspace may
            have more than one number: omitting it falls back to the oldest live
            number, which is ambiguous the moment a 2nd number is connected
            (same class of bug as gupshupAppId/FLOWS-1082)."
      required:
        - elementName
        - libraryTemplateName
        - category
        - languageCode
    GupshupTemplateLibraryCreateOutput:
      type: object
      properties:
        id:
          type: string
        status:
          type: string
      required:
        - id
        - status
      additionalProperties: false
    GupshupTemplatesCreateInput:
      type: object
      properties:
        channelInstanceId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: "WhatsApp number (channel instance) to scope this to — resolve with
            `channel_instances_list`. Recommended whenever the workspace may
            have more than one number: omitting it falls back to the oldest live
            number, which is ambiguous the moment a 2nd number is connected
            (same class of bug as gupshupAppId/FLOWS-1082)."
        template:
          type: object
          properties:
            templateType:
              type: string
              enum:
                - TEXT
                - IMAGE
                - VIDEO
                - DOCUMENT
                - LOCATION
              description: "`TEXT` is the common case (plain body, optional text
                `header`/`footer`). `IMAGE`/`VIDEO`/`DOCUMENT` need the media
                Meta will review — either `file` (a url hermes re-hosts) or an
                existing `exampleMedia` handle — and reject a text `header`.
                `LOCATION` has no header content, lat/long is filled at send
                time."
            elementName:
              type: string
              description: Meta template name, 6-24 characters, unique per number/language.
                Normalized to what Meta accepts (lowercase, digits, `_`) before
                saving — "Boas Vindas" is stored as `boas_vindas` — so pass a
                readable name and let it be normalized.
            category:
              type: string
              enum:
                - MARKETING
                - UTILITY
                - AUTHENTICATION
              description: Meta category. `AUTHENTICATION` has a Meta-MANAGED body (ignore
                `content`/`header`/`footer` styling — Meta renders the OTP copy)
                and only accepts an `OTP` button.
            vertical:
              type: string
              enum:
                - TEXT
                - Internal_vertical
              description: GupShup-internal field — omit it; defaults to `'TEXT'`.
            languageCode:
              type: string
              enum:
                - pt_BR
                - en
              description: Template language.
            content:
              type: string
              description: Template body. Placeholders are `{{1}}`, `{{2}}`… — MUST be
                sequential from 1 with no gaps, and the body may not start or
                end with one (Meta requires fixed text around every
                placeholder). No 3+ consecutive braces.
            header:
              type: string
              description: Text header, `TEXT` templateType only. Max 60 chars. May carry AT
                MOST ONE placeholder, and it must be `{{1}}` — when it does,
                `exampleHeader` is required.
            footer:
              type: string
              description: Footer text. Max 60 chars.
            example:
              type: string
              description: Sample body with every `{{n}}` placeholder replaced by a REAL
                example value — Meta rejects an unfilled placeholder left in the
                example.
            exampleHeader:
              type: string
              description: Header with `{{1}}` replaced by a REAL example value (header `Olá
                {{1}}` → `Olá Maria`). REQUIRED when `header` has a placeholder
                — Meta rejects an unfilled placeholder in the sample.
            exampleMedia:
              type: string
              description: Existing GupShup media handle id — required for
                `IMAGE`/`VIDEO`/`DOCUMENT` templateType. This tool does not
                upload media; reuse a handle the workspace already has.
            enableSample:
              type: string
              enum:
                - "true"
                - "false"
              description: Required alongside `exampleMedia` for media templateTypes.
            addSecurityRecommendation:
              type: boolean
              description: "`AUTHENTICATION` only — appends the Meta security-recommendation
                line."
            codeExpirationMinutes:
              type: number
              description: "`AUTHENTICATION` only — OTP code validity window, 1-90 minutes."
            buttons:
              type: array
              items:
                oneOf:
                  - type: object
                    properties:
                      type:
                        type: string
                        const: QUICK_REPLY
                      text:
                        type: string
                    required:
                      - type
                      - text
                    description: Quick-reply button — postback only, no URL.
                  - type: object
                    properties:
                      type:
                        type: string
                        const: URL
                      text:
                        type: string
                      url:
                        type: string
                      buttonValue:
                        type: string
                      suffix:
                        type: string
                      example:
                        type: array
                        items:
                          type: string
                        description: Required when the URL is dynamic (has a {{n}}).
                    required:
                      - type
                      - text
                      - url
                      - buttonValue
                      - suffix
                    description: Link button.
                  - type: object
                    properties:
                      type:
                        type: string
                        const: OTP
                      otp_type:
                        type: string
                        const: COPY_CODE
                      text:
                        type: string
                    required:
                      - type
                      - otp_type
                      - text
                    description: "Authentication OTP button — only `otp_type: 'COPY_CODE'` is
                      supported today."
                  - type: object
                    properties:
                      type:
                        type: string
                        const: COPY_CODE
                      text:
                        type: string
                      example:
                        type: array
                        items:
                          type: string
                        description: Sample coupon code, e.g. ["SAVE20"].
                    required:
                      - type
                      - text
                      - example
                    description: Coupon-code button.
          required:
            - templateType
            - elementName
            - category
            - languageCode
            - content
            - example
          description: The actual Meta template content — see field descriptions for the
            placeholder/category/media rules Meta enforces.
        file:
          type: object
          properties:
            url:
              type: string
              description: A URL hermes-api can fetch and re-host at GupShup.
            type:
              type: string
              enum:
                - mp4
                - jpg
                - png
                - gif
                - pdf
          required:
            - url
            - type
          description: Media source for `IMAGE`/`VIDEO`/`DOCUMENT` templateType.
        positionParams:
          type: array
          items:
            type: string
          description: "OMIT THIS unless you have real labels: it is derived from the
            body's `{{n}}` placeholders. One label per placeholder, sized to the
            HIGHEST index used (a body using only `{{2}}` still needs 2 entries
            — the array LENGTH is what determines how many params the send
            requires, not its content). Labels are just display text for the
            field-mapping picker (e.g. \"{1}\", \"customer name\") — the real
            value at send time comes from `paramMapping` on
            `flows_send_whatsapp`. A length that disagrees with the body is
            rejected."
      required:
        - template
    GupshupTemplatesCreateOutput:
      type: object
      properties:
        id:
          type: string
        status:
          type: string
        created:
          type: boolean
          description: "false means nothing was created: a template with this exact
            `elementName` already existed for the target connection and its
            id/status are returned as-is — `status` may already be
            `pending`/`approved`/`rejected`, NOT a fresh `draft`. true means a
            brand-new draft was created."
      required:
        - id
        - status
        - created
      additionalProperties: false
    GupshupTemplatesUpdateInput:
      type: object
      properties:
        id:
          type: string
          description: Template id, from `gupshup_templates_list`/`gupshup_templates_get`.
        template:
          type: object
          properties:
            templateType:
              type: string
              enum:
                - TEXT
                - IMAGE
                - VIDEO
                - DOCUMENT
                - LOCATION
              description: "`TEXT` is the common case (plain body, optional text
                `header`/`footer`). `IMAGE`/`VIDEO`/`DOCUMENT` need the media
                Meta will review — either `file` (a url hermes re-hosts) or an
                existing `exampleMedia` handle — and reject a text `header`.
                `LOCATION` has no header content, lat/long is filled at send
                time."
            elementName:
              type: string
              description: Meta template name, 6-24 characters, unique per number/language.
                Normalized to what Meta accepts (lowercase, digits, `_`) before
                saving — "Boas Vindas" is stored as `boas_vindas` — so pass a
                readable name and let it be normalized.
            category:
              type: string
              enum:
                - MARKETING
                - UTILITY
                - AUTHENTICATION
              description: Meta category. `AUTHENTICATION` has a Meta-MANAGED body (ignore
                `content`/`header`/`footer` styling — Meta renders the OTP copy)
                and only accepts an `OTP` button.
            vertical:
              type: string
              enum:
                - TEXT
                - Internal_vertical
              description: GupShup-internal field — omit it; defaults to `'TEXT'`.
            languageCode:
              type: string
              enum:
                - pt_BR
                - en
              description: Template language.
            content:
              type: string
              description: Template body. Placeholders are `{{1}}`, `{{2}}`… — MUST be
                sequential from 1 with no gaps, and the body may not start or
                end with one (Meta requires fixed text around every
                placeholder). No 3+ consecutive braces.
            header:
              type: string
              description: Text header, `TEXT` templateType only. Max 60 chars. May carry AT
                MOST ONE placeholder, and it must be `{{1}}` — when it does,
                `exampleHeader` is required.
            footer:
              type: string
              description: Footer text. Max 60 chars.
            example:
              type: string
              description: Sample body with every `{{n}}` placeholder replaced by a REAL
                example value — Meta rejects an unfilled placeholder left in the
                example.
            exampleHeader:
              type: string
              description: Header with `{{1}}` replaced by a REAL example value (header `Olá
                {{1}}` → `Olá Maria`). REQUIRED when `header` has a placeholder
                — Meta rejects an unfilled placeholder in the sample.
            exampleMedia:
              type: string
              description: Existing GupShup media handle id — required for
                `IMAGE`/`VIDEO`/`DOCUMENT` templateType. This tool does not
                upload media; reuse a handle the workspace already has.
            enableSample:
              type: string
              enum:
                - "true"
                - "false"
              description: Required alongside `exampleMedia` for media templateTypes.
            addSecurityRecommendation:
              type: boolean
              description: "`AUTHENTICATION` only — appends the Meta security-recommendation
                line."
            codeExpirationMinutes:
              type: number
              description: "`AUTHENTICATION` only — OTP code validity window, 1-90 minutes."
            buttons:
              type: array
              items:
                oneOf:
                  - type: object
                    properties:
                      type:
                        type: string
                        const: QUICK_REPLY
                      text:
                        type: string
                    required:
                      - type
                      - text
                    description: Quick-reply button — postback only, no URL.
                  - type: object
                    properties:
                      type:
                        type: string
                        const: URL
                      text:
                        type: string
                      url:
                        type: string
                      buttonValue:
                        type: string
                      suffix:
                        type: string
                      example:
                        type: array
                        items:
                          type: string
                        description: Required when the URL is dynamic (has a {{n}}).
                    required:
                      - type
                      - text
                      - url
                      - buttonValue
                      - suffix
                    description: Link button.
                  - type: object
                    properties:
                      type:
                        type: string
                        const: OTP
                      otp_type:
                        type: string
                        const: COPY_CODE
                      text:
                        type: string
                    required:
                      - type
                      - otp_type
                      - text
                    description: "Authentication OTP button — only `otp_type: 'COPY_CODE'` is
                      supported today."
                  - type: object
                    properties:
                      type:
                        type: string
                        const: COPY_CODE
                      text:
                        type: string
                      example:
                        type: array
                        items:
                          type: string
                        description: Sample coupon code, e.g. ["SAVE20"].
                    required:
                      - type
                      - text
                      - example
                    description: Coupon-code button.
          required:
            - templateType
            - elementName
            - category
            - languageCode
            - content
            - example
          description: The actual Meta template content — see field descriptions for the
            placeholder/category/media rules Meta enforces.
        file:
          type: object
          properties:
            url:
              type: string
              description: A URL hermes-api can fetch and re-host at GupShup.
            type:
              type: string
              enum:
                - mp4
                - jpg
                - png
                - gif
                - pdf
          required:
            - url
            - type
          description: Media source for `IMAGE`/`VIDEO`/`DOCUMENT` templateType.
        positionParams:
          type: array
          items:
            type: string
          description: "OMIT THIS unless you have real labels: it is derived from the
            body's `{{n}}` placeholders. One label per placeholder, sized to the
            HIGHEST index used (a body using only `{{2}}` still needs 2 entries
            — the array LENGTH is what determines how many params the send
            requires, not its content). Labels are just display text for the
            field-mapping picker (e.g. \"{1}\", \"customer name\") — the real
            value at send time comes from `paramMapping` on
            `flows_send_whatsapp`. A length that disagrees with the body is
            rejected."
      required:
        - id
        - template
    GupshupTemplatesSubmitInput:
      type: object
      properties:
        id:
          type: string
          description: Template id, from `gupshup_templates_list`/`gupshup_templates_get`.
      required:
        - id
    ClassroomListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              portalId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
                maxLength: 255
              isDefault:
                type: boolean
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              totalMemberUsers:
                type: number
              totalContent:
                type: number
              totalLessons:
                type: number
              contentsIds:
                type: array
                items:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              products:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                  required:
                    - id
                    - name
                  additionalProperties: false
            required:
              - id
              - portalId
              - name
              - isDefault
              - createdAt
              - updatedAt
              - totalMemberUsers
              - totalContent
              - totalLessons
              - contentsIds
              - products
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    ClassroomGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        portalId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          maxLength: 255
        isDefault:
          type: boolean
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - portalId
        - name
        - isDefault
        - createdAt
        - updatedAt
      additionalProperties: false
    ClassroomDetailsOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        portalId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          maxLength: 255
        isDefault:
          type: boolean
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        contents:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              title:
                type: string
                maxLength: 255
              description:
                type: string
              category:
                type: string
              coverImageHorizontal:
                anyOf:
                  - type: string
                    pattern: ^https:\/\/.+$
                  - type: "null"
              coverImageVertical:
                anyOf:
                  - type: string
                    pattern: ^https:\/\/.+$
                  - type: "null"
              trailerUrl:
                anyOf:
                  - type: string
                    maxLength: 255
                  - type: "null"
              coverPatternHorizontal:
                anyOf:
                  - type: string
                    maxLength: 50
                  - type: "null"
              coverPatternVertical:
                anyOf:
                  - type: string
                    maxLength: 50
                  - type: "null"
              issueCertificate:
                type: boolean
              availableForSale:
                type: boolean
              enabled:
                type: boolean
              showCourseTitleOnCover:
                type: boolean
              viewScenario:
                type: string
                enum:
                  - standard
                  - carousel
                  - trail
                  - listing
              ctaText:
                anyOf:
                  - type: string
                    maxLength: 255
                  - type: "null"
              contentStyle:
                anyOf:
                  - type: object
                    properties:
                      likesEnabled:
                        type: boolean
                      nextLessonEnabled:
                        type: boolean
                      nextLessonLabel:
                        type: string
                        maxLength: 100
                      completeEnabled:
                        type: boolean
                      completeLabel:
                        type: string
                        maxLength: 100
                      completedLabel:
                        type: string
                        maxLength: 100
                      watchedLabel:
                        type: string
                        maxLength: 100
                      completeAutoAdvance:
                        type: boolean
                      notesEnabled:
                        type: boolean
                      notesLabel:
                        type: string
                        maxLength: 100
                      lessonsEnabled:
                        type: boolean
                      lessonsLabel:
                        type: string
                        maxLength: 100
                      materialsEnabled:
                        type: boolean
                      materialsLabel:
                        type: string
                        maxLength: 100
                      commentsEnabled:
                        type: boolean
                      lessonsMenuLayout:
                        type: string
                        enum:
                          - accordion
                          - layers
                    additionalProperties: false
                  - type: "null"
              releaseType:
                type: string
                maxLength: 30
              releaseDays:
                anyOf:
                  - type: integer
                    minimum: 1
                    maximum: 9007199254740991
                  - type: "null"
              releaseDate:
                anyOf:
                  - type: string
                    format: date
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                  - type: "null"
              defaultAccessDuration:
                anyOf:
                  - type: integer
                    minimum: 1
                    maximum: 9007199254740991
                  - type: "null"
              defaultAccessUnit:
                anyOf:
                  - anyOf:
                      - type: string
                        const: hours
                      - type: string
                        const: week
                      - type: string
                        const: day
                      - type: string
                        const: month
                      - type: string
                        const: year
                      - type: string
                        const: lifetime
                      - type: "null"
                        const: null
                  - type: "null"
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              locked:
                type: boolean
              checkoutType:
                anyOf:
                  - type: string
                    enum:
                      - product
                  - type: string
                    enum:
                      - custom
                  - type: "null"
              checkoutOfferId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              checkoutUrl:
                anyOf:
                  - type: string
                  - type: "null"
              accessTime:
                anyOf:
                  - type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      accessDuration:
                        anyOf:
                          - type: number
                          - type: "null"
                      accessUnit:
                        anyOf:
                          - type: string
                            enum:
                              - hours
                              - week
                              - day
                              - month
                              - year
                              - lifetime
                          - type: "null"
                      createdAt:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          - type: "null"
                    required:
                      - id
                      - accessDuration
                      - accessUnit
                      - createdAt
                    additionalProperties: false
                  - type: "null"
              modules:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                      maxLength: 255
                    description:
                      anyOf:
                        - type: string
                        - type: "null"
                    coverUrl:
                      anyOf:
                        - type: string
                          maxLength: 500
                        - type: "null"
                    coverUrlVertical:
                      anyOf:
                        - type: string
                          maxLength: 500
                        - type: "null"
                    trailerUrl:
                      anyOf:
                        - type: string
                          maxLength: 255
                        - type: "null"
                    coverPatternHorizontal:
                      anyOf:
                        - type: string
                          maxLength: 50
                        - type: "null"
                    coverPatternVertical:
                      anyOf:
                        - type: string
                          maxLength: 50
                        - type: "null"
                    releaseType:
                      type: string
                      maxLength: 30
                    releaseDays:
                      anyOf:
                        - type: integer
                          minimum: 1
                          maximum: 9007199254740991
                        - type: "null"
                    releaseDate:
                      anyOf:
                        - type: string
                          format: date
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                        - type: "null"
                    position:
                      type: integer
                      minimum: 1
                      maximum: 9007199254740991
                    additionalRules:
                      anyOf:
                        - {}
                        - type: "null"
                    contentId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    bannerId:
                      anyOf:
                        - type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        - type: "null"
                    createdAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    updatedAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    deletedAt:
                      anyOf:
                        - type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        - type: "null"
                    lessons:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          moduleId:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          submoduleId:
                            anyOf:
                              - type: string
                                format: uuid
                                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              - type: "null"
                          name:
                            type: string
                            maxLength: 255
                          description:
                            anyOf:
                              - type: string
                              - type: "null"
                          coverUrlVertical:
                            anyOf:
                              - type: string
                                maxLength: 500
                              - type: "null"
                          coverUrlHorizontal:
                            anyOf:
                              - type: string
                                maxLength: 500
                              - type: "null"
                          commentsEnabled:
                            type: boolean
                          privateCommentsEnabled:
                            type: boolean
                          reviewsEnabled:
                            type: boolean
                          enabled:
                            type: boolean
                          startAutomatically:
                            type: boolean
                          releaseType:
                            type: string
                            maxLength: 30
                          releaseDays:
                            anyOf:
                              - type: integer
                                minimum: 1
                                maximum: 9007199254740991
                              - type: "null"
                          releaseDate:
                            anyOf:
                              - type: string
                                format: date
                                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                              - type: "null"
                          type:
                            type: string
                            enum:
                              - video
                              - external_link
                              - document
                              - text
                              - banner
                          url:
                            anyOf:
                              - type: string
                                pattern: ^https:\/\/.+$
                              - type: "null"
                          bannerId:
                            anyOf:
                              - type: string
                                format: uuid
                                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              - type: "null"
                          content:
                            anyOf:
                              - type: object
                                propertyNames:
                                  type: string
                                additionalProperties: {}
                              - type: "null"
                          position:
                            type: integer
                            minimum: 1
                            maximum: 9007199254740991
                          duration:
                            anyOf:
                              - type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              - type: "null"
                          createdAt:
                            type: string
                            format: date-time
                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          updatedAt:
                            type: string
                            format: date-time
                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          deletedAt:
                            anyOf:
                              - type: string
                                format: date-time
                                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              - type: "null"
                          attachments:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                  format: uuid
                                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                lessonId:
                                  type: string
                                  format: uuid
                                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                name:
                                  type: string
                                  maxLength: 255
                                url:
                                  type: string
                                  maxLength: 500
                                createdAt:
                                  type: string
                                  format: date-time
                                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                updatedAt:
                                  type: string
                                  format: date-time
                                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                deletedAt:
                                  anyOf:
                                    - type: string
                                      format: date-time
                                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                    - type: "null"
                              required:
                                - id
                                - lessonId
                                - name
                                - url
                                - createdAt
                                - updatedAt
                              additionalProperties: false
                        required:
                          - id
                          - moduleId
                          - name
                          - commentsEnabled
                          - privateCommentsEnabled
                          - reviewsEnabled
                          - enabled
                          - startAutomatically
                          - releaseType
                          - type
                          - position
                          - createdAt
                          - updatedAt
                        additionalProperties: false
                  required:
                    - id
                    - name
                    - releaseType
                    - position
                    - contentId
                    - createdAt
                    - updatedAt
                    - lessons
                  additionalProperties: false
            required:
              - id
              - title
              - description
              - category
              - issueCertificate
              - availableForSale
              - enabled
              - showCourseTitleOnCover
              - viewScenario
              - releaseType
              - defaultAccessDuration
              - ownerId
              - createdAt
              - updatedAt
              - locked
              - checkoutType
              - checkoutOfferId
              - checkoutUrl
              - accessTime
              - modules
            additionalProperties: false
      required:
        - id
        - portalId
        - name
        - isDefault
        - createdAt
        - updatedAt
        - contents
      additionalProperties: false
    ClassroomCreateInput:
      type: object
      properties:
        portalId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          maxLength: 255
        isDefault:
          type: boolean
        contentsIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        contentsAccessTime:
          type: array
          items:
            type: object
            properties:
              contentId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              accessDuration:
                type: number
                minimum: 1
              accessUnit:
                type: string
                enum:
                  - hours
                  - week
                  - day
                  - month
                  - year
                  - lifetime
              locked:
                type: boolean
              checkoutType:
                anyOf:
                  - type: string
                    enum:
                      - product
                  - type: string
                    enum:
                      - custom
                  - type: "null"
              checkoutOfferId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              checkoutUrl:
                anyOf:
                  - type: string
                    pattern: ^https:\/\/.+$
                  - type: "null"
            required:
              - contentId
      required:
        - portalId
        - name
    ClassroomUpdateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          maxLength: 255
        isDefault:
          type: boolean
        contentsToAdd:
          type: array
          items:
            type: object
            properties:
              contentId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              accessDuration:
                type: number
                minimum: 1
              accessUnit:
                type: string
                enum:
                  - hours
                  - week
                  - day
                  - month
                  - year
                  - lifetime
              locked:
                type: boolean
              checkoutType:
                anyOf:
                  - type: string
                    enum:
                      - product
                  - type: string
                    enum:
                      - custom
                  - type: "null"
              checkoutOfferId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              checkoutUrl:
                anyOf:
                  - type: string
                    pattern: ^https:\/\/.+$
                  - type: "null"
            required:
              - contentId
        contentsIdsToRemove:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        contentsAccessTime:
          type: array
          items:
            type: object
            properties:
              contentId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              accessDuration:
                type: number
                minimum: 1
              accessUnit:
                type: string
                enum:
                  - hours
                  - week
                  - day
                  - month
                  - year
                  - lifetime
              locked:
                type: boolean
              checkoutType:
                anyOf:
                  - type: string
                    enum:
                      - product
                  - type: string
                    enum:
                      - custom
                  - type: "null"
              checkoutOfferId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              checkoutUrl:
                anyOf:
                  - type: string
                    pattern: ^https:\/\/.+$
                  - type: "null"
            required:
              - contentId
        portalId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    ClassroomAddContentInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        contentId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
        - contentId
    ClassroomAddContentOutput:
      type: object
      properties:
        message:
          type: string
      required:
        - message
      additionalProperties: false
    ClassroomCopyMembersFromInput:
      type: object
      properties:
        targetId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        sourceId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - targetId
        - sourceId
    ClassroomCopyMembersFromOutput:
      type: object
      properties:
        copied:
          type: integer
          minimum: 0
          maximum: 9007199254740991
      required:
        - copied
      additionalProperties: false
    ClassroomDeleteInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    ClassroomDeleteOutput:
      type: object
      properties:
        deleted:
          type: boolean
      required:
        - deleted
      additionalProperties: false
    ContentListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              title:
                type: string
                maxLength: 255
              description:
                type: string
              category:
                type: string
              coverImageHorizontal:
                anyOf:
                  - type: string
                    pattern: ^https:\/\/.+$
                  - type: "null"
              coverImageVertical:
                anyOf:
                  - type: string
                    pattern: ^https:\/\/.+$
                  - type: "null"
              trailerUrl:
                anyOf:
                  - type: string
                    maxLength: 255
                  - type: "null"
              coverPatternHorizontal:
                anyOf:
                  - type: string
                    maxLength: 50
                  - type: "null"
              coverPatternVertical:
                anyOf:
                  - type: string
                    maxLength: 50
                  - type: "null"
              issueCertificate:
                type: boolean
              availableForSale:
                type: boolean
              enabled:
                type: boolean
              showCourseTitleOnCover:
                type: boolean
              viewScenario:
                type: string
                enum:
                  - standard
                  - carousel
                  - trail
                  - listing
              ctaText:
                anyOf:
                  - type: string
                    maxLength: 255
                  - type: "null"
              contentStyle:
                anyOf:
                  - type: object
                    properties:
                      likesEnabled:
                        type: boolean
                      nextLessonEnabled:
                        type: boolean
                      nextLessonLabel:
                        type: string
                        maxLength: 100
                      completeEnabled:
                        type: boolean
                      completeLabel:
                        type: string
                        maxLength: 100
                      completedLabel:
                        type: string
                        maxLength: 100
                      watchedLabel:
                        type: string
                        maxLength: 100
                      completeAutoAdvance:
                        type: boolean
                      notesEnabled:
                        type: boolean
                      notesLabel:
                        type: string
                        maxLength: 100
                      lessonsEnabled:
                        type: boolean
                      lessonsLabel:
                        type: string
                        maxLength: 100
                      materialsEnabled:
                        type: boolean
                      materialsLabel:
                        type: string
                        maxLength: 100
                      commentsEnabled:
                        type: boolean
                      lessonsMenuLayout:
                        type: string
                        enum:
                          - accordion
                          - layers
                    additionalProperties: false
                  - type: "null"
              releaseType:
                type: string
                maxLength: 30
              releaseDays:
                anyOf:
                  - type: integer
                    minimum: 1
                    maximum: 9007199254740991
                  - type: "null"
              releaseDate:
                anyOf:
                  - type: string
                    format: date
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                  - type: "null"
              defaultAccessDuration:
                anyOf:
                  - type: integer
                    minimum: 1
                    maximum: 9007199254740991
                  - type: "null"
              defaultAccessUnit:
                anyOf:
                  - anyOf:
                      - type: string
                        const: hours
                      - type: string
                        const: week
                      - type: string
                        const: day
                      - type: string
                        const: month
                      - type: string
                        const: year
                      - type: string
                        const: lifetime
                      - type: "null"
                        const: null
                  - type: "null"
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              modules:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                      maxLength: 255
                    description:
                      anyOf:
                        - type: string
                        - type: "null"
                    coverUrl:
                      anyOf:
                        - type: string
                          maxLength: 500
                        - type: "null"
                    coverUrlVertical:
                      anyOf:
                        - type: string
                          maxLength: 500
                        - type: "null"
                    trailerUrl:
                      anyOf:
                        - type: string
                          maxLength: 255
                        - type: "null"
                    coverPatternHorizontal:
                      anyOf:
                        - type: string
                          maxLength: 50
                        - type: "null"
                    coverPatternVertical:
                      anyOf:
                        - type: string
                          maxLength: 50
                        - type: "null"
                    releaseType:
                      type: string
                      maxLength: 30
                    releaseDays:
                      anyOf:
                        - type: integer
                          minimum: 1
                          maximum: 9007199254740991
                        - type: "null"
                    releaseDate:
                      anyOf:
                        - type: string
                          format: date
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                        - type: "null"
                    position:
                      type: integer
                      minimum: 1
                      maximum: 9007199254740991
                    additionalRules:
                      anyOf:
                        - {}
                        - type: "null"
                    contentId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    bannerId:
                      anyOf:
                        - type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        - type: "null"
                    createdAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    updatedAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    deletedAt:
                      anyOf:
                        - type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        - type: "null"
                    lessons:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          moduleId:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          submoduleId:
                            anyOf:
                              - type: string
                                format: uuid
                                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              - type: "null"
                          name:
                            type: string
                            maxLength: 255
                          description:
                            anyOf:
                              - type: string
                              - type: "null"
                          coverUrlVertical:
                            anyOf:
                              - type: string
                                maxLength: 500
                              - type: "null"
                          coverUrlHorizontal:
                            anyOf:
                              - type: string
                                maxLength: 500
                              - type: "null"
                          commentsEnabled:
                            type: boolean
                          privateCommentsEnabled:
                            type: boolean
                          reviewsEnabled:
                            type: boolean
                          enabled:
                            type: boolean
                          startAutomatically:
                            type: boolean
                          releaseType:
                            type: string
                            maxLength: 30
                          releaseDays:
                            anyOf:
                              - type: integer
                                minimum: 1
                                maximum: 9007199254740991
                              - type: "null"
                          releaseDate:
                            anyOf:
                              - type: string
                                format: date
                                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                              - type: "null"
                          type:
                            type: string
                            enum:
                              - video
                              - external_link
                              - document
                              - text
                              - banner
                          url:
                            anyOf:
                              - type: string
                                pattern: ^https:\/\/.+$
                              - type: "null"
                          bannerId:
                            anyOf:
                              - type: string
                                format: uuid
                                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              - type: "null"
                          content:
                            anyOf:
                              - type: object
                                propertyNames:
                                  type: string
                                additionalProperties: {}
                              - type: "null"
                          position:
                            type: integer
                            minimum: 1
                            maximum: 9007199254740991
                          duration:
                            anyOf:
                              - type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              - type: "null"
                          createdAt:
                            type: string
                            format: date-time
                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          updatedAt:
                            type: string
                            format: date-time
                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          deletedAt:
                            anyOf:
                              - type: string
                                format: date-time
                                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              - type: "null"
                          banner:
                            anyOf:
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    format: uuid
                                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                  title:
                                    type: string
                                  description:
                                    type: string
                                  coverImageHorizontal:
                                    anyOf:
                                      - type: string
                                      - type: "null"
                                  coverImageVertical:
                                    anyOf:
                                      - type: string
                                      - type: "null"
                                  coverPatternHorizontal:
                                    anyOf:
                                      - type: string
                                      - type: "null"
                                  coverPatternVertical:
                                    anyOf:
                                      - type: string
                                      - type: "null"
                                  trailerUrl:
                                    anyOf:
                                      - type: string
                                      - type: "null"
                                  buttonLabel:
                                    anyOf:
                                      - type: string
                                      - type: "null"
                                  buttonLink:
                                    anyOf:
                                      - type: string
                                      - type: "null"
                                  buttonColor:
                                    anyOf:
                                      - type: string
                                      - type: "null"
                                  openInNewTab:
                                    type: boolean
                                required:
                                  - id
                                  - title
                                  - description
                                  - openInNewTab
                                additionalProperties: false
                              - type: "null"
                        required:
                          - id
                          - moduleId
                          - name
                          - commentsEnabled
                          - privateCommentsEnabled
                          - reviewsEnabled
                          - enabled
                          - startAutomatically
                          - releaseType
                          - type
                          - position
                          - createdAt
                          - updatedAt
                        additionalProperties: false
                    submodules:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          name:
                            type: string
                            maxLength: 255
                          position:
                            type: integer
                            minimum: 1
                            maximum: 9007199254740991
                          lessons:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                  format: uuid
                                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                moduleId:
                                  type: string
                                  format: uuid
                                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                submoduleId:
                                  anyOf:
                                    - type: string
                                      format: uuid
                                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                    - type: "null"
                                name:
                                  type: string
                                  maxLength: 255
                                description:
                                  anyOf:
                                    - type: string
                                    - type: "null"
                                coverUrlVertical:
                                  anyOf:
                                    - type: string
                                      maxLength: 500
                                    - type: "null"
                                coverUrlHorizontal:
                                  anyOf:
                                    - type: string
                                      maxLength: 500
                                    - type: "null"
                                commentsEnabled:
                                  type: boolean
                                privateCommentsEnabled:
                                  type: boolean
                                reviewsEnabled:
                                  type: boolean
                                enabled:
                                  type: boolean
                                startAutomatically:
                                  type: boolean
                                releaseType:
                                  type: string
                                  maxLength: 30
                                releaseDays:
                                  anyOf:
                                    - type: integer
                                      minimum: 1
                                      maximum: 9007199254740991
                                    - type: "null"
                                releaseDate:
                                  anyOf:
                                    - type: string
                                      format: date
                                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                                    - type: "null"
                                type:
                                  type: string
                                  enum:
                                    - video
                                    - external_link
                                    - document
                                    - text
                                    - banner
                                url:
                                  anyOf:
                                    - type: string
                                      pattern: ^https:\/\/.+$
                                    - type: "null"
                                bannerId:
                                  anyOf:
                                    - type: string
                                      format: uuid
                                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                    - type: "null"
                                content:
                                  anyOf:
                                    - type: object
                                      propertyNames:
                                        type: string
                                      additionalProperties: {}
                                    - type: "null"
                                position:
                                  type: integer
                                  minimum: 1
                                  maximum: 9007199254740991
                                duration:
                                  anyOf:
                                    - type: integer
                                      minimum: -9007199254740991
                                      maximum: 9007199254740991
                                    - type: "null"
                                createdAt:
                                  type: string
                                  format: date-time
                                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                updatedAt:
                                  type: string
                                  format: date-time
                                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                deletedAt:
                                  anyOf:
                                    - type: string
                                      format: date-time
                                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                    - type: "null"
                                banner:
                                  anyOf:
                                    - type: object
                                      properties:
                                        id:
                                          type: string
                                          format: uuid
                                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                        title:
                                          type: string
                                        description:
                                          type: string
                                        coverImageHorizontal:
                                          anyOf:
                                            - type: string
                                            - type: "null"
                                        coverImageVertical:
                                          anyOf:
                                            - type: string
                                            - type: "null"
                                        coverPatternHorizontal:
                                          anyOf:
                                            - type: string
                                            - type: "null"
                                        coverPatternVertical:
                                          anyOf:
                                            - type: string
                                            - type: "null"
                                        trailerUrl:
                                          anyOf:
                                            - type: string
                                            - type: "null"
                                        buttonLabel:
                                          anyOf:
                                            - type: string
                                            - type: "null"
                                        buttonLink:
                                          anyOf:
                                            - type: string
                                            - type: "null"
                                        buttonColor:
                                          anyOf:
                                            - type: string
                                            - type: "null"
                                        openInNewTab:
                                          type: boolean
                                      required:
                                        - id
                                        - title
                                        - description
                                        - openInNewTab
                                      additionalProperties: false
                                    - type: "null"
                              required:
                                - id
                                - moduleId
                                - name
                                - commentsEnabled
                                - privateCommentsEnabled
                                - reviewsEnabled
                                - enabled
                                - startAutomatically
                                - releaseType
                                - type
                                - position
                                - createdAt
                                - updatedAt
                              additionalProperties: false
                        required:
                          - id
                          - name
                          - position
                          - lessons
                        additionalProperties: false
                    banner:
                      anyOf:
                        - type: object
                          properties:
                            id:
                              type: string
                              format: uuid
                              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                            title:
                              type: string
                            description:
                              type: string
                            coverImageHorizontal:
                              anyOf:
                                - type: string
                                - type: "null"
                            coverImageVertical:
                              anyOf:
                                - type: string
                                - type: "null"
                            coverPatternHorizontal:
                              anyOf:
                                - type: string
                                - type: "null"
                            coverPatternVertical:
                              anyOf:
                                - type: string
                                - type: "null"
                            trailerUrl:
                              anyOf:
                                - type: string
                                - type: "null"
                            buttonLabel:
                              anyOf:
                                - type: string
                                - type: "null"
                            buttonLink:
                              anyOf:
                                - type: string
                                - type: "null"
                            buttonColor:
                              anyOf:
                                - type: string
                                - type: "null"
                            openInNewTab:
                              type: boolean
                          required:
                            - id
                            - title
                            - description
                            - openInNewTab
                          additionalProperties: false
                        - type: "null"
                  required:
                    - id
                    - name
                    - releaseType
                    - position
                    - contentId
                    - createdAt
                    - updatedAt
                    - lessons
                    - submodules
                  additionalProperties: false
              classrooms:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    portalId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                      maxLength: 255
                    isDefault:
                      type: boolean
                    createdAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    updatedAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    deletedAt:
                      anyOf:
                        - type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        - type: "null"
                  required:
                    - id
                    - portalId
                    - name
                    - isDefault
                    - createdAt
                    - updatedAt
                  additionalProperties: false
              accessTime:
                anyOf:
                  - type: object
                    properties:
                      accessDuration:
                        type: integer
                        minimum: 1
                        maximum: 9007199254740991
                      accessUnit:
                        type: string
                        enum:
                          - hours
                          - week
                          - day
                          - month
                          - year
                          - lifetime
                    required:
                      - accessDuration
                      - accessUnit
                    additionalProperties: false
                  - type: "null"
            required:
              - id
              - title
              - description
              - category
              - issueCertificate
              - availableForSale
              - enabled
              - showCourseTitleOnCover
              - viewScenario
              - releaseType
              - defaultAccessDuration
              - ownerId
              - createdAt
              - updatedAt
              - modules
              - classrooms
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    ContentGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        title:
          type: string
          maxLength: 255
        description:
          type: string
        category:
          type: string
        coverImageHorizontal:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        coverImageVertical:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        trailerUrl:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        coverPatternHorizontal:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        coverPatternVertical:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        issueCertificate:
          type: boolean
        availableForSale:
          type: boolean
        enabled:
          type: boolean
        showCourseTitleOnCover:
          type: boolean
        viewScenario:
          type: string
          enum:
            - standard
            - carousel
            - trail
            - listing
        ctaText:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        contentStyle:
          anyOf:
            - type: object
              properties:
                likesEnabled:
                  type: boolean
                nextLessonEnabled:
                  type: boolean
                nextLessonLabel:
                  type: string
                  maxLength: 100
                completeEnabled:
                  type: boolean
                completeLabel:
                  type: string
                  maxLength: 100
                completedLabel:
                  type: string
                  maxLength: 100
                watchedLabel:
                  type: string
                  maxLength: 100
                completeAutoAdvance:
                  type: boolean
                notesEnabled:
                  type: boolean
                notesLabel:
                  type: string
                  maxLength: 100
                lessonsEnabled:
                  type: boolean
                lessonsLabel:
                  type: string
                  maxLength: 100
                materialsEnabled:
                  type: boolean
                materialsLabel:
                  type: string
                  maxLength: 100
                commentsEnabled:
                  type: boolean
                lessonsMenuLayout:
                  type: string
                  enum:
                    - accordion
                    - layers
              additionalProperties: false
            - type: "null"
        releaseType:
          type: string
          maxLength: 30
        releaseDays:
          anyOf:
            - type: integer
              minimum: 1
              maximum: 9007199254740991
            - type: "null"
        releaseDate:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: "null"
        defaultAccessDuration:
          anyOf:
            - type: integer
              minimum: 1
              maximum: 9007199254740991
            - type: "null"
        defaultAccessUnit:
          anyOf:
            - anyOf:
                - type: string
                  const: hours
                - type: string
                  const: week
                - type: string
                  const: day
                - type: string
                  const: month
                - type: string
                  const: year
                - type: string
                  const: lifetime
                - type: "null"
                  const: null
            - type: "null"
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        modules:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
                maxLength: 255
              description:
                anyOf:
                  - type: string
                  - type: "null"
              coverUrl:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              coverUrlVertical:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              trailerUrl:
                anyOf:
                  - type: string
                    maxLength: 255
                  - type: "null"
              coverPatternHorizontal:
                anyOf:
                  - type: string
                    maxLength: 50
                  - type: "null"
              coverPatternVertical:
                anyOf:
                  - type: string
                    maxLength: 50
                  - type: "null"
              releaseType:
                type: string
                maxLength: 30
              releaseDays:
                anyOf:
                  - type: integer
                    minimum: 1
                    maximum: 9007199254740991
                  - type: "null"
              releaseDate:
                anyOf:
                  - type: string
                    format: date
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                  - type: "null"
              position:
                type: integer
                minimum: 1
                maximum: 9007199254740991
              additionalRules:
                anyOf:
                  - {}
                  - type: "null"
              contentId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              bannerId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              lessons:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    moduleId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    submoduleId:
                      anyOf:
                        - type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        - type: "null"
                    name:
                      type: string
                      maxLength: 255
                    description:
                      anyOf:
                        - type: string
                        - type: "null"
                    coverUrlVertical:
                      anyOf:
                        - type: string
                          maxLength: 500
                        - type: "null"
                    coverUrlHorizontal:
                      anyOf:
                        - type: string
                          maxLength: 500
                        - type: "null"
                    commentsEnabled:
                      type: boolean
                    privateCommentsEnabled:
                      type: boolean
                    reviewsEnabled:
                      type: boolean
                    enabled:
                      type: boolean
                    startAutomatically:
                      type: boolean
                    releaseType:
                      type: string
                      maxLength: 30
                    releaseDays:
                      anyOf:
                        - type: integer
                          minimum: 1
                          maximum: 9007199254740991
                        - type: "null"
                    releaseDate:
                      anyOf:
                        - type: string
                          format: date
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                        - type: "null"
                    type:
                      type: string
                      enum:
                        - video
                        - external_link
                        - document
                        - text
                        - banner
                    url:
                      anyOf:
                        - type: string
                          pattern: ^https:\/\/.+$
                        - type: "null"
                    bannerId:
                      anyOf:
                        - type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        - type: "null"
                    content:
                      anyOf:
                        - type: object
                          propertyNames:
                            type: string
                          additionalProperties: {}
                        - type: "null"
                    position:
                      type: integer
                      minimum: 1
                      maximum: 9007199254740991
                    duration:
                      anyOf:
                        - type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        - type: "null"
                    createdAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    updatedAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    deletedAt:
                      anyOf:
                        - type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        - type: "null"
                    banner:
                      anyOf:
                        - type: object
                          properties:
                            id:
                              type: string
                              format: uuid
                              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                            title:
                              type: string
                            description:
                              type: string
                            coverImageHorizontal:
                              anyOf:
                                - type: string
                                - type: "null"
                            coverImageVertical:
                              anyOf:
                                - type: string
                                - type: "null"
                            coverPatternHorizontal:
                              anyOf:
                                - type: string
                                - type: "null"
                            coverPatternVertical:
                              anyOf:
                                - type: string
                                - type: "null"
                            trailerUrl:
                              anyOf:
                                - type: string
                                - type: "null"
                            buttonLabel:
                              anyOf:
                                - type: string
                                - type: "null"
                            buttonLink:
                              anyOf:
                                - type: string
                                - type: "null"
                            buttonColor:
                              anyOf:
                                - type: string
                                - type: "null"
                            openInNewTab:
                              type: boolean
                          required:
                            - id
                            - title
                            - description
                            - openInNewTab
                          additionalProperties: false
                        - type: "null"
                  required:
                    - id
                    - moduleId
                    - name
                    - commentsEnabled
                    - privateCommentsEnabled
                    - reviewsEnabled
                    - enabled
                    - startAutomatically
                    - releaseType
                    - type
                    - position
                    - createdAt
                    - updatedAt
                  additionalProperties: false
              submodules:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                      maxLength: 255
                    position:
                      type: integer
                      minimum: 1
                      maximum: 9007199254740991
                    lessons:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          moduleId:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          submoduleId:
                            anyOf:
                              - type: string
                                format: uuid
                                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              - type: "null"
                          name:
                            type: string
                            maxLength: 255
                          description:
                            anyOf:
                              - type: string
                              - type: "null"
                          coverUrlVertical:
                            anyOf:
                              - type: string
                                maxLength: 500
                              - type: "null"
                          coverUrlHorizontal:
                            anyOf:
                              - type: string
                                maxLength: 500
                              - type: "null"
                          commentsEnabled:
                            type: boolean
                          privateCommentsEnabled:
                            type: boolean
                          reviewsEnabled:
                            type: boolean
                          enabled:
                            type: boolean
                          startAutomatically:
                            type: boolean
                          releaseType:
                            type: string
                            maxLength: 30
                          releaseDays:
                            anyOf:
                              - type: integer
                                minimum: 1
                                maximum: 9007199254740991
                              - type: "null"
                          releaseDate:
                            anyOf:
                              - type: string
                                format: date
                                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                              - type: "null"
                          type:
                            type: string
                            enum:
                              - video
                              - external_link
                              - document
                              - text
                              - banner
                          url:
                            anyOf:
                              - type: string
                                pattern: ^https:\/\/.+$
                              - type: "null"
                          bannerId:
                            anyOf:
                              - type: string
                                format: uuid
                                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              - type: "null"
                          content:
                            anyOf:
                              - type: object
                                propertyNames:
                                  type: string
                                additionalProperties: {}
                              - type: "null"
                          position:
                            type: integer
                            minimum: 1
                            maximum: 9007199254740991
                          duration:
                            anyOf:
                              - type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              - type: "null"
                          createdAt:
                            type: string
                            format: date-time
                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          updatedAt:
                            type: string
                            format: date-time
                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          deletedAt:
                            anyOf:
                              - type: string
                                format: date-time
                                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              - type: "null"
                          banner:
                            anyOf:
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    format: uuid
                                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                  title:
                                    type: string
                                  description:
                                    type: string
                                  coverImageHorizontal:
                                    anyOf:
                                      - type: string
                                      - type: "null"
                                  coverImageVertical:
                                    anyOf:
                                      - type: string
                                      - type: "null"
                                  coverPatternHorizontal:
                                    anyOf:
                                      - type: string
                                      - type: "null"
                                  coverPatternVertical:
                                    anyOf:
                                      - type: string
                                      - type: "null"
                                  trailerUrl:
                                    anyOf:
                                      - type: string
                                      - type: "null"
                                  buttonLabel:
                                    anyOf:
                                      - type: string
                                      - type: "null"
                                  buttonLink:
                                    anyOf:
                                      - type: string
                                      - type: "null"
                                  buttonColor:
                                    anyOf:
                                      - type: string
                                      - type: "null"
                                  openInNewTab:
                                    type: boolean
                                required:
                                  - id
                                  - title
                                  - description
                                  - openInNewTab
                                additionalProperties: false
                              - type: "null"
                        required:
                          - id
                          - moduleId
                          - name
                          - commentsEnabled
                          - privateCommentsEnabled
                          - reviewsEnabled
                          - enabled
                          - startAutomatically
                          - releaseType
                          - type
                          - position
                          - createdAt
                          - updatedAt
                        additionalProperties: false
                  required:
                    - id
                    - name
                    - position
                    - lessons
                  additionalProperties: false
              banner:
                anyOf:
                  - type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      title:
                        type: string
                      description:
                        type: string
                      coverImageHorizontal:
                        anyOf:
                          - type: string
                          - type: "null"
                      coverImageVertical:
                        anyOf:
                          - type: string
                          - type: "null"
                      coverPatternHorizontal:
                        anyOf:
                          - type: string
                          - type: "null"
                      coverPatternVertical:
                        anyOf:
                          - type: string
                          - type: "null"
                      trailerUrl:
                        anyOf:
                          - type: string
                          - type: "null"
                      buttonLabel:
                        anyOf:
                          - type: string
                          - type: "null"
                      buttonLink:
                        anyOf:
                          - type: string
                          - type: "null"
                      buttonColor:
                        anyOf:
                          - type: string
                          - type: "null"
                      openInNewTab:
                        type: boolean
                    required:
                      - id
                      - title
                      - description
                      - openInNewTab
                    additionalProperties: false
                  - type: "null"
            required:
              - id
              - name
              - releaseType
              - position
              - contentId
              - createdAt
              - updatedAt
              - lessons
              - submodules
            additionalProperties: false
        classrooms:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              portalId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
                maxLength: 255
              isDefault:
                type: boolean
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - id
              - portalId
              - name
              - isDefault
              - createdAt
              - updatedAt
            additionalProperties: false
        accessTime:
          anyOf:
            - type: object
              properties:
                accessDuration:
                  type: integer
                  minimum: 1
                  maximum: 9007199254740991
                accessUnit:
                  type: string
                  enum:
                    - hours
                    - week
                    - day
                    - month
                    - year
                    - lifetime
              required:
                - accessDuration
                - accessUnit
              additionalProperties: false
            - type: "null"
      required:
        - id
        - title
        - description
        - category
        - issueCertificate
        - availableForSale
        - enabled
        - showCourseTitleOnCover
        - viewScenario
        - releaseType
        - defaultAccessDuration
        - ownerId
        - createdAt
        - updatedAt
        - modules
        - classrooms
      additionalProperties: false
    ContentCreateInput:
      type: object
      properties:
        title:
          type: string
          maxLength: 255
        description:
          type: string
        category:
          type: string
        coverImageHorizontal:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        coverImageVertical:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        trailerUrl:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        coverPatternHorizontal:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        coverPatternVertical:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        issueCertificate:
          type: boolean
        availableForSale:
          type: boolean
        showCourseTitleOnCover:
          type: boolean
        viewScenario:
          type: string
          enum:
            - standard
            - carousel
            - trail
            - listing
        ctaText:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        contentStyle:
          anyOf:
            - type: object
              properties:
                likesEnabled:
                  type: boolean
                nextLessonEnabled:
                  type: boolean
                nextLessonLabel:
                  type: string
                  maxLength: 100
                completeEnabled:
                  type: boolean
                completeLabel:
                  type: string
                  maxLength: 100
                completedLabel:
                  type: string
                  maxLength: 100
                watchedLabel:
                  type: string
                  maxLength: 100
                completeAutoAdvance:
                  type: boolean
                notesEnabled:
                  type: boolean
                notesLabel:
                  type: string
                  maxLength: 100
                lessonsEnabled:
                  type: boolean
                lessonsLabel:
                  type: string
                  maxLength: 100
                materialsEnabled:
                  type: boolean
                materialsLabel:
                  type: string
                  maxLength: 100
                commentsEnabled:
                  type: boolean
                lessonsMenuLayout:
                  type: string
                  enum:
                    - accordion
                    - layers
            - type: "null"
        releaseType:
          type: string
          enum:
            - DAYS_AFTER_PURCHASE
            - FIXED_DATE
        releaseDays:
          anyOf:
            - type: integer
              minimum: 1
              maximum: 9007199254740991
            - type: "null"
        releaseDate:
          type: string
          format: date
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
        accessTime:
          anyOf:
            - type: object
              properties:
                accessDuration:
                  type: integer
                  minimum: 1
                  maximum: 9007199254740991
                accessUnit:
                  type: string
                  enum:
                    - hours
                    - week
                    - day
                    - month
                    - year
                    - lifetime
              required:
                - accessDuration
                - accessUnit
            - type: "null"
      required:
        - title
        - description
        - category
        - issueCertificate
        - availableForSale
    ContentCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        title:
          type: string
          maxLength: 255
        description:
          type: string
        category:
          type: string
        coverImageHorizontal:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        coverImageVertical:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        trailerUrl:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        coverPatternHorizontal:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        coverPatternVertical:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        issueCertificate:
          type: boolean
        availableForSale:
          type: boolean
        enabled:
          type: boolean
        showCourseTitleOnCover:
          type: boolean
        viewScenario:
          type: string
          enum:
            - standard
            - carousel
            - trail
            - listing
        ctaText:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        contentStyle:
          anyOf:
            - type: object
              properties:
                likesEnabled:
                  type: boolean
                nextLessonEnabled:
                  type: boolean
                nextLessonLabel:
                  type: string
                  maxLength: 100
                completeEnabled:
                  type: boolean
                completeLabel:
                  type: string
                  maxLength: 100
                completedLabel:
                  type: string
                  maxLength: 100
                watchedLabel:
                  type: string
                  maxLength: 100
                completeAutoAdvance:
                  type: boolean
                notesEnabled:
                  type: boolean
                notesLabel:
                  type: string
                  maxLength: 100
                lessonsEnabled:
                  type: boolean
                lessonsLabel:
                  type: string
                  maxLength: 100
                materialsEnabled:
                  type: boolean
                materialsLabel:
                  type: string
                  maxLength: 100
                commentsEnabled:
                  type: boolean
                lessonsMenuLayout:
                  type: string
                  enum:
                    - accordion
                    - layers
              additionalProperties: false
            - type: "null"
        releaseType:
          type: string
          maxLength: 30
        releaseDays:
          anyOf:
            - type: integer
              minimum: 1
              maximum: 9007199254740991
            - type: "null"
        releaseDate:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: "null"
        defaultAccessDuration:
          anyOf:
            - type: integer
              minimum: 1
              maximum: 9007199254740991
            - type: "null"
        defaultAccessUnit:
          anyOf:
            - anyOf:
                - type: string
                  const: hours
                - type: string
                  const: week
                - type: string
                  const: day
                - type: string
                  const: month
                - type: string
                  const: year
                - type: string
                  const: lifetime
                - type: "null"
                  const: null
            - type: "null"
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - title
        - description
        - category
        - issueCertificate
        - availableForSale
        - enabled
        - showCourseTitleOnCover
        - viewScenario
        - releaseType
        - defaultAccessDuration
        - ownerId
        - createdAt
        - updatedAt
      additionalProperties: false
    ContentUpdateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        title:
          type: string
          maxLength: 255
        description:
          type: string
        category:
          type: string
        coverImageHorizontal:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        coverImageVertical:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        trailerUrl:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        coverPatternHorizontal:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        coverPatternVertical:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        issueCertificate:
          type: boolean
        availableForSale:
          type: boolean
        enabled:
          type: boolean
        showCourseTitleOnCover:
          type: boolean
        viewScenario:
          type: string
          enum:
            - standard
            - carousel
            - trail
            - listing
        ctaText:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        contentStyle:
          anyOf:
            - type: object
              properties:
                likesEnabled:
                  type: boolean
                nextLessonEnabled:
                  type: boolean
                nextLessonLabel:
                  type: string
                  maxLength: 100
                completeEnabled:
                  type: boolean
                completeLabel:
                  type: string
                  maxLength: 100
                completedLabel:
                  type: string
                  maxLength: 100
                watchedLabel:
                  type: string
                  maxLength: 100
                completeAutoAdvance:
                  type: boolean
                notesEnabled:
                  type: boolean
                notesLabel:
                  type: string
                  maxLength: 100
                lessonsEnabled:
                  type: boolean
                lessonsLabel:
                  type: string
                  maxLength: 100
                materialsEnabled:
                  type: boolean
                materialsLabel:
                  type: string
                  maxLength: 100
                commentsEnabled:
                  type: boolean
                lessonsMenuLayout:
                  type: string
                  enum:
                    - accordion
                    - layers
            - type: "null"
        releaseType:
          type: string
          enum:
            - DAYS_AFTER_PURCHASE
            - FIXED_DATE
        releaseDays:
          anyOf:
            - type: integer
              minimum: 1
              maximum: 9007199254740991
            - type: "null"
        releaseDate:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: "null"
        accessTime:
          anyOf:
            - type: object
              properties:
                accessDuration:
                  type: integer
                  minimum: 1
                  maximum: 9007199254740991
                accessUnit:
                  type: string
                  enum:
                    - hours
                    - week
                    - day
                    - month
                    - year
                    - lifetime
              required:
                - accessDuration
                - accessUnit
            - type: "null"
      required:
        - id
    ContentUpdateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        title:
          type: string
          maxLength: 255
        description:
          type: string
        category:
          type: string
        coverImageHorizontal:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        coverImageVertical:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        trailerUrl:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        coverPatternHorizontal:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        coverPatternVertical:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        issueCertificate:
          type: boolean
        availableForSale:
          type: boolean
        enabled:
          type: boolean
        showCourseTitleOnCover:
          type: boolean
        viewScenario:
          type: string
          enum:
            - standard
            - carousel
            - trail
            - listing
        ctaText:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        contentStyle:
          anyOf:
            - type: object
              properties:
                likesEnabled:
                  type: boolean
                nextLessonEnabled:
                  type: boolean
                nextLessonLabel:
                  type: string
                  maxLength: 100
                completeEnabled:
                  type: boolean
                completeLabel:
                  type: string
                  maxLength: 100
                completedLabel:
                  type: string
                  maxLength: 100
                watchedLabel:
                  type: string
                  maxLength: 100
                completeAutoAdvance:
                  type: boolean
                notesEnabled:
                  type: boolean
                notesLabel:
                  type: string
                  maxLength: 100
                lessonsEnabled:
                  type: boolean
                lessonsLabel:
                  type: string
                  maxLength: 100
                materialsEnabled:
                  type: boolean
                materialsLabel:
                  type: string
                  maxLength: 100
                commentsEnabled:
                  type: boolean
                lessonsMenuLayout:
                  type: string
                  enum:
                    - accordion
                    - layers
              additionalProperties: false
            - type: "null"
        releaseType:
          type: string
          maxLength: 30
        releaseDays:
          anyOf:
            - type: integer
              minimum: 1
              maximum: 9007199254740991
            - type: "null"
        releaseDate:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: "null"
        defaultAccessDuration:
          anyOf:
            - type: integer
              minimum: 1
              maximum: 9007199254740991
            - type: "null"
        defaultAccessUnit:
          anyOf:
            - anyOf:
                - type: string
                  const: hours
                - type: string
                  const: week
                - type: string
                  const: day
                - type: string
                  const: month
                - type: string
                  const: year
                - type: string
                  const: lifetime
                - type: "null"
                  const: null
            - type: "null"
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - title
        - description
        - category
        - issueCertificate
        - availableForSale
        - enabled
        - showCourseTitleOnCover
        - viewScenario
        - releaseType
        - defaultAccessDuration
        - ownerId
        - createdAt
        - updatedAt
      additionalProperties: false
    ContentToggleEnabledInput:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              enabled:
                type: boolean
            required:
              - id
              - enabled
      required:
        - items
    ContentToggleEnabledOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              title:
                type: string
                maxLength: 255
              description:
                type: string
              category:
                type: string
              coverImageHorizontal:
                anyOf:
                  - type: string
                    pattern: ^https:\/\/.+$
                  - type: "null"
              coverImageVertical:
                anyOf:
                  - type: string
                    pattern: ^https:\/\/.+$
                  - type: "null"
              trailerUrl:
                anyOf:
                  - type: string
                    maxLength: 255
                  - type: "null"
              coverPatternHorizontal:
                anyOf:
                  - type: string
                    maxLength: 50
                  - type: "null"
              coverPatternVertical:
                anyOf:
                  - type: string
                    maxLength: 50
                  - type: "null"
              issueCertificate:
                type: boolean
              availableForSale:
                type: boolean
              enabled:
                type: boolean
              showCourseTitleOnCover:
                type: boolean
              viewScenario:
                type: string
                enum:
                  - standard
                  - carousel
                  - trail
                  - listing
              ctaText:
                anyOf:
                  - type: string
                    maxLength: 255
                  - type: "null"
              contentStyle:
                anyOf:
                  - type: object
                    properties:
                      likesEnabled:
                        type: boolean
                      nextLessonEnabled:
                        type: boolean
                      nextLessonLabel:
                        type: string
                        maxLength: 100
                      completeEnabled:
                        type: boolean
                      completeLabel:
                        type: string
                        maxLength: 100
                      completedLabel:
                        type: string
                        maxLength: 100
                      watchedLabel:
                        type: string
                        maxLength: 100
                      completeAutoAdvance:
                        type: boolean
                      notesEnabled:
                        type: boolean
                      notesLabel:
                        type: string
                        maxLength: 100
                      lessonsEnabled:
                        type: boolean
                      lessonsLabel:
                        type: string
                        maxLength: 100
                      materialsEnabled:
                        type: boolean
                      materialsLabel:
                        type: string
                        maxLength: 100
                      commentsEnabled:
                        type: boolean
                      lessonsMenuLayout:
                        type: string
                        enum:
                          - accordion
                          - layers
                    additionalProperties: false
                  - type: "null"
              releaseType:
                type: string
                maxLength: 30
              releaseDays:
                anyOf:
                  - type: integer
                    minimum: 1
                    maximum: 9007199254740991
                  - type: "null"
              releaseDate:
                anyOf:
                  - type: string
                    format: date
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                  - type: "null"
              defaultAccessDuration:
                anyOf:
                  - type: integer
                    minimum: 1
                    maximum: 9007199254740991
                  - type: "null"
              defaultAccessUnit:
                anyOf:
                  - anyOf:
                      - type: string
                        const: hours
                      - type: string
                        const: week
                      - type: string
                        const: day
                      - type: string
                        const: month
                      - type: string
                        const: year
                      - type: string
                        const: lifetime
                      - type: "null"
                        const: null
                  - type: "null"
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - id
              - title
              - description
              - category
              - issueCertificate
              - availableForSale
              - enabled
              - showCourseTitleOnCover
              - viewScenario
              - releaseType
              - defaultAccessDuration
              - ownerId
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    ContentDeleteInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    ContentDeleteOutput:
      type: object
      properties:
        deleted:
          type: boolean
      required:
        - deleted
      additionalProperties: false
    LessonListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              moduleId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              submoduleId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              name:
                type: string
                maxLength: 255
              description:
                anyOf:
                  - type: string
                  - type: "null"
              coverUrlVertical:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              coverUrlHorizontal:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              commentsEnabled:
                type: boolean
              privateCommentsEnabled:
                type: boolean
              reviewsEnabled:
                type: boolean
              enabled:
                type: boolean
              startAutomatically:
                type: boolean
              releaseType:
                type: string
                maxLength: 30
              releaseDays:
                anyOf:
                  - type: integer
                    minimum: 1
                    maximum: 9007199254740991
                  - type: "null"
              releaseDate:
                anyOf:
                  - type: string
                    format: date
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                  - type: "null"
              type:
                type: string
                enum:
                  - video
                  - external_link
                  - document
                  - text
                  - banner
              url:
                anyOf:
                  - type: string
                    pattern: ^https:\/\/.+$
                  - type: "null"
              bannerId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              content:
                anyOf:
                  - type: object
                    propertyNames:
                      type: string
                    additionalProperties: {}
                  - type: "null"
              position:
                type: integer
                minimum: 1
                maximum: 9007199254740991
              duration:
                anyOf:
                  - type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              attachments:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    lessonId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                      maxLength: 255
                    url:
                      type: string
                      maxLength: 500
                    createdAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    updatedAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    deletedAt:
                      anyOf:
                        - type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        - type: "null"
                  required:
                    - id
                    - lessonId
                    - name
                    - url
                    - createdAt
                    - updatedAt
                  additionalProperties: false
            required:
              - id
              - moduleId
              - name
              - commentsEnabled
              - privateCommentsEnabled
              - reviewsEnabled
              - enabled
              - startAutomatically
              - releaseType
              - type
              - position
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    LessonGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        moduleId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        submoduleId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        name:
          type: string
          maxLength: 255
        description:
          anyOf:
            - type: string
            - type: "null"
        coverUrlVertical:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        coverUrlHorizontal:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        commentsEnabled:
          type: boolean
        privateCommentsEnabled:
          type: boolean
        reviewsEnabled:
          type: boolean
        enabled:
          type: boolean
        startAutomatically:
          type: boolean
        releaseType:
          type: string
          maxLength: 30
        releaseDays:
          anyOf:
            - type: integer
              minimum: 1
              maximum: 9007199254740991
            - type: "null"
        releaseDate:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: "null"
        type:
          type: string
          enum:
            - video
            - external_link
            - document
            - text
            - banner
        url:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        bannerId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        content:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties: {}
            - type: "null"
        position:
          type: integer
          minimum: 1
          maximum: 9007199254740991
        duration:
          anyOf:
            - type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        attachments:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              lessonId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
                maxLength: 255
              url:
                type: string
                maxLength: 500
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - id
              - lessonId
              - name
              - url
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - id
        - moduleId
        - name
        - commentsEnabled
        - privateCommentsEnabled
        - reviewsEnabled
        - enabled
        - startAutomatically
        - releaseType
        - type
        - position
        - createdAt
        - updatedAt
      additionalProperties: false
    LessonCreateInput:
      type: object
      properties:
        moduleId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        type:
          type: string
          enum:
            - video
            - external_link
            - document
            - text
            - banner
        name:
          type: string
          maxLength: 255
        url:
          anyOf:
            - type: string
              maxLength: 255
              pattern: ^https?:\/\/.+$
            - type: "null"
        content:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties: {}
            - type: "null"
        description:
          type: string
        duration:
          type: string
        coverUrlVertical:
          type: string
          maxLength: 500
        coverUrlHorizontal:
          type: string
          maxLength: 500
        commentsEnabled:
          type: boolean
        privateCommentsEnabled:
          type: boolean
        reviewsEnabled:
          type: boolean
        startAutomatically:
          type: boolean
        releaseType:
          type: string
          enum:
            - DAYS_AFTER_PURCHASE
            - FIXED_DATE
        releaseDays:
          type: integer
          minimum: 1
          maximum: 9007199254740991
        releaseDate:
          type: string
          format: date
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
        lessonAttachments:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                maxLength: 255
              url:
                type: string
                maxLength: 500
                pattern: ^https?:\/\/.+$
            required:
              - name
              - url
        submoduleId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
      required:
        - moduleId
        - type
        - name
        - releaseType
    LessonCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        moduleId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        submoduleId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        name:
          type: string
          maxLength: 255
        description:
          anyOf:
            - type: string
            - type: "null"
        coverUrlVertical:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        coverUrlHorizontal:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        commentsEnabled:
          type: boolean
        privateCommentsEnabled:
          type: boolean
        reviewsEnabled:
          type: boolean
        enabled:
          type: boolean
        startAutomatically:
          type: boolean
        releaseType:
          type: string
          maxLength: 30
        releaseDays:
          anyOf:
            - type: integer
              minimum: 1
              maximum: 9007199254740991
            - type: "null"
        releaseDate:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: "null"
        type:
          type: string
          enum:
            - video
            - external_link
            - document
            - text
            - banner
        url:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        bannerId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        content:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties: {}
            - type: "null"
        position:
          type: integer
          minimum: 1
          maximum: 9007199254740991
        duration:
          anyOf:
            - type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        attachments:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              lessonId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
                maxLength: 255
              url:
                type: string
                maxLength: 500
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - id
              - lessonId
              - name
              - url
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - id
        - moduleId
        - name
        - commentsEnabled
        - privateCommentsEnabled
        - reviewsEnabled
        - enabled
        - startAutomatically
        - releaseType
        - type
        - position
        - createdAt
        - updatedAt
      additionalProperties: false
    LessonUpdateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        moduleId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        type:
          type: string
          enum:
            - video
            - external_link
            - document
            - text
            - banner
        name:
          type: string
          maxLength: 255
        url:
          anyOf:
            - type: string
              maxLength: 255
              pattern: ^https?:\/\/.+$
            - type: "null"
        content:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties: {}
            - type: "null"
        description:
          anyOf:
            - type: string
            - type: "null"
        duration:
          type: string
        coverUrlVertical:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        coverUrlHorizontal:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        commentsEnabled:
          type: boolean
        privateCommentsEnabled:
          type: boolean
        reviewsEnabled:
          type: boolean
        enabled:
          type: boolean
        startAutomatically:
          type: boolean
        releaseType:
          type: string
          enum:
            - DAYS_AFTER_PURCHASE
            - FIXED_DATE
        releaseDays:
          anyOf:
            - type: integer
              minimum: 1
              maximum: 9007199254740991
            - type: "null"
        releaseDate:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: "null"
        lessonAttachmentsToUpdate:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
                maxLength: 255
              url:
                type: string
                maxLength: 500
                pattern: ^https?:\/\/.+$
            required:
              - id
        lessonAttachmentsToCreate:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                maxLength: 255
              url:
                type: string
                maxLength: 500
                pattern: ^https?:\/\/.+$
            required:
              - name
              - url
        lessonAttachmentsToDelete:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            required:
              - id
      required:
        - id
        - moduleId
    LessonUpdateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        moduleId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        submoduleId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        name:
          type: string
          maxLength: 255
        description:
          anyOf:
            - type: string
            - type: "null"
        coverUrlVertical:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        coverUrlHorizontal:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        commentsEnabled:
          type: boolean
        privateCommentsEnabled:
          type: boolean
        reviewsEnabled:
          type: boolean
        enabled:
          type: boolean
        startAutomatically:
          type: boolean
        releaseType:
          type: string
          maxLength: 30
        releaseDays:
          anyOf:
            - type: integer
              minimum: 1
              maximum: 9007199254740991
            - type: "null"
        releaseDate:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: "null"
        type:
          type: string
          enum:
            - video
            - external_link
            - document
            - text
            - banner
        url:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        bannerId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        content:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties: {}
            - type: "null"
        position:
          type: integer
          minimum: 1
          maximum: 9007199254740991
        duration:
          anyOf:
            - type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        attachments:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              lessonId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
                maxLength: 255
              url:
                type: string
                maxLength: 500
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - id
              - lessonId
              - name
              - url
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - id
        - moduleId
        - name
        - commentsEnabled
        - privateCommentsEnabled
        - reviewsEnabled
        - enabled
        - startAutomatically
        - releaseType
        - type
        - position
        - createdAt
        - updatedAt
      additionalProperties: false
    LessonMoveInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        targetModuleId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        targetSubmoduleId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        position:
          type: integer
          minimum: 1
          maximum: 9007199254740991
      required:
        - id
        - targetModuleId
        - position
    LessonMoveOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    LessonToggleEnabledInput:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              enabled:
                type: boolean
            required:
              - id
              - enabled
      required:
        - items
    LessonToggleEnabledOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              moduleId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              submoduleId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              name:
                type: string
                maxLength: 255
              description:
                anyOf:
                  - type: string
                  - type: "null"
              coverUrlVertical:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              coverUrlHorizontal:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              commentsEnabled:
                type: boolean
              privateCommentsEnabled:
                type: boolean
              reviewsEnabled:
                type: boolean
              enabled:
                type: boolean
              startAutomatically:
                type: boolean
              releaseType:
                type: string
                maxLength: 30
              releaseDays:
                anyOf:
                  - type: integer
                    minimum: 1
                    maximum: 9007199254740991
                  - type: "null"
              releaseDate:
                anyOf:
                  - type: string
                    format: date
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                  - type: "null"
              type:
                type: string
                enum:
                  - video
                  - external_link
                  - document
                  - text
                  - banner
              url:
                anyOf:
                  - type: string
                    pattern: ^https:\/\/.+$
                  - type: "null"
              bannerId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              content:
                anyOf:
                  - type: object
                    propertyNames:
                      type: string
                    additionalProperties: {}
                  - type: "null"
              position:
                type: integer
                minimum: 1
                maximum: 9007199254740991
              duration:
                anyOf:
                  - type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - id
              - moduleId
              - name
              - commentsEnabled
              - privateCommentsEnabled
              - reviewsEnabled
              - enabled
              - startAutomatically
              - releaseType
              - type
              - position
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    LessonDeleteInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    LessonDeleteOutput:
      type: object
      properties:
        deleted:
          type: boolean
      required:
        - deleted
      additionalProperties: false
    MemberUsersListInput:
      type: object
      properties:
        page:
          default: 1
          type: number
          minimum: 1
        perPage:
          default: 10
          type: number
          minimum: 1
          maximum: 2000
        search:
          type: string
        active:
          type: boolean
        orderBy:
          default: createdAt
          type: string
          enum:
            - name
            - email
            - createdAt
            - lastAccess
        orderByMode:
          type: string
          enum:
            - asc
            - desc
        portalIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        classroomIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        courseIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        moduleIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        completedLessonIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - orderByMode
    MemberUsersListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              email:
                type: string
              name:
                type: string
              phone:
                anyOf:
                  - type: string
                    maxLength: 255
                  - type: "null"
              birthDate:
                anyOf:
                  - type: string
                    format: date
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                  - type: "null"
              document:
                anyOf:
                  - type: string
                    maxLength: 255
                  - type: "null"
              avatarUrl:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              instagramUsername:
                anyOf:
                  - type: string
                    maxLength: 100
                  - type: "null"
              active:
                type: boolean
              lastLoginAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              leadId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              classrooms:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    portalId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                      maxLength: 255
                    isDefault:
                      type: boolean
                    createdAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    updatedAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    deletedAt:
                      anyOf:
                        - type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        - type: "null"
                  required:
                    - id
                    - portalId
                    - name
                    - isDefault
                    - createdAt
                    - updatedAt
                  additionalProperties: false
              portals:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    theme:
                      type: string
                      enum:
                        - Modern
                        - Dark
                        - Light
                    accentColor:
                      type: string
                      minLength: 7
                      maxLength: 7
                    centerContent:
                      type: boolean
                    customFooter:
                      type: boolean
                    lightLogo:
                      anyOf:
                        - type: string
                          maxLength: 500
                        - type: "null"
                    darkLogo:
                      anyOf:
                        - type: string
                          maxLength: 500
                        - type: "null"
                    coverImage:
                      anyOf:
                        - type: string
                          maxLength: 500
                        - type: "null"
                    thumbImage:
                      anyOf:
                        - type: string
                          maxLength: 500
                        - type: "null"
                    loginImage:
                      anyOf:
                        - type: string
                          maxLength: 500
                        - type: "null"
                    coverPattern:
                      anyOf:
                        - type: string
                          maxLength: 50
                        - type: "null"
                    loginBgPattern:
                      anyOf:
                        - type: string
                          maxLength: 50
                        - type: "null"
                    loginSidePattern:
                      anyOf:
                        - type: string
                          maxLength: 50
                        - type: "null"
                    logoPosition:
                      type: string
                      enum:
                        - left
                        - center
                        - right
                        - center_bottom
                    emptyHeaderBehavior:
                      type: string
                      enum:
                        - randomCourse
                        - portalCover
                    footerDescription:
                      anyOf:
                        - type: string
                          maxLength: 500
                        - type: "null"
                    footerCopyrights:
                      anyOf:
                        - type: string
                          maxLength: 500
                        - type: "null"
                    useVideoLogin:
                      type: boolean
                    removeVideoOverlay:
                      type: boolean
                    showFullscreenButton:
                      type: boolean
                    useCtaLogin:
                      type: boolean
                    name:
                      type: string
                      maxLength: 255
                    description:
                      type: string
                    supportEmail:
                      anyOf:
                        - type: string
                          minLength: 5
                          maxLength: 255
                          format: email
                          pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                        - type: "null"
                    supportUrl:
                      anyOf:
                        - type: string
                          pattern: ^https?:\/\/.+$
                        - type: "null"
                    showColoredImageWhenBlocked:
                      type: boolean
                    suggestedContentEnabled:
                      type: boolean
                    accessType:
                      type: string
                      enum:
                        - subdomain
                        - customDomain
                    subdomain:
                      type: string
                      maxLength: 100
                    dailyCommentLimit:
                      type: integer
                      minimum: 1
                      maximum: 9007199254740991
                    characterLimit:
                      type: integer
                      minimum: 1
                      maximum: 9007199254740991
                    autoPublishComments:
                      type: boolean
                    autoPublishReplies:
                      type: boolean
                    realTimeModerationEnabled:
                      type: boolean
                    respondAsProducer:
                      type: boolean
                    commentAiSuggestionsEnabled:
                      type: boolean
                    twoFaEnabled:
                      type: boolean
                    firstAccessWithoutPass:
                      type: boolean
                    allowSimplePass:
                      type: boolean
                    otpWhatsappEnabled:
                      type: boolean
                    otpWhatsappTemplateId:
                      anyOf:
                        - type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        - type: "null"
                    timezone:
                      type: string
                      minLength: 1
                      maxLength: 64
                    navConfig:
                      anyOf:
                        - type: object
                          properties:
                            contents:
                              type: object
                              properties:
                                visible:
                                  type: boolean
                                label:
                                  type: string
                                  maxLength: 100
                              required:
                                - visible
                              additionalProperties: false
                            community:
                              type: object
                              properties:
                                visible:
                                  type: boolean
                                label:
                                  type: string
                                  maxLength: 100
                              required:
                                - visible
                              additionalProperties: false
                            calendar:
                              type: object
                              properties:
                                visible:
                                  type: boolean
                                label:
                                  type: string
                                  maxLength: 100
                              required:
                                - visible
                              additionalProperties: false
                          additionalProperties: false
                        - type: "null"
                    calendarTitle:
                      anyOf:
                        - type: string
                          maxLength: 255
                        - type: "null"
                    calendarDescription:
                      anyOf:
                        - type: string
                        - type: "null"
                    ownerId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    createdAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    updatedAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    deletedAt:
                      anyOf:
                        - type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        - type: "null"
                  required:
                    - id
                    - theme
                    - accentColor
                    - centerContent
                    - customFooter
                    - logoPosition
                    - emptyHeaderBehavior
                    - useVideoLogin
                    - removeVideoOverlay
                    - showFullscreenButton
                    - useCtaLogin
                    - name
                    - description
                    - showColoredImageWhenBlocked
                    - suggestedContentEnabled
                    - accessType
                    - subdomain
                    - dailyCommentLimit
                    - characterLimit
                    - autoPublishComments
                    - autoPublishReplies
                    - realTimeModerationEnabled
                    - respondAsProducer
                    - commentAiSuggestionsEnabled
                    - twoFaEnabled
                    - firstAccessWithoutPass
                    - allowSimplePass
                    - otpWhatsappEnabled
                    - timezone
                    - ownerId
                    - createdAt
                    - updatedAt
                  additionalProperties: false
            required:
              - id
              - email
              - name
              - active
              - ownerId
              - createdAt
              - updatedAt
              - classrooms
              - portals
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    MemberUsersGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        email:
          type: string
        name:
          type: string
        phone:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        birthDate:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: "null"
        document:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        avatarUrl:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        instagramUsername:
          anyOf:
            - type: string
              maxLength: 100
            - type: "null"
        active:
          type: boolean
        lastLoginAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        leadId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        classrooms:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              portalId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
                maxLength: 255
              isDefault:
                type: boolean
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - id
              - portalId
              - name
              - isDefault
              - createdAt
              - updatedAt
            additionalProperties: false
        portals:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              theme:
                type: string
                enum:
                  - Modern
                  - Dark
                  - Light
              accentColor:
                type: string
                minLength: 7
                maxLength: 7
              centerContent:
                type: boolean
              customFooter:
                type: boolean
              lightLogo:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              darkLogo:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              coverImage:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              thumbImage:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              loginImage:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              coverPattern:
                anyOf:
                  - type: string
                    maxLength: 50
                  - type: "null"
              loginBgPattern:
                anyOf:
                  - type: string
                    maxLength: 50
                  - type: "null"
              loginSidePattern:
                anyOf:
                  - type: string
                    maxLength: 50
                  - type: "null"
              logoPosition:
                type: string
                enum:
                  - left
                  - center
                  - right
                  - center_bottom
              emptyHeaderBehavior:
                type: string
                enum:
                  - randomCourse
                  - portalCover
              footerDescription:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              footerCopyrights:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              useVideoLogin:
                type: boolean
              removeVideoOverlay:
                type: boolean
              showFullscreenButton:
                type: boolean
              useCtaLogin:
                type: boolean
              name:
                type: string
                maxLength: 255
              description:
                type: string
              supportEmail:
                anyOf:
                  - type: string
                    minLength: 5
                    maxLength: 255
                    format: email
                    pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                  - type: "null"
              supportUrl:
                anyOf:
                  - type: string
                    pattern: ^https?:\/\/.+$
                  - type: "null"
              showColoredImageWhenBlocked:
                type: boolean
              suggestedContentEnabled:
                type: boolean
              accessType:
                type: string
                enum:
                  - subdomain
                  - customDomain
              subdomain:
                type: string
                maxLength: 100
              dailyCommentLimit:
                type: integer
                minimum: 1
                maximum: 9007199254740991
              characterLimit:
                type: integer
                minimum: 1
                maximum: 9007199254740991
              autoPublishComments:
                type: boolean
              autoPublishReplies:
                type: boolean
              realTimeModerationEnabled:
                type: boolean
              respondAsProducer:
                type: boolean
              commentAiSuggestionsEnabled:
                type: boolean
              twoFaEnabled:
                type: boolean
              firstAccessWithoutPass:
                type: boolean
              allowSimplePass:
                type: boolean
              otpWhatsappEnabled:
                type: boolean
              otpWhatsappTemplateId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              timezone:
                type: string
                minLength: 1
                maxLength: 64
              navConfig:
                anyOf:
                  - type: object
                    properties:
                      contents:
                        type: object
                        properties:
                          visible:
                            type: boolean
                          label:
                            type: string
                            maxLength: 100
                        required:
                          - visible
                        additionalProperties: false
                      community:
                        type: object
                        properties:
                          visible:
                            type: boolean
                          label:
                            type: string
                            maxLength: 100
                        required:
                          - visible
                        additionalProperties: false
                      calendar:
                        type: object
                        properties:
                          visible:
                            type: boolean
                          label:
                            type: string
                            maxLength: 100
                        required:
                          - visible
                        additionalProperties: false
                    additionalProperties: false
                  - type: "null"
              calendarTitle:
                anyOf:
                  - type: string
                    maxLength: 255
                  - type: "null"
              calendarDescription:
                anyOf:
                  - type: string
                  - type: "null"
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - id
              - theme
              - accentColor
              - centerContent
              - customFooter
              - logoPosition
              - emptyHeaderBehavior
              - useVideoLogin
              - removeVideoOverlay
              - showFullscreenButton
              - useCtaLogin
              - name
              - description
              - showColoredImageWhenBlocked
              - suggestedContentEnabled
              - accessType
              - subdomain
              - dailyCommentLimit
              - characterLimit
              - autoPublishComments
              - autoPublishReplies
              - realTimeModerationEnabled
              - respondAsProducer
              - commentAiSuggestionsEnabled
              - twoFaEnabled
              - firstAccessWithoutPass
              - allowSimplePass
              - otpWhatsappEnabled
              - timezone
              - ownerId
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - id
        - email
        - name
        - active
        - ownerId
        - createdAt
        - updatedAt
        - classrooms
        - portals
      additionalProperties: false
    MemberUsersGetByLeadOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        email:
          type: string
        name:
          type: string
        phone:
          anyOf:
            - type: string
            - type: "null"
      required:
        - id
        - email
        - name
      additionalProperties: false
    MemberUsersListByClassroomOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              email:
                type: string
                minLength: 5
                maxLength: 255
                format: email
                pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
              name:
                type: string
              active:
                type: boolean
              lastLoginAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - email
              - name
              - active
              - lastLoginAt
              - createdAt
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    MemberUsersGetAccessTimesInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        classroomIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
        - classroomIds
    MemberUsersGetAccessTimesOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              classroomId:
                type: string
              classroomName:
                type: string
              contentId:
                type: string
              contentName:
                type: string
              startsAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              expiresAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              isExpired:
                type: boolean
              isLifetime:
                type: boolean
              timeRemaining:
                type: object
                properties:
                  duration:
                    type: number
                  unit:
                    type: string
                required:
                  - duration
                  - unit
                additionalProperties: false
              accessTimeConfig:
                type: object
                properties:
                  accessDuration:
                    anyOf:
                      - type: number
                      - type: "null"
                  accessUnit:
                    anyOf:
                      - type: string
                        enum:
                          - hours
                          - week
                          - day
                          - month
                          - year
                          - lifetime
                      - type: "null"
                additionalProperties: false
            required:
              - classroomId
              - contentId
              - startsAt
              - expiresAt
              - isExpired
              - isLifetime
              - accessTimeConfig
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    MemberUsersGetProgressOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              portalId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              portalName:
                type: string
              portalLogo:
                anyOf:
                  - type: string
                  - type: "null"
              subdomain:
                type: string
              classrooms:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                      maxLength: 255
                    coursesCount:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    overallProgress:
                      type: number
                      minimum: 0
                      maximum: 1
                    courses:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          title:
                            type: string
                          modulesCount:
                            type: number
                            minimum: 0
                          lessonsCount:
                            type: number
                            minimum: 0
                          totalDuration:
                            type: number
                            minimum: 0
                          completionPercentage:
                            type: number
                            minimum: 0
                            maximum: 1
                          modules:
                            type: array
                            items:
                              type: object
                              properties:
                                moduleId:
                                  type: string
                                  format: uuid
                                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                moduleName:
                                  type: string
                                position:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                totalLessons:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                                completedLessons:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                                completionPercentage:
                                  type: number
                                  minimum: 0
                                  maximum: 1
                                lessons:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      lessonId:
                                        type: string
                                        format: uuid
                                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                      lessonName:
                                        type: string
                                      lessonPosition:
                                        type: integer
                                        minimum: -9007199254740991
                                        maximum: 9007199254740991
                                      completed:
                                        type: boolean
                                      progressPercentage:
                                        type: number
                                        minimum: 0
                                        maximum: 1
                                      lastWatchedAt:
                                        anyOf:
                                          - type: string
                                            format: date-time
                                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                          - type: "null"
                                      timeWatched:
                                        type: number
                                    required:
                                      - lessonId
                                      - lessonName
                                      - lessonPosition
                                      - completed
                                      - progressPercentage
                                      - lastWatchedAt
                                      - timeWatched
                                    additionalProperties: false
                              required:
                                - moduleId
                                - moduleName
                                - position
                                - totalLessons
                                - completedLessons
                                - completionPercentage
                                - lessons
                              additionalProperties: false
                        required:
                          - id
                          - title
                          - modulesCount
                          - lessonsCount
                          - totalDuration
                          - completionPercentage
                          - modules
                        additionalProperties: false
                  required:
                    - id
                    - name
                    - coursesCount
                    - overallProgress
                    - courses
                  additionalProperties: false
            required:
              - portalId
              - portalName
              - portalLogo
              - subdomain
              - classrooms
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    MemberUsersGetProgressByLeadOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              portalId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              portalName:
                type: string
              portalLogo:
                anyOf:
                  - type: string
                  - type: "null"
              subdomain:
                type: string
              classrooms:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                      maxLength: 255
                    coursesCount:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    overallProgress:
                      type: number
                      minimum: 0
                      maximum: 1
                    courses:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          title:
                            type: string
                          modulesCount:
                            type: number
                            minimum: 0
                          lessonsCount:
                            type: number
                            minimum: 0
                          totalDuration:
                            type: number
                            minimum: 0
                          completionPercentage:
                            type: number
                            minimum: 0
                            maximum: 1
                          modules:
                            type: array
                            items:
                              type: object
                              properties:
                                moduleId:
                                  type: string
                                  format: uuid
                                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                moduleName:
                                  type: string
                                position:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                totalLessons:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                                completedLessons:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                                completionPercentage:
                                  type: number
                                  minimum: 0
                                  maximum: 1
                                lessons:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      lessonId:
                                        type: string
                                        format: uuid
                                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                      lessonName:
                                        type: string
                                      lessonPosition:
                                        type: integer
                                        minimum: -9007199254740991
                                        maximum: 9007199254740991
                                      completed:
                                        type: boolean
                                      progressPercentage:
                                        type: number
                                        minimum: 0
                                        maximum: 1
                                      lastWatchedAt:
                                        anyOf:
                                          - type: string
                                            format: date-time
                                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                          - type: "null"
                                      timeWatched:
                                        type: number
                                    required:
                                      - lessonId
                                      - lessonName
                                      - lessonPosition
                                      - completed
                                      - progressPercentage
                                      - lastWatchedAt
                                      - timeWatched
                                    additionalProperties: false
                              required:
                                - moduleId
                                - moduleName
                                - position
                                - totalLessons
                                - completedLessons
                                - completionPercentage
                                - lessons
                              additionalProperties: false
                        required:
                          - id
                          - title
                          - modulesCount
                          - lessonsCount
                          - totalDuration
                          - completionPercentage
                          - modules
                        additionalProperties: false
                  required:
                    - id
                    - name
                    - coursesCount
                    - overallProgress
                    - courses
                  additionalProperties: false
            required:
              - portalId
              - portalName
              - portalLogo
              - subdomain
              - classrooms
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    MemberUsersGetCourseProgressOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              moduleId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              moduleName:
                type: string
              position:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              totalLessons:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              completedLessons:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              completionPercentage:
                type: number
                minimum: 0
                maximum: 1
              lessons:
                type: array
                items:
                  type: object
                  properties:
                    lessonId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    lessonName:
                      type: string
                    lessonPosition:
                      type: integer
                      minimum: -9007199254740991
                      maximum: 9007199254740991
                    completed:
                      type: boolean
                    progressPercentage:
                      type: number
                      minimum: 0
                      maximum: 1
                    lastWatchedAt:
                      anyOf:
                        - type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        - type: "null"
                    timeWatched:
                      type: number
                  required:
                    - lessonId
                    - lessonName
                    - lessonPosition
                    - completed
                    - progressPercentage
                    - lastWatchedAt
                    - timeWatched
                  additionalProperties: false
            required:
              - moduleId
              - moduleName
              - position
              - totalLessons
              - completedLessons
              - completionPercentage
              - lessons
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    MemberUsersGetCertificateCodeOutput:
      type: object
      properties:
        certificateCode:
          anyOf:
            - type: string
            - type: "null"
      additionalProperties: false
    MemberUsersCreateInput:
      type: object
      properties:
        email:
          type: string
          minLength: 5
          maxLength: 255
          format: email
          pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
        name:
          type: string
          maxLength: 255
        phone:
          type: string
          maxLength: 255
        birthDate:
          type: string
          format: date
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
        document:
          type: string
          maxLength: 255
        classrooms:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        portals:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - email
        - name
        - classrooms
        - portals
    MemberUsersCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        email:
          type: string
        name:
          type: string
        phone:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        birthDate:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: "null"
        document:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        avatarUrl:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        instagramUsername:
          anyOf:
            - type: string
              maxLength: 100
            - type: "null"
        active:
          type: boolean
        lastLoginAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        leadId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        classrooms:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              portalId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
                maxLength: 255
              isDefault:
                type: boolean
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - id
              - portalId
              - name
              - isDefault
              - createdAt
              - updatedAt
            additionalProperties: false
        portals:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              theme:
                type: string
                enum:
                  - Modern
                  - Dark
                  - Light
              accentColor:
                type: string
                minLength: 7
                maxLength: 7
              centerContent:
                type: boolean
              customFooter:
                type: boolean
              lightLogo:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              darkLogo:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              coverImage:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              thumbImage:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              loginImage:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              coverPattern:
                anyOf:
                  - type: string
                    maxLength: 50
                  - type: "null"
              loginBgPattern:
                anyOf:
                  - type: string
                    maxLength: 50
                  - type: "null"
              loginSidePattern:
                anyOf:
                  - type: string
                    maxLength: 50
                  - type: "null"
              logoPosition:
                type: string
                enum:
                  - left
                  - center
                  - right
                  - center_bottom
              emptyHeaderBehavior:
                type: string
                enum:
                  - randomCourse
                  - portalCover
              footerDescription:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              footerCopyrights:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              useVideoLogin:
                type: boolean
              removeVideoOverlay:
                type: boolean
              showFullscreenButton:
                type: boolean
              useCtaLogin:
                type: boolean
              name:
                type: string
                maxLength: 255
              description:
                type: string
              supportEmail:
                anyOf:
                  - type: string
                    minLength: 5
                    maxLength: 255
                    format: email
                    pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                  - type: "null"
              supportUrl:
                anyOf:
                  - type: string
                    pattern: ^https?:\/\/.+$
                  - type: "null"
              showColoredImageWhenBlocked:
                type: boolean
              suggestedContentEnabled:
                type: boolean
              accessType:
                type: string
                enum:
                  - subdomain
                  - customDomain
              subdomain:
                type: string
                maxLength: 100
              dailyCommentLimit:
                type: integer
                minimum: 1
                maximum: 9007199254740991
              characterLimit:
                type: integer
                minimum: 1
                maximum: 9007199254740991
              autoPublishComments:
                type: boolean
              autoPublishReplies:
                type: boolean
              realTimeModerationEnabled:
                type: boolean
              respondAsProducer:
                type: boolean
              commentAiSuggestionsEnabled:
                type: boolean
              twoFaEnabled:
                type: boolean
              firstAccessWithoutPass:
                type: boolean
              allowSimplePass:
                type: boolean
              otpWhatsappEnabled:
                type: boolean
              otpWhatsappTemplateId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              timezone:
                type: string
                minLength: 1
                maxLength: 64
              navConfig:
                anyOf:
                  - type: object
                    properties:
                      contents:
                        type: object
                        properties:
                          visible:
                            type: boolean
                          label:
                            type: string
                            maxLength: 100
                        required:
                          - visible
                        additionalProperties: false
                      community:
                        type: object
                        properties:
                          visible:
                            type: boolean
                          label:
                            type: string
                            maxLength: 100
                        required:
                          - visible
                        additionalProperties: false
                      calendar:
                        type: object
                        properties:
                          visible:
                            type: boolean
                          label:
                            type: string
                            maxLength: 100
                        required:
                          - visible
                        additionalProperties: false
                    additionalProperties: false
                  - type: "null"
              calendarTitle:
                anyOf:
                  - type: string
                    maxLength: 255
                  - type: "null"
              calendarDescription:
                anyOf:
                  - type: string
                  - type: "null"
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - id
              - theme
              - accentColor
              - centerContent
              - customFooter
              - logoPosition
              - emptyHeaderBehavior
              - useVideoLogin
              - removeVideoOverlay
              - showFullscreenButton
              - useCtaLogin
              - name
              - description
              - showColoredImageWhenBlocked
              - suggestedContentEnabled
              - accessType
              - subdomain
              - dailyCommentLimit
              - characterLimit
              - autoPublishComments
              - autoPublishReplies
              - realTimeModerationEnabled
              - respondAsProducer
              - commentAiSuggestionsEnabled
              - twoFaEnabled
              - firstAccessWithoutPass
              - allowSimplePass
              - otpWhatsappEnabled
              - timezone
              - ownerId
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - id
        - email
        - name
        - active
        - ownerId
        - createdAt
        - updatedAt
        - classrooms
        - portals
      additionalProperties: false
    MemberUsersBulkCreateInput:
      type: object
      properties:
        memberUsers:
          type: array
          items:
            type: object
            properties:
              email:
                type: string
                minLength: 5
                maxLength: 255
                format: email
                pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
              name:
                type: string
                maxLength: 255
              phone:
                type: string
                maxLength: 255
              birthDate:
                type: string
                format: date
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
              document:
                type: string
                maxLength: 255
              classrooms:
                type: array
                items:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              portals:
                type: array
                items:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            required:
              - email
              - name
              - classrooms
              - portals
      required:
        - memberUsers
    MemberUsersBulkCreateOutput:
      type: object
      properties:
        successful:
          type: number
        failed:
          type: number
        errors:
          type: array
          items:
            type: object
            properties:
              email:
                type: string
              error:
                type: string
            additionalProperties: false
      additionalProperties: false
    MemberUsersUpdateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          maxLength: 255
        email:
          type: string
          minLength: 5
          maxLength: 255
          format: email
          pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
        phone:
          type: string
          maxLength: 255
        birthDate:
          type: string
          format: date
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
        document:
          type: string
          maxLength: 255
        classrooms:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        portals:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    MemberUsersUpdateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        email:
          type: string
        name:
          type: string
        phone:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        birthDate:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: "null"
        document:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        avatarUrl:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        instagramUsername:
          anyOf:
            - type: string
              maxLength: 100
            - type: "null"
        active:
          type: boolean
        lastLoginAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        leadId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        classrooms:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              portalId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
                maxLength: 255
              isDefault:
                type: boolean
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - id
              - portalId
              - name
              - isDefault
              - createdAt
              - updatedAt
            additionalProperties: false
        portals:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              theme:
                type: string
                enum:
                  - Modern
                  - Dark
                  - Light
              accentColor:
                type: string
                minLength: 7
                maxLength: 7
              centerContent:
                type: boolean
              customFooter:
                type: boolean
              lightLogo:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              darkLogo:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              coverImage:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              thumbImage:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              loginImage:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              coverPattern:
                anyOf:
                  - type: string
                    maxLength: 50
                  - type: "null"
              loginBgPattern:
                anyOf:
                  - type: string
                    maxLength: 50
                  - type: "null"
              loginSidePattern:
                anyOf:
                  - type: string
                    maxLength: 50
                  - type: "null"
              logoPosition:
                type: string
                enum:
                  - left
                  - center
                  - right
                  - center_bottom
              emptyHeaderBehavior:
                type: string
                enum:
                  - randomCourse
                  - portalCover
              footerDescription:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              footerCopyrights:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              useVideoLogin:
                type: boolean
              removeVideoOverlay:
                type: boolean
              showFullscreenButton:
                type: boolean
              useCtaLogin:
                type: boolean
              name:
                type: string
                maxLength: 255
              description:
                type: string
              supportEmail:
                anyOf:
                  - type: string
                    minLength: 5
                    maxLength: 255
                    format: email
                    pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                  - type: "null"
              supportUrl:
                anyOf:
                  - type: string
                    pattern: ^https?:\/\/.+$
                  - type: "null"
              showColoredImageWhenBlocked:
                type: boolean
              suggestedContentEnabled:
                type: boolean
              accessType:
                type: string
                enum:
                  - subdomain
                  - customDomain
              subdomain:
                type: string
                maxLength: 100
              dailyCommentLimit:
                type: integer
                minimum: 1
                maximum: 9007199254740991
              characterLimit:
                type: integer
                minimum: 1
                maximum: 9007199254740991
              autoPublishComments:
                type: boolean
              autoPublishReplies:
                type: boolean
              realTimeModerationEnabled:
                type: boolean
              respondAsProducer:
                type: boolean
              commentAiSuggestionsEnabled:
                type: boolean
              twoFaEnabled:
                type: boolean
              firstAccessWithoutPass:
                type: boolean
              allowSimplePass:
                type: boolean
              otpWhatsappEnabled:
                type: boolean
              otpWhatsappTemplateId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              timezone:
                type: string
                minLength: 1
                maxLength: 64
              navConfig:
                anyOf:
                  - type: object
                    properties:
                      contents:
                        type: object
                        properties:
                          visible:
                            type: boolean
                          label:
                            type: string
                            maxLength: 100
                        required:
                          - visible
                        additionalProperties: false
                      community:
                        type: object
                        properties:
                          visible:
                            type: boolean
                          label:
                            type: string
                            maxLength: 100
                        required:
                          - visible
                        additionalProperties: false
                      calendar:
                        type: object
                        properties:
                          visible:
                            type: boolean
                          label:
                            type: string
                            maxLength: 100
                        required:
                          - visible
                        additionalProperties: false
                    additionalProperties: false
                  - type: "null"
              calendarTitle:
                anyOf:
                  - type: string
                    maxLength: 255
                  - type: "null"
              calendarDescription:
                anyOf:
                  - type: string
                  - type: "null"
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - id
              - theme
              - accentColor
              - centerContent
              - customFooter
              - logoPosition
              - emptyHeaderBehavior
              - useVideoLogin
              - removeVideoOverlay
              - showFullscreenButton
              - useCtaLogin
              - name
              - description
              - showColoredImageWhenBlocked
              - suggestedContentEnabled
              - accessType
              - subdomain
              - dailyCommentLimit
              - characterLimit
              - autoPublishComments
              - autoPublishReplies
              - realTimeModerationEnabled
              - respondAsProducer
              - commentAiSuggestionsEnabled
              - twoFaEnabled
              - firstAccessWithoutPass
              - allowSimplePass
              - otpWhatsappEnabled
              - timezone
              - ownerId
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - id
        - email
        - name
        - active
        - ownerId
        - createdAt
        - updatedAt
        - classrooms
        - portals
      additionalProperties: false
    MemberUsersEnableInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    MemberUsersEnableOutput:
      type: object
      properties:
        success:
          type: boolean
      additionalProperties: false
    MemberUsersDisableInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    MemberUsersDisableOutput:
      type: object
      properties:
        success:
          type: boolean
      additionalProperties: false
    MemberUsersBulkEnableInput:
      type: object
      properties:
        memberUserIds:
          minItems: 1
          maxItems: 200
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - memberUserIds
    MemberUsersBulkEnableOutput:
      type: object
      properties:
        updated:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        skipped:
          type: integer
          minimum: 0
          maximum: 9007199254740991
      required:
        - updated
        - skipped
      additionalProperties: false
    MemberUsersBulkDisableInput:
      type: object
      properties:
        memberUserIds:
          minItems: 1
          maxItems: 200
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - memberUserIds
    MemberUsersBulkDisableOutput:
      type: object
      properties:
        updated:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        skipped:
          type: integer
          minimum: 0
          maximum: 9007199254740991
      required:
        - updated
        - skipped
      additionalProperties: false
    MemberUsersBulkUpdatePortalsInput:
      type: object
      properties:
        memberUserIds:
          minItems: 1
          maxItems: 200
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        action:
          type: string
          enum:
            - add
            - remove
        portalIds:
          minItems: 1
          maxItems: 50
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - memberUserIds
        - action
        - portalIds
    MemberUsersBulkUpdatePortalsOutput:
      type: object
      properties:
        updated:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        skipped:
          type: integer
          minimum: 0
          maximum: 9007199254740991
      required:
        - updated
        - skipped
      additionalProperties: false
    MemberUsersBulkUpdateClassroomsInput:
      type: object
      properties:
        memberUserIds:
          minItems: 1
          maxItems: 200
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        action:
          type: string
          enum:
            - add
            - remove
        classroomIds:
          minItems: 1
          maxItems: 50
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - memberUserIds
        - action
        - classroomIds
    MemberUsersBulkUpdateClassroomsOutput:
      type: object
      properties:
        updated:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        skipped:
          type: integer
          minimum: 0
          maximum: 9007199254740991
      required:
        - updated
        - skipped
      additionalProperties: false
    MemberUsersAddToClassroomInput:
      type: object
      properties:
        classroomId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        memberUserId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - classroomId
        - memberUserId
    MemberUsersAddToClassroomOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        classroomId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        memberUserId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - classroomId
        - memberUserId
        - createdAt
        - updatedAt
      additionalProperties: false
    MemberUsersRemoveFromClassroomInput:
      type: object
      properties:
        classroomId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        memberUserId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - classroomId
        - memberUserId
    MemberUsersRemoveFromClassroomOutput:
      type: object
      properties:
        success:
          type: boolean
      additionalProperties: false
    MemberUsersSendAccessLinkInput:
      type: object
      properties:
        portalId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        memberUserId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - portalId
        - memberUserId
    MemberUsersSendAccessLinkOutput:
      type: object
      properties:
        success:
          type: boolean
      additionalProperties: false
    MemberUsersBulkSendAccessLinkInput:
      type: object
      properties:
        memberUserIds:
          minItems: 1
          maxItems: 200
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        portalId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - memberUserIds
    MemberUsersBulkSendAccessLinkOutput:
      type: object
      properties:
        updated:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        skipped:
          type: integer
          minimum: 0
          maximum: 9007199254740991
      required:
        - updated
        - skipped
      additionalProperties: false
    MemberUsersExtendAccessInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        items:
          type: array
          items:
            type: object
            properties:
              classroomId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              contentId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              accessDuration:
                type: number
                minimum: 1
              accessUnit:
                type: string
                enum:
                  - hours
                  - week
                  - day
                  - month
                  - year
                  - lifetime
              reason:
                type: string
            required:
              - classroomId
              - contentId
              - accessDuration
              - accessUnit
      required:
        - id
        - items
    MemberUsersExtendAccessOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              memberUserId:
                type: string
              classroomId:
                type: string
              contentId:
                type: string
              startsAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              expiresAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - memberUserId
              - classroomId
              - contentId
              - startsAt
              - expiresAt
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    MemberUsersResetAccessInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        items:
          type: array
          items:
            type: object
            properties:
              classroomId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              contentId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              reason:
                type: string
            required:
              - classroomId
              - contentId
      required:
        - id
        - items
    MemberUsersResetAccessOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              memberUserId:
                type: string
              classroomId:
                type: string
              contentId:
                type: string
              startsAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              expiresAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - memberUserId
              - classroomId
              - contentId
              - startsAt
              - expiresAt
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    MemberUsersDeleteInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    MemberUsersDeleteOutput:
      type: object
      properties:
        success:
          type: boolean
      additionalProperties: false
    ModuleListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
                maxLength: 255
              description:
                anyOf:
                  - type: string
                  - type: "null"
              coverUrl:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              coverUrlVertical:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              trailerUrl:
                anyOf:
                  - type: string
                    maxLength: 255
                  - type: "null"
              coverPatternHorizontal:
                anyOf:
                  - type: string
                    maxLength: 50
                  - type: "null"
              coverPatternVertical:
                anyOf:
                  - type: string
                    maxLength: 50
                  - type: "null"
              releaseType:
                type: string
                maxLength: 30
              releaseDays:
                anyOf:
                  - type: integer
                    minimum: 1
                    maximum: 9007199254740991
                  - type: "null"
              releaseDate:
                anyOf:
                  - type: string
                    format: date
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                  - type: "null"
              position:
                type: integer
                minimum: 1
                maximum: 9007199254740991
              additionalRules:
                anyOf:
                  - {}
                  - type: "null"
              contentId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              bannerId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - id
              - name
              - releaseType
              - position
              - contentId
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    ModuleGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          maxLength: 255
        description:
          anyOf:
            - type: string
            - type: "null"
        coverUrl:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        coverUrlVertical:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        trailerUrl:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        coverPatternHorizontal:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        coverPatternVertical:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        releaseType:
          type: string
          maxLength: 30
        releaseDays:
          anyOf:
            - type: integer
              minimum: 1
              maximum: 9007199254740991
            - type: "null"
        releaseDate:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: "null"
        position:
          type: integer
          minimum: 1
          maximum: 9007199254740991
        additionalRules:
          anyOf:
            - {}
            - type: "null"
        contentId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        bannerId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - name
        - releaseType
        - position
        - contentId
        - createdAt
        - updatedAt
      additionalProperties: false
    ModuleCreateInput:
      type: object
      properties:
        contentId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          maxLength: 255
        description:
          type: string
        coverUrl:
          type: string
          maxLength: 500
        releaseType:
          type: string
          enum:
            - DAYS_AFTER_PURCHASE
            - FIXED_DATE
        releaseDays:
          anyOf:
            - type: integer
              minimum: 1
              maximum: 9007199254740991
            - type: "null"
        releaseDate:
          type: string
          format: date
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
        additionalRules: {}
      required:
        - contentId
        - name
        - releaseType
    ModuleCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          maxLength: 255
        description:
          anyOf:
            - type: string
            - type: "null"
        coverUrl:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        coverUrlVertical:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        trailerUrl:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        coverPatternHorizontal:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        coverPatternVertical:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        releaseType:
          type: string
          maxLength: 30
        releaseDays:
          anyOf:
            - type: integer
              minimum: 1
              maximum: 9007199254740991
            - type: "null"
        releaseDate:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: "null"
        position:
          type: integer
          minimum: 1
          maximum: 9007199254740991
        additionalRules:
          anyOf:
            - {}
            - type: "null"
        contentId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        bannerId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - name
        - releaseType
        - position
        - contentId
        - createdAt
        - updatedAt
      additionalProperties: false
    ModuleUpdateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          maxLength: 255
        description:
          anyOf:
            - type: string
            - type: "null"
        coverUrl:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        coverUrlVertical:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        trailerUrl:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        coverPatternHorizontal:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        coverPatternVertical:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        releaseType:
          type: string
          enum:
            - DAYS_AFTER_PURCHASE
            - FIXED_DATE
        releaseDays:
          anyOf:
            - type: integer
              minimum: 1
              maximum: 9007199254740991
            - type: "null"
        releaseDate:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: "null"
        additionalRules:
          anyOf:
            - {}
            - type: "null"
        position:
          type: integer
          minimum: 1
          maximum: 9007199254740991
      required:
        - id
    ModuleUpdateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          maxLength: 255
        description:
          anyOf:
            - type: string
            - type: "null"
        coverUrl:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        coverUrlVertical:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        trailerUrl:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        coverPatternHorizontal:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        coverPatternVertical:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        releaseType:
          type: string
          maxLength: 30
        releaseDays:
          anyOf:
            - type: integer
              minimum: 1
              maximum: 9007199254740991
            - type: "null"
        releaseDate:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: "null"
        position:
          type: integer
          minimum: 1
          maximum: 9007199254740991
        additionalRules:
          anyOf:
            - {}
            - type: "null"
        contentId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        bannerId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - name
        - releaseType
        - position
        - contentId
        - createdAt
        - updatedAt
      additionalProperties: false
    ModuleOrganizePositionsInput:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            properties:
              moduleId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              position:
                type: integer
                minimum: 1
                maximum: 9007199254740991
            required:
              - moduleId
              - position
      required:
        - items
    ModuleOrganizePositionsOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    ModuleOrganizeLessonPositionsInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        items:
          type: array
          items:
            type: object
            properties:
              lessonId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              position:
                type: integer
                minimum: 1
                maximum: 9007199254740991
            required:
              - lessonId
              - position
      required:
        - id
        - items
    ModuleOrganizeLessonPositionsOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    ModuleDeleteInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    ModuleDeleteOutput:
      type: object
      properties:
        deleted:
          type: boolean
      required:
        - deleted
      additionalProperties: false
    PortalMembersListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              portalId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              memberUserId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              memberUserEmail:
                type: string
              memberUserName:
                type: string
              memberUserActive:
                type: boolean
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - portalId
              - memberUserId
              - memberUserEmail
              - memberUserName
              - memberUserActive
              - createdAt
              - updatedAt
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    PortalMembersAddInput:
      type: object
      properties:
        portalId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        memberUserId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - portalId
        - memberUserId
    PortalMembersAddOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        portalId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        memberUserId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        memberUserEmail:
          type: string
        memberUserName:
          type: string
        memberUserActive:
          type: boolean
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - portalId
        - memberUserId
        - memberUserEmail
        - memberUserName
        - memberUserActive
        - createdAt
        - updatedAt
      additionalProperties: false
    PortalMembersBulkAddInput:
      type: object
      properties:
        portalId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        memberUserIds:
          minItems: 1
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - portalId
        - memberUserIds
    PortalMembersBulkAddOutput:
      type: object
      properties:
        successful:
          type: number
        failed:
          type: number
        errors:
          type: array
          items:
            type: object
            properties:
              memberUserId:
                type: string
              error:
                type: string
            required:
              - memberUserId
              - error
            additionalProperties: false
      required:
        - successful
        - failed
        - errors
      additionalProperties: false
    PortalMembersRemoveInput:
      type: object
      properties:
        portalId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        memberUserId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - portalId
        - memberUserId
    PortalMembersRemoveOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    PortalsListInput:
      type: object
      properties:
        page:
          default: 1
          type: number
          minimum: 1
        perPage:
          default: 10
          type: number
          minimum: 1
          maximum: 2000
        theme:
          type: string
          enum:
            - Modern
            - Dark
            - Light
        accessType:
          type: string
          enum:
            - subdomain
            - customDomain
        search:
          type: string
          maxLength: 255
        contentId:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
    PortalsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              theme:
                type: string
                enum:
                  - Modern
                  - Dark
                  - Light
              accentColor:
                type: string
                minLength: 7
                maxLength: 7
              centerContent:
                type: boolean
              customFooter:
                type: boolean
              lightLogo:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              darkLogo:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              coverImage:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              thumbImage:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              loginImage:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              coverPattern:
                anyOf:
                  - type: string
                    maxLength: 50
                  - type: "null"
              loginBgPattern:
                anyOf:
                  - type: string
                    maxLength: 50
                  - type: "null"
              loginSidePattern:
                anyOf:
                  - type: string
                    maxLength: 50
                  - type: "null"
              logoPosition:
                type: string
                enum:
                  - left
                  - center
                  - right
                  - center_bottom
              emptyHeaderBehavior:
                type: string
                enum:
                  - randomCourse
                  - portalCover
              footerDescription:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              footerCopyrights:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: "null"
              useVideoLogin:
                type: boolean
              removeVideoOverlay:
                type: boolean
              showFullscreenButton:
                type: boolean
              useCtaLogin:
                type: boolean
              name:
                type: string
                maxLength: 255
              description:
                type: string
              supportEmail:
                anyOf:
                  - type: string
                    minLength: 5
                    maxLength: 255
                    format: email
                    pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                  - type: "null"
              supportUrl:
                anyOf:
                  - type: string
                    pattern: ^https?:\/\/.+$
                  - type: "null"
              showColoredImageWhenBlocked:
                type: boolean
              suggestedContentEnabled:
                type: boolean
              accessType:
                type: string
                enum:
                  - subdomain
                  - customDomain
              subdomain:
                type: string
                maxLength: 100
              dailyCommentLimit:
                type: integer
                minimum: 1
                maximum: 9007199254740991
              characterLimit:
                type: integer
                minimum: 1
                maximum: 9007199254740991
              autoPublishComments:
                type: boolean
              autoPublishReplies:
                type: boolean
              realTimeModerationEnabled:
                type: boolean
              respondAsProducer:
                type: boolean
              commentAiSuggestionsEnabled:
                type: boolean
              twoFaEnabled:
                type: boolean
              firstAccessWithoutPass:
                type: boolean
              allowSimplePass:
                type: boolean
              otpWhatsappEnabled:
                type: boolean
              otpWhatsappTemplateId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              timezone:
                type: string
                minLength: 1
                maxLength: 64
              navConfig:
                anyOf:
                  - type: object
                    properties:
                      contents:
                        type: object
                        properties:
                          visible:
                            type: boolean
                          label:
                            type: string
                            maxLength: 100
                        required:
                          - visible
                        additionalProperties: false
                      community:
                        type: object
                        properties:
                          visible:
                            type: boolean
                          label:
                            type: string
                            maxLength: 100
                        required:
                          - visible
                        additionalProperties: false
                      calendar:
                        type: object
                        properties:
                          visible:
                            type: boolean
                          label:
                            type: string
                            maxLength: 100
                        required:
                          - visible
                        additionalProperties: false
                    additionalProperties: false
                  - type: "null"
              calendarTitle:
                anyOf:
                  - type: string
                    maxLength: 255
                  - type: "null"
              calendarDescription:
                anyOf:
                  - type: string
                  - type: "null"
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              totalClassrooms:
                anyOf:
                  - type: number
                  - type: "null"
              totalContents:
                anyOf:
                  - type: number
                  - type: "null"
              totalMemberUsers:
                anyOf:
                  - type: number
                  - type: "null"
            required:
              - id
              - theme
              - accentColor
              - centerContent
              - customFooter
              - logoPosition
              - emptyHeaderBehavior
              - useVideoLogin
              - removeVideoOverlay
              - showFullscreenButton
              - useCtaLogin
              - name
              - description
              - showColoredImageWhenBlocked
              - suggestedContentEnabled
              - accessType
              - subdomain
              - dailyCommentLimit
              - characterLimit
              - autoPublishComments
              - autoPublishReplies
              - realTimeModerationEnabled
              - respondAsProducer
              - commentAiSuggestionsEnabled
              - twoFaEnabled
              - firstAccessWithoutPass
              - allowSimplePass
              - otpWhatsappEnabled
              - timezone
              - ownerId
              - createdAt
              - updatedAt
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    PortalsGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        theme:
          type: string
          enum:
            - Modern
            - Dark
            - Light
        accentColor:
          type: string
          minLength: 7
          maxLength: 7
        centerContent:
          type: boolean
        customFooter:
          type: boolean
        lightLogo:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        darkLogo:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        coverImage:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        thumbImage:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        loginImage:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        coverPattern:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        loginBgPattern:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        loginSidePattern:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        logoPosition:
          type: string
          enum:
            - left
            - center
            - right
            - center_bottom
        emptyHeaderBehavior:
          type: string
          enum:
            - randomCourse
            - portalCover
        footerDescription:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        footerCopyrights:
          anyOf:
            - type: string
              maxLength: 500
            - type: "null"
        useVideoLogin:
          type: boolean
        removeVideoOverlay:
          type: boolean
        showFullscreenButton:
          type: boolean
        useCtaLogin:
          type: boolean
        name:
          type: string
          maxLength: 255
        description:
          type: string
        supportEmail:
          anyOf:
            - type: string
              minLength: 5
              maxLength: 255
              format: email
              pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
            - type: "null"
        supportUrl:
          anyOf:
            - type: string
              pattern: ^https?:\/\/.+$
            - type: "null"
        showColoredImageWhenBlocked:
          type: boolean
        suggestedContentEnabled:
          type: boolean
        accessType:
          type: string
          enum:
            - subdomain
            - customDomain
        subdomain:
          type: string
          maxLength: 100
        dailyCommentLimit:
          type: integer
          minimum: 1
          maximum: 9007199254740991
        characterLimit:
          type: integer
          minimum: 1
          maximum: 9007199254740991
        autoPublishComments:
          type: boolean
        autoPublishReplies:
          type: boolean
        realTimeModerationEnabled:
          type: boolean
        respondAsProducer:
          type: boolean
        commentAiSuggestionsEnabled:
          type: boolean
        twoFaEnabled:
          type: boolean
        firstAccessWithoutPass:
          type: boolean
        allowSimplePass:
          type: boolean
        otpWhatsappEnabled:
          type: boolean
        otpWhatsappTemplateId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        timezone:
          type: string
          minLength: 1
          maxLength: 64
        navConfig:
          anyOf:
            - type: object
              properties:
                contents:
                  type: object
                  properties:
                    visible:
                      type: boolean
                    label:
                      type: string
                      maxLength: 100
                  required:
                    - visible
                  additionalProperties: false
                community:
                  type: object
                  properties:
                    visible:
                      type: boolean
                    label:
                      type: string
                      maxLength: 100
                  required:
                    - visible
                  additionalProperties: false
                calendar:
                  type: object
                  properties:
                    visible:
                      type: boolean
                    label:
                      type: string
                      maxLength: 100
                  required:
                    - visible
                  additionalProperties: false
              additionalProperties: false
            - type: "null"
        calendarTitle:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        calendarDescription:
          anyOf:
            - type: string
            - type: "null"
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - theme
        - accentColor
        - centerContent
        - customFooter
        - logoPosition
        - emptyHeaderBehavior
        - useVideoLogin
        - removeVideoOverlay
        - showFullscreenButton
        - useCtaLogin
        - name
        - description
        - showColoredImageWhenBlocked
        - suggestedContentEnabled
        - accessType
        - subdomain
        - dailyCommentLimit
        - characterLimit
        - autoPublishComments
        - autoPublishReplies
        - realTimeModerationEnabled
        - respondAsProducer
        - commentAiSuggestionsEnabled
        - twoFaEnabled
        - firstAccessWithoutPass
        - allowSimplePass
        - otpWhatsappEnabled
        - timezone
        - ownerId
        - createdAt
        - updatedAt
      additionalProperties: false
    PortalsCheckSubdomainOutput:
      type: object
      properties:
        available:
          type: boolean
      required:
        - available
      additionalProperties: false
    PortalsCreateInput:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
        subdomain:
          type: string
          minLength: 1
          maxLength: 100
          pattern: ^[a-z-]+$
        theme:
          type: string
          enum:
            - Modern
            - Dark
            - Light
        accentColor:
          type: string
          minLength: 7
          maxLength: 7
          pattern: ^#[0-9A-Fa-f]{6}$
        centerContent:
          type: boolean
        customFooter:
          type: boolean
        lightLogo:
          type: string
          maxLength: 500
        darkLogo:
          type: string
          maxLength: 500
        coverImage:
          type: string
          maxLength: 500
        thumbImage:
          type: string
          maxLength: 500
        loginImage:
          type: string
          maxLength: 500
        coverPattern:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        loginBgPattern:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        loginSidePattern:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        logoPosition:
          type: string
          enum:
            - left
            - center
            - right
            - center_bottom
        emptyHeaderBehavior:
          type: string
          enum:
            - randomCourse
            - portalCover
        footerDescription:
          type: string
          maxLength: 500
        footerCopyrights:
          type: string
          maxLength: 500
        useVideoLogin:
          type: boolean
        removeVideoOverlay:
          type: boolean
        showFullscreenButton:
          type: boolean
        useCtaLogin:
          type: boolean
        supportEmail:
          type: string
          maxLength: 255
          format: email
          pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
        supportUrl:
          type: string
          maxLength: 500
          format: uri
        showColoredImageWhenBlocked:
          type: boolean
        suggestedContentEnabled:
          type: boolean
        accessType:
          type: string
          enum:
            - subdomain
            - customDomain
        dailyCommentLimit:
          type: integer
          minimum: 1
          maximum: 1000
        characterLimit:
          type: integer
          minimum: 1
          maximum: 5000
        autoPublishComments:
          type: boolean
        autoPublishReplies:
          type: boolean
        realTimeModerationEnabled:
          type: boolean
        respondAsProducer:
          type: boolean
        commentAiSuggestionsEnabled:
          type: boolean
        twoFaEnabled:
          type: boolean
        firstAccessWithoutPass:
          type: boolean
        allowSimplePass:
          type: boolean
        otpWhatsappEnabled:
          type: boolean
        otpWhatsappTemplateId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        timezone:
          type: string
          minLength: 1
          maxLength: 64
        calendarTitle:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        calendarDescription:
          anyOf:
            - type: string
              maxLength: 2000
            - type: "null"
      required:
        - name
        - subdomain
    PortalsUpdateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
        subdomain:
          type: string
          minLength: 1
          maxLength: 100
          pattern: ^[a-z-]+$
        theme:
          type: string
          enum:
            - Modern
            - Dark
            - Light
        accentColor:
          type: string
          minLength: 7
          maxLength: 7
          pattern: ^#[0-9A-Fa-f]{6}$
        centerContent:
          type: boolean
        customFooter:
          type: boolean
        lightLogo:
          type: string
          maxLength: 500
        darkLogo:
          type: string
          maxLength: 500
        coverImage:
          type: string
          maxLength: 500
        thumbImage:
          type: string
          maxLength: 500
        loginImage:
          type: string
          maxLength: 500
        coverPattern:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        loginBgPattern:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        loginSidePattern:
          anyOf:
            - type: string
              maxLength: 50
            - type: "null"
        logoPosition:
          type: string
          enum:
            - left
            - center
            - right
            - center_bottom
        emptyHeaderBehavior:
          type: string
          enum:
            - randomCourse
            - portalCover
        footerDescription:
          type: string
          maxLength: 500
        footerCopyrights:
          type: string
          maxLength: 500
        useVideoLogin:
          type: boolean
        removeVideoOverlay:
          type: boolean
        showFullscreenButton:
          type: boolean
        useCtaLogin:
          type: boolean
        supportEmail:
          type: string
          maxLength: 255
          format: email
          pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
        supportUrl:
          type: string
          maxLength: 500
          format: uri
        showColoredImageWhenBlocked:
          type: boolean
        suggestedContentEnabled:
          type: boolean
        accessType:
          type: string
          enum:
            - subdomain
            - customDomain
        dailyCommentLimit:
          type: integer
          minimum: 1
          maximum: 1000
        characterLimit:
          type: integer
          minimum: 1
          maximum: 5000
        autoPublishComments:
          type: boolean
        autoPublishReplies:
          type: boolean
        realTimeModerationEnabled:
          type: boolean
        respondAsProducer:
          type: boolean
        commentAiSuggestionsEnabled:
          type: boolean
        twoFaEnabled:
          type: boolean
        firstAccessWithoutPass:
          type: boolean
        allowSimplePass:
          type: boolean
        otpWhatsappEnabled:
          type: boolean
        otpWhatsappTemplateId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        timezone:
          type: string
          minLength: 1
          maxLength: 64
        calendarTitle:
          anyOf:
            - type: string
              maxLength: 255
            - type: "null"
        calendarDescription:
          anyOf:
            - type: string
              maxLength: 2000
            - type: "null"
      required:
        - id
    PortalsDeleteInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    PortalsDeleteOutput:
      type: object
      properties:
        deleted:
          type: boolean
      required:
        - deleted
      additionalProperties: false
    BuyersCardsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              brand:
                type: string
              lastDigits:
                type: string
                minLength: 2
                maxLength: 6
                pattern: ^[0-9]{2,6}$
              isDefault:
                type: boolean
            required:
              - id
              - brand
              - lastDigits
              - isDefault
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    BuyersPurchasesListOutput:
      type: object
      properties:
        plans:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              thumbnail:
                type: string
              name:
                type: string
                maxLength: 1000
              amount:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              expireAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              card:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  brand:
                    type: string
                  lastDigits:
                    type: string
                    minLength: 2
                    maxLength: 6
                    pattern: ^[0-9]{2,6}$
                required:
                  - id
                  - brand
                  - lastDigits
                additionalProperties: false
              invoices:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    amount:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    createdAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  required:
                    - id
                    - amount
                    - createdAt
                  additionalProperties: false
              type:
                type: string
                enum:
                  - transaction
                  - subscription
            required:
              - id
              - thumbnail
              - name
              - amount
              - expireAt
              - invoices
              - type
            additionalProperties: false
        addons:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              thumbnail:
                type: string
              name:
                type: string
                maxLength: 1000
              amount:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              expireAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              card:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  brand:
                    type: string
                  lastDigits:
                    type: string
                    minLength: 2
                    maxLength: 6
                    pattern: ^[0-9]{2,6}$
                required:
                  - id
                  - brand
                  - lastDigits
                additionalProperties: false
              invoices:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    amount:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    createdAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  required:
                    - id
                    - amount
                    - createdAt
                  additionalProperties: false
            required:
              - id
              - thumbnail
              - name
              - amount
              - expireAt
              - invoices
            additionalProperties: false
      required:
        - plans
        - addons
      additionalProperties: false
    BuyersCardSetDefaultInput:
      type: object
      properties:
        cardId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - cardId
    BuyersCardSetDefaultOutput:
      type: object
      properties:
        applied:
          type: boolean
      required:
        - applied
      additionalProperties: false
    BuyersCardDeleteInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    BuyersCardDeleteOutput:
      type: object
      properties:
        deleted:
          type: boolean
      required:
        - deleted
      additionalProperties: false
    CheckoutsSetOrderBumpInput:
      type: object
      properties:
        pageId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        mainOfferId:
          anyOf:
            - type: string
            - type: "null"
        orderBumpIds:
          type: array
          items:
            type: string
      required:
        - pageId
        - orderBumpIds
    CheckoutsSetOrderBumpOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    DashboardGetOutput:
      type: object
      properties:
        sales:
          type: object
          properties:
            value:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            lastValue:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            percentage:
              type: integer
              minimum: -100
              maximum: 100
          required:
            - value
            - lastValue
            - percentage
          additionalProperties: false
        canceled:
          type: object
          properties:
            value:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            lastValue:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            percentage:
              type: integer
              minimum: -100
              maximum: 100
          required:
            - value
            - lastValue
            - percentage
          additionalProperties: false
        earnings:
          type: object
          properties:
            value:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            lastValue:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            percentage:
              type: integer
              minimum: -100
              maximum: 100
          required:
            - value
            - lastValue
            - percentage
          additionalProperties: false
        balance:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        accountBalance:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        byStatus:
          type: object
          properties:
            all:
              type: object
              properties:
                value:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                lastValue:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                percentage:
                  type: integer
                  minimum: -100
                  maximum: 100
              required:
                - value
                - lastValue
                - percentage
              additionalProperties: false
            paid:
              type: object
              properties:
                value:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                lastValue:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                percentage:
                  type: integer
                  minimum: -100
                  maximum: 100
              required:
                - value
                - lastValue
                - percentage
              additionalProperties: false
            pending:
              type: object
              properties:
                value:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                lastValue:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                percentage:
                  type: integer
                  minimum: -100
                  maximum: 100
              required:
                - value
                - lastValue
                - percentage
              additionalProperties: false
            chargedBack:
              type: object
              properties:
                value:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                lastValue:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                percentage:
                  type: integer
                  minimum: -100
                  maximum: 100
              required:
                - value
                - lastValue
                - percentage
              additionalProperties: false
            canceled:
              type: object
              properties:
                value:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                lastValue:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                percentage:
                  type: integer
                  minimum: -100
                  maximum: 100
              required:
                - value
                - lastValue
                - percentage
              additionalProperties: false
            refunded:
              type: object
              properties:
                value:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                lastValue:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                percentage:
                  type: integer
                  minimum: -100
                  maximum: 100
              required:
                - value
                - lastValue
                - percentage
              additionalProperties: false
            dispute:
              type: object
              properties:
                value:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                lastValue:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                percentage:
                  type: integer
                  minimum: -100
                  maximum: 100
              required:
                - value
                - lastValue
                - percentage
              additionalProperties: false
            active:
              type: object
              properties:
                value:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                lastValue:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                percentage:
                  type: integer
                  minimum: -100
                  maximum: 100
              required:
                - value
                - lastValue
                - percentage
              additionalProperties: false
            canceledSubscription:
              type: object
              properties:
                value:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                lastValue:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                percentage:
                  type: integer
                  minimum: -100
                  maximum: 100
              required:
                - value
                - lastValue
                - percentage
              additionalProperties: false
            failed:
              type: object
              properties:
                value:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                lastValue:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                percentage:
                  type: integer
                  minimum: -100
                  maximum: 100
              required:
                - value
                - lastValue
                - percentage
              additionalProperties: false
            refunding:
              type: object
              properties:
                value:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                lastValue:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                percentage:
                  type: integer
                  minimum: -100
                  maximum: 100
              required:
                - value
                - lastValue
                - percentage
              additionalProperties: false
            refund_rejected:
              type: object
              properties:
                value:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                lastValue:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                percentage:
                  type: integer
                  minimum: -100
                  maximum: 100
              required:
                - value
                - lastValue
                - percentage
              additionalProperties: false
          required:
            - all
            - paid
            - pending
            - chargedBack
            - canceled
            - refunded
            - dispute
            - active
            - canceledSubscription
            - failed
            - refunding
            - refund_rejected
          additionalProperties: false
      required:
        - sales
        - canceled
        - earnings
        - balance
        - accountBalance
        - byStatus
      additionalProperties: false
    DashboardFiltersOutput:
      type: object
      properties:
        products:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
            required:
              - id
              - name
            additionalProperties: false
        status:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
            required:
              - id
              - name
            additionalProperties: false
      required:
        - products
        - status
      additionalProperties: false
    DashboardTransactionsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              email:
                type: string
              status:
                type: string
              product:
                type: string
              type:
                type: string
                enum:
                  - credit
                  - pix
                  - boleto
                  - free
              installments:
                type: integer
                minimum: 1
                maximum: 12
              installmentValue:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              value:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              subscriptionId:
                anyOf:
                  - type: string
                  - type: "null"
              utm:
                type: string
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              orderBumps:
                type: array
                items:
                  type: string
              gateway:
                type: string
              affiliation:
                type: object
                properties:
                  firstName:
                    type: string
                  lastName:
                    type: string
                  email:
                    type: string
                  amount:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                required:
                  - firstName
                  - lastName
                  - email
                  - amount
                additionalProperties: false
              coproductions:
                type: array
                items:
                  type: object
                  properties:
                    firstName:
                      type: string
                    lastName:
                      type: string
                    email:
                      type: string
                    amount:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                  required:
                    - firstName
                    - lastName
                    - email
                    - amount
                  additionalProperties: false
              clickmaxFee:
                type: integer
                minimum: 0
                maximum: 9007199254740991
            required:
              - id
              - name
              - email
              - status
              - product
              - type
              - value
              - subscriptionId
              - createdAt
              - orderBumps
              - gateway
              - coproductions
              - clickmaxFee
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    DashboardSubscriptionsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              email:
                type: string
              status:
                type: string
              product:
                type: string
              value:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              nextDueDate:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              offerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              gateway:
                type: string
              affiliation:
                type: array
                items:
                  type: object
                  properties:
                    amount:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                  required:
                    - amount
                  additionalProperties: false
              coproductions:
                type: array
                items:
                  type: object
                  properties:
                    amount:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                  required:
                    - amount
                  additionalProperties: false
              clickmaxFee:
                type: integer
                minimum: 0
                maximum: 9007199254740991
            required:
              - id
              - name
              - email
              - status
              - product
              - value
              - nextDueDate
              - offerId
              - createdAt
              - gateway
              - affiliation
              - coproductions
              - clickmaxFee
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    DashboardAffiliatesListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              email:
                type: string
              status:
                type: string
              affiliateValue:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              product:
                type: string
              type:
                type: string
                enum:
                  - credit
                  - pix
                  - boleto
                  - free
              value:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              subscriptionId:
                type: string
              utm:
                type: string
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              clickmaxFee:
                type: integer
                minimum: 0
                maximum: 9007199254740991
            required:
              - id
              - name
              - email
              - status
              - affiliateValue
              - product
              - type
              - value
              - createdAt
              - clickmaxFee
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    DashboardMySalesInput:
      type: object
      properties:
        page:
          default: 1
          type: number
          minimum: 1
        perPage:
          default: 10
          type: number
          minimum: 1
          maximum: 2000
        column:
          type: string
          enum:
            - createdAt
            - buyerName
            - status
            - cxFeeFix
            - cxFeePercentage
            - installments
            - gateway
            - type
        order:
          type: string
          enum:
            - asc
            - desc
        transactionId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        transactionShortenId:
          type: string
        groupBy:
          type: string
          enum:
            - day
            - month
            - year
        numberOfPurchases:
          type: object
          properties:
            min:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            max:
              type: integer
              minimum: 0
              maximum: 9007199254740991
        valueOfLastPurchase:
          type: object
          properties:
            min:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            max:
              type: integer
              minimum: 0
              maximum: 9007199254740991
        averageTicket:
          type: object
          properties:
            min:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            max:
              type: integer
              minimum: 0
              maximum: 9007199254740991
        lifeTimeValue:
          type: object
          properties:
            min:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            max:
              type: integer
              minimum: 0
              maximum: 9007199254740991
        transactionPeriod:
          type: object
          properties:
            from:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            to:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        subscriptionCreatedPeriod:
          type: object
          properties:
            from:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            to:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        productName:
          type: string
        subscriptionStatus:
          type: array
          items:
            type: string
            enum:
              - active
              - canceled
        contactStatus:
          type: string
          enum:
            - created
            - visited
            - engaged
            - subscribed
            - in_cart
            - abandoned_cart
            - purchased
            - activated
            - upgraded
            - renewed
            - churned
            - referral
            - feedback_given
        subscriptionPlan:
          type: array
          items:
            type: string
            enum:
              - "1"
              - "3"
              - "6"
              - "12"
        contactName:
          type: string
        contactEmail:
          type: string
        contactDocument:
          type: string
        contactTags:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        transactionStatus:
          type: array
          items:
            type: string
            enum:
              - canceled
              - chargedBack
              - dispute
              - failed
              - paid
              - pending
              - refunded
              - refunding
              - refund_rejected
        saleReasons:
          type: array
          items:
            type: string
        searchText:
          type: string
        externalId:
          type: string
        utmSource:
          type: array
          items:
            type: string
        utmMedium:
          type: array
          items:
            type: string
        utmCampaign:
          type: array
          items:
            type: string
        utmContent:
          type: array
          items:
            type: string
        utmTerm:
          type: array
          items:
            type: string
        src:
          type: array
          items:
            type: string
        sck:
          type: array
          items:
            type: string
        projectIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        funnelIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offerIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        orderBumpOfferIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        excludeOrderBumpOfferIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        transactionRecurrence:
          type: string
          enum:
            - OneTime
            - Recurrent
        currency:
          type: array
          items:
            type: string
            enum:
              - BRL
              - EUR
              - USD
        transactionType:
          type: array
          items:
            type: string
            enum:
              - credit
              - pix
              - boleto
              - free
        suspectedFraudOnly:
          type: boolean
        excludeSuspectedFraud:
          type: boolean
        includeAggregations:
          type: boolean
    DashboardMySalesOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              shortenCode:
                type: string
              code:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              externalId:
                type: string
              transactionHash:
                anyOf:
                  - type: string
                  - type: "null"
              offer:
                type: string
              product:
                type: string
              productId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              buyer:
                type: object
                properties:
                  name:
                    type: string
                  email:
                    type: string
                  telephone:
                    anyOf:
                      - type: string
                      - type: "null"
                  leadId:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  document:
                    anyOf:
                      - type: string
                      - type: "null"
                  address:
                    anyOf:
                      - type: object
                        properties:
                          number:
                            anyOf:
                              - type: string
                              - type: "null"
                          street:
                            anyOf:
                              - type: string
                              - type: "null"
                          complement:
                            anyOf:
                              - type: string
                              - type: "null"
                          neighborhood:
                            anyOf:
                              - type: string
                              - type: "null"
                          city:
                            anyOf:
                              - type: string
                              - type: "null"
                          state:
                            anyOf:
                              - type: string
                              - type: "null"
                          country:
                            anyOf:
                              - type: string
                              - type: "null"
                          zipCode:
                            anyOf:
                              - type: string
                              - type: "null"
                          referencePoint:
                            anyOf:
                              - type: string
                              - type: "null"
                        additionalProperties: false
                      - type: "null"
                required:
                  - name
                  - email
                additionalProperties: false
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              offerTypeIsRecurrent:
                type: boolean
              saleValue:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              discountAmountApplied:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              hasCouponApplied:
                type: boolean
              couponCodeApplied:
                anyOf:
                  - type: string
                  - type: "null"
              couponDiscountTypeApplied:
                anyOf:
                  - anyOf:
                      - type: string
                        const: percentage
                      - type: string
                        const: fixed
                      - type: "null"
                        const: null
                  - type: "null"
              couponDiscountValueApplied:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  - type: "null"
              mainOfferPrice:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              commission:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              role:
                anyOf:
                  - anyOf:
                      - type: string
                        const: producer
                      - type: string
                        const: affiliate
                      - type: string
                        const: coproducer
                      - type: "null"
                        const: null
                  - type: "null"
              paymentMethod:
                type: string
                enum:
                  - credit
                  - pix
                  - boleto
                  - free
              passPlatformFee:
                type: boolean
              freight:
                anyOf:
                  - type: object
                    properties:
                      value:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      type:
                        type: string
                        enum:
                          - free
                          - fixed
                          - shipping_company
                      method:
                        anyOf:
                          - anyOf:
                              - type: string
                                const: pac
                              - type: string
                                const: sedex
                              - type: string
                                const: by_producer
                              - type: "null"
                                const: null
                          - type: "null"
                      days:
                        anyOf:
                          - type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          - type: "null"
                    required:
                      - value
                      - type
                    additionalProperties: false
                  - type: "null"
              status:
                type: string
                enum:
                  - canceled
                  - chargedBack
                  - dispute
                  - failed
                  - paid
                  - pending
                  - refunded
                  - refunding
                  - refund_rejected
              failReason:
                anyOf:
                  - type: string
                  - type: "null"
              cancellationReason:
                anyOf:
                  - anyOf:
                      - type: string
                        const: product_did_not_meet_expectations
                      - type: string
                        const: outdated_material
                      - type: string
                        const: did_not_receive_access
                      - type: string
                        const: found_cheaper_option
                      - type: string
                        const: cannot_access_content
                      - type: string
                        const: bought_by_mistake
                      - type: string
                        const: no_longer_want_product
                      - type: string
                        const: other
                      - type: string
                        const: requested_by_seller
                      - type: string
                        const: requested_by_support
                      - type: string
                        const: requested_by_finance
                      - type: "null"
                        const: null
                  - type: "null"
              cancellationReasonDescription:
                anyOf:
                  - type: string
                  - type: "null"
              utms:
                type: object
                properties:
                  utmSource:
                    type: string
                  utmMedium:
                    type: string
                  utmCampaign:
                    type: string
                  utmContent:
                    type: string
                  utmTerm:
                    type: string
                  src:
                    type: string
                  sck:
                    type: string
                additionalProperties: false
              gateway:
                type: string
              matchesOfferFilter:
                type: boolean
              orderBumps:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    transactionId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    shortenCode:
                      type: string
                    name:
                      type: string
                    value:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    percentage:
                      type: integer
                      minimum: 0
                      maximum: 100
                    gateway:
                      type: string
                    matchesOfferFilter:
                      type: boolean
                  required:
                    - id
                    - shortenCode
                    - name
                    - value
                    - percentage
                    - gateway
                    - matchesOfferFilter
                  additionalProperties: false
              pageType:
                anyOf:
                  - type: string
                  - type: "null"
              suspectedFraud:
                type: boolean
              suspectedFraudReasons:
                type: array
                items:
                  type: string
                  enum:
                    - velocity
                    - email
                    - document
            required:
              - shortenCode
              - code
              - externalId
              - offer
              - product
              - productId
              - buyer
              - createdAt
              - offerTypeIsRecurrent
              - saleValue
              - discountAmountApplied
              - hasCouponApplied
              - mainOfferPrice
              - commission
              - paymentMethod
              - passPlatformFee
              - status
              - utms
              - gateway
              - matchesOfferFilter
              - suspectedFraud
              - suspectedFraudReasons
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
        aggregations:
          type: object
          properties:
            totalSales:
              type: number
              minimum: 0
            totalSalesRefunded:
              type: number
              minimum: 0
            totalNumberOfSalesPaid:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            totalNumberOfSalesFailed:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            totalNumberOfSalesRefunded:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            totalNumberOfSalesCanceled:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            ticketAverage:
              type: number
              minimum: 0
            totalNumberOfBuyers:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            totalNumberOfSales:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            comissions:
              type: number
              minimum: 0
            totalSalesNetValue:
              type: number
              minimum: 0
            totalInterestValue:
              type: number
              minimum: 0
            totalOrderBumps:
              type: object
              properties:
                value:
                  type: number
                  minimum: 0
                netValue:
                  type: number
                  minimum: 0
                percentage:
                  type: number
                  minimum: 0
                  maximum: 100
              required:
                - value
                - netValue
                - percentage
              additionalProperties: false
            totalValueFailed:
              type: number
              minimum: 0
            totalValueCanceled:
              type: number
              minimum: 0
            totalNumberOfPixPending:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            totalValuePixPending:
              type: number
              minimum: 0
            totalNumberOfBoletoPending:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            totalValueBoletoPending:
              type: number
              minimum: 0
            totalNumberOfCartAbandonment:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            totalValueOfCartAbandonment:
              type: number
              minimum: 0
            recovery:
              type: object
              properties:
                totalValue:
                  type: number
                  minimum: 0
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                failed:
                  type: object
                  properties:
                    value:
                      type: number
                      minimum: 0
                    count:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                  required:
                    - value
                    - count
                  additionalProperties: false
                canceled:
                  type: object
                  properties:
                    value:
                      type: number
                      minimum: 0
                    count:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                  required:
                    - value
                    - count
                  additionalProperties: false
                refunded:
                  type: object
                  properties:
                    value:
                      type: number
                      minimum: 0
                    count:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                  required:
                    - value
                    - count
                  additionalProperties: false
                pixPending:
                  type: object
                  properties:
                    value:
                      type: number
                      minimum: 0
                    count:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                  required:
                    - value
                    - count
                  additionalProperties: false
                boletoPending:
                  type: object
                  properties:
                    value:
                      type: number
                      minimum: 0
                    count:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                  required:
                    - value
                    - count
                  additionalProperties: false
                cartAbandonment:
                  type: object
                  properties:
                    value:
                      type: number
                      minimum: 0
                    count:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                  required:
                    - value
                    - count
                  additionalProperties: false
              required:
                - totalValue
                - totalItems
                - failed
                - canceled
                - refunded
                - pixPending
                - boletoPending
                - cartAbandonment
              additionalProperties: false
            canceledReasonBreakdown:
              type: array
              items:
                type: object
                properties:
                  reason:
                    type: string
                    enum:
                      - product_did_not_meet_expectations
                      - outdated_material
                      - did_not_receive_access
                      - found_cheaper_option
                      - cannot_access_content
                      - bought_by_mistake
                      - no_longer_want_product
                      - other
                      - requested_by_seller
                      - requested_by_support
                      - requested_by_finance
                  count:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                required:
                  - reason
                  - count
                additionalProperties: false
            refundedReasonBreakdown:
              type: array
              items:
                type: object
                properties:
                  reason:
                    type: string
                    enum:
                      - product_did_not_meet_expectations
                      - outdated_material
                      - did_not_receive_access
                      - found_cheaper_option
                      - cannot_access_content
                      - bought_by_mistake
                      - no_longer_want_product
                      - other
                      - requested_by_seller
                      - requested_by_support
                      - requested_by_finance
                  count:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                required:
                  - reason
                  - count
                additionalProperties: false
            failedReasonBreakdown:
              type: array
              items:
                type: object
                properties:
                  reason:
                    type: string
                  count:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  value:
                    type: number
                    minimum: 0
                required:
                  - reason
                  - count
                  - value
                additionalProperties: false
            cartAbandonmentStageBreakdown:
              type: array
              items:
                type: object
                properties:
                  stage:
                    type: string
                  count:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                required:
                  - stage
                  - count
                additionalProperties: false
            utmSourceBreakdown:
              type: array
              items:
                type: object
                properties:
                  source:
                    type: string
                  count:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                required:
                  - source
                  - count
                additionalProperties: false
            totalNumberOfSalesDay:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            totalOnSalesOfDay:
              type: number
              minimum: 0
            groupedSales:
              type: array
              items:
                type: object
                properties:
                  period:
                    type: string
                  value:
                    type: number
                    minimum: 0
                required:
                  - period
                  - value
                additionalProperties: false
          required:
            - totalSales
            - totalSalesRefunded
            - totalNumberOfSalesPaid
            - totalNumberOfSalesFailed
            - totalNumberOfSalesRefunded
            - totalNumberOfSalesCanceled
            - ticketAverage
            - totalNumberOfBuyers
            - totalNumberOfSales
            - comissions
            - totalSalesNetValue
            - totalInterestValue
            - totalValueFailed
            - totalValueCanceled
            - totalNumberOfPixPending
            - totalValuePixPending
            - totalNumberOfBoletoPending
            - totalValueBoletoPending
            - totalNumberOfCartAbandonment
            - totalValueOfCartAbandonment
            - recovery
            - canceledReasonBreakdown
            - refundedReasonBreakdown
            - failedReasonBreakdown
            - cartAbandonmentStageBreakdown
            - utmSourceBreakdown
            - totalNumberOfSalesDay
            - totalOnSalesOfDay
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    DashboardMySalesAggregationsInput:
      type: object
      properties:
        transactionId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        transactionShortenId:
          type: string
        groupBy:
          type: string
          enum:
            - day
            - month
            - year
        numberOfPurchases:
          type: object
          properties:
            min:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            max:
              type: integer
              minimum: 0
              maximum: 9007199254740991
        valueOfLastPurchase:
          type: object
          properties:
            min:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            max:
              type: integer
              minimum: 0
              maximum: 9007199254740991
        averageTicket:
          type: object
          properties:
            min:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            max:
              type: integer
              minimum: 0
              maximum: 9007199254740991
        lifeTimeValue:
          type: object
          properties:
            min:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            max:
              type: integer
              minimum: 0
              maximum: 9007199254740991
        transactionPeriod:
          type: object
          properties:
            from:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            to:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        subscriptionCreatedPeriod:
          type: object
          properties:
            from:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            to:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        productName:
          type: string
        subscriptionStatus:
          type: array
          items:
            type: string
            enum:
              - active
              - canceled
        contactStatus:
          type: string
          enum:
            - created
            - visited
            - engaged
            - subscribed
            - in_cart
            - abandoned_cart
            - purchased
            - activated
            - upgraded
            - renewed
            - churned
            - referral
            - feedback_given
        subscriptionPlan:
          type: array
          items:
            type: string
            enum:
              - "1"
              - "3"
              - "6"
              - "12"
        contactName:
          type: string
        contactEmail:
          type: string
        contactDocument:
          type: string
        contactTags:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        transactionStatus:
          type: array
          items:
            type: string
            enum:
              - canceled
              - chargedBack
              - dispute
              - failed
              - paid
              - pending
              - refunded
              - refunding
              - refund_rejected
        saleReasons:
          type: array
          items:
            type: string
        searchText:
          type: string
        externalId:
          type: string
        utmSource:
          type: array
          items:
            type: string
        utmMedium:
          type: array
          items:
            type: string
        utmCampaign:
          type: array
          items:
            type: string
        utmContent:
          type: array
          items:
            type: string
        utmTerm:
          type: array
          items:
            type: string
        src:
          type: array
          items:
            type: string
        sck:
          type: array
          items:
            type: string
        projectIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        funnelIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offerIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        orderBumpOfferIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        excludeOrderBumpOfferIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        transactionRecurrence:
          type: string
          enum:
            - OneTime
            - Recurrent
        currency:
          type: array
          items:
            type: string
            enum:
              - BRL
              - EUR
              - USD
        transactionType:
          type: array
          items:
            type: string
            enum:
              - credit
              - pix
              - boleto
              - free
        suspectedFraudOnly:
          type: boolean
        excludeSuspectedFraud:
          type: boolean
    DashboardMySalesAggregationsOutput:
      type: object
      properties:
        totalSales:
          type: number
          minimum: 0
        totalSalesRefunded:
          type: number
          minimum: 0
        totalNumberOfSalesPaid:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        totalNumberOfSalesFailed:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        totalNumberOfSalesRefunded:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        totalNumberOfSalesCanceled:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        ticketAverage:
          type: number
          minimum: 0
        totalNumberOfBuyers:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        totalNumberOfSales:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        comissions:
          type: number
          minimum: 0
        totalSalesNetValue:
          type: number
          minimum: 0
        totalInterestValue:
          type: number
          minimum: 0
        totalOrderBumps:
          type: object
          properties:
            value:
              type: number
              minimum: 0
            netValue:
              type: number
              minimum: 0
            percentage:
              type: number
              minimum: 0
              maximum: 100
          required:
            - value
            - netValue
            - percentage
          additionalProperties: false
        totalValueFailed:
          type: number
          minimum: 0
        totalValueCanceled:
          type: number
          minimum: 0
        totalNumberOfPixPending:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        totalValuePixPending:
          type: number
          minimum: 0
        totalNumberOfBoletoPending:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        totalValueBoletoPending:
          type: number
          minimum: 0
        totalNumberOfCartAbandonment:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        totalValueOfCartAbandonment:
          type: number
          minimum: 0
        recovery:
          type: object
          properties:
            totalValue:
              type: number
              minimum: 0
            totalItems:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            failed:
              type: object
              properties:
                value:
                  type: number
                  minimum: 0
                count:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
              required:
                - value
                - count
              additionalProperties: false
            canceled:
              type: object
              properties:
                value:
                  type: number
                  minimum: 0
                count:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
              required:
                - value
                - count
              additionalProperties: false
            refunded:
              type: object
              properties:
                value:
                  type: number
                  minimum: 0
                count:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
              required:
                - value
                - count
              additionalProperties: false
            pixPending:
              type: object
              properties:
                value:
                  type: number
                  minimum: 0
                count:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
              required:
                - value
                - count
              additionalProperties: false
            boletoPending:
              type: object
              properties:
                value:
                  type: number
                  minimum: 0
                count:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
              required:
                - value
                - count
              additionalProperties: false
            cartAbandonment:
              type: object
              properties:
                value:
                  type: number
                  minimum: 0
                count:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
              required:
                - value
                - count
              additionalProperties: false
          required:
            - totalValue
            - totalItems
            - failed
            - canceled
            - refunded
            - pixPending
            - boletoPending
            - cartAbandonment
          additionalProperties: false
        canceledReasonBreakdown:
          type: array
          items:
            type: object
            properties:
              reason:
                type: string
                enum:
                  - product_did_not_meet_expectations
                  - outdated_material
                  - did_not_receive_access
                  - found_cheaper_option
                  - cannot_access_content
                  - bought_by_mistake
                  - no_longer_want_product
                  - other
                  - requested_by_seller
                  - requested_by_support
                  - requested_by_finance
              count:
                type: integer
                minimum: 0
                maximum: 9007199254740991
            required:
              - reason
              - count
            additionalProperties: false
        refundedReasonBreakdown:
          type: array
          items:
            type: object
            properties:
              reason:
                type: string
                enum:
                  - product_did_not_meet_expectations
                  - outdated_material
                  - did_not_receive_access
                  - found_cheaper_option
                  - cannot_access_content
                  - bought_by_mistake
                  - no_longer_want_product
                  - other
                  - requested_by_seller
                  - requested_by_support
                  - requested_by_finance
              count:
                type: integer
                minimum: 0
                maximum: 9007199254740991
            required:
              - reason
              - count
            additionalProperties: false
        failedReasonBreakdown:
          type: array
          items:
            type: object
            properties:
              reason:
                type: string
              count:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              value:
                type: number
                minimum: 0
            required:
              - reason
              - count
              - value
            additionalProperties: false
        cartAbandonmentStageBreakdown:
          type: array
          items:
            type: object
            properties:
              stage:
                type: string
              count:
                type: integer
                minimum: 0
                maximum: 9007199254740991
            required:
              - stage
              - count
            additionalProperties: false
        utmSourceBreakdown:
          type: array
          items:
            type: object
            properties:
              source:
                type: string
              count:
                type: integer
                minimum: 0
                maximum: 9007199254740991
            required:
              - source
              - count
            additionalProperties: false
        totalNumberOfSalesDay:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        totalOnSalesOfDay:
          type: number
          minimum: 0
        groupedSales:
          type: array
          items:
            type: object
            properties:
              period:
                type: string
              value:
                type: number
                minimum: 0
            required:
              - period
              - value
            additionalProperties: false
      required:
        - totalSales
        - totalSalesRefunded
        - totalNumberOfSalesPaid
        - totalNumberOfSalesFailed
        - totalNumberOfSalesRefunded
        - totalNumberOfSalesCanceled
        - ticketAverage
        - totalNumberOfBuyers
        - totalNumberOfSales
        - comissions
        - totalSalesNetValue
        - totalInterestValue
        - totalValueFailed
        - totalValueCanceled
        - totalNumberOfPixPending
        - totalValuePixPending
        - totalNumberOfBoletoPending
        - totalValueBoletoPending
        - totalNumberOfCartAbandonment
        - totalValueOfCartAbandonment
        - recovery
        - canceledReasonBreakdown
        - refundedReasonBreakdown
        - failedReasonBreakdown
        - cartAbandonmentStageBreakdown
        - utmSourceBreakdown
        - totalNumberOfSalesDay
        - totalOnSalesOfDay
      additionalProperties: false
    DashboardExternalSalesInput:
      type: object
      properties:
        page:
          default: 1
          type: number
          minimum: 1
        perPage:
          default: 10
          type: number
          minimum: 1
          maximum: 2000
        orderByMode:
          type: string
          enum:
            - asc
            - desc
        orderBy:
          default: createdAt
          type: string
          enum:
            - value
            - createdAt
            - updatedAt
            - productName
            - method
            - leadName
            - installments
            - gatewayOrigin
            - offerCode
        searchText:
          type: string
        saleId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        numberOfPurchases:
          type: object
          properties:
            min:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            max:
              type: integer
              minimum: 0
              maximum: 9007199254740991
        valueOfLastPurchase:
          type: object
          properties:
            min:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            max:
              type: integer
              minimum: 0
              maximum: 9007199254740991
        averageTicket:
          type: object
          properties:
            min:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            max:
              type: integer
              minimum: 0
              maximum: 9007199254740991
        lifeTimeValue:
          type: object
          properties:
            min:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            max:
              type: integer
              minimum: 0
              maximum: 9007199254740991
        transactionPeriod:
          type: object
          properties:
            from:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            to:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        contactStatus:
          type: string
          enum:
            - created
            - visited
            - engaged
            - subscribed
            - in_cart
            - abandoned_cart
            - purchased
            - activated
            - upgraded
            - renewed
            - churned
            - referral
            - feedback_given
        contactName:
          type: string
        contactEmail:
          type: string
        contactDocument:
          type: string
        contactTags:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        utmSource:
          type: array
          items:
            type: string
        utmMedium:
          type: array
          items:
            type: string
        utmCampaign:
          type: array
          items:
            type: string
        utmContent:
          type: array
          items:
            type: string
        utmTerm:
          type: array
          items:
            type: string
        src:
          type: array
          items:
            type: string
        sck:
          type: array
          items:
            type: string
        productName:
          type: string
        offerCode:
          type: string
        externalId:
          type: string
        externalPageUrl:
          type: string
        gatewayOrigin:
          type: string
        installments:
          type: integer
          minimum: 1
          maximum: 9007199254740991
        couponCode:
          type: string
        method:
          type: array
          items:
            type: string
            enum:
              - pix
              - boleto
              - credit
        status:
          type: array
          items:
            type: string
            enum:
              - paid
              - refunded
              - chargeback
              - failed
              - canceled
              - pending
        saleCurrency:
          type: string
          enum:
            - AED
            - ALL
            - AMD
            - APE
            - ARS
            - AUD
            - AWG
            - BAM
            - BGN
            - BHD
            - BOB
            - BRL
            - BSD
            - BTC
            - CAD
            - CHF
            - CLP
            - CNY
            - COP
            - CRC
            - CZK
            - DKK
            - DOP
            - DZD
            - EGP
            - ETB
            - ETH
            - EUR
            - GBP
            - GHS
            - GMD
            - GTQ
            - GYD
            - HKD
            - HUF
            - IDR
            - ILS
            - INR
            - JMD
            - JOD
            - JPY
            - KES
            - KHR
            - KRW
            - KWD
            - KZT
            - LKR
            - MAD
            - MDL
            - MGA
            - MKD
            - MNT
            - MOP
            - MUR
            - MXN
            - MYR
            - NAD
            - NGN
            - NOK
            - NZD
            - OMR
            - PEN
            - PHP
            - PKR
            - PLN
            - PYG
            - QAR
            - RON
            - RSD
            - RUB
            - RWF
            - SAR
            - SEK
            - SGD
            - THB
            - TND
            - TRY
            - TTD
            - TWD
            - TZS
            - USD
            - USDT
            - UYU
            - UZS
            - VND
            - WHOP_USD
            - XAU
            - XCD
            - XOF
            - ZAR
    DashboardExternalSalesOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              shortenId:
                type: string
              value:
                anyOf:
                  - type: number
                  - type: "null"
              productId:
                anyOf:
                  - type: string
                  - type: "null"
              productName:
                anyOf:
                  - type: string
                  - type: "null"
              offerCode:
                anyOf:
                  - type: string
                  - type: "null"
              externalId:
                anyOf:
                  - type: string
                  - type: "null"
              externalPageUrl:
                anyOf:
                  - type: string
                  - type: "null"
              gatewayOrigin:
                anyOf:
                  - type: string
                  - type: "null"
              installments:
                anyOf:
                  - type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  - type: "null"
              couponCode:
                anyOf:
                  - type: string
                  - type: "null"
              method:
                anyOf:
                  - anyOf:
                      - type: string
                        const: pix
                      - type: string
                        const: boleto
                      - type: string
                        const: credit
                      - type: "null"
                        const: null
                  - type: "null"
              status:
                type: string
                enum:
                  - paid
                  - refunded
                  - chargeback
                  - failed
                  - canceled
                  - pending
              currency:
                anyOf:
                  - anyOf:
                      - type: string
                        const: AED
                      - type: string
                        const: ALL
                      - type: string
                        const: AMD
                      - type: string
                        const: APE
                      - type: string
                        const: ARS
                      - type: string
                        const: AUD
                      - type: string
                        const: AWG
                      - type: string
                        const: BAM
                      - type: string
                        const: BGN
                      - type: string
                        const: BHD
                      - type: string
                        const: BOB
                      - type: string
                        const: BRL
                      - type: string
                        const: BSD
                      - type: string
                        const: BTC
                      - type: string
                        const: CAD
                      - type: string
                        const: CHF
                      - type: string
                        const: CLP
                      - type: string
                        const: CNY
                      - type: string
                        const: COP
                      - type: string
                        const: CRC
                      - type: string
                        const: CZK
                      - type: string
                        const: DKK
                      - type: string
                        const: DOP
                      - type: string
                        const: DZD
                      - type: string
                        const: EGP
                      - type: string
                        const: ETB
                      - type: string
                        const: ETH
                      - type: string
                        const: EUR
                      - type: string
                        const: GBP
                      - type: string
                        const: GHS
                      - type: string
                        const: GMD
                      - type: string
                        const: GTQ
                      - type: string
                        const: GYD
                      - type: string
                        const: HKD
                      - type: string
                        const: HUF
                      - type: string
                        const: IDR
                      - type: string
                        const: ILS
                      - type: string
                        const: INR
                      - type: string
                        const: JMD
                      - type: string
                        const: JOD
                      - type: string
                        const: JPY
                      - type: string
                        const: KES
                      - type: string
                        const: KHR
                      - type: string
                        const: KRW
                      - type: string
                        const: KWD
                      - type: string
                        const: KZT
                      - type: string
                        const: LKR
                      - type: string
                        const: MAD
                      - type: string
                        const: MDL
                      - type: string
                        const: MGA
                      - type: string
                        const: MKD
                      - type: string
                        const: MNT
                      - type: string
                        const: MOP
                      - type: string
                        const: MUR
                      - type: string
                        const: MXN
                      - type: string
                        const: MYR
                      - type: string
                        const: NAD
                      - type: string
                        const: NGN
                      - type: string
                        const: NOK
                      - type: string
                        const: NZD
                      - type: string
                        const: OMR
                      - type: string
                        const: PEN
                      - type: string
                        const: PHP
                      - type: string
                        const: PKR
                      - type: string
                        const: PLN
                      - type: string
                        const: PYG
                      - type: string
                        const: QAR
                      - type: string
                        const: RON
                      - type: string
                        const: RSD
                      - type: string
                        const: RUB
                      - type: string
                        const: RWF
                      - type: string
                        const: SAR
                      - type: string
                        const: SEK
                      - type: string
                        const: SGD
                      - type: string
                        const: THB
                      - type: string
                        const: TND
                      - type: string
                        const: TRY
                      - type: string
                        const: TTD
                      - type: string
                        const: TWD
                      - type: string
                        const: TZS
                      - type: string
                        const: USD
                      - type: string
                        const: USDT
                      - type: string
                        const: UYU
                      - type: string
                        const: UZS
                      - type: string
                        const: VND
                      - type: string
                        const: WHOP_USD
                      - type: string
                        const: XAU
                      - type: string
                        const: XCD
                      - type: string
                        const: XOF
                      - type: string
                        const: ZAR
                      - type: "null"
                        const: null
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              orderBumps:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                  required:
                    - id
                    - name
                  additionalProperties: false
              page:
                type: object
                properties:
                  id:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  name:
                    anyOf:
                      - type: string
                      - type: "null"
                additionalProperties: false
              lead:
                type: object
                properties:
                  id:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  name:
                    anyOf:
                      - type: string
                      - type: "null"
                  email:
                    anyOf:
                      - type: string
                        minLength: 5
                        maxLength: 255
                        format: email
                        pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                      - type: "null"
                  status:
                    anyOf:
                      - anyOf:
                          - type: string
                            const: created
                          - type: string
                            const: visited
                          - type: string
                            const: engaged
                          - type: string
                            const: subscribed
                          - type: string
                            const: in_cart
                          - type: string
                            const: abandoned_cart
                          - type: string
                            const: purchased
                          - type: string
                            const: activated
                          - type: string
                            const: upgraded
                          - type: string
                            const: renewed
                          - type: string
                            const: churned
                          - type: string
                            const: referral
                          - type: string
                            const: feedback_given
                          - type: "null"
                            const: null
                      - type: "null"
                  origin:
                    anyOf:
                      - anyOf:
                          - type: string
                            const: Clickfunnels
                          - type: string
                            const: CxAffiliates
                          - type: string
                            const: CxCalendar
                          - type: string
                            const: CxClients
                          - type: string
                            const: CxClone
                          - type: string
                            const: CxClub
                          - type: string
                            const: CxDomains
                          - type: string
                            const: CxFlows
                          - type: string
                            const: CxForms
                          - type: string
                            const: CxFunnels
                          - type: string
                            const: CxExternalPages
                          - type: string
                            const: CxWebchat
                          - type: string
                            const: CxWebinar
                          - type: string
                            const: CxInsights
                          - type: string
                            const: CxLinkProtect
                          - type: string
                            const: CxPages
                          - type: string
                            const: CxPay
                          - type: string
                            const: CxProducts
                          - type: string
                            const: CxQuizzes
                          - type: string
                            const: CxSend
                          - type: string
                            const: CxSplit
                          - type: string
                            const: CxStore
                          - type: string
                            const: CxTags
                          - type: string
                            const: CxTemplates
                          - type: string
                            const: CxTracking
                          - type: string
                            const: CxWallet
                          - type: string
                            const: CxWhatsappContacts
                          - type: string
                            const: Framer
                          - type: string
                            const: HotmartPages
                          - type: string
                            const: Integrations
                          - type: string
                            const: Kirvano
                          - type: string
                            const: Mailchimp
                          - type: string
                            const: Webflow
                          - type: string
                            const: Wix
                          - type: string
                            const: Wordpress
                          - type: "null"
                            const: null
                      - type: "null"
                additionalProperties: false
            required:
              - id
              - shortenId
              - status
              - createdAt
              - updatedAt
              - orderBumps
              - page
              - lead
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
        aggregations:
          type: object
          properties:
            totalRevenue:
              type: number
            totalNumberOfBuyers:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            averageTicketPerBuyer:
              type: number
            totalSales:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            currency:
              anyOf:
                - anyOf:
                    - type: string
                      const: AED
                    - type: string
                      const: ALL
                    - type: string
                      const: AMD
                    - type: string
                      const: APE
                    - type: string
                      const: ARS
                    - type: string
                      const: AUD
                    - type: string
                      const: AWG
                    - type: string
                      const: BAM
                    - type: string
                      const: BGN
                    - type: string
                      const: BHD
                    - type: string
                      const: BOB
                    - type: string
                      const: BRL
                    - type: string
                      const: BSD
                    - type: string
                      const: BTC
                    - type: string
                      const: CAD
                    - type: string
                      const: CHF
                    - type: string
                      const: CLP
                    - type: string
                      const: CNY
                    - type: string
                      const: COP
                    - type: string
                      const: CRC
                    - type: string
                      const: CZK
                    - type: string
                      const: DKK
                    - type: string
                      const: DOP
                    - type: string
                      const: DZD
                    - type: string
                      const: EGP
                    - type: string
                      const: ETB
                    - type: string
                      const: ETH
                    - type: string
                      const: EUR
                    - type: string
                      const: GBP
                    - type: string
                      const: GHS
                    - type: string
                      const: GMD
                    - type: string
                      const: GTQ
                    - type: string
                      const: GYD
                    - type: string
                      const: HKD
                    - type: string
                      const: HUF
                    - type: string
                      const: IDR
                    - type: string
                      const: ILS
                    - type: string
                      const: INR
                    - type: string
                      const: JMD
                    - type: string
                      const: JOD
                    - type: string
                      const: JPY
                    - type: string
                      const: KES
                    - type: string
                      const: KHR
                    - type: string
                      const: KRW
                    - type: string
                      const: KWD
                    - type: string
                      const: KZT
                    - type: string
                      const: LKR
                    - type: string
                      const: MAD
                    - type: string
                      const: MDL
                    - type: string
                      const: MGA
                    - type: string
                      const: MKD
                    - type: string
                      const: MNT
                    - type: string
                      const: MOP
                    - type: string
                      const: MUR
                    - type: string
                      const: MXN
                    - type: string
                      const: MYR
                    - type: string
                      const: NAD
                    - type: string
                      const: NGN
                    - type: string
                      const: NOK
                    - type: string
                      const: NZD
                    - type: string
                      const: OMR
                    - type: string
                      const: PEN
                    - type: string
                      const: PHP
                    - type: string
                      const: PKR
                    - type: string
                      const: PLN
                    - type: string
                      const: PYG
                    - type: string
                      const: QAR
                    - type: string
                      const: RON
                    - type: string
                      const: RSD
                    - type: string
                      const: RUB
                    - type: string
                      const: RWF
                    - type: string
                      const: SAR
                    - type: string
                      const: SEK
                    - type: string
                      const: SGD
                    - type: string
                      const: THB
                    - type: string
                      const: TND
                    - type: string
                      const: TRY
                    - type: string
                      const: TTD
                    - type: string
                      const: TWD
                    - type: string
                      const: TZS
                    - type: string
                      const: USD
                    - type: string
                      const: USDT
                    - type: string
                      const: UYU
                    - type: string
                      const: UZS
                    - type: string
                      const: VND
                    - type: string
                      const: WHOP_USD
                    - type: string
                      const: XAU
                    - type: string
                      const: XCD
                    - type: string
                      const: XOF
                    - type: string
                      const: ZAR
                    - type: "null"
                      const: null
                - type: "null"
            revenueByCurrency:
              type: array
              items:
                type: object
                properties:
                  currency:
                    type: string
                    enum:
                      - AED
                      - ALL
                      - AMD
                      - APE
                      - ARS
                      - AUD
                      - AWG
                      - BAM
                      - BGN
                      - BHD
                      - BOB
                      - BRL
                      - BSD
                      - BTC
                      - CAD
                      - CHF
                      - CLP
                      - CNY
                      - COP
                      - CRC
                      - CZK
                      - DKK
                      - DOP
                      - DZD
                      - EGP
                      - ETB
                      - ETH
                      - EUR
                      - GBP
                      - GHS
                      - GMD
                      - GTQ
                      - GYD
                      - HKD
                      - HUF
                      - IDR
                      - ILS
                      - INR
                      - JMD
                      - JOD
                      - JPY
                      - KES
                      - KHR
                      - KRW
                      - KWD
                      - KZT
                      - LKR
                      - MAD
                      - MDL
                      - MGA
                      - MKD
                      - MNT
                      - MOP
                      - MUR
                      - MXN
                      - MYR
                      - NAD
                      - NGN
                      - NOK
                      - NZD
                      - OMR
                      - PEN
                      - PHP
                      - PKR
                      - PLN
                      - PYG
                      - QAR
                      - RON
                      - RSD
                      - RUB
                      - RWF
                      - SAR
                      - SEK
                      - SGD
                      - THB
                      - TND
                      - TRY
                      - TTD
                      - TWD
                      - TZS
                      - USD
                      - USDT
                      - UYU
                      - UZS
                      - VND
                      - WHOP_USD
                      - XAU
                      - XCD
                      - XOF
                      - ZAR
                  revenue:
                    type: number
                  sales:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                required:
                  - currency
                  - revenue
                  - sales
                additionalProperties: false
            channelAggregations:
              type: array
              items:
                type: object
                properties:
                  gateway:
                    type: string
                  buyers:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  revenue:
                    type: number
                required:
                  - gateway
                  - buyers
                  - revenue
                additionalProperties: false
          required:
            - totalRevenue
            - totalNumberOfBuyers
            - averageTicketPerBuyer
            - totalSales
            - revenueByCurrency
            - channelAggregations
          additionalProperties: false
      required:
        - data
        - meta
        - aggregations
      additionalProperties: false
    DashboardExternalSalesChartInput:
      type: object
      properties:
        defaults:
          type: object
          properties:
            from:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            to:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            period:
              type: string
              enum:
                - daily
                - weekly
                - monthly
          required:
            - from
            - to
            - period
        filters:
          type: object
          properties:
            page:
              default: 1
              type: number
              minimum: 1
            perPage:
              default: 10
              type: number
              minimum: 1
              maximum: 2000
            orderByMode:
              type: string
              enum:
                - asc
                - desc
            orderBy:
              default: createdAt
              type: string
              enum:
                - value
                - createdAt
                - updatedAt
                - productName
                - method
                - leadName
                - installments
                - gatewayOrigin
                - offerCode
            searchText:
              type: string
            saleId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            numberOfPurchases:
              type: object
              properties:
                min:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                max:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
            valueOfLastPurchase:
              type: object
              properties:
                min:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                max:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
            averageTicket:
              type: object
              properties:
                min:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                max:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
            lifeTimeValue:
              type: object
              properties:
                min:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                max:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
            transactionPeriod:
              type: object
              properties:
                from:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                to:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            contactStatus:
              type: string
              enum:
                - created
                - visited
                - engaged
                - subscribed
                - in_cart
                - abandoned_cart
                - purchased
                - activated
                - upgraded
                - renewed
                - churned
                - referral
                - feedback_given
            contactName:
              type: string
            contactEmail:
              type: string
            contactDocument:
              type: string
            contactTags:
              type: array
              items:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            utmSource:
              type: array
              items:
                type: string
            utmMedium:
              type: array
              items:
                type: string
            utmCampaign:
              type: array
              items:
                type: string
            utmContent:
              type: array
              items:
                type: string
            utmTerm:
              type: array
              items:
                type: string
            src:
              type: array
              items:
                type: string
            sck:
              type: array
              items:
                type: string
            productName:
              type: string
            offerCode:
              type: string
            externalId:
              type: string
            externalPageUrl:
              type: string
            gatewayOrigin:
              type: string
            installments:
              type: integer
              minimum: 1
              maximum: 9007199254740991
            couponCode:
              type: string
            method:
              type: array
              items:
                type: string
                enum:
                  - pix
                  - boleto
                  - credit
            status:
              type: array
              items:
                type: string
                enum:
                  - paid
                  - refunded
                  - chargeback
                  - failed
                  - canceled
                  - pending
            saleCurrency:
              type: string
              enum:
                - AED
                - ALL
                - AMD
                - APE
                - ARS
                - AUD
                - AWG
                - BAM
                - BGN
                - BHD
                - BOB
                - BRL
                - BSD
                - BTC
                - CAD
                - CHF
                - CLP
                - CNY
                - COP
                - CRC
                - CZK
                - DKK
                - DOP
                - DZD
                - EGP
                - ETB
                - ETH
                - EUR
                - GBP
                - GHS
                - GMD
                - GTQ
                - GYD
                - HKD
                - HUF
                - IDR
                - ILS
                - INR
                - JMD
                - JOD
                - JPY
                - KES
                - KHR
                - KRW
                - KWD
                - KZT
                - LKR
                - MAD
                - MDL
                - MGA
                - MKD
                - MNT
                - MOP
                - MUR
                - MXN
                - MYR
                - NAD
                - NGN
                - NOK
                - NZD
                - OMR
                - PEN
                - PHP
                - PKR
                - PLN
                - PYG
                - QAR
                - RON
                - RSD
                - RUB
                - RWF
                - SAR
                - SEK
                - SGD
                - THB
                - TND
                - TRY
                - TTD
                - TWD
                - TZS
                - USD
                - USDT
                - UYU
                - UZS
                - VND
                - WHOP_USD
                - XAU
                - XCD
                - XOF
                - ZAR
      required:
        - defaults
        - filters
    DashboardExternalSalesChartOutput:
      type: object
      properties:
        purchasesData:
          type: array
          items:
            type: object
            properties:
              purchases:
                type: number
              period:
                type: string
              label:
                type: string
            required:
              - purchases
              - period
              - label
            additionalProperties: false
        revenueData:
          type: array
          items:
            type: object
            properties:
              revenue:
                type: number
              period:
                type: string
              label:
                type: string
            required:
              - revenue
              - period
              - label
            additionalProperties: false
      required:
        - purchasesData
        - revenueData
      additionalProperties: false
    InsightsTopOffersInput:
      type: object
      properties:
        transactionPeriod:
          type: object
          properties:
            from:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            to:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        projectIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offerIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        groupBy:
          type: string
          enum:
            - offer
            - product
        limit:
          type: integer
          minimum: 1
          maximum: 100
    InsightsTopOffersOutput:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            properties:
              offerId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              offerName:
                anyOf:
                  - type: string
                  - type: "null"
              productId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              productName:
                anyOf:
                  - type: string
                  - type: "null"
              revenue:
                type: number
                minimum: 0
              quantity:
                type: integer
                minimum: 0
                maximum: 9007199254740991
            required:
              - revenue
              - quantity
            additionalProperties: false
        totalRevenue:
          type: number
          minimum: 0
        totalQuantity:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        groupBy:
          type: string
          enum:
            - offer
            - product
      required:
        - items
        - totalRevenue
        - totalQuantity
        - groupBy
      additionalProperties: false
    InsightsOrderBumpAttachInput:
      type: object
      properties:
        transactionPeriod:
          type: object
          properties:
            from:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            to:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        projectIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offerIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
    InsightsOrderBumpAttachOutput:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            properties:
              orderBumpOfferId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              orderBumpName:
                anyOf:
                  - type: string
                  - type: "null"
              mainOfferId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              mainOfferName:
                anyOf:
                  - type: string
                  - type: "null"
              attached:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              eligible:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              attachRate:
                type: number
                minimum: 0
                maximum: 100
              revenue:
                type: number
                minimum: 0
            required:
              - orderBumpOfferId
              - attached
              - eligible
              - attachRate
              - revenue
            additionalProperties: false
      required:
        - items
      additionalProperties: false
    InsightsTrendInput:
      type: object
      properties:
        transactionPeriod:
          type: object
          properties:
            from:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            to:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        projectIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offerIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
    InsightsTrendOutput:
      type: object
      properties:
        revenue:
          type: object
          properties:
            current:
              type: number
            previous:
              type: number
            difference:
              type: number
            percentage:
              type: number
          required:
            - current
            - previous
            - difference
            - percentage
          additionalProperties: false
        averageTicket:
          type: object
          properties:
            current:
              type: number
            previous:
              type: number
            difference:
              type: number
            percentage:
              type: number
          required:
            - current
            - previous
            - difference
            - percentage
          additionalProperties: false
        salesCount:
          type: object
          properties:
            current:
              type: number
            previous:
              type: number
            difference:
              type: number
            percentage:
              type: number
          required:
            - current
            - previous
            - difference
            - percentage
          additionalProperties: false
        period:
          type: object
          properties:
            from:
              type: string
            to:
              type: string
            previousFrom:
              type: string
            previousTo:
              type: string
          required:
            - from
            - to
            - previousFrom
            - previousTo
          additionalProperties: false
      required:
        - revenue
        - averageTicket
        - salesCount
        - period
      additionalProperties: false
    PlansUpgradeListOutput:
      type: object
      properties:
        highestAnnualDiscountPercentage:
          type: number
        plans:
          type: array
          items:
            type: object
            properties:
              offerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              description:
                anyOf:
                  - type: string
                    maxLength: 1000
                  - type: "null"
              hash:
                type: string
              tier:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              recurrence:
                type: string
                enum:
                  - lifetime
                  - monthly
                  - yearly
              price:
                type: number
              pricePerMonth:
                type: number
              isFree:
                type: boolean
              isSubscribed:
                type: boolean
              metrics:
                type: array
                items:
                  type: object
                  properties:
                    metric:
                      type: string
                      enum:
                        - projects
                        - funnels
                        - pages
                        - ab_tests
                        - quizzes
                        - leads
                        - products
                        - custom_domains
                        - bandwidth
                        - clickmax_branding
                        - custom_checkout
                        - members_area
                        - community
                        - member_calendars
                        - transaction_rate
                        - instagram_sending
                        - whatsapp_sending
                        - email_sending
                        - sms_sending
                        - calls_sending
                        - voice_minutes
                        - automation_triggers
                        - meet_minutes
                        - meet_session_max_minutes
                        - credits
                        - workspaces
                        - admins
                        - seats
                        - account_manager
                    kind:
                      anyOf:
                        - anyOf:
                            - type: string
                              const: quantity
                            - type: string
                              const: availability
                            - type: "null"
                              const: null
                        - type: "null"
                    limit:
                      anyOf:
                        - type: number
                        - type: "null"
                    isUnlimited:
                      anyOf:
                        - type: boolean
                        - type: "null"
                  required:
                    - metric
                  additionalProperties: false
            required:
              - offerId
              - name
              - hash
              - tier
              - recurrence
              - price
              - pricePerMonth
              - isFree
              - isSubscribed
              - metrics
            additionalProperties: false
      required:
        - highestAnnualDiscountPercentage
        - plans
      additionalProperties: false
    PlansUserSummaryOutput:
      type: object
      properties:
        plan:
          type: object
          properties:
            subscriptionId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            subscriptionStatus:
              type: string
              enum:
                - active
                - payment_expired
                - payment_failed
                - waiting_till_deactivation
                - deactivated
            planName:
              type: string
            isFree:
              type: boolean
            planRecurrence:
              anyOf:
                - type: string
                - type: "null"
            subscriptionPrice:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            deactivatedAt:
              anyOf:
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                - type: "null"
            lastBillingType:
              anyOf:
                - anyOf:
                    - type: string
                      const: credit
                    - type: string
                      const: pix
                    - type: string
                      const: boleto
                    - type: string
                      const: free
                    - type: "null"
                      const: null
                - type: "null"
            billing_boleto:
              type: object
              properties:
                nextChargeAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    - type: "null"
                timeToNextCharge:
                  anyOf:
                    - type: object
                      properties:
                        value:
                          type: number
                        unit:
                          type: string
                      required:
                        - value
                        - unit
                      additionalProperties: false
                    - type: "null"
                allowPayNow:
                  type: boolean
              required:
                - allowPayNow
              additionalProperties: false
            billing_pix:
              type: object
              properties:
                nextChargeAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    - type: "null"
                timeToNextCharge:
                  anyOf:
                    - type: object
                      properties:
                        value:
                          type: number
                        unit:
                          type: string
                      required:
                        - value
                        - unit
                      additionalProperties: false
                    - type: "null"
                allowPayNow:
                  type: boolean
              required:
                - allowPayNow
              additionalProperties: false
            billing_credit:
              type: object
              properties:
                cardBrand:
                  anyOf:
                    - type: string
                    - type: "null"
                cardLastDigits:
                  anyOf:
                    - type: string
                      minLength: 2
                      maxLength: 6
                      pattern: ^[0-9]{2,6}$
                    - type: "null"
                nextChargeAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    - type: "null"
                timeToNextCharge:
                  anyOf:
                    - type: object
                      properties:
                        value:
                          type: number
                        unit:
                          type: string
                      required:
                        - value
                        - unit
                      additionalProperties: false
                    - type: "null"
                retries:
                  type: object
                  properties:
                    attempts:
                      type: number
                    nextRetryAt:
                      anyOf:
                        - type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        - type: "null"
                    retryDeadlineAt:
                      anyOf:
                        - type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        - type: "null"
                  required:
                    - attempts
                  additionalProperties: false
                allowPayNow:
                  type: boolean
              required:
                - allowPayNow
              additionalProperties: false
          required:
            - subscriptionId
            - subscriptionStatus
            - planName
            - isFree
            - subscriptionPrice
          additionalProperties: false
        metrics:
          type: array
          items:
            type: object
            properties:
              metric:
                type: string
                enum:
                  - projects
                  - funnels
                  - pages
                  - ab_tests
                  - quizzes
                  - leads
                  - products
                  - custom_domains
                  - bandwidth
                  - clickmax_branding
                  - custom_checkout
                  - members_area
                  - community
                  - member_calendars
                  - transaction_rate
                  - instagram_sending
                  - whatsapp_sending
                  - email_sending
                  - sms_sending
                  - calls_sending
                  - voice_minutes
                  - automation_triggers
                  - meet_minutes
                  - meet_session_max_minutes
                  - credits
                  - workspaces
                  - admins
                  - seats
                  - account_manager
              kind:
                anyOf:
                  - anyOf:
                      - type: string
                        const: quantity
                      - type: string
                        const: availability
                      - type: "null"
                        const: null
                  - type: "null"
              used:
                anyOf:
                  - type: number
                  - type: "null"
              limit:
                anyOf:
                  - type: number
                  - type: "null"
              extraLimit:
                type: number
              remaining:
                anyOf:
                  - type: number
                  - type: "null"
              usedPercentage:
                anyOf:
                  - type: number
                  - type: "null"
              from:
                type: object
                properties:
                  plan:
                    anyOf:
                      - type: object
                        properties:
                          limit:
                            anyOf:
                              - type: number
                              - type: "null"
                        additionalProperties: false
                      - type: "null"
                  addon:
                    anyOf:
                      - type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          name:
                            type: string
                          limit:
                            anyOf:
                              - type: integer
                                minimum: 0
                                maximum: 9007199254740991
                              - type: "null"
                          price:
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                        required:
                          - id
                          - name
                          - price
                        additionalProperties: false
                      - type: "null"
                additionalProperties: false
            required:
              - metric
              - extraLimit
              - from
            additionalProperties: false
      required:
        - plan
        - metrics
      additionalProperties: false
    PlansUserMetricsOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              metric:
                type: string
                enum:
                  - projects
                  - funnels
                  - pages
                  - ab_tests
                  - quizzes
                  - leads
                  - products
                  - custom_domains
                  - bandwidth
                  - clickmax_branding
                  - custom_checkout
                  - members_area
                  - community
                  - member_calendars
                  - transaction_rate
                  - instagram_sending
                  - whatsapp_sending
                  - email_sending
                  - sms_sending
                  - calls_sending
                  - voice_minutes
                  - automation_triggers
                  - meet_minutes
                  - meet_session_max_minutes
                  - credits
                  - workspaces
                  - admins
                  - seats
                  - account_manager
              kind:
                anyOf:
                  - anyOf:
                      - type: string
                        const: quantity
                      - type: string
                        const: availability
                      - type: "null"
                        const: null
                  - type: "null"
              used:
                anyOf:
                  - type: number
                  - type: "null"
              limit:
                anyOf:
                  - type: number
                  - type: "null"
              extraLimit:
                type: number
              remaining:
                anyOf:
                  - type: number
                  - type: "null"
              usedPercentage:
                anyOf:
                  - type: number
                  - type: "null"
              from:
                type: object
                properties:
                  plan:
                    anyOf:
                      - type: object
                        properties:
                          limit:
                            anyOf:
                              - type: number
                              - type: "null"
                        additionalProperties: false
                      - type: "null"
                  addon:
                    anyOf:
                      - type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          name:
                            type: string
                          limit:
                            anyOf:
                              - type: integer
                                minimum: 0
                                maximum: 9007199254740991
                              - type: "null"
                          price:
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                        required:
                          - id
                          - name
                          - price
                        additionalProperties: false
                      - type: "null"
                additionalProperties: false
            required:
              - metric
              - extraLimit
              - from
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    PlansInvoiceSummaryOutput:
      type: object
      properties:
        plan:
          type: object
          properties:
            name:
              type: string
            price:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            nextChargeAt:
              anyOf:
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                - type: "null"
            pixEnabled:
              type: boolean
            offerId:
              anyOf:
                - type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                - type: "null"
          required:
            - name
            - price
            - pixEnabled
          additionalProperties: false
        addons:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              isAddon:
                type: boolean
              name:
                type: string
              price:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              metric:
                type: string
                enum:
                  - projects
                  - funnels
                  - pages
                  - ab_tests
                  - quizzes
                  - leads
                  - products
                  - custom_domains
                  - bandwidth
                  - clickmax_branding
                  - custom_checkout
                  - members_area
                  - community
                  - member_calendars
                  - transaction_rate
                  - instagram_sending
                  - whatsapp_sending
                  - email_sending
                  - sms_sending
                  - calls_sending
                  - voice_minutes
                  - automation_triggers
                  - meet_minutes
                  - meet_session_max_minutes
                  - credits
                  - workspaces
                  - admins
                  - seats
                  - account_manager
              nextChargeAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - id
              - isAddon
              - name
              - price
              - metric
            additionalProperties: false
        total:
          type: object
          properties:
            price:
              type: number
          required:
            - price
          additionalProperties: false
      required:
        - plan
        - addons
        - total
      additionalProperties: false
    PlansTransactionHistoryOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              code:
                type: string
              chargedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              chargedAmount:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              paymentMethod:
                type: string
                enum:
                  - credit
                  - pix
                  - boleto
                  - free
              paymentStatus:
                type: string
              plan:
                type: object
                properties:
                  name:
                    type: string
                required:
                  - name
                additionalProperties: false
              orderDetails:
                type: array
                items:
                  type: object
                  properties:
                    isPurchase:
                      type: boolean
                    isAddon:
                      type: boolean
                    name:
                      type: string
                    metric:
                      anyOf:
                        - anyOf:
                            - type: string
                              const: projects
                            - type: string
                              const: funnels
                            - type: string
                              const: pages
                            - type: string
                              const: ab_tests
                            - type: string
                              const: quizzes
                            - type: string
                              const: leads
                            - type: string
                              const: products
                            - type: string
                              const: custom_domains
                            - type: string
                              const: bandwidth
                            - type: string
                              const: clickmax_branding
                            - type: string
                              const: custom_checkout
                            - type: string
                              const: members_area
                            - type: string
                              const: community
                            - type: string
                              const: member_calendars
                            - type: string
                              const: transaction_rate
                            - type: string
                              const: instagram_sending
                            - type: string
                              const: whatsapp_sending
                            - type: string
                              const: email_sending
                            - type: string
                              const: sms_sending
                            - type: string
                              const: calls_sending
                            - type: string
                              const: voice_minutes
                            - type: string
                              const: automation_triggers
                            - type: string
                              const: meet_minutes
                            - type: string
                              const: meet_session_max_minutes
                            - type: string
                              const: credits
                            - type: string
                              const: workspaces
                            - type: string
                              const: admins
                            - type: string
                              const: seats
                            - type: string
                              const: account_manager
                            - type: "null"
                              const: null
                        - type: "null"
                    chargedAmount:
                      type: number
                  required:
                    - isPurchase
                    - isAddon
                    - name
                    - chargedAmount
                  additionalProperties: false
            required:
              - id
              - code
              - chargedAt
              - chargedAmount
              - paymentMethod
              - paymentStatus
              - plan
              - orderDetails
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    PlansPendingChangesOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              subscriptionId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              type:
                type: string
                enum:
                  - Pause
                  - Cancel
              status:
                type: string
                enum:
                  - pending
                  - waitingTillExpiration
                  - paused
                  - failed
                  - canceled
              reason:
                anyOf:
                  - type: string
                  - type: "null"
              scheduledExpirationDate:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              canceledAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              failedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              pausedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              errorMessage:
                anyOf:
                  - type: string
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - ownerId
              - subscriptionId
              - type
              - status
              - createdAt
              - updatedAt
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    PlansCancelPreviewOutput:
      type: object
      properties:
        leadsCount:
          type: number
        domainsCount:
          type: number
        funnelsCount:
          type: number
        projectsCount:
          type: number
        pagesCount:
          type: number
        flowsCount:
          type: number
      required:
        - leadsCount
        - domainsCount
        - funnelsCount
        - projectsCount
        - pagesCount
        - flowsCount
      additionalProperties: false
    PlansCancelCurrentPlanInput:
      type: object
      properties:
        reason:
          type: string
          enum:
            - unmet_expectations
            - switched_tool
            - complexity
            - frequent_issues
            - price
            - lack_of_support
            - temporary_pause
            - other
        reasonDescription:
          type: string
          maxLength: 2000
        type:
          type: string
          enum:
            - cancel_subscription
            - cancel_and_delete_account
      required:
        - reason
    PlansCancelCurrentPlanOutput:
      type: object
      properties:
        requestId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        scheduledFor:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        windowShortened:
          type: boolean
        executedImmediately:
          type: boolean
        type:
          type: string
          enum:
            - cancel_subscription
            - cancel_and_delete_account
      required:
        - requestId
        - scheduledFor
        - windowShortened
        - executedImmediately
        - type
      additionalProperties: false
    RecoveryRecoverableRevenueInput:
      type: object
      properties:
        transactionPeriod:
          type: object
          properties:
            from:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            to:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        projectIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offerIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
    RecoveryRecoverableRevenueOutput:
      type: object
      properties:
        recovery:
          type: object
          properties:
            totalValue:
              type: number
              minimum: 0
            totalItems:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            failed:
              type: object
              properties:
                value:
                  type: number
                  minimum: 0
                count:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
              required:
                - value
                - count
              additionalProperties: false
            canceled:
              type: object
              properties:
                value:
                  type: number
                  minimum: 0
                count:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
              required:
                - value
                - count
              additionalProperties: false
            refunded:
              type: object
              properties:
                value:
                  type: number
                  minimum: 0
                count:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
              required:
                - value
                - count
              additionalProperties: false
            pixPending:
              type: object
              properties:
                value:
                  type: number
                  minimum: 0
                count:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
              required:
                - value
                - count
              additionalProperties: false
            boletoPending:
              type: object
              properties:
                value:
                  type: number
                  minimum: 0
                count:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
              required:
                - value
                - count
              additionalProperties: false
            cartAbandonment:
              type: object
              properties:
                value:
                  type: number
                  minimum: 0
                count:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
              required:
                - value
                - count
              additionalProperties: false
          required:
            - totalValue
            - totalItems
            - failed
            - canceled
            - refunded
            - pixPending
            - boletoPending
            - cartAbandonment
          additionalProperties: false
        canceledReasonBreakdown:
          type: array
          items:
            type: object
            properties:
              reason:
                type: string
                enum:
                  - product_did_not_meet_expectations
                  - outdated_material
                  - did_not_receive_access
                  - found_cheaper_option
                  - cannot_access_content
                  - bought_by_mistake
                  - no_longer_want_product
                  - other
                  - requested_by_seller
                  - requested_by_support
                  - requested_by_finance
              count:
                type: integer
                minimum: 0
                maximum: 9007199254740991
            required:
              - reason
              - count
            additionalProperties: false
        refundedReasonBreakdown:
          type: array
          items:
            type: object
            properties:
              reason:
                type: string
                enum:
                  - product_did_not_meet_expectations
                  - outdated_material
                  - did_not_receive_access
                  - found_cheaper_option
                  - cannot_access_content
                  - bought_by_mistake
                  - no_longer_want_product
                  - other
                  - requested_by_seller
                  - requested_by_support
                  - requested_by_finance
              count:
                type: integer
                minimum: 0
                maximum: 9007199254740991
            required:
              - reason
              - count
            additionalProperties: false
        failedReasonBreakdown:
          type: array
          items:
            type: object
            properties:
              reason:
                type: string
              count:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              value:
                type: number
                minimum: 0
            required:
              - reason
              - count
              - value
            additionalProperties: false
        cartAbandonmentStageBreakdown:
          type: array
          items:
            type: object
            properties:
              stage:
                type: string
              count:
                type: integer
                minimum: 0
                maximum: 9007199254740991
            required:
              - stage
              - count
            additionalProperties: false
      required:
        - recovery
        - canceledReasonBreakdown
        - refundedReasonBreakdown
        - failedReasonBreakdown
        - cartAbandonmentStageBreakdown
      additionalProperties: false
    ReportsSubscriptionsInput:
      type: object
      properties:
        ids:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        startDate:
          type: string
        endDate:
          type: string
    ReportsSubscriptionsOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              customerCode:
                type: string
              customerName:
                type: string
              offerCode:
                type: string
              offerName:
                type: string
              orderDate:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              subscriptionStatus:
                type: string
              product:
                type: string
              planPeriod:
                type: string
              planAmount:
                type: number
              amountPaid:
                type: number
              paidRecurringCount:
                type: number
              paidRecurringAmount:
                type: number
              nextChargeDate:
                type: string
              lastTransactionCode:
                type: string
              lastTransactionDate:
                type: string
              cancellationRequestDate:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              cancellationEffectiveDate:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              freePeriod:
                type: boolean
              freePeriodDuration:
                type: number
              freePeriodExpiration:
                type: string
              paymentMethod:
                type: string
            required:
              - customerCode
              - customerName
              - offerCode
              - offerName
              - orderDate
              - subscriptionStatus
              - product
              - planPeriod
              - planAmount
              - amountPaid
              - paidRecurringCount
              - paidRecurringAmount
              - nextChargeDate
              - lastTransactionCode
              - lastTransactionDate
              - cancellationRequestDate
              - cancellationEffectiveDate
              - freePeriod
              - freePeriodDuration
              - freePeriodExpiration
              - paymentMethod
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    ReportsTransactionsInput:
      type: object
      properties:
        ids:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        startDate:
          type: string
        endDate:
          type: string
    ReportsTransactionsOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              transactionId:
                type: string
              statusTransaction:
                type: string
              transactionsCreatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              transactionsUpdatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              paymentConfirmation:
                type: string
              productId:
                type: string
              saleMade:
                type: string
              offerId:
                type: string
              typePayment:
                type: string
              amount:
                type: number
              affiliateSplitsId:
                type: string
              affiliateSplitsAmount:
                type: number
              affiliateSplitsCommission:
                type: number
              affiliateSplitsCreatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              coproductionSplitsId:
                type: string
              coproductionSplitsAmount:
                type: number
              coproductionSplitsCommission:
                type: number
              coproductionSplitsStatus:
                type: string
              coproductionSplitsCreatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              recurrencesDuration:
                type: number
              paidRecurringCount:
                type: number
              buyerName:
                type: string
              buyerEmail:
                type: string
              buyerAddress:
                type: object
                properties:
                  street:
                    type: string
                  city:
                    type: string
                  state:
                    type: string
                  zipCode:
                    type: string
                required:
                  - street
                  - city
                  - state
                  - zipCode
                additionalProperties: false
            required:
              - transactionId
              - statusTransaction
              - transactionsCreatedAt
              - paymentConfirmation
              - productId
              - saleMade
              - offerId
              - typePayment
              - amount
              - affiliateSplitsId
              - affiliateSplitsAmount
              - affiliateSplitsCommission
              - affiliateSplitsCreatedAt
              - coproductionSplitsId
              - coproductionSplitsAmount
              - coproductionSplitsCommission
              - coproductionSplitsStatus
              - coproductionSplitsCreatedAt
              - paidRecurringCount
              - buyerName
              - buyerEmail
              - buyerAddress
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    SubscriptionsGetOutput:
      type: object
      properties:
        subscription:
          type: object
          properties:
            id:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            shortenCode:
              type: string
            plan:
              type: string
            price:
              type: number
            frequency:
              type: string
            ltv:
              type: number
            purchasesCount:
              type: number
            status:
              type: string
            activationDate:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            dueDay:
              type: number
            lastPurchase:
              anyOf:
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                - type: "null"
            nextPurchase:
              anyOf:
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                - type: "null"
            cancelledAt:
              anyOf:
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                - type: "null"
          required:
            - id
            - shortenCode
            - plan
            - price
            - frequency
            - ltv
            - purchasesCount
            - status
            - activationDate
            - dueDay
          additionalProperties: false
        buyer:
          type: object
          properties:
            leadId:
              anyOf:
                - type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                - type: "null"
            name:
              type: string
            email:
              type: string
              minLength: 5
              maxLength: 255
              format: email
              pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
            telephone:
              type: object
              properties:
                countryCode:
                  type: string
                areaCode:
                  type: string
                number:
                  type: string
              required:
                - countryCode
                - areaCode
                - number
              additionalProperties: false
            document:
              anyOf:
                - type: string
                  minLength: 11
                  maxLength: 14
                  pattern: ^([0-9]{11}|[0-9]{14})$
                - type: "null"
            birthDate:
              anyOf:
                - type: string
                  format: date
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                - type: "null"
          required:
            - name
            - email
            - telephone
          additionalProperties: false
        purchases:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
              shortenCode:
                type: string
              offer:
                type: string
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              value:
                type: number
              commission:
                type: number
              method:
                type: string
              status:
                type: string
            required:
              - code
              - shortenCode
              - offer
              - createdAt
              - value
              - commission
              - method
              - status
            additionalProperties: false
      required:
        - subscription
        - buyer
        - purchases
      additionalProperties: false
    SubscriptionsListInput:
      type: object
      properties:
        page:
          default: 1
          type: number
          minimum: 1
        perPage:
          default: 10
          type: number
          minimum: 1
          maximum: 2000
        column:
          type: string
          enum:
            - activationDate
            - offerName
            - frequency
            - price
            - buyerName
            - status
        order:
          type: string
          enum:
            - asc
            - desc
        transactionId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        transactionShortenId:
          type: string
        searchText:
          type: string
        contactName:
          type: string
        contactEmail:
          type: string
        contactDocument:
          type: string
        offerName:
          type: string
        membershipPeriod:
          type: object
          properties:
            from:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            to:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        subscriptionStartedPeriod:
          type: object
          properties:
            from:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            to:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        subscriptionCreatedPeriod:
          type: object
          properties:
            from:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            to:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        numberOfPurchases:
          type: object
          properties:
            min:
              type: number
              minimum: 0
            max:
              type: number
              minimum: 0
        valueOfLastPurchase:
          type: object
          properties:
            min:
              type: number
              minimum: 0
            max:
              type: number
              minimum: 0
        averageTicket:
          type: object
          properties:
            min:
              type: number
              minimum: 0
            max:
              type: number
              minimum: 0
        lifeTimeValue:
          type: object
          properties:
            min:
              type: number
              minimum: 0
            max:
              type: number
              minimum: 0
        subscriptionStatus:
          type: array
          items:
            type: string
            enum:
              - active_paid
              - active_trial
              - active_trial_expired
              - canceled
        transactionStatus:
          type: array
          items:
            type: string
            enum:
              - canceled
              - chargedBack
              - dispute
              - failed
              - paid
              - pending
              - refunded
              - refunding
              - refund_rejected
        subscriptionPlan:
          type: array
          items:
            type: string
            enum:
              - "1"
              - "3"
              - "6"
              - "12"
        contactStatus:
          type: array
          items:
            type: string
            enum:
              - created
              - visited
              - engaged
              - subscribed
              - in_cart
              - abandoned_cart
              - purchased
              - activated
              - upgraded
              - renewed
              - churned
              - referral
              - feedback_given
        contactTags:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        utmSource:
          type: array
          items:
            type: string
        utmMedium:
          type: array
          items:
            type: string
        utmCampaign:
          type: array
          items:
            type: string
        utmContent:
          type: array
          items:
            type: string
        utmTerm:
          type: array
          items:
            type: string
        src:
          type: array
          items:
            type: string
        sck:
          type: array
          items:
            type: string
        projectIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offerIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        transactionRecurrence:
          type: string
          enum:
            - OneTime
            - Recurrent
            - Trial
        transactionType:
          type: array
          items:
            type: string
            enum:
              - credit
              - pix
              - boleto
              - free
        currency:
          type: array
          items:
            type: string
            enum:
              - BRL
              - EUR
              - USD
        includeAggregations:
          type: boolean
    SubscriptionsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              status:
                type: string
                enum:
                  - active_paid
                  - active_trial
                  - active_trial_expired
                  - canceled
              nextBillingAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              subscriber:
                type: object
                properties:
                  name:
                    type: string
                  email:
                    type: string
                  address:
                    type: object
                    properties:
                      street:
                        anyOf:
                          - type: string
                          - type: "null"
                      number:
                        anyOf:
                          - type: string
                          - type: "null"
                      complement:
                        anyOf:
                          - type: string
                          - type: "null"
                      neighborhood:
                        anyOf:
                          - type: string
                          - type: "null"
                      city:
                        anyOf:
                          - type: string
                          - type: "null"
                      state:
                        anyOf:
                          - type: string
                            maxLength: 100
                          - type: "null"
                      country:
                        anyOf:
                          - type: string
                            minLength: 2
                            maxLength: 2
                            pattern: ^[A-Z]{2}$
                          - type: "null"
                      zipCode:
                        anyOf:
                          - type: string
                            minLength: 3
                            maxLength: 12
                          - type: "null"
                      referencePoint:
                        anyOf:
                          - type: string
                          - type: "null"
                    additionalProperties: false
                  telephone:
                    anyOf:
                      - type: string
                      - type: "null"
                  document:
                    anyOf:
                      - type: string
                      - type: "null"
                required:
                  - name
                  - email
                  - address
                additionalProperties: false
              code:
                type: string
              plan:
                type: string
              activationDate:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              frequency:
                type: string
              price:
                type: number
              purchaseCount:
                type: number
              lastPurchase:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              freeTrialPeriodInDays:
                type: number
              expiresTrialAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              gateway:
                anyOf:
                  - type: string
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              paymentMethod:
                anyOf:
                  - type: string
                  - type: "null"
              commission:
                anyOf:
                  - type: number
                  - type: "null"
              discountAmount:
                type: number
            required:
              - id
              - status
              - subscriber
              - code
              - plan
              - activationDate
              - frequency
              - price
              - purchaseCount
              - freeTrialPeriodInDays
              - createdAt
              - discountAmount
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
        totalValueSubscriptions:
          type: number
        totalSubscriptions:
          type: number
        totalValueCancelledSubscriptions:
          type: number
        totalCancelledSubscriptions:
          type: number
        totalActiveSubscriptions:
          type: number
        totalTrialSubscriptions:
          type: number
        totalPotentialRevenue:
          type: number
        monthlyRecurringRevenue:
          type: number
        totalRevenueViaClickmax:
          type: number
        totalUniqueSubscribers:
          type: number
        averageTicketPerSubscriber:
          type: number
        trialPercentage:
          type: number
        churnRate:
          type: number
        totalNetValueSubscriptions:
          type: number
        totalDefaulterSubscriptions:
          type: number
        totalDefaulterValue:
          type: number
      required:
        - data
        - meta
      additionalProperties: false
    SubscriptionsAggregationsInput:
      type: object
      properties:
        transactionId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        transactionShortenId:
          type: string
        searchText:
          type: string
        contactName:
          type: string
        contactEmail:
          type: string
        contactDocument:
          type: string
        offerName:
          type: string
        membershipPeriod:
          type: object
          properties:
            from:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            to:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        subscriptionStartedPeriod:
          type: object
          properties:
            from:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            to:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        subscriptionCreatedPeriod:
          type: object
          properties:
            from:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            to:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        numberOfPurchases:
          type: object
          properties:
            min:
              type: number
              minimum: 0
            max:
              type: number
              minimum: 0
        valueOfLastPurchase:
          type: object
          properties:
            min:
              type: number
              minimum: 0
            max:
              type: number
              minimum: 0
        averageTicket:
          type: object
          properties:
            min:
              type: number
              minimum: 0
            max:
              type: number
              minimum: 0
        lifeTimeValue:
          type: object
          properties:
            min:
              type: number
              minimum: 0
            max:
              type: number
              minimum: 0
        subscriptionStatus:
          type: array
          items:
            type: string
            enum:
              - active_paid
              - active_trial
              - active_trial_expired
              - canceled
        transactionStatus:
          type: array
          items:
            type: string
            enum:
              - canceled
              - chargedBack
              - dispute
              - failed
              - paid
              - pending
              - refunded
              - refunding
              - refund_rejected
        subscriptionPlan:
          type: array
          items:
            type: string
            enum:
              - "1"
              - "3"
              - "6"
              - "12"
        contactStatus:
          type: array
          items:
            type: string
            enum:
              - created
              - visited
              - engaged
              - subscribed
              - in_cart
              - abandoned_cart
              - purchased
              - activated
              - upgraded
              - renewed
              - churned
              - referral
              - feedback_given
        contactTags:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        utmSource:
          type: array
          items:
            type: string
        utmMedium:
          type: array
          items:
            type: string
        utmCampaign:
          type: array
          items:
            type: string
        utmContent:
          type: array
          items:
            type: string
        utmTerm:
          type: array
          items:
            type: string
        src:
          type: array
          items:
            type: string
        sck:
          type: array
          items:
            type: string
        projectIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offerIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productIds:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        transactionRecurrence:
          type: string
          enum:
            - OneTime
            - Recurrent
            - Trial
        transactionType:
          type: array
          items:
            type: string
            enum:
              - credit
              - pix
              - boleto
              - free
        currency:
          type: array
          items:
            type: string
            enum:
              - BRL
              - EUR
              - USD
    SubscriptionsAggregationsOutput:
      type: object
      properties:
        totalValueSubscriptions:
          type: number
        totalSubscriptions:
          type: number
        totalValueCancelledSubscriptions:
          type: number
        totalCancelledSubscriptions:
          type: number
        totalActiveSubscriptions:
          type: number
        totalTrialSubscriptions:
          type: number
        totalPotentialRevenue:
          type: number
        monthlyRecurringRevenue:
          type: number
        totalRevenueViaClickmax:
          type: number
        totalUniqueSubscribers:
          type: number
        averageTicketPerSubscriber:
          type: number
        trialPercentage:
          type: number
        churnRate:
          type: number
        totalNetValueSubscriptions:
          type: number
        totalDefaulterSubscriptions:
          type: number
        totalDefaulterValue:
          type: number
      required:
        - totalValueSubscriptions
        - totalSubscriptions
        - totalValueCancelledSubscriptions
        - totalCancelledSubscriptions
        - totalActiveSubscriptions
        - totalTrialSubscriptions
        - totalPotentialRevenue
        - monthlyRecurringRevenue
        - totalRevenueViaClickmax
        - totalUniqueSubscribers
        - averageTicketPerSubscriber
        - trialPercentage
        - churnRate
        - totalNetValueSubscriptions
        - totalDefaulterSubscriptions
        - totalDefaulterValue
      additionalProperties: false
    SubscriptionsChartInput:
      type: object
      properties:
        defaults:
          type: object
          properties:
            from:
              anyOf:
                - type: string
                  format: date
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            to:
              anyOf:
                - type: string
                  format: date
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            period:
              type: string
              enum:
                - daily
                - weekly
                - monthly
          required:
            - from
            - to
            - period
        filters:
          type: object
          properties:
            column:
              type: string
              enum:
                - activationDate
                - offerName
                - frequency
                - price
                - buyerName
                - status
            order:
              type: string
              enum:
                - asc
                - desc
            transactionId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            transactionShortenId:
              type: string
            searchText:
              type: string
            contactName:
              type: string
            contactEmail:
              type: string
            contactDocument:
              type: string
            offerName:
              type: string
            membershipPeriod:
              type: object
              properties:
                from:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                to:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            subscriptionStartedPeriod:
              type: object
              properties:
                from:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                to:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            subscriptionCreatedPeriod:
              type: object
              properties:
                from:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                to:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            numberOfPurchases:
              type: object
              properties:
                min:
                  type: number
                  minimum: 0
                max:
                  type: number
                  minimum: 0
            valueOfLastPurchase:
              type: object
              properties:
                min:
                  type: number
                  minimum: 0
                max:
                  type: number
                  minimum: 0
            averageTicket:
              type: object
              properties:
                min:
                  type: number
                  minimum: 0
                max:
                  type: number
                  minimum: 0
            lifeTimeValue:
              type: object
              properties:
                min:
                  type: number
                  minimum: 0
                max:
                  type: number
                  minimum: 0
            subscriptionStatus:
              type: array
              items:
                type: string
                enum:
                  - active_paid
                  - active_trial
                  - active_trial_expired
                  - canceled
            transactionStatus:
              type: array
              items:
                type: string
                enum:
                  - canceled
                  - chargedBack
                  - dispute
                  - failed
                  - paid
                  - pending
                  - refunded
                  - refunding
                  - refund_rejected
            subscriptionPlan:
              type: array
              items:
                type: string
                enum:
                  - "1"
                  - "3"
                  - "6"
                  - "12"
            contactStatus:
              type: array
              items:
                type: string
                enum:
                  - created
                  - visited
                  - engaged
                  - subscribed
                  - in_cart
                  - abandoned_cart
                  - purchased
                  - activated
                  - upgraded
                  - renewed
                  - churned
                  - referral
                  - feedback_given
            contactTags:
              type: array
              items:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            utmSource:
              type: array
              items:
                type: string
            utmMedium:
              type: array
              items:
                type: string
            utmCampaign:
              type: array
              items:
                type: string
            utmContent:
              type: array
              items:
                type: string
            utmTerm:
              type: array
              items:
                type: string
            src:
              type: array
              items:
                type: string
            sck:
              type: array
              items:
                type: string
            projectIds:
              type: array
              items:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            offerIds:
              type: array
              items:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            productIds:
              type: array
              items:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            transactionRecurrence:
              type: string
              enum:
                - OneTime
                - Recurrent
                - Trial
            transactionType:
              type: array
              items:
                type: string
                enum:
                  - credit
                  - pix
                  - boleto
                  - free
            currency:
              type: array
              items:
                type: string
                enum:
                  - BRL
                  - EUR
                  - USD
            includeAggregations:
              type: boolean
      required:
        - defaults
        - filters
    SubscriptionsChartOutput:
      type: object
      properties:
        purchasesData:
          type: array
          items:
            type: object
            properties:
              purchases:
                type: number
              period:
                type: string
              label:
                type: string
            required:
              - purchases
              - period
              - label
            additionalProperties: false
        revenueData:
          type: array
          items:
            type: object
            properties:
              revenue:
                type: number
              period:
                type: string
              label:
                type: string
            required:
              - revenue
              - period
              - label
            additionalProperties: false
      required:
        - purchasesData
        - revenueData
      additionalProperties: false
    SubscriptionsUpdateCardInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        cardId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
        - cardId
    SubscriptionsUpdateCardOutput:
      type: object
      properties:
        updated:
          type: boolean
      required:
        - updated
      additionalProperties: false
    SubscriptionsCancelInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        cancellationReason:
          type: string
          enum:
            - product_did_not_meet_expectations
            - outdated_material
            - did_not_receive_access
            - found_cheaper_option
            - cannot_access_content
            - bought_by_mistake
            - no_longer_want_product
            - other
            - requested_by_seller
            - requested_by_support
            - requested_by_finance
        cancellationReasonDescription:
          type: string
      required:
        - id
    SubscriptionsCancelOutput:
      type: object
      properties:
        canceled:
          type: boolean
      required:
        - canceled
      additionalProperties: false
    TransactionsGetOutput:
      allOf:
        - type: object
          properties:
            id:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            value:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            clickmaxFee:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            status:
              type: string
              enum:
                - canceled
                - chargedBack
                - dispute
                - failed
                - paid
                - pending
                - refunded
                - refunding
                - refund_rejected
            product:
              type: string
            subscriptionId:
              anyOf:
                - type: string
                - type: "null"
            orderBumps:
              type: array
              items:
                type: string
            history:
              type: array
              items:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - canceled
                      - chargedBack
                      - dispute
                      - failed
                      - paid
                      - pending
                      - refunded
                      - refunding
                      - refund_rejected
                  createdAt:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                required:
                  - status
                  - createdAt
                additionalProperties: false
            buyer:
              type: object
              properties:
                name:
                  type: string
                email:
                  type: string
                  minLength: 5
                  maxLength: 255
                  format: email
                  pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                document:
                  anyOf:
                    - type: string
                      minLength: 11
                      maxLength: 14
                      pattern: ^([0-9]{11}|[0-9]{14})$
                    - type: "null"
                address:
                  type: object
                  properties:
                    street:
                      anyOf:
                        - type: string
                        - type: "null"
                    number:
                      anyOf:
                        - type: string
                        - type: "null"
                    complement:
                      anyOf:
                        - type: string
                        - type: "null"
                    neighborhood:
                      anyOf:
                        - type: string
                        - type: "null"
                    city:
                      anyOf:
                        - type: string
                        - type: "null"
                    state:
                      anyOf:
                        - type: string
                          maxLength: 100
                        - type: "null"
                    country:
                      anyOf:
                        - type: string
                          minLength: 2
                          maxLength: 2
                          pattern: ^[A-Z]{2}$
                        - type: "null"
                    zipCode:
                      anyOf:
                        - type: string
                          minLength: 3
                          maxLength: 12
                        - type: "null"
                    referencePoint:
                      anyOf:
                        - type: string
                        - type: "null"
                  additionalProperties: false
                telephone:
                  type: object
                  properties:
                    countryCode:
                      type: string
                    areaCode:
                      type: string
                    number:
                      type: string
                  required:
                    - countryCode
                    - areaCode
                    - number
                  additionalProperties: false
              required:
                - name
                - email
                - address
                - telephone
              additionalProperties: false
            utm:
              type: object
              properties:
                source:
                  type: string
                medium:
                  type: string
                campaign:
                  type: string
                content:
                  type: string
                term:
                  type: string
              additionalProperties: false
            affiliation:
              type: object
              properties:
                firstName:
                  type: string
                lastName:
                  type: string
                email:
                  type: string
                amount:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
              required:
                - firstName
                - lastName
                - email
                - amount
              additionalProperties: false
            coproductions:
              type: array
              items:
                type: object
                properties:
                  firstName:
                    type: string
                  lastName:
                    type: string
                  email:
                    type: string
                  amount:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                required:
                  - firstName
                  - lastName
                  - email
                  - amount
                additionalProperties: false
          required:
            - id
            - value
            - clickmaxFee
            - status
            - product
            - subscriptionId
            - orderBumps
            - history
            - buyer
            - utm
            - coproductions
          additionalProperties: false
        - anyOf:
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - credit
                installments:
                  type: integer
                  minimum: 1
                  maximum: 12
                installmentValue:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
              required:
                - type
                - installments
                - installmentValue
              additionalProperties: false
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - pix
              required:
                - type
              additionalProperties: false
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - boleto
              required:
                - type
              additionalProperties: false
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - free
              required:
                - type
              additionalProperties: false
    TransactionsListOutput:
      type: object
      properties:
        transactions:
          type: array
          items:
            type: object
            properties:
              externalId:
                type: string
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              planName:
                type: string
              amount:
                type: number
              type:
                type: string
                enum:
                  - credit
                  - pix
                  - boleto
                  - free
              status:
                type: string
            required:
              - externalId
              - createdAt
              - planName
              - amount
              - type
              - status
            additionalProperties: false
        totalDebt:
          type: number
      required:
        - transactions
        - totalDebt
      additionalProperties: false
    TransactionsDebtOutput:
      type: object
      properties:
        transactionsIds:
          type: array
          items:
            type: string
        totalDebt:
          type: number
      required:
        - transactionsIds
        - totalDebt
      additionalProperties: false
    TransactionsFailureBreakdownInput:
      type: object
      properties:
        from:
          type: string
        to:
          type: string
        projectIds:
          type: array
          items:
            type: string
        productIds:
          type: array
          items:
            type: string
        offerIds:
          type: array
          items:
            type: string
    TransactionsFailureBreakdownOutput:
      type: object
      properties:
        totalFailedCount:
          type: number
        totalFailedValue:
          type: number
        breakdown:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                enum:
                  - card_declined
                  - insufficient_funds
                  - invalid_cvv
                  - expired_card
                  - card_data_error
                  - auth_3ds
                  - fraud_suspected
                  - integration_error
                  - unknown
              count:
                type: number
              value:
                type: number
              isPlatformFault:
                type: boolean
              rawReasons:
                type: array
                items:
                  type: string
            required:
              - code
              - count
              - value
              - isPlatformFault
              - rawReasons
            additionalProperties: false
      required:
        - totalFailedCount
        - totalFailedValue
        - breakdown
      additionalProperties: false
    TransactionsChartInput:
      type: object
      properties:
        defaults:
          type: object
          properties:
            from:
              anyOf:
                - type: string
                  format: date
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            to:
              anyOf:
                - type: string
                  format: date
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            period:
              type: string
              enum:
                - daily
                - weekly
                - monthly
          required:
            - from
            - to
            - period
        filters:
          type: object
          properties:
            column:
              type: string
              enum:
                - createdAt
                - buyerName
                - status
                - cxFeeFix
                - cxFeePercentage
                - installments
                - gateway
                - type
            order:
              type: string
              enum:
                - asc
                - desc
            transactionId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            transactionShortenId:
              type: string
            groupBy:
              type: string
              enum:
                - day
                - month
                - year
            numberOfPurchases:
              type: object
              properties:
                min:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                max:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
            valueOfLastPurchase:
              type: object
              properties:
                min:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                max:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
            averageTicket:
              type: object
              properties:
                min:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                max:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
            lifeTimeValue:
              type: object
              properties:
                min:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                max:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
            transactionPeriod:
              type: object
              properties:
                from:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                to:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            subscriptionCreatedPeriod:
              type: object
              properties:
                from:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                to:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            productName:
              type: string
            subscriptionStatus:
              type: array
              items:
                type: string
                enum:
                  - active
                  - canceled
            contactStatus:
              type: string
              enum:
                - created
                - visited
                - engaged
                - subscribed
                - in_cart
                - abandoned_cart
                - purchased
                - activated
                - upgraded
                - renewed
                - churned
                - referral
                - feedback_given
            subscriptionPlan:
              type: array
              items:
                type: string
                enum:
                  - "1"
                  - "3"
                  - "6"
                  - "12"
            contactName:
              type: string
            contactEmail:
              type: string
            contactDocument:
              type: string
            contactTags:
              type: array
              items:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            transactionStatus:
              type: array
              items:
                type: string
                enum:
                  - canceled
                  - chargedBack
                  - dispute
                  - failed
                  - paid
                  - pending
                  - refunded
                  - refunding
                  - refund_rejected
            saleReasons:
              type: array
              items:
                type: string
            searchText:
              type: string
            externalId:
              type: string
            utmSource:
              type: array
              items:
                type: string
            utmMedium:
              type: array
              items:
                type: string
            utmCampaign:
              type: array
              items:
                type: string
            utmContent:
              type: array
              items:
                type: string
            utmTerm:
              type: array
              items:
                type: string
            src:
              type: array
              items:
                type: string
            sck:
              type: array
              items:
                type: string
            projectIds:
              type: array
              items:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            funnelIds:
              type: array
              items:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            offerIds:
              type: array
              items:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            orderBumpOfferIds:
              type: array
              items:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            excludeOrderBumpOfferIds:
              type: array
              items:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            productIds:
              type: array
              items:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            transactionRecurrence:
              type: string
              enum:
                - OneTime
                - Recurrent
            currency:
              type: array
              items:
                type: string
                enum:
                  - BRL
                  - EUR
                  - USD
            transactionType:
              type: array
              items:
                type: string
                enum:
                  - credit
                  - pix
                  - boleto
                  - free
            suspectedFraudOnly:
              type: boolean
            excludeSuspectedFraud:
              type: boolean
      required:
        - defaults
        - filters
    TransactionsChartOutput:
      type: object
      properties:
        purchasesData:
          type: array
          items:
            type: object
            properties:
              purchases:
                type: number
              period:
                type: string
              label:
                type: string
            required:
              - purchases
              - period
              - label
            additionalProperties: false
        revenueData:
          type: array
          items:
            type: object
            properties:
              revenue:
                type: number
              period:
                type: string
              label:
                type: string
            required:
              - revenue
              - period
              - label
            additionalProperties: false
      required:
        - purchasesData
        - revenueData
      additionalProperties: false
    SalesGetDetailsOutput:
      type: object
      properties:
        code:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        shortenCode:
          type: string
        externalId:
          type: string
        status:
          type: string
          enum:
            - canceled
            - chargedBack
            - dispute
            - failed
            - paid
            - pending
            - refunded
            - refunding
            - refund_rejected
        details:
          type: object
          properties:
            currency:
              type: string
              enum:
                - BRL
                - EUR
                - USD
            createdAt:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            approvedAt:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            cancelledAt:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
          required:
            - currency
            - createdAt
          additionalProperties: false
        product:
          type: object
          properties:
            name:
              type: string
            offer:
              type: string
            price:
              type: number
              minimum: 0
            offerTypeIsRecurrent:
              type: boolean
            approvalDate:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            lastPaymentDate:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            dueDay:
              type: integer
              minimum: 1
              maximum: 9007199254740991
            producer:
              type: string
          required:
            - name
            - offer
            - price
            - offerTypeIsRecurrent
            - producer
          additionalProperties: false
        payment:
          type: object
          properties:
            method:
              type: string
              enum:
                - credit
                - pix
                - boleto
                - free
            offerPrice:
              type: number
              minimum: 0
            installments:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            installmentValue:
              type: number
              minimum: 0
            interest:
              type: number
              minimum: 0
            totalPaidByBuyer:
              type: number
              minimum: 0
            baseValueForCommission:
              type: number
              minimum: 0
            clickmaxFee:
              type: number
              minimum: 0
            cxFeePercentage:
              type: number
              minimum: 0
              maximum: 1
            cxFeeFix:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            passPlatformFee:
              type: boolean
            freight:
              anyOf:
                - type: object
                  properties:
                    value:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    type:
                      type: string
                      enum:
                        - free
                        - fixed
                        - shipping_company
                    method:
                      anyOf:
                        - anyOf:
                            - type: string
                              const: pac
                            - type: string
                              const: sedex
                            - type: string
                              const: by_producer
                            - type: "null"
                              const: null
                        - type: "null"
                    days:
                      anyOf:
                        - type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        - type: "null"
                  required:
                    - value
                    - type
                  additionalProperties: false
                - type: "null"
            extraServices:
              type: number
              minimum: 0
            membershipFee:
              type: number
              minimum: 0
            yourCommission:
              type: number
              minimum: 0
            orderBumps:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  name:
                    type: string
                  value:
                    type: number
                    minimum: 0
                  percentage:
                    type: number
                    minimum: 0
                    maximum: 100
                required:
                  - id
                  - name
                  - value
                  - percentage
                additionalProperties: false
          required:
            - method
            - offerPrice
            - interest
            - totalPaidByBuyer
            - baseValueForCommission
            - clickmaxFee
            - cxFeePercentage
            - cxFeeFix
            - passPlatformFee
            - membershipFee
            - yourCommission
            - orderBumps
          additionalProperties: false
        warranty:
          type: object
          properties:
            approvalDate:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            warrantyPeriodDays:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            warrantyStatus:
              type: string
              enum:
                - expired
                - active
          required:
            - approvalDate
            - warrantyPeriodDays
            - warrantyStatus
          additionalProperties: false
        gateway:
          type: string
        transactions:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              code:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              shortenCode:
                type: string
              status:
                type: string
                enum:
                  - canceled
                  - chargedBack
                  - dispute
                  - failed
                  - paid
                  - pending
                  - refunded
                  - refunding
                  - refund_rejected
              type:
                anyOf:
                  - type: string
                    enum:
                      - main
                  - type: string
                    enum:
                      - bump
              product:
                type: string
              offer:
                type: string
              value:
                type: number
                minimum: 0
              paymentMethod:
                type: string
                enum:
                  - credit
                  - pix
                  - boleto
                  - free
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - code
              - shortenCode
              - status
              - type
              - product
              - offer
              - value
              - paymentMethod
              - createdAt
            additionalProperties: false
      required:
        - code
        - shortenCode
        - externalId
        - status
        - details
        - product
        - payment
        - gateway
        - transactions
      additionalProperties: false
    SalesGetBuyerOutput:
      type: object
      properties:
        buyer:
          type: object
          properties:
            name:
              type: string
            email:
              type: string
              minLength: 5
              maxLength: 255
              format: email
              pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
            document:
              anyOf:
                - type: string
                  minLength: 11
                  maxLength: 14
                  pattern: ^([0-9]{11}|[0-9]{14})$
                - type: "null"
            leadId:
              anyOf:
                - type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                - type: "null"
            telephone:
              type: object
              properties:
                countryCode:
                  type: string
                areaCode:
                  type: string
                number:
                  type: string
              required:
                - countryCode
                - areaCode
                - number
              additionalProperties: false
          required:
            - name
            - email
            - telephone
          additionalProperties: false
        address:
          type: object
          properties:
            street:
              anyOf:
                - type: string
                - type: "null"
            number:
              anyOf:
                - type: string
                - type: "null"
            complement:
              anyOf:
                - type: string
                - type: "null"
            neighborhood:
              anyOf:
                - type: string
                - type: "null"
            city:
              anyOf:
                - type: string
                - type: "null"
            state:
              anyOf:
                - type: string
                  maxLength: 100
                - type: "null"
            country:
              anyOf:
                - type: string
                  minLength: 2
                  maxLength: 2
                  pattern: ^[A-Z]{2}$
                - type: "null"
            zipCode:
              anyOf:
                - type: string
                  minLength: 3
                  maxLength: 12
                - type: "null"
            referencePoint:
              anyOf:
                - type: string
                - type: "null"
          additionalProperties: false
      required:
        - buyer
        - address
      additionalProperties: false
    SalesGetUtmsOutput:
      type: object
      properties:
        utms:
          type: object
          properties:
            utmSource:
              anyOf:
                - type: string
                - type: "null"
            utmMedium:
              anyOf:
                - type: string
                - type: "null"
            utmCampaign:
              anyOf:
                - type: string
                - type: "null"
            utmTerm:
              anyOf:
                - type: string
                - type: "null"
            utmContent:
              anyOf:
                - type: string
                - type: "null"
            src:
              anyOf:
                - type: string
                - type: "null"
            sck:
              anyOf:
                - type: string
                - type: "null"
          additionalProperties: false
      required:
        - utms
      additionalProperties: false
    SalesGetExternalDetailsOutput:
      type: object
      properties:
        saleDetails:
          type: object
          properties:
            id:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            shortenId:
              type: string
            value:
              type: number
              minimum: 0
            currency:
              anyOf:
                - anyOf:
                    - type: string
                      const: AED
                    - type: string
                      const: ALL
                    - type: string
                      const: AMD
                    - type: string
                      const: APE
                    - type: string
                      const: ARS
                    - type: string
                      const: AUD
                    - type: string
                      const: AWG
                    - type: string
                      const: BAM
                    - type: string
                      const: BGN
                    - type: string
                      const: BHD
                    - type: string
                      const: BOB
                    - type: string
                      const: BRL
                    - type: string
                      const: BSD
                    - type: string
                      const: BTC
                    - type: string
                      const: CAD
                    - type: string
                      const: CHF
                    - type: string
                      const: CLP
                    - type: string
                      const: CNY
                    - type: string
                      const: COP
                    - type: string
                      const: CRC
                    - type: string
                      const: CZK
                    - type: string
                      const: DKK
                    - type: string
                      const: DOP
                    - type: string
                      const: DZD
                    - type: string
                      const: EGP
                    - type: string
                      const: ETB
                    - type: string
                      const: ETH
                    - type: string
                      const: EUR
                    - type: string
                      const: GBP
                    - type: string
                      const: GHS
                    - type: string
                      const: GMD
                    - type: string
                      const: GTQ
                    - type: string
                      const: GYD
                    - type: string
                      const: HKD
                    - type: string
                      const: HUF
                    - type: string
                      const: IDR
                    - type: string
                      const: ILS
                    - type: string
                      const: INR
                    - type: string
                      const: JMD
                    - type: string
                      const: JOD
                    - type: string
                      const: JPY
                    - type: string
                      const: KES
                    - type: string
                      const: KHR
                    - type: string
                      const: KRW
                    - type: string
                      const: KWD
                    - type: string
                      const: KZT
                    - type: string
                      const: LKR
                    - type: string
                      const: MAD
                    - type: string
                      const: MDL
                    - type: string
                      const: MGA
                    - type: string
                      const: MKD
                    - type: string
                      const: MNT
                    - type: string
                      const: MOP
                    - type: string
                      const: MUR
                    - type: string
                      const: MXN
                    - type: string
                      const: MYR
                    - type: string
                      const: NAD
                    - type: string
                      const: NGN
                    - type: string
                      const: NOK
                    - type: string
                      const: NZD
                    - type: string
                      const: OMR
                    - type: string
                      const: PEN
                    - type: string
                      const: PHP
                    - type: string
                      const: PKR
                    - type: string
                      const: PLN
                    - type: string
                      const: PYG
                    - type: string
                      const: QAR
                    - type: string
                      const: RON
                    - type: string
                      const: RSD
                    - type: string
                      const: RUB
                    - type: string
                      const: RWF
                    - type: string
                      const: SAR
                    - type: string
                      const: SEK
                    - type: string
                      const: SGD
                    - type: string
                      const: THB
                    - type: string
                      const: TND
                    - type: string
                      const: TRY
                    - type: string
                      const: TTD
                    - type: string
                      const: TWD
                    - type: string
                      const: TZS
                    - type: string
                      const: USD
                    - type: string
                      const: USDT
                    - type: string
                      const: UYU
                    - type: string
                      const: UZS
                    - type: string
                      const: VND
                    - type: string
                      const: WHOP_USD
                    - type: string
                      const: XAU
                    - type: string
                      const: XCD
                    - type: string
                      const: XOF
                    - type: string
                      const: ZAR
                    - type: "null"
                      const: null
                - type: "null"
            productId:
              anyOf:
                - type: string
                - type: "null"
            createdAt:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            updatedAt:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            page:
              type: object
              properties:
                id:
                  anyOf:
                    - type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    - type: "null"
                name:
                  anyOf:
                    - type: string
                    - type: "null"
              additionalProperties: false
          required:
            - id
            - shortenId
            - value
            - createdAt
            - updatedAt
            - page
          additionalProperties: false
        leadDetails:
          type: object
          properties:
            id:
              anyOf:
                - type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                - type: "null"
            name:
              anyOf:
                - type: string
                - type: "null"
            email:
              anyOf:
                - type: string
                  minLength: 5
                  maxLength: 255
                  format: email
                  pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                - type: "null"
            document:
              anyOf:
                - type: string
                - type: "null"
            telephone:
              anyOf:
                - type: string
                  maxLength: 20
                  pattern: ^\+?\d+$
                - type: "null"
            status:
              anyOf:
                - anyOf:
                    - type: string
                      const: created
                    - type: string
                      const: visited
                    - type: string
                      const: engaged
                    - type: string
                      const: subscribed
                    - type: string
                      const: in_cart
                    - type: string
                      const: abandoned_cart
                    - type: string
                      const: purchased
                    - type: string
                      const: activated
                    - type: string
                      const: upgraded
                    - type: string
                      const: renewed
                    - type: string
                      const: churned
                    - type: string
                      const: referral
                    - type: string
                      const: feedback_given
                    - type: "null"
                      const: null
                - type: "null"
            birthday:
              anyOf:
                - type: string
                  format: date
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                - type: "null"
            createdAt:
              anyOf:
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                - type: "null"
          additionalProperties: false
        utmDetails:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              utmSource:
                anyOf:
                  - type: string
                  - type: "null"
              utmMedium:
                anyOf:
                  - type: string
                  - type: "null"
              utmCampaign:
                anyOf:
                  - type: string
                  - type: "null"
              utmContent:
                anyOf:
                  - type: string
                  - type: "null"
              utmTerm:
                anyOf:
                  - type: string
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - createdAt
            additionalProperties: false
        purchaseHistory:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              shortenId:
                type: string
              value:
                type: number
                minimum: 0
              currency:
                anyOf:
                  - anyOf:
                      - type: string
                        const: AED
                      - type: string
                        const: ALL
                      - type: string
                        const: AMD
                      - type: string
                        const: APE
                      - type: string
                        const: ARS
                      - type: string
                        const: AUD
                      - type: string
                        const: AWG
                      - type: string
                        const: BAM
                      - type: string
                        const: BGN
                      - type: string
                        const: BHD
                      - type: string
                        const: BOB
                      - type: string
                        const: BRL
                      - type: string
                        const: BSD
                      - type: string
                        const: BTC
                      - type: string
                        const: CAD
                      - type: string
                        const: CHF
                      - type: string
                        const: CLP
                      - type: string
                        const: CNY
                      - type: string
                        const: COP
                      - type: string
                        const: CRC
                      - type: string
                        const: CZK
                      - type: string
                        const: DKK
                      - type: string
                        const: DOP
                      - type: string
                        const: DZD
                      - type: string
                        const: EGP
                      - type: string
                        const: ETB
                      - type: string
                        const: ETH
                      - type: string
                        const: EUR
                      - type: string
                        const: GBP
                      - type: string
                        const: GHS
                      - type: string
                        const: GMD
                      - type: string
                        const: GTQ
                      - type: string
                        const: GYD
                      - type: string
                        const: HKD
                      - type: string
                        const: HUF
                      - type: string
                        const: IDR
                      - type: string
                        const: ILS
                      - type: string
                        const: INR
                      - type: string
                        const: JMD
                      - type: string
                        const: JOD
                      - type: string
                        const: JPY
                      - type: string
                        const: KES
                      - type: string
                        const: KHR
                      - type: string
                        const: KRW
                      - type: string
                        const: KWD
                      - type: string
                        const: KZT
                      - type: string
                        const: LKR
                      - type: string
                        const: MAD
                      - type: string
                        const: MDL
                      - type: string
                        const: MGA
                      - type: string
                        const: MKD
                      - type: string
                        const: MNT
                      - type: string
                        const: MOP
                      - type: string
                        const: MUR
                      - type: string
                        const: MXN
                      - type: string
                        const: MYR
                      - type: string
                        const: NAD
                      - type: string
                        const: NGN
                      - type: string
                        const: NOK
                      - type: string
                        const: NZD
                      - type: string
                        const: OMR
                      - type: string
                        const: PEN
                      - type: string
                        const: PHP
                      - type: string
                        const: PKR
                      - type: string
                        const: PLN
                      - type: string
                        const: PYG
                      - type: string
                        const: QAR
                      - type: string
                        const: RON
                      - type: string
                        const: RSD
                      - type: string
                        const: RUB
                      - type: string
                        const: RWF
                      - type: string
                        const: SAR
                      - type: string
                        const: SEK
                      - type: string
                        const: SGD
                      - type: string
                        const: THB
                      - type: string
                        const: TND
                      - type: string
                        const: TRY
                      - type: string
                        const: TTD
                      - type: string
                        const: TWD
                      - type: string
                        const: TZS
                      - type: string
                        const: USD
                      - type: string
                        const: USDT
                      - type: string
                        const: UYU
                      - type: string
                        const: UZS
                      - type: string
                        const: VND
                      - type: string
                        const: WHOP_USD
                      - type: string
                        const: XAU
                      - type: string
                        const: XCD
                      - type: string
                        const: XOF
                      - type: string
                        const: ZAR
                      - type: "null"
                        const: null
                  - type: "null"
              productId:
                anyOf:
                  - type: string
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              page:
                type: object
                properties:
                  id:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  name:
                    anyOf:
                      - type: string
                      - type: "null"
                additionalProperties: false
            required:
              - id
              - shortenId
              - value
              - createdAt
              - page
            additionalProperties: false
      required:
        - saleDetails
        - leadDetails
        - utmDetails
        - purchaseHistory
      additionalProperties: false
    TransactionsRefundInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        cancellationReason:
          type: string
          enum:
            - product_did_not_meet_expectations
            - outdated_material
            - did_not_receive_access
            - found_cheaper_option
            - cannot_access_content
            - bought_by_mistake
            - no_longer_want_product
            - other
            - requested_by_seller
            - requested_by_support
            - requested_by_finance
        cancellationReasonDescription:
          type: string
      required:
        - id
    TransactionsRefundOutput:
      type: object
      properties:
        refunded:
          type: boolean
      required:
        - refunded
      additionalProperties: false
    SellersStatusOutput:
      type: object
      properties:
        bankAccountStatus:
          type: string
          enum:
            - approved
            - pending
            - reproved
        sellerStatus:
          type: string
          enum:
            - enabled
            - pending
            - blocked
            - disabled
            - pending_correction
        submittedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        kycSubmittedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        gatewayName:
          type: string
          enum:
            - iopay
            - ticto
        reason:
          anyOf:
            - type: string
            - type: "null"
        requiresBiometricReverification:
          type: boolean
        needsRevalidation:
          type: boolean
      additionalProperties: false
    WalletStatementOutput:
      type: object
      properties:
        balance:
          type: object
          properties:
            availableBalance:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            underReviewBalance:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            pendingBalance:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            anticipationBalance:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            canAnticipate:
              type: boolean
          required:
            - availableBalance
            - underReviewBalance
            - pendingBalance
            - anticipationBalance
            - canAnticipate
          additionalProperties: false
        statements:
          type: array
          items:
            type: object
            properties:
              transactionDate:
                type: string
              orderHash:
                anyOf:
                  - type: string
                  - type: "null"
              availableAt:
                anyOf:
                  - type: string
                  - type: "null"
              transactionHash:
                anyOf:
                  - type: string
                  - type: "null"
              productHash:
                anyOf:
                  - type: string
                  - type: "null"
              productId:
                anyOf:
                  - type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  - type: "null"
              eventType:
                type: string
                enum:
                  - SALE
                  - REFUND
                  - CHARGEBACK
                  - ANTICIPATION
                  - CASHOUT
                  - CASHOUT_CANCELLED
                  - MONEY_ADDED
                  - MONEY_SUBTRACTED
                  - MONEY_BLOCKED
                  - MONEY_UNBLOCKED
                  - OTHER
              amount:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              availableBalance:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              pendingBalance:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              currentBalance:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
            required:
              - transactionDate
              - eventType
              - amount
              - availableBalance
              - pendingBalance
              - currentBalance
            additionalProperties: false
        pagination:
          type: object
          properties:
            currentPage:
              type: integer
              minimum: 1
              maximum: 9007199254740991
            from:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            perPage:
              type: integer
              minimum: 1
              maximum: 9007199254740991
            to:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            total:
              type: integer
              minimum: 0
              maximum: 9007199254740991
          required:
            - currentPage
            - from
            - perPage
            - to
            - total
          additionalProperties: false
      required:
        - balance
        - statements
        - pagination
      additionalProperties: false
    WalletWithdrawsOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              transferredAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              status:
                type: string
                enum:
                  - pending
                  - completed
                  - canceled
                  - failed
                  - requested
                  - sent_to_bank
                  - returned
              reason:
                anyOf:
                  - type: string
                  - type: "null"
              isAutomatic:
                type: boolean
              amount:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              fee:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  - type: "null"
            required:
              - createdAt
              - status
              - isAutomatic
              - amount
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    ProductsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
                maxLength: 1000
              productType:
                type: string
                enum:
                  - external
                  - internal
              class:
                type: string
                enum:
                  - Comunidade
                  - Curso
                  - E-book
                  - Evento
                  - Produto físico
                  - Outro
                  - Serviço
                  - Software
                  - Consultoria
                  - Mentoria
              category:
                type: string
                enum:
                  - Saúde e Esportes
                  - Finanças e Investimentos
                  - Relacionamentos
                  - Negócios e Carreira
                  - Espiritualidade
                  - Sexualidade
                  - Entretenimento
                  - Culinária e Gastronomia
                  - Idiomas
                  - Direito
                  - Apps & Software
                  - Literatura
                  - Casa e Construção
                  - Desenvolvimento Pessoal
                  - Moda e Beleza
                  - Animais e Plantas
                  - Educacional
                  - Hobbies
                  - Design
                  - Internet
                  - Ecologia e Meio Ambiente
                  - Músicas e Artes
                  - Tecnologia da Informação
                  - Empreendedorismo Digital
                  - Outros
                  - Chás
                  - Cosméticos
                  - Livros
                  - Nootrópicos
                  - Nutracêuticos
              projectId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              projectName:
                type: string
              projectIconUrl:
                type: string
              isArchived:
                type: boolean
              totalOffersCount:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              status:
                type: string
              isAffiliated:
                type: boolean
              hasActiveAffiliation:
                type: boolean
              affiliateCommission:
                anyOf:
                  - type: integer
                    minimum: 1
                    maximum: 100
                  - type: "null"
              offers:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                      maxLength: 1000
                    isMain:
                      type: boolean
                    hash:
                      type: string
                    externalUrl:
                      anyOf:
                        - type: string
                          pattern: ^https:\/\/.+$
                        - type: "null"
                    internalUrl:
                      type: string
                    currency:
                      type: string
                      enum:
                        - BRL
                        - EUR
                        - USD
                    originalPrice:
                      type: integer
                      minimum: 500
                      maximum: 9007199254740991
                    newPrice:
                      anyOf:
                        - type: integer
                          minimum: 500
                          maximum: 9007199254740991
                        - type: "null"
                    type:
                      type: string
                      enum:
                        - community
                        - course
                        - ebook
                        - event
                        - physical
                        - other
                        - services
                        - software
                        - consultancy
                        - mentorship
                    status:
                      type: string
                      enum:
                        - pending
                        - refused
                        - blocked
                        - approved
                        - incomplete
                        - archived
                        - ready_to_submit
                        - pending_corrections
                        - out_of_stock
                    createdAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    thumbnail:
                      type: string
                    checkoutImages:
                      type: object
                      properties:
                        side:
                          type: object
                          properties:
                            title:
                              anyOf:
                                - type: string
                                - type: "null"
                            type:
                              anyOf:
                                - type: string
                                - type: "null"
                            size:
                              anyOf:
                                - type: string
                                - type: "null"
                          additionalProperties: false
                        cover:
                          type: object
                          properties:
                            title:
                              anyOf:
                                - type: string
                                - type: "null"
                            type:
                              anyOf:
                                - type: string
                                - type: "null"
                            size:
                              anyOf:
                                - type: string
                                - type: "null"
                          additionalProperties: false
                        product:
                          anyOf:
                            - type: object
                              properties:
                                title:
                                  anyOf:
                                    - type: string
                                    - type: "null"
                                type:
                                  anyOf:
                                    - type: string
                                    - type: "null"
                                size:
                                  anyOf:
                                    - type: string
                                    - type: "null"
                              additionalProperties: false
                            - type: "null"
                      required:
                        - side
                        - cover
                      additionalProperties: false
                    incompleteReason:
                      type: array
                      items:
                        type: string
                    isRecurrent:
                      type: boolean
                    recurrentInterval:
                      type: integer
                      minimum: -9007199254740991
                      maximum: 9007199254740991
                    requiredAddress:
                      default: false
                      type: boolean
                    quantityItems:
                      anyOf:
                        - type: integer
                          minimum: 0
                          maximum: 100
                        - type: "null"
                    providerSyncError:
                      default: {}
                      type: object
                      propertyNames:
                        type: string
                      additionalProperties: {}
                    hasTransaction:
                      type: boolean
                    hasCoupon:
                      type: boolean
                    passPlatformFee:
                      default: false
                      type: boolean
                    deliverableCategories:
                      type: array
                      items:
                        type: string
                        enum:
                          - file
                          - link
                          - event
                          - email
                          - membership
                          - internal_membership
                          - webhook
                          - clickmax_plan
                          - addon
                    deliverableTargets:
                      type: array
                      items:
                        type: object
                        properties:
                          category:
                            type: string
                            enum:
                              - file
                              - link
                              - event
                              - email
                              - membership
                              - internal_membership
                              - webhook
                              - clickmax_plan
                              - addon
                          name:
                            type: string
                          quantity:
                            anyOf:
                              - type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              - type: "null"
                        required:
                          - category
                          - name
                        additionalProperties: false
                  required:
                    - id
                    - name
                    - isMain
                    - hash
                    - currency
                    - originalPrice
                    - type
                    - status
                    - createdAt
                    - thumbnail
                    - checkoutImages
                    - incompleteReason
                    - isRecurrent
                    - requiredAddress
                    - providerSyncError
                    - hasTransaction
                    - hasCoupon
                    - passPlatformFee
                    - deliverableCategories
                    - deliverableTargets
                  additionalProperties: false
            required:
              - id
              - name
              - productType
              - class
              - category
              - projectId
              - totalOffersCount
              - offers
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    ProductsGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          maxLength: 1000
        hasRecurrentOffer:
          type: boolean
        hasNonRecurrentOffer:
          type: boolean
        status:
          type: string
        gatewayName:
          type: string
        isExternalCheckout:
          type: boolean
        externalId:
          anyOf:
            - type: string
            - type: "null"
        offers:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
                maxLength: 1000
              isMain:
                type: boolean
              externalUrl:
                anyOf:
                  - type: string
                    pattern: ^https:\/\/.+$
                  - type: "null"
              externalId:
                anyOf:
                  - type: string
                  - type: "null"
              internalUrl:
                type: string
              thumbnail:
                type: string
              currency:
                type: string
                enum:
                  - BRL
                  - EUR
                  - USD
              originalPrice:
                type: integer
                minimum: 500
                maximum: 9007199254740991
              newPrice:
                anyOf:
                  - type: integer
                    minimum: 500
                    maximum: 9007199254740991
                  - type: "null"
              type:
                type: string
                enum:
                  - community
                  - course
                  - ebook
                  - event
                  - physical
                  - other
                  - services
                  - software
                  - consultancy
                  - mentorship
              incompleteReason:
                type: array
                items:
                  type: string
              status:
                type: string
                enum:
                  - pending
                  - refused
                  - blocked
                  - approved
                  - incomplete
                  - archived
                  - ready_to_submit
                  - pending_corrections
                  - out_of_stock
              quantityItems:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 100
                  - type: "null"
              hasTransaction:
                type: boolean
              hasCoupon:
                type: boolean
              passPlatformFee:
                default: false
                type: boolean
            required:
              - id
              - name
              - isMain
              - thumbnail
              - currency
              - originalPrice
              - type
              - incompleteReason
              - status
              - hasTransaction
              - hasCoupon
              - passPlatformFee
            additionalProperties: false
      required:
        - id
        - name
        - hasRecurrentOffer
        - hasNonRecurrentOffer
        - isExternalCheckout
        - offers
      additionalProperties: false
    ProductsCreateInput:
      type: object
      properties:
        projectId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: string
              minLength: 0
              maxLength: 1
        productType:
          type: string
          enum:
            - external
            - internal
        name:
          type: string
          minLength: 1
          maxLength: 1000
          pattern: .*\S.*
        type:
          type: string
          enum:
            - community
            - course
            - ebook
            - event
            - physical
            - other
            - services
            - software
            - consultancy
            - mentorship
        currency:
          type: string
          enum:
            - BRL
            - EUR
            - USD
        originalPrice:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        newPrice:
          anyOf:
            - type: "null"
            - type: integer
              minimum: 0
              maximum: 9007199254740991
        externalUrl:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        description:
          anyOf:
            - type: string
              maxLength: 1000
            - type: "null"
        language:
          anyOf:
            - type: string
            - type: "null"
        country:
          anyOf:
            - type: string
            - type: "null"
        limitToRefund:
          anyOf:
            - type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            - type: "null"
        quantityItems:
          type: integer
          minimum: 0
          maximum: 100
        paymentConfig:
          anyOf:
            - anyOf:
                - type: object
                  properties:
                    pix:
                      type: object
                      properties:
                        active:
                          type: boolean
                      required:
                        - active
                    boleto:
                      type: object
                      properties:
                        active:
                          type: boolean
                      required:
                        - active
                    credit:
                      type: object
                      properties:
                        active:
                          type: boolean
                        installments:
                          anyOf:
                            - type: integer
                              minimum: 1
                              maximum: 12
                            - type: "null"
                      required:
                        - active
                    recurrence:
                      type: "null"
                  required:
                    - pix
                    - boleto
                    - credit
                    - recurrence
                - type: object
                  properties:
                    pix:
                      type: object
                      properties:
                        active:
                          type: boolean
                      required:
                        - active
                    boleto:
                      type: object
                      properties:
                        active:
                          type: boolean
                          const: false
                      required:
                        - active
                    credit:
                      type: object
                      properties:
                        active:
                          type: boolean
                          const: true
                        installments:
                          anyOf:
                            - type: integer
                              minimum: 1
                              maximum: 12
                            - type: "null"
                      required:
                        - active
                    recurrence:
                      type: object
                      properties:
                        frequency:
                          type: string
                        interval:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        duration:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        tolerancePeriod:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        gracePeriod:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                      required:
                        - frequency
                        - interval
                        - duration
                        - tolerancePeriod
                        - gracePeriod
                  required:
                    - pix
                    - boleto
                    - credit
                    - recurrence
            - type: object
              properties:
                pix:
                  type: object
                  properties:
                    active:
                      type: boolean
                  required:
                    - active
                boleto:
                  type: object
                  properties:
                    active:
                      type: boolean
                  required:
                    - active
                credit:
                  type: object
                  properties:
                    active:
                      type: boolean
                    installments:
                      anyOf:
                        - type: integer
                          minimum: 1
                          maximum: 12
                        - type: "null"
                  required:
                    - active
                recurrence:
                  type: object
                  properties:
                    frequency:
                      type: string
                    interval:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    duration:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    tolerancePeriod:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    gracePeriod:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                  required:
                    - frequency
                    - interval
                    - duration
                    - tolerancePeriod
                    - gracePeriod
              required:
                - pix
                - boleto
                - credit
                - recurrence
        planId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        gatewayId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        offerExternalId:
          type: string
          maxLength: 255
        productClass:
          type: string
          enum:
            - Comunidade
            - Curso
            - E-book
            - Evento
            - Produto físico
            - Outro
            - Serviço
            - Software
            - Consultoria
            - Mentoria
        productCategory:
          type: string
          enum:
            - Saúde e Esportes
            - Finanças e Investimentos
            - Relacionamentos
            - Negócios e Carreira
            - Espiritualidade
            - Sexualidade
            - Entretenimento
            - Culinária e Gastronomia
            - Idiomas
            - Direito
            - Apps & Software
            - Literatura
            - Casa e Construção
            - Desenvolvimento Pessoal
            - Moda e Beleza
            - Animais e Plantas
            - Educacional
            - Hobbies
            - Design
            - Internet
            - Ecologia e Meio Ambiente
            - Músicas e Artes
            - Tecnologia da Informação
            - Empreendedorismo Digital
            - Outros
            - Chás
            - Cosméticos
            - Livros
            - Nootrópicos
            - Nutracêuticos
        softDescriptor:
          anyOf:
            - type: string
              maxLength: 15
            - type: "null"
        supportPhone:
          anyOf:
            - type: string
              maxLength: 32
            - type: "null"
        stockQuantity:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 9007199254740991
            - type: "null"
      required:
        - projectId
        - name
        - currency
        - originalPrice
    ProductsCreateOutput:
      type: object
      properties:
        product:
          type: object
          properties:
            id:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            ownerId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            projectId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            name:
              type: string
              maxLength: 1000
            description:
              anyOf:
                - type: string
                  maxLength: 1000
                - type: "null"
            type:
              type: string
              enum:
                - external
                - internal
            externalId:
              anyOf:
                - type: string
                - type: "null"
            gatewayId:
              anyOf:
                - type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                - type: "null"
            softDescriptor:
              anyOf:
                - type: string
                  maxLength: 15
                - type: "null"
            createdAt:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            updatedAt:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            deletedAt:
              anyOf:
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                - type: "null"
            class:
              type: string
              enum:
                - Comunidade
                - Curso
                - E-book
                - Evento
                - Produto físico
                - Outro
                - Serviço
                - Software
                - Consultoria
                - Mentoria
            category:
              type: string
              enum:
                - Saúde e Esportes
                - Finanças e Investimentos
                - Relacionamentos
                - Negócios e Carreira
                - Espiritualidade
                - Sexualidade
                - Entretenimento
                - Culinária e Gastronomia
                - Idiomas
                - Direito
                - Apps & Software
                - Literatura
                - Casa e Construção
                - Desenvolvimento Pessoal
                - Moda e Beleza
                - Animais e Plantas
                - Educacional
                - Hobbies
                - Design
                - Internet
                - Ecologia e Meio Ambiente
                - Músicas e Artes
                - Tecnologia da Informação
                - Empreendedorismo Digital
                - Outros
                - Chás
                - Cosméticos
                - Livros
                - Nootrópicos
                - Nutracêuticos
            stockQuantity:
              anyOf:
                - type: integer
                  minimum: 0
                  maximum: 9007199254740991
                - type: "null"
            stockUpdatedAt:
              anyOf:
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                - type: "null"
            imageStock:
              anyOf:
                - type: string
                - type: "null"
            gatewayCategoryId:
              anyOf:
                - type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                - type: "null"
          required:
            - id
            - ownerId
            - projectId
            - name
            - type
            - createdAt
            - updatedAt
            - class
            - category
          additionalProperties: false
        offer:
          type: object
          properties:
            id:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            ownerId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            productId:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            isMain:
              type: boolean
            hash:
              type: string
            externalUrl:
              anyOf:
                - type: string
                  pattern: ^https:\/\/.+$
                - type: "null"
            name:
              type: string
              maxLength: 1000
            checkoutTitle:
              anyOf:
                - type: string
                  maxLength: 120
                - type: "null"
            description:
              anyOf:
                - type: string
                  maxLength: 1000
                - type: "null"
            language:
              anyOf:
                - type: string
                - type: "null"
            country:
              anyOf:
                - type: string
                - type: "null"
            limitToRefund:
              anyOf:
                - type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                - type: "null"
            supportEmail:
              anyOf:
                - type: string
                - type: "null"
            supportPhone:
              anyOf:
                - type: string
                  maxLength: 32
                - type: "null"
            currency:
              type: string
              enum:
                - BRL
                - EUR
                - USD
            originalPrice:
              type: integer
              minimum: 500
              maximum: 9007199254740991
            newPrice:
              anyOf:
                - type: integer
                  minimum: 500
                  maximum: 9007199254740991
                - type: "null"
            showTimer:
              type: boolean
            showCoupon:
              type: boolean
            highlightInstallment:
              type: boolean
            requiredAddress:
              default: false
              type: boolean
            passPlatformFee:
              default: false
              type: boolean
            showDescription:
              default: true
              type: boolean
            bannerDesktop:
              anyOf:
                - type: string
                - type: "null"
            bannerMobile:
              anyOf:
                - type: string
                - type: "null"
            checkoutImages:
              type: object
              properties:
                side:
                  type: object
                  properties:
                    title:
                      anyOf:
                        - type: string
                        - type: "null"
                    type:
                      anyOf:
                        - type: string
                        - type: "null"
                    size:
                      anyOf:
                        - type: string
                        - type: "null"
                  additionalProperties: false
                cover:
                  type: object
                  properties:
                    title:
                      anyOf:
                        - type: string
                        - type: "null"
                    type:
                      anyOf:
                        - type: string
                        - type: "null"
                    size:
                      anyOf:
                        - type: string
                        - type: "null"
                  additionalProperties: false
                product:
                  anyOf:
                    - type: object
                      properties:
                        title:
                          anyOf:
                            - type: string
                            - type: "null"
                        type:
                          anyOf:
                            - type: string
                            - type: "null"
                        size:
                          anyOf:
                            - type: string
                            - type: "null"
                      additionalProperties: false
                    - type: "null"
              required:
                - side
                - cover
              additionalProperties: false
            type:
              type: string
              enum:
                - community
                - course
                - ebook
                - event
                - physical
                - other
                - services
                - software
                - consultancy
                - mentorship
            status:
              type: string
              enum:
                - pending
                - refused
                - blocked
                - approved
                - incomplete
                - archived
                - ready_to_submit
                - pending_corrections
                - out_of_stock
            paymentMethods:
              anyOf:
                - anyOf:
                    - type: object
                      properties:
                        pix:
                          type: object
                          properties:
                            active:
                              type: boolean
                          required:
                            - active
                          additionalProperties: false
                        boleto:
                          type: object
                          properties:
                            active:
                              type: boolean
                          required:
                            - active
                          additionalProperties: false
                        credit:
                          type: object
                          properties:
                            active:
                              type: boolean
                            installments:
                              anyOf:
                                - type: integer
                                  minimum: 1
                                  maximum: 12
                                - type: "null"
                          required:
                            - active
                          additionalProperties: false
                        recurrence:
                          type: "null"
                      required:
                        - pix
                        - boleto
                        - credit
                        - recurrence
                      additionalProperties: false
                    - type: object
                      properties:
                        pix:
                          type: object
                          properties:
                            active:
                              type: boolean
                          required:
                            - active
                          additionalProperties: false
                        boleto:
                          type: object
                          properties:
                            active:
                              type: boolean
                              const: false
                          required:
                            - active
                          additionalProperties: false
                        credit:
                          type: object
                          properties:
                            active:
                              type: boolean
                              const: true
                            installments:
                              anyOf:
                                - type: integer
                                  minimum: 1
                                  maximum: 12
                                - type: "null"
                          required:
                            - active
                          additionalProperties: false
                        recurrence:
                          type: object
                          properties:
                            frequency:
                              type: string
                            interval:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                            duration:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                            tolerancePeriod:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                            gracePeriod:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                          required:
                            - frequency
                            - interval
                            - duration
                            - tolerancePeriod
                            - gracePeriod
                          additionalProperties: false
                      required:
                        - pix
                        - boleto
                        - credit
                        - recurrence
                      additionalProperties: false
                - type: object
                  properties:
                    pix:
                      type: object
                      properties:
                        active:
                          type: boolean
                      required:
                        - active
                      additionalProperties: false
                    boleto:
                      type: object
                      properties:
                        active:
                          type: boolean
                      required:
                        - active
                      additionalProperties: false
                    credit:
                      type: object
                      properties:
                        active:
                          type: boolean
                        installments:
                          anyOf:
                            - type: integer
                              minimum: 1
                              maximum: 12
                            - type: "null"
                      required:
                        - active
                      additionalProperties: false
                    recurrence:
                      type: object
                      properties:
                        frequency:
                          type: string
                        interval:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        duration:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        tolerancePeriod:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        gracePeriod:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                      required:
                        - frequency
                        - interval
                        - duration
                        - tolerancePeriod
                        - gracePeriod
                      additionalProperties: false
                  required:
                    - pix
                    - boleto
                    - credit
                    - recurrence
                  additionalProperties: false
            membershipData:
              type: object
              properties:
                tokens:
                  anyOf:
                    - type: object
                      properties:
                        apiKey:
                          type: string
                        apiSecret:
                          anyOf:
                            - type: string
                            - type: "null"
                      required:
                        - apiKey
                      additionalProperties: false
                    - type: "null"
                url:
                  anyOf:
                    - type: string
                    - type: "null"
                productId:
                  anyOf:
                    - type: string
                    - type: "null"
                platform:
                  anyOf:
                    - type: string
                    - type: "null"
                adminAccess:
                  anyOf:
                    - type: object
                      properties:
                        email:
                          type: string
                        password:
                          type: string
                        link:
                          type: string
                      required:
                        - email
                        - password
                        - link
                      additionalProperties: false
                    - type: "null"
              additionalProperties: false
            additionalInfo:
              type: object
              propertyNames:
                type: string
              additionalProperties: {}
            providerSyncError:
              default: {}
              type: object
              propertyNames:
                type: string
              additionalProperties: {}
            freightConfig:
              anyOf:
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - shipping_company
                        - fixed
                        - free
                    preparationDay:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    startDay:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    endDay:
                      type: integer
                      minimum: 1
                      maximum: 9007199254740991
                    fixedPrice:
                      type: integer
                      minimum: 1
                      maximum: 9007199254740991
                    freeStates:
                      type: array
                      items:
                        type: string
                        pattern: ^[A-Z]{2}$
                    blockedStates:
                      type: array
                      items:
                        type: string
                        pattern: ^[A-Z]{2}$
                    isPac:
                      type: boolean
                    pacFallbackPrice:
                      type: integer
                      minimum: 1
                      maximum: 100000
                    pacFallbackEndDay:
                      type: integer
                      minimum: 1
                      maximum: 100
                    isSedex:
                      type: boolean
                    sedexFallbackPrice:
                      type: integer
                      minimum: 1
                      maximum: 100000
                    sedexFallbackEndDay:
                      type: integer
                      minimum: 1
                      maximum: 100
                    zipCode:
                      type: string
                      pattern: ^\d{8}$
                    weight:
                      type: number
                      minimum: 0.1
                      maximum: 30
                    length:
                      type: integer
                      minimum: 1
                      maximum: 100
                    width:
                      type: integer
                      minimum: 10
                      maximum: 100
                    height:
                      type: integer
                      minimum: 1
                      maximum: 100
                  required:
                    - type
                    - preparationDay
                    - startDay
                    - endDay
                  additionalProperties: false
                - type: "null"
            quantityItems:
              anyOf:
                - type: integer
                  minimum: 0
                  maximum: 100
                - type: "null"
            isRecurrent:
              type: boolean
            defaultCommission:
              anyOf:
                - type: integer
                  minimum: 1
                  maximum: 80
                - type: "null"
            defaultInstallment:
              type: integer
              minimum: 0
              maximum: 12
            salesCount:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            firstSaleAt:
              anyOf:
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                - type: "null"
            pendingModeration:
              default: false
              type: boolean
            refusedReason:
              anyOf:
                - type: string
                - type: "null"
            moderatorId:
              anyOf:
                - type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                - type: "null"
            moderatedAt:
              anyOf:
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                - type: "null"
            internalNotes:
              anyOf:
                - type: string
                - type: "null"
            riskAcceptedAt:
              anyOf:
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                - type: "null"
            riskAcceptedById:
              anyOf:
                - type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                - type: "null"
            riskAcceptanceReason:
              anyOf:
                - type: string
                - type: "null"
            planId:
              anyOf:
                - type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                - type: "null"
            addonId:
              anyOf:
                - type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                - type: "null"
            createdAt:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            updatedAt:
              type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            deletedAt:
              anyOf:
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                - type: "null"
            offerSupportEmailId:
              anyOf:
                - type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                - type: "null"
            externalId:
              anyOf:
                - type: string
                - type: "null"
            origin:
              type: string
              enum:
                - iopay
                - ticto
                - free
            isOutsider:
              default: false
              type: boolean
            previousStatus:
              anyOf:
                - anyOf:
                    - type: string
                      const: pending
                    - type: string
                      const: refused
                    - type: string
                      const: blocked
                    - type: string
                      const: approved
                    - type: string
                      const: incomplete
                    - type: string
                      const: archived
                    - type: string
                      const: ready_to_submit
                    - type: string
                      const: pending_corrections
                    - type: string
                      const: out_of_stock
                    - type: "null"
                      const: null
                - type: "null"
            statusChangedAt:
              anyOf:
                - type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                - type: "null"
          required:
            - id
            - ownerId
            - productId
            - isMain
            - hash
            - name
            - currency
            - originalPrice
            - showTimer
            - showCoupon
            - highlightInstallment
            - requiredAddress
            - passPlatformFee
            - showDescription
            - checkoutImages
            - type
            - status
            - paymentMethods
            - membershipData
            - additionalInfo
            - providerSyncError
            - isRecurrent
            - defaultInstallment
            - salesCount
            - pendingModeration
            - createdAt
            - updatedAt
            - origin
            - isOutsider
          additionalProperties: false
      required:
        - product
        - offer
      additionalProperties: false
    ProductsArchiveInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    ProductsArchiveOutput:
      type: object
      properties:
        archived:
          type: boolean
      required:
        - archived
      additionalProperties: false
    ProductsUnarchiveInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    ProductsUnarchiveOutput:
      type: object
      properties:
        unarchived:
          type: boolean
      required:
        - unarchived
      additionalProperties: false
    ExternalProductsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              platform:
                type: string
                enum:
                  - braip
                  - cartpanda
                  - eduzz
                  - green
                  - guru
                  - hotmart
                  - hubla
                  - kirvano
                  - kiwify
                  - lastlink
                  - monetizze
                  - pagarme
                  - perfectpay
                  - principia
                  - stripe
                  - ticto
                  - tmb
                  - voomp
                  - whop
                  - yampi
                  - yever
              externalId:
                type: string
                maxLength: 255
              name:
                type: string
                maxLength: 255
              price:
                anyOf:
                  - type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  - type: "null"
              currency:
                anyOf:
                  - type: string
                    maxLength: 3
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - id
              - ownerId
              - platform
              - externalId
              - name
              - createdAt
              - updatedAt
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    ExternalProductsGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        platform:
          type: string
          enum:
            - braip
            - cartpanda
            - eduzz
            - green
            - guru
            - hotmart
            - hubla
            - kirvano
            - kiwify
            - lastlink
            - monetizze
            - pagarme
            - perfectpay
            - principia
            - stripe
            - ticto
            - tmb
            - voomp
            - whop
            - yampi
            - yever
        externalId:
          type: string
          maxLength: 255
        name:
          type: string
          maxLength: 255
        price:
          anyOf:
            - type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            - type: "null"
        currency:
          anyOf:
            - type: string
              maxLength: 3
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - ownerId
        - platform
        - externalId
        - name
        - createdAt
        - updatedAt
      additionalProperties: false
    ProductsDeleteInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    ProductsDeleteOutput:
      type: object
      properties:
        deleted:
          type: boolean
      required:
        - deleted
      additionalProperties: false
    OffersAddMembershipDeliveryInput:
      type: object
      properties:
        offerId:
          type: string
        portalId:
          type: string
        classroomId:
          type: string
      required:
        - offerId
        - portalId
        - classroomId
    OffersAddMembershipDeliveryOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        url:
          anyOf:
            - type: string
              pattern: ^https?:\/\/.+$
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        title:
          anyOf:
            - type: string
            - type: "null"
        description:
          anyOf:
            - type: string
            - type: "null"
        type:
          anyOf:
            - type: string
            - type: "null"
        size:
          anyOf:
            - type: string
            - type: "null"
        category:
          type: string
          enum:
            - file
            - link
            - event
            - email
            - membership
            - internal_membership
            - webhook
            - clickmax_plan
            - addon
        links:
          type: array
          items:
            type: object
            properties:
              title:
                type: string
              url:
                anyOf:
                  - type: string
                    pattern: ^https?:\/\/.+$
                  - type: string
                    pattern: ^https:\/\/.+$
            required:
              - title
              - url
            additionalProperties: false
        event:
          anyOf:
            - type: object
              properties:
                startDate:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                endDate:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                startTime:
                  type: string
                endTime:
                  type: string
              required:
                - startDate
                - endDate
                - startTime
                - endTime
              additionalProperties: false
            - type: "null"
        email:
          anyOf:
            - type: object
              properties:
                bodyText:
                  type: string
                buttonText:
                  type: string
              required:
                - bodyText
                - buttonText
              additionalProperties: false
            - type: "null"
        membership:
          anyOf:
            - type: object
              properties:
                tokens:
                  type: object
                  properties:
                    apiKey:
                      type: string
                    apiSecret:
                      anyOf:
                        - type: string
                        - type: "null"
                  required:
                    - apiKey
                  additionalProperties: false
                productId:
                  type: string
                platform:
                  type: string
                adminAccess:
                  type: object
                  properties:
                    email:
                      type: string
                    password:
                      type: string
                    link:
                      type: string
                      pattern: ^https?:\/\/.+$
                  required:
                    - email
                    - password
                    - link
                  additionalProperties: false
              required:
                - tokens
                - productId
                - platform
                - adminAccess
              additionalProperties: false
            - type: "null"
        internalMembership:
          anyOf:
            - type: object
              properties:
                portalId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                classroomId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              required:
                - portalId
                - classroomId
              additionalProperties: false
            - type: "null"
        webhook:
          anyOf:
            - type: object
              properties:
                url:
                  type: string
                  pattern: ^https:\/\/.+$
                method:
                  type: string
                  enum:
                    - POST
                    - PUT
                    - PATCH
                headers:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    type: string
                events:
                  type: array
                  items:
                    type: string
                    enum:
                      - checkout.transaction.paid.v1
                      - checkout.transaction.created.v1
                      - checkout.chargeback.requested.v1
                      - checkout.refund.requested.v1
                      - checkout.subscription.canceled.v1
                customPayloads:
                  type: object
                  properties:
                    checkout.transaction.paid.v1:
                      description: Parsed JSON template object with {{variable}} and @each
                      type: object
                      propertyNames:
                        type: string
                      additionalProperties: {}
                    checkout.transaction.created.v1:
                      description: Parsed JSON template object with {{variable}} and @each
                      type: object
                      propertyNames:
                        type: string
                      additionalProperties: {}
                    checkout.chargeback.requested.v1:
                      description: Parsed JSON template object with {{variable}} and @each
                      type: object
                      propertyNames:
                        type: string
                      additionalProperties: {}
                    checkout.refund.requested.v1:
                      description: Parsed JSON template object with {{variable}} and @each
                      type: object
                      propertyNames:
                        type: string
                      additionalProperties: {}
                    checkout.subscription.canceled.v1:
                      description: Parsed JSON template object with {{variable}} and @each
                      type: object
                      propertyNames:
                        type: string
                      additionalProperties: {}
                  additionalProperties: false
              required:
                - url
                - method
                - events
              additionalProperties: false
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
      required:
        - id
        - category
        - createdAt
      additionalProperties: false
    OffersAddLinkDeliveryInput:
      type: object
      properties:
        offerId:
          type: string
        links:
          type: array
          items:
            type: object
            properties:
              title:
                type: string
              url:
                type: string
            required:
              - title
              - url
      required:
        - offerId
        - links
    OffersAddFileDeliveryInput:
      type: object
      properties:
        offerId:
          type: string
        url:
          type: string
        title:
          type: string
        description:
          type: string
      required:
        - offerId
        - url
        - title
    OffersGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          maxLength: 1000
        checkoutTitle:
          anyOf:
            - type: string
              maxLength: 120
            - type: "null"
        isMain:
          type: boolean
        hash:
          type: string
        externalUrl:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        thumbnail:
          type: string
        currency:
          type: string
          enum:
            - BRL
            - EUR
            - USD
        originalPrice:
          type: integer
          minimum: 500
          maximum: 9007199254740991
        newPrice:
          anyOf:
            - type: integer
              minimum: 500
              maximum: 9007199254740991
            - type: "null"
        type:
          type: string
          enum:
            - community
            - course
            - ebook
            - event
            - physical
            - other
            - services
            - software
            - consultancy
            - mentorship
        country:
          anyOf:
            - type: string
            - type: "null"
        description:
          anyOf:
            - type: string
              maxLength: 1000
            - type: "null"
        language:
          anyOf:
            - type: string
            - type: "null"
        limitToRefund:
          anyOf:
            - type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            - type: "null"
        supportEmail:
          anyOf:
            - type: string
            - type: "null"
        showTimer:
          type: boolean
        showCoupon:
          type: boolean
        highlightInstallment:
          type: boolean
        passPlatformFee:
          default: false
          type: boolean
        showDescription:
          default: true
          type: boolean
        bannerDesktop:
          anyOf:
            - type: string
            - type: "null"
        bannerMobile:
          anyOf:
            - type: string
            - type: "null"
        requiredAddress:
          default: false
          type: boolean
        freightConfig:
          anyOf:
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - shipping_company
                    - fixed
                    - free
                preparationDay:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                startDay:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                endDay:
                  type: integer
                  minimum: 1
                  maximum: 9007199254740991
                fixedPrice:
                  type: integer
                  minimum: 1
                  maximum: 9007199254740991
                freeStates:
                  type: array
                  items:
                    type: string
                    pattern: ^[A-Z]{2}$
                blockedStates:
                  type: array
                  items:
                    type: string
                    pattern: ^[A-Z]{2}$
                isPac:
                  type: boolean
                pacFallbackPrice:
                  type: integer
                  minimum: 1
                  maximum: 100000
                pacFallbackEndDay:
                  type: integer
                  minimum: 1
                  maximum: 100
                isSedex:
                  type: boolean
                sedexFallbackPrice:
                  type: integer
                  minimum: 1
                  maximum: 100000
                sedexFallbackEndDay:
                  type: integer
                  minimum: 1
                  maximum: 100
                zipCode:
                  type: string
                  pattern: ^\d{8}$
                weight:
                  type: number
                  minimum: 0.1
                  maximum: 30
                length:
                  type: integer
                  minimum: 1
                  maximum: 100
                width:
                  type: integer
                  minimum: 10
                  maximum: 100
                height:
                  type: integer
                  minimum: 1
                  maximum: 100
              required:
                - type
                - preparationDay
                - startDay
                - endDay
              additionalProperties: false
            - type: "null"
        checkoutImages:
          type: object
          properties:
            side:
              type: object
              properties:
                title:
                  anyOf:
                    - type: string
                    - type: "null"
                type:
                  anyOf:
                    - type: string
                    - type: "null"
                size:
                  anyOf:
                    - type: string
                    - type: "null"
              additionalProperties: false
            cover:
              type: object
              properties:
                title:
                  anyOf:
                    - type: string
                    - type: "null"
                type:
                  anyOf:
                    - type: string
                    - type: "null"
                size:
                  anyOf:
                    - type: string
                    - type: "null"
              additionalProperties: false
            product:
              anyOf:
                - type: object
                  properties:
                    title:
                      anyOf:
                        - type: string
                        - type: "null"
                    type:
                      anyOf:
                        - type: string
                        - type: "null"
                    size:
                      anyOf:
                        - type: string
                        - type: "null"
                  additionalProperties: false
                - type: "null"
          required:
            - side
            - cover
          additionalProperties: false
        productType:
          type: string
          enum:
            - external
            - internal
        productId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productName:
          type: string
          maxLength: 1000
        imageStock:
          anyOf:
            - type: string
            - type: "null"
        stockQuantity:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 9007199254740991
            - type: "null"
        quantityItems:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 100
            - type: "null"
        offerSupportEmailId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        paymentConfig:
          anyOf:
            - anyOf:
                - type: object
                  properties:
                    pix:
                      type: object
                      properties:
                        active:
                          type: boolean
                      required:
                        - active
                      additionalProperties: false
                    boleto:
                      type: object
                      properties:
                        active:
                          type: boolean
                      required:
                        - active
                      additionalProperties: false
                    credit:
                      type: object
                      properties:
                        active:
                          type: boolean
                        installments:
                          anyOf:
                            - type: integer
                              minimum: 1
                              maximum: 12
                            - type: "null"
                      required:
                        - active
                      additionalProperties: false
                    recurrence:
                      type: "null"
                  required:
                    - pix
                    - boleto
                    - credit
                    - recurrence
                  additionalProperties: false
                - type: object
                  properties:
                    pix:
                      type: object
                      properties:
                        active:
                          type: boolean
                      required:
                        - active
                      additionalProperties: false
                    boleto:
                      type: object
                      properties:
                        active:
                          type: boolean
                          const: false
                      required:
                        - active
                      additionalProperties: false
                    credit:
                      type: object
                      properties:
                        active:
                          type: boolean
                          const: true
                        installments:
                          anyOf:
                            - type: integer
                              minimum: 1
                              maximum: 12
                            - type: "null"
                      required:
                        - active
                      additionalProperties: false
                    recurrence:
                      type: object
                      properties:
                        frequency:
                          type: string
                        interval:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        duration:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        tolerancePeriod:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        gracePeriod:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                      required:
                        - frequency
                        - interval
                        - duration
                        - tolerancePeriod
                        - gracePeriod
                      additionalProperties: false
                  required:
                    - pix
                    - boleto
                    - credit
                    - recurrence
                  additionalProperties: false
            - type: object
              properties:
                pix:
                  type: object
                  properties:
                    active:
                      type: boolean
                  required:
                    - active
                  additionalProperties: false
                boleto:
                  type: object
                  properties:
                    active:
                      type: boolean
                  required:
                    - active
                  additionalProperties: false
                credit:
                  type: object
                  properties:
                    active:
                      type: boolean
                    installments:
                      anyOf:
                        - type: integer
                          minimum: 1
                          maximum: 12
                        - type: "null"
                  required:
                    - active
                  additionalProperties: false
                recurrence:
                  type: object
                  properties:
                    frequency:
                      type: string
                    interval:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    duration:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    tolerancePeriod:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    gracePeriod:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                  required:
                    - frequency
                    - interval
                    - duration
                    - tolerancePeriod
                    - gracePeriod
                  additionalProperties: false
              required:
                - pix
                - boleto
                - credit
                - recurrence
              additionalProperties: false
        defaultInstallment:
          type: integer
          minimum: 0
          maximum: 12
        membershipData:
          type: object
          properties:
            tokens:
              type: object
              properties:
                apiKey:
                  type: string
                apiSecret:
                  anyOf:
                    - type: string
                    - type: "null"
              required:
                - apiKey
              additionalProperties: false
            productId:
              type: string
            platform:
              type: string
            adminAccess:
              type: object
              properties:
                email:
                  type: string
                password:
                  type: string
                link:
                  type: string
                  pattern: ^https?:\/\/.+$
              required:
                - email
                - password
                - link
              additionalProperties: false
            url:
              anyOf:
                - type: string
                  pattern: ^https?:\/\/.+$
                - type: string
                  pattern: ^https:\/\/.+$
                - type: "null"
          additionalProperties: false
        deliverables:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              url:
                anyOf:
                  - type: string
                    pattern: ^https?:\/\/.+$
                  - type: string
                    pattern: ^https:\/\/.+$
                  - type: "null"
              title:
                anyOf:
                  - type: string
                  - type: "null"
              description:
                anyOf:
                  - type: string
                  - type: "null"
              type:
                anyOf:
                  - type: string
                  - type: "null"
              size:
                anyOf:
                  - type: string
                  - type: "null"
              category:
                type: string
                enum:
                  - file
                  - link
                  - event
                  - email
                  - membership
                  - internal_membership
                  - webhook
                  - clickmax_plan
                  - addon
              links:
                type: array
                items:
                  type: object
                  properties:
                    title:
                      type: string
                    url:
                      anyOf:
                        - type: string
                          pattern: ^https?:\/\/.+$
                        - type: string
                          pattern: ^https:\/\/.+$
                  required:
                    - title
                    - url
                  additionalProperties: false
              event:
                anyOf:
                  - type: object
                    properties:
                      startDate:
                        type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      endDate:
                        type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      startTime:
                        type: string
                      endTime:
                        type: string
                    required:
                      - startDate
                      - endDate
                      - startTime
                      - endTime
                    additionalProperties: false
                  - type: "null"
              email:
                anyOf:
                  - type: object
                    properties:
                      bodyText:
                        type: string
                      buttonText:
                        type: string
                    required:
                      - bodyText
                      - buttonText
                    additionalProperties: false
                  - type: "null"
              membership:
                anyOf:
                  - type: object
                    properties:
                      tokens:
                        type: object
                        properties:
                          apiKey:
                            type: string
                          apiSecret:
                            anyOf:
                              - type: string
                              - type: "null"
                        required:
                          - apiKey
                        additionalProperties: false
                      productId:
                        type: string
                      platform:
                        type: string
                      adminAccess:
                        type: object
                        properties:
                          email:
                            type: string
                          password:
                            type: string
                          link:
                            type: string
                            pattern: ^https?:\/\/.+$
                        required:
                          - email
                          - password
                          - link
                        additionalProperties: false
                    required:
                      - tokens
                      - productId
                      - platform
                      - adminAccess
                    additionalProperties: false
                  - type: "null"
              internalMembership:
                anyOf:
                  - type: object
                    properties:
                      portalId:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      classroomId:
                        type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    required:
                      - portalId
                      - classroomId
                    additionalProperties: false
                  - type: "null"
              webhook:
                anyOf:
                  - type: object
                    properties:
                      url:
                        type: string
                        pattern: ^https:\/\/.+$
                      method:
                        type: string
                        enum:
                          - POST
                          - PUT
                          - PATCH
                      headers:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties:
                          type: string
                      events:
                        type: array
                        items:
                          type: string
                          enum:
                            - checkout.transaction.paid.v1
                            - checkout.transaction.created.v1
                            - checkout.chargeback.requested.v1
                            - checkout.refund.requested.v1
                            - checkout.subscription.canceled.v1
                      customPayloads:
                        type: object
                        properties:
                          checkout.transaction.paid.v1:
                            description: Parsed JSON template object with {{variable}} and @each
                            type: object
                            propertyNames:
                              type: string
                            additionalProperties: {}
                          checkout.transaction.created.v1:
                            description: Parsed JSON template object with {{variable}} and @each
                            type: object
                            propertyNames:
                              type: string
                            additionalProperties: {}
                          checkout.chargeback.requested.v1:
                            description: Parsed JSON template object with {{variable}} and @each
                            type: object
                            propertyNames:
                              type: string
                            additionalProperties: {}
                          checkout.refund.requested.v1:
                            description: Parsed JSON template object with {{variable}} and @each
                            type: object
                            propertyNames:
                              type: string
                            additionalProperties: {}
                          checkout.subscription.canceled.v1:
                            description: Parsed JSON template object with {{variable}} and @each
                            type: object
                            propertyNames:
                              type: string
                            additionalProperties: {}
                        additionalProperties: false
                    required:
                      - url
                      - method
                      - events
                    additionalProperties: false
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - category
              - createdAt
            additionalProperties: false
        coproductions:
          type: array
          items:
            type: object
            properties:
              email:
                type: string
              commission:
                type: number
              status:
                type: string
                enum:
                  - pending_registration
                  - pending_seller
                  - approved
                  - deleted
            required:
              - email
              - commission
              - status
            additionalProperties: false
        productCategory:
          type: string
          enum:
            - Saúde e Esportes
            - Finanças e Investimentos
            - Relacionamentos
            - Negócios e Carreira
            - Espiritualidade
            - Sexualidade
            - Entretenimento
            - Culinária e Gastronomia
            - Idiomas
            - Direito
            - Apps & Software
            - Literatura
            - Casa e Construção
            - Desenvolvimento Pessoal
            - Moda e Beleza
            - Animais e Plantas
            - Educacional
            - Hobbies
            - Design
            - Internet
            - Ecologia e Meio Ambiente
            - Músicas e Artes
            - Tecnologia da Informação
            - Empreendedorismo Digital
            - Outros
            - Chás
            - Cosméticos
            - Livros
            - Nootrópicos
            - Nutracêuticos
        productClass:
          type: string
          enum:
            - Comunidade
            - Curso
            - E-book
            - Evento
            - Produto físico
            - Outro
            - Serviço
            - Software
            - Consultoria
            - Mentoria
        softDescriptor:
          anyOf:
            - type: string
              maxLength: 15
            - type: "null"
        supportPhone:
          anyOf:
            - type: string
              maxLength: 32
            - type: "null"
        status:
          type: string
          enum:
            - pending
            - refused
            - blocked
            - approved
            - incomplete
            - archived
            - ready_to_submit
            - pending_corrections
            - out_of_stock
        gatewayName:
          anyOf:
            - type: string
            - type: "null"
        isExternalCheckout:
          type: boolean
        providerSyncError:
          default: {}
          type: object
          propertyNames:
            type: string
          additionalProperties: {}
        incompleteReason:
          type: array
          items:
            type: string
            enum:
              - description
              - supportEmail
              - supportPhone
              - deliverables
              - softDescriptor
              - sellerStatus
              - bankAccountStatus
              - externalId
              - freightConfig
              - imageStock
              - stockQuantity
        planId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        addonId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        isRecurrent:
          type: boolean
      required:
        - id
        - name
        - isMain
        - hash
        - thumbnail
        - currency
        - originalPrice
        - type
        - showTimer
        - showCoupon
        - highlightInstallment
        - passPlatformFee
        - showDescription
        - requiredAddress
        - checkoutImages
        - productType
        - productId
        - productName
        - defaultInstallment
        - status
        - gatewayName
        - isExternalCheckout
        - providerSyncError
        - incompleteReason
      additionalProperties: false
    OffersGetIncompleteReasonOutput:
      type: object
      properties:
        incompleteReason:
          type: array
          items:
            type: string
            enum:
              - description
              - supportEmail
              - supportPhone
              - deliverables
              - softDescriptor
              - sellerStatus
              - bankAccountStatus
              - externalId
              - freightConfig
              - imageStock
              - stockQuantity
      required:
        - incompleteReason
      additionalProperties: false
    OffersListSupportEmailsOutput:
      type: object
      properties:
        supportEmails:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              email:
                type: string
                minLength: 5
                maxLength: 255
                format: email
                pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
              ownerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              verifiedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
            required:
              - id
              - email
              - ownerId
            additionalProperties: false
      required:
        - supportEmails
      additionalProperties: false
    OffersCreateSupportEmailInput:
      type: object
      properties:
        email:
          type: string
          minLength: 5
          maxLength: 255
          format: email
          pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
      required:
        - email
    OffersCreateSupportEmailOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    OffersResendSupportEmailValidationInput:
      type: object
      properties:
        offerSupportEmailId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - offerSupportEmailId
    OffersResendSupportEmailValidationOutput:
      type: object
      properties:
        success:
          type: boolean
      required:
        - success
      additionalProperties: false
    OffersCreateInput:
      type: object
      properties:
        productId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          minLength: 1
          maxLength: 1000
          pattern: .*\S.*
        type:
          type: string
          enum:
            - community
            - course
            - ebook
            - event
            - physical
            - other
            - services
            - software
            - consultancy
            - mentorship
        currency:
          type: string
          enum:
            - BRL
            - EUR
            - USD
        originalPrice:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        newPrice:
          anyOf:
            - type: "null"
            - type: integer
              minimum: 0
              maximum: 9007199254740991
        externalUrl:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        description:
          anyOf:
            - type: string
              maxLength: 1000
            - type: "null"
        language:
          anyOf:
            - type: string
            - type: "null"
        country:
          anyOf:
            - type: string
            - type: "null"
        limitToRefund:
          anyOf:
            - type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            - type: "null"
        showTimer:
          type: boolean
        paymentConfig:
          anyOf:
            - anyOf:
                - type: object
                  properties:
                    pix:
                      type: object
                      properties:
                        active:
                          type: boolean
                      required:
                        - active
                    boleto:
                      type: object
                      properties:
                        active:
                          type: boolean
                      required:
                        - active
                    credit:
                      type: object
                      properties:
                        active:
                          type: boolean
                        installments:
                          anyOf:
                            - type: integer
                              minimum: 1
                              maximum: 12
                            - type: "null"
                      required:
                        - active
                    recurrence:
                      type: "null"
                  required:
                    - pix
                    - boleto
                    - credit
                    - recurrence
                - type: object
                  properties:
                    pix:
                      type: object
                      properties:
                        active:
                          type: boolean
                      required:
                        - active
                    boleto:
                      type: object
                      properties:
                        active:
                          type: boolean
                          const: false
                      required:
                        - active
                    credit:
                      type: object
                      properties:
                        active:
                          type: boolean
                          const: true
                        installments:
                          anyOf:
                            - type: integer
                              minimum: 1
                              maximum: 12
                            - type: "null"
                      required:
                        - active
                    recurrence:
                      type: object
                      properties:
                        frequency:
                          type: string
                        interval:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        duration:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        tolerancePeriod:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        gracePeriod:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                      required:
                        - frequency
                        - interval
                        - duration
                        - tolerancePeriod
                        - gracePeriod
                  required:
                    - pix
                    - boleto
                    - credit
                    - recurrence
            - type: object
              properties:
                pix:
                  type: object
                  properties:
                    active:
                      type: boolean
                  required:
                    - active
                boleto:
                  type: object
                  properties:
                    active:
                      type: boolean
                  required:
                    - active
                credit:
                  type: object
                  properties:
                    active:
                      type: boolean
                    installments:
                      anyOf:
                        - type: integer
                          minimum: 1
                          maximum: 12
                        - type: "null"
                  required:
                    - active
                recurrence:
                  type: object
                  properties:
                    frequency:
                      type: string
                    interval:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    duration:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    tolerancePeriod:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    gracePeriod:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                  required:
                    - frequency
                    - interval
                    - duration
                    - tolerancePeriod
                    - gracePeriod
              required:
                - pix
                - boleto
                - credit
                - recurrence
        additionalInfo:
          type: object
          propertyNames:
            type: string
          additionalProperties: {}
        quantityItems:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 100
            - type: "null"
        freightConfig:
          anyOf:
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - shipping_company
                    - fixed
                    - free
                preparationDay:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                startDay:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                endDay:
                  type: integer
                  minimum: 1
                  maximum: 9007199254740991
                fixedPrice:
                  type: integer
                  minimum: 1
                  maximum: 9007199254740991
                freeStates:
                  type: array
                  items:
                    type: string
                    pattern: ^[A-Z]{2}$
                blockedStates:
                  type: array
                  items:
                    type: string
                    pattern: ^[A-Z]{2}$
                isPac:
                  type: boolean
                pacFallbackPrice:
                  type: integer
                  minimum: 1
                  maximum: 100000
                pacFallbackEndDay:
                  type: integer
                  minimum: 1
                  maximum: 100
                isSedex:
                  type: boolean
                sedexFallbackPrice:
                  type: integer
                  minimum: 1
                  maximum: 100000
                sedexFallbackEndDay:
                  type: integer
                  minimum: 1
                  maximum: 100
                zipCode:
                  type: string
                  pattern: ^\d{8}$
                weight:
                  type: number
                  minimum: 0.1
                  maximum: 30
                length:
                  type: integer
                  minimum: 1
                  maximum: 100
                width:
                  type: integer
                  minimum: 10
                  maximum: 100
                height:
                  type: integer
                  minimum: 1
                  maximum: 100
              required:
                - type
                - preparationDay
                - startDay
                - endDay
            - type: "null"
        requiredAddress:
          default: false
          type: boolean
        passPlatformFee:
          default: false
          type: boolean
        supportPhone:
          anyOf:
            - type: string
              maxLength: 32
            - type: "null"
        planId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        externalId:
          anyOf:
            - type: string
            - type: "null"
      required:
        - productId
        - name
        - currency
        - originalPrice
    OffersCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        productId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        isMain:
          type: boolean
        hash:
          type: string
        externalUrl:
          anyOf:
            - type: string
              pattern: ^https:\/\/.+$
            - type: "null"
        name:
          type: string
          maxLength: 1000
        checkoutTitle:
          anyOf:
            - type: string
              maxLength: 120
            - type: "null"
        description:
          anyOf:
            - type: string
              maxLength: 1000
            - type: "null"
        language:
          anyOf:
            - type: string
            - type: "null"
        country:
          anyOf:
            - type: string
            - type: "null"
        limitToRefund:
          anyOf:
            - type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            - type: "null"
        supportEmail:
          anyOf:
            - type: string
            - type: "null"
        supportPhone:
          anyOf:
            - type: string
              maxLength: 32
            - type: "null"
        currency:
          type: string
          enum:
            - BRL
            - EUR
            - USD
        originalPrice:
          type: integer
          minimum: 500
          maximum: 9007199254740991
        newPrice:
          anyOf:
            - type: integer
              minimum: 500
              maximum: 9007199254740991
            - type: "null"
        showTimer:
          type: boolean
        showCoupon:
          type: boolean
        highlightInstallment:
          type: boolean
        requiredAddress:
          default: false
          type: boolean
        passPlatformFee:
          default: false
          type: boolean
        showDescription:
          default: true
          type: boolean
        bannerDesktop:
          anyOf:
            - type: string
            - type: "null"
        bannerMobile:
          anyOf:
            - type: string
            - type: "null"
        checkoutImages:
          type: object
          properties:
            side:
              type: object
              properties:
                title:
                  anyOf:
                    - type: string
                    - type: "null"
                type:
                  anyOf:
                    - type: string
                    - type: "null"
                size:
                  anyOf:
                    - type: string
                    - type: "null"
              additionalProperties: false
            cover:
              type: object
              properties:
                title:
                  anyOf:
                    - type: string
                    - type: "null"
                type:
                  anyOf:
                    - type: string
                    - type: "null"
                size:
                  anyOf:
                    - type: string
                    - type: "null"
              additionalProperties: false
            product:
              anyOf:
                - type: object
                  properties:
                    title:
                      anyOf:
                        - type: string
                        - type: "null"
                    type:
                      anyOf:
                        - type: string
                        - type: "null"
                    size:
                      anyOf:
                        - type: string
                        - type: "null"
                  additionalProperties: false
                - type: "null"
          required:
            - side
            - cover
          additionalProperties: false
        type:
          type: string
          enum:
            - community
            - course
            - ebook
            - event
            - physical
            - other
            - services
            - software
            - consultancy
            - mentorship
        status:
          type: string
          enum:
            - pending
            - refused
            - blocked
            - approved
            - incomplete
            - archived
            - ready_to_submit
            - pending_corrections
            - out_of_stock
        paymentMethods:
          anyOf:
            - anyOf:
                - type: object
                  properties:
                    pix:
                      type: object
                      properties:
                        active:
                          type: boolean
                      required:
                        - active
                      additionalProperties: false
                    boleto:
                      type: object
                      properties:
                        active:
                          type: boolean
                      required:
                        - active
                      additionalProperties: false
                    credit:
                      type: object
                      properties:
                        active:
                          type: boolean
                        installments:
                          anyOf:
                            - type: integer
                              minimum: 1
                              maximum: 12
                            - type: "null"
                      required:
                        - active
                      additionalProperties: false
                    recurrence:
                      type: "null"
                  required:
                    - pix
                    - boleto
                    - credit
                    - recurrence
                  additionalProperties: false
                - type: object
                  properties:
                    pix:
                      type: object
                      properties:
                        active:
                          type: boolean
                      required:
                        - active
                      additionalProperties: false
                    boleto:
                      type: object
                      properties:
                        active:
                          type: boolean
                          const: false
                      required:
                        - active
                      additionalProperties: false
                    credit:
                      type: object
                      properties:
                        active:
                          type: boolean
                          const: true
                        installments:
                          anyOf:
                            - type: integer
                              minimum: 1
                              maximum: 12
                            - type: "null"
                      required:
                        - active
                      additionalProperties: false
                    recurrence:
                      type: object
                      properties:
                        frequency:
                          type: string
                        interval:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        duration:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        tolerancePeriod:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        gracePeriod:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                      required:
                        - frequency
                        - interval
                        - duration
                        - tolerancePeriod
                        - gracePeriod
                      additionalProperties: false
                  required:
                    - pix
                    - boleto
                    - credit
                    - recurrence
                  additionalProperties: false
            - type: object
              properties:
                pix:
                  type: object
                  properties:
                    active:
                      type: boolean
                  required:
                    - active
                  additionalProperties: false
                boleto:
                  type: object
                  properties:
                    active:
                      type: boolean
                  required:
                    - active
                  additionalProperties: false
                credit:
                  type: object
                  properties:
                    active:
                      type: boolean
                    installments:
                      anyOf:
                        - type: integer
                          minimum: 1
                          maximum: 12
                        - type: "null"
                  required:
                    - active
                  additionalProperties: false
                recurrence:
                  type: object
                  properties:
                    frequency:
                      type: string
                    interval:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    duration:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    tolerancePeriod:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    gracePeriod:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                  required:
                    - frequency
                    - interval
                    - duration
                    - tolerancePeriod
                    - gracePeriod
                  additionalProperties: false
              required:
                - pix
                - boleto
                - credit
                - recurrence
              additionalProperties: false
        membershipData:
          type: object
          properties:
            tokens:
              anyOf:
                - type: object
                  properties:
                    apiKey:
                      type: string
                    apiSecret:
                      anyOf:
                        - type: string
                        - type: "null"
                  required:
                    - apiKey
                  additionalProperties: false
                - type: "null"
            url:
              anyOf:
                - type: string
                - type: "null"
            productId:
              anyOf:
                - type: string
                - type: "null"
            platform:
              anyOf:
                - type: string
                - type: "null"
            adminAccess:
              anyOf:
                - type: object
                  properties:
                    email:
                      type: string
                    password:
                      type: string
                    link:
                      type: string
                  required:
                    - email
                    - password
                    - link
                  additionalProperties: false
                - type: "null"
          additionalProperties: false
        additionalInfo:
          type: object
          propertyNames:
            type: string
          additionalProperties: {}
        providerSyncError:
          default: {}
          type: object
          propertyNames:
            type: string
          additionalProperties: {}
        freightConfig:
          anyOf:
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - shipping_company
                    - fixed
                    - free
                preparationDay:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                startDay:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                endDay:
                  type: integer
                  minimum: 1
                  maximum: 9007199254740991
                fixedPrice:
                  type: integer
                  minimum: 1
                  maximum: 9007199254740991
                freeStates:
                  type: array
                  items:
                    type: string
                    pattern: ^[A-Z]{2}$
                blockedStates:
                  type: array
                  items:
                    type: string
                    pattern: ^[A-Z]{2}$
                isPac:
                  type: boolean
                pacFallbackPrice:
                  type: integer
                  minimum: 1
                  maximum: 100000
                pacFallbackEndDay:
                  type: integer
                  minimum: 1
                  maximum: 100
                isSedex:
                  type: boolean
                sedexFallbackPrice:
                  type: integer
                  minimum: 1
                  maximum: 100000
                sedexFallbackEndDay:
                  type: integer
                  minimum: 1
                  maximum: 100
                zipCode:
                  type: string
                  pattern: ^\d{8}$
                weight:
                  type: number
                  minimum: 0.1
                  maximum: 30
                length:
                  type: integer
                  minimum: 1
                  maximum: 100
                width:
                  type: integer
                  minimum: 10
                  maximum: 100
                height:
                  type: integer
                  minimum: 1
                  maximum: 100
              required:
                - type
                - preparationDay
                - startDay
                - endDay
              additionalProperties: false
            - type: "null"
        quantityItems:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 100
            - type: "null"
        isRecurrent:
          type: boolean
        defaultCommission:
          anyOf:
            - type: integer
              minimum: 1
              maximum: 80
            - type: "null"
        defaultInstallment:
          type: integer
          minimum: 0
          maximum: 12
        salesCount:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        firstSaleAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        pendingModeration:
          default: false
          type: boolean
        refusedReason:
          anyOf:
            - type: string
            - type: "null"
        moderatorId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        moderatedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        internalNotes:
          anyOf:
            - type: string
            - type: "null"
        riskAcceptedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        riskAcceptedById:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        riskAcceptanceReason:
          anyOf:
            - type: string
            - type: "null"
        planId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        addonId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        offerSupportEmailId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        externalId:
          anyOf:
            - type: string
            - type: "null"
        origin:
          type: string
          enum:
            - iopay
            - ticto
            - free
        isOutsider:
          default: false
          type: boolean
        previousStatus:
          anyOf:
            - anyOf:
                - type: string
                  const: pending
                - type: string
                  const: refused
                - type: string
                  const: blocked
                - type: string
                  const: approved
                - type: string
                  const: incomplete
                - type: string
                  const: archived
                - type: string
                  const: ready_to_submit
                - type: string
                  const: pending_corrections
                - type: string
                  const: out_of_stock
                - type: "null"
                  const: null
            - type: "null"
        statusChangedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - ownerId
        - productId
        - isMain
        - hash
        - name
        - currency
        - originalPrice
        - showTimer
        - showCoupon
        - highlightInstallment
        - requiredAddress
        - passPlatformFee
        - showDescription
        - checkoutImages
        - type
        - status
        - paymentMethods
        - membershipData
        - additionalInfo
        - providerSyncError
        - isRecurrent
        - defaultInstallment
        - salesCount
        - pendingModeration
        - createdAt
        - updatedAt
        - origin
        - isOutsider
      additionalProperties: false
    OffersCloneMainOfferInput:
      type: object
      properties:
        productId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          minLength: 1
          maxLength: 1000
          pattern: .*\S.*
        originalPrice:
          type: integer
          minimum: 500
          maximum: 9007199254740991
        paymentConfig:
          anyOf:
            - anyOf:
                - type: object
                  properties:
                    pix:
                      type: object
                      properties:
                        active:
                          type: boolean
                      required:
                        - active
                    boleto:
                      type: object
                      properties:
                        active:
                          type: boolean
                      required:
                        - active
                    credit:
                      type: object
                      properties:
                        active:
                          type: boolean
                        installments:
                          anyOf:
                            - type: integer
                              minimum: 1
                              maximum: 12
                            - type: "null"
                      required:
                        - active
                    recurrence:
                      type: "null"
                  required:
                    - pix
                    - boleto
                    - credit
                    - recurrence
                - type: object
                  properties:
                    pix:
                      type: object
                      properties:
                        active:
                          type: boolean
                      required:
                        - active
                    boleto:
                      type: object
                      properties:
                        active:
                          type: boolean
                          const: false
                      required:
                        - active
                    credit:
                      type: object
                      properties:
                        active:
                          type: boolean
                          const: true
                        installments:
                          anyOf:
                            - type: integer
                              minimum: 1
                              maximum: 12
                            - type: "null"
                      required:
                        - active
                    recurrence:
                      type: object
                      properties:
                        frequency:
                          type: string
                        interval:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        duration:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        tolerancePeriod:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        gracePeriod:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                      required:
                        - frequency
                        - interval
                        - duration
                        - tolerancePeriod
                        - gracePeriod
                  required:
                    - pix
                    - boleto
                    - credit
                    - recurrence
            - type: object
              properties:
                pix:
                  type: object
                  properties:
                    active:
                      type: boolean
                  required:
                    - active
                boleto:
                  type: object
                  properties:
                    active:
                      type: boolean
                  required:
                    - active
                credit:
                  type: object
                  properties:
                    active:
                      type: boolean
                    installments:
                      anyOf:
                        - type: integer
                          minimum: 1
                          maximum: 12
                        - type: "null"
                  required:
                    - active
                recurrence:
                  type: object
                  properties:
                    frequency:
                      type: string
                    interval:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    duration:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    tolerancePeriod:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    gracePeriod:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                  required:
                    - frequency
                    - interval
                    - duration
                    - tolerancePeriod
                    - gracePeriod
              required:
                - pix
                - boleto
                - credit
                - recurrence
        passPlatformFee:
          default: false
          type: boolean
        externalId:
          anyOf:
            - type: string
            - type: "null"
      required:
        - productId
        - name
        - originalPrice
        - paymentConfig
    OffersUpdateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          maxLength: 1000
        checkoutTitle:
          anyOf:
            - type: string
              maxLength: 120
            - type: "null"
        type:
          type: string
          enum:
            - community
            - course
            - ebook
            - event
            - physical
            - other
            - services
            - software
            - consultancy
            - mentorship
        country:
          anyOf:
            - type: string
            - type: "null"
        description:
          anyOf:
            - type: string
              maxLength: 1000
            - type: "null"
        language:
          anyOf:
            - type: string
            - type: "null"
        limitToRefund:
          anyOf:
            - type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            - type: "null"
        offerSupportEmailId:
          anyOf:
            - type: string
            - type: "null"
        productType:
          type: string
          enum:
            - external
            - internal
        currency:
          type: string
          enum:
            - BRL
            - EUR
            - USD
        originalPrice:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        newPrice:
          anyOf:
            - type: "null"
            - type: integer
              minimum: 0
              maximum: 9007199254740991
        requiredAddress:
          default: false
          type: boolean
        showTimer:
          type: boolean
        showCoupon:
          type: boolean
        coproductions:
          type: array
          items:
            type: object
            properties:
              email:
                type: string
              commission:
                type: number
                minimum: 1
                maximum: 80
            required:
              - email
              - commission
        highlightInstallment:
          type: boolean
        freightConfig:
          anyOf:
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - shipping_company
                    - fixed
                    - free
                preparationDay:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                startDay:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                endDay:
                  type: integer
                  minimum: 1
                  maximum: 9007199254740991
                fixedPrice:
                  type: integer
                  minimum: 1
                  maximum: 9007199254740991
                freeStates:
                  type: array
                  items:
                    type: string
                    pattern: ^[A-Z]{2}$
                blockedStates:
                  type: array
                  items:
                    type: string
                    pattern: ^[A-Z]{2}$
                isPac:
                  type: boolean
                pacFallbackPrice:
                  type: integer
                  minimum: 1
                  maximum: 100000
                pacFallbackEndDay:
                  type: integer
                  minimum: 1
                  maximum: 100
                isSedex:
                  type: boolean
                sedexFallbackPrice:
                  type: integer
                  minimum: 1
                  maximum: 100000
                sedexFallbackEndDay:
                  type: integer
                  minimum: 1
                  maximum: 100
                zipCode:
                  type: string
                  pattern: ^\d{8}$
                weight:
                  type: number
                  minimum: 0.1
                  maximum: 30
                length:
                  type: integer
                  minimum: 1
                  maximum: 100
                width:
                  type: integer
                  minimum: 10
                  maximum: 100
                height:
                  type: integer
                  minimum: 1
                  maximum: 100
              required:
                - type
                - preparationDay
                - startDay
                - endDay
            - type: "null"
        passPlatformFee:
          default: false
          type: boolean
        showDescription:
          default: true
          type: boolean
        bannerDesktop:
          anyOf:
            - type: string
            - type: "null"
        bannerMobile:
          anyOf:
            - type: string
            - type: "null"
        defaultInstallment:
          type: integer
          minimum: 0
          maximum: 12
        productCategory:
          type: string
          enum:
            - Saúde e Esportes
            - Finanças e Investimentos
            - Relacionamentos
            - Negócios e Carreira
            - Espiritualidade
            - Sexualidade
            - Entretenimento
            - Culinária e Gastronomia
            - Idiomas
            - Direito
            - Apps & Software
            - Literatura
            - Casa e Construção
            - Desenvolvimento Pessoal
            - Moda e Beleza
            - Animais e Plantas
            - Educacional
            - Hobbies
            - Design
            - Internet
            - Ecologia e Meio Ambiente
            - Músicas e Artes
            - Tecnologia da Informação
            - Empreendedorismo Digital
            - Outros
            - Chás
            - Cosméticos
            - Livros
            - Nootrópicos
            - Nutracêuticos
        productClass:
          type: string
          enum:
            - Comunidade
            - Curso
            - E-book
            - Evento
            - Produto físico
            - Outro
            - Serviço
            - Software
            - Consultoria
            - Mentoria
        softDescriptor:
          anyOf:
            - type: "null"
            - type: string
              minLength: 1
              maxLength: 15
              pattern: .*\S.*
        supportPhone:
          anyOf:
            - type: "null"
            - type: string
              minLength: 1
              maxLength: 32
              pattern: .*\S.*
        externalId:
          anyOf:
            - type: "null"
            - type: string
              minLength: 1
              maxLength: 255
              pattern: .*\S.*
        externalUrl:
          anyOf:
            - anyOf:
                - type: string
                  pattern: ^https:\/\/.+$
                - type: "null"
            - type: "null"
        paymentConfig:
          anyOf:
            - type: "null"
            - anyOf:
                - anyOf:
                    - type: object
                      properties:
                        pix:
                          type: object
                          properties:
                            active:
                              type: boolean
                          required:
                            - active
                        boleto:
                          type: object
                          properties:
                            active:
                              type: boolean
                          required:
                            - active
                        credit:
                          type: object
                          properties:
                            active:
                              type: boolean
                            installments:
                              anyOf:
                                - type: integer
                                  minimum: 1
                                  maximum: 12
                                - type: "null"
                          required:
                            - active
                        recurrence:
                          type: "null"
                      required:
                        - pix
                        - boleto
                        - credit
                        - recurrence
                    - type: object
                      properties:
                        pix:
                          type: object
                          properties:
                            active:
                              type: boolean
                          required:
                            - active
                        boleto:
                          type: object
                          properties:
                            active:
                              type: boolean
                              const: false
                          required:
                            - active
                        credit:
                          type: object
                          properties:
                            active:
                              type: boolean
                              const: true
                            installments:
                              anyOf:
                                - type: integer
                                  minimum: 1
                                  maximum: 12
                                - type: "null"
                          required:
                            - active
                        recurrence:
                          type: object
                          properties:
                            frequency:
                              type: string
                            interval:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                            duration:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                            tolerancePeriod:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                            gracePeriod:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                          required:
                            - frequency
                            - interval
                            - duration
                            - tolerancePeriod
                            - gracePeriod
                      required:
                        - pix
                        - boleto
                        - credit
                        - recurrence
                - type: object
                  properties:
                    pix:
                      type: object
                      properties:
                        active:
                          type: boolean
                      required:
                        - active
                    boleto:
                      type: object
                      properties:
                        active:
                          type: boolean
                      required:
                        - active
                    credit:
                      type: object
                      properties:
                        active:
                          type: boolean
                        installments:
                          anyOf:
                            - type: integer
                              minimum: 1
                              maximum: 12
                            - type: "null"
                      required:
                        - active
                    recurrence:
                      type: object
                      properties:
                        frequency:
                          type: string
                        interval:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        duration:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        tolerancePeriod:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        gracePeriod:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                      required:
                        - frequency
                        - interval
                        - duration
                        - tolerancePeriod
                        - gracePeriod
                  required:
                    - pix
                    - boleto
                    - credit
                    - recurrence
        defaultCommission:
          anyOf:
            - type: "null"
            - anyOf:
                - type: integer
                  minimum: 1
                  maximum: 80
                - type: "null"
        affiliations:
          anyOf:
            - type: "null"
            - type: array
              items:
                type: object
                properties: {}
                additionalProperties: {}
      required:
        - id
        - name
        - type
        - productType
        - currency
        - originalPrice
        - defaultInstallment
        - supportPhone
    OffersSetProductImageInput:
      type: object
      properties:
        offerId:
          type: string
        imageUrl:
          type: string
      required:
        - offerId
        - imageUrl
    OffersSetProductImageOutput:
      type: object
      properties:
        url:
          type: string
      required:
        - url
      additionalProperties: false
    OffersSendToApprovalInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    OffersArchiveInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    OffersUnarchiveInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    OffersDeleteInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    OffersDeleteOutput:
      type: object
      properties:
        deleted:
          type: boolean
      required:
        - deleted
      additionalProperties: false
    BrandSaveDraftInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
          minLength: 1
          maxLength: 80
        businessName:
          anyOf:
            - type: string
              maxLength: 120
            - type: "null"
        businessIndustry:
          anyOf:
            - type: string
              maxLength: 80
            - type: "null"
        businessAudience:
          anyOf:
            - type: string
              maxLength: 4000
            - type: "null"
        businessUsp:
          anyOf:
            - type: string
              maxLength: 4000
            - type: "null"
        voiceTone:
          anyOf:
            - type: string
              enum:
                - formal
                - professional
                - casual
                - playful
                - bold
            - type: "null"
        voiceVocabulary:
          anyOf:
            - type: object
              properties:
                prefer:
                  maxItems: 20
                  type: array
                  items:
                    type: string
                    maxLength: 60
                avoid:
                  maxItems: 20
                  type: array
                  items:
                    type: string
                    maxLength: 60
              required:
                - prefer
                - avoid
            - type: "null"
        voiceSamples:
          anyOf:
            - maxItems: 10
              type: array
              items:
                type: object
                properties:
                  label:
                    type: string
                    maxLength: 60
                  text:
                    type: string
                    maxLength: 1000
                required:
                  - label
                  - text
            - type: "null"
        visualTokens:
          type: object
          properties:
            colors:
              type: object
              properties:
                primary:
                  type: string
                  pattern: ^#[0-9a-fA-F]{6}$
                secondary:
                  type: string
                  pattern: ^#[0-9a-fA-F]{6}$
                accent:
                  type: string
                  pattern: ^#[0-9a-fA-F]{6}$
                neutral:
                  type: object
                  properties:
                    "50":
                      type: string
                      pattern: ^#[0-9a-fA-F]{6}$
                    "500":
                      type: string
                      pattern: ^#[0-9a-fA-F]{6}$
                    "900":
                      type: string
                      pattern: ^#[0-9a-fA-F]{6}$
                  required:
                    - "50"
                    - "500"
                    - "900"
                semantic:
                  type: object
                  properties:
                    success:
                      type: string
                      pattern: ^#[0-9a-fA-F]{6}$
                    error:
                      type: string
                      pattern: ^#[0-9a-fA-F]{6}$
                  required:
                    - success
                    - error
              required:
                - primary
                - secondary
            typography:
              type: object
              properties:
                heading:
                  type: object
                  properties:
                    family:
                      type: string
                      maxLength: 80
                    weight:
                      type: integer
                      minimum: 100
                      maximum: 900
                  required:
                    - family
                    - weight
                body:
                  type: object
                  properties:
                    family:
                      type: string
                      maxLength: 80
                    weight:
                      type: integer
                      minimum: 100
                      maximum: 900
                  required:
                    - family
                    - weight
              required:
                - heading
                - body
            radius:
              anyOf:
                - type: string
                  enum:
                    - sm
                - type: string
                  enum:
                    - md
                - type: string
                  enum:
                    - lg
                - type: string
                  enum:
                    - full
            density:
              anyOf:
                - type: string
                  enum:
                    - compact
                - type: string
                  enum:
                    - regular
                - type: string
                  enum:
                    - spacious
          required:
            - colors
            - typography
            - radius
            - density
        logoAssetId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
      required:
        - id
    BrandSaveDraftOutput:
      type: object
      properties:
        ok:
          type: boolean
      required:
        - ok
      additionalProperties: false
    BrandMarkReadyInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
    PacksListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              isActive:
                default: false
                type: boolean
              projectId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              shareCount:
                default: 0
                type: number
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - name
              - isActive
              - shareCount
              - updatedAt
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    PacksGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        projectId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        funnelsEngine:
          type: string
          enum:
            - funnels3
            - funnels4
        name:
          type: string
        description:
          anyOf:
            - type: string
            - type: "null"
        learnMoreUrl:
          anyOf:
            - type: string
            - type: "null"
        isActive:
          default: false
          type: boolean
        shareCount:
          default: 0
          type: number
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        funnels:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
                maxLength: 255
              path:
                type: string
                maxLength: 255
              projectSlug:
                type: string
              planCategoryName:
                anyOf:
                  - type: string
                  - type: "null"
              canUse:
                type: boolean
              thumbnail:
                anyOf:
                  - type: string
                  - type: "null"
              pages:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                      maxLength: 255
                    projectId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    projectSlug:
                      anyOf:
                        - type: string
                        - type: "null"
                    thumbnail:
                      anyOf:
                        - type: string
                        - type: "null"
                  required:
                    - id
                    - name
                    - projectId
                  additionalProperties: false
              offers:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                      maxLength: 1000
                    defaultCommission:
                      anyOf:
                        - type: integer
                          minimum: 1
                          maximum: 80
                        - type: "null"
                    packCommission:
                      anyOf:
                        - type: number
                        - type: "null"
                    product:
                      type: string
                      maxLength: 1000
                    price:
                      type: integer
                      minimum: 500
                      maximum: 9007199254740991
                    thumbnail:
                      anyOf:
                        - type: string
                        - type: "null"
                    affiliationIsActive:
                      type: boolean
                    affiliationIsShared:
                      type: boolean
                  required:
                    - id
                    - name
                    - affiliationIsActive
                    - affiliationIsShared
                  additionalProperties: false
              flows:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                      maxLength: 255
                    shareId:
                      anyOf:
                        - type: string
                          maxLength: 8
                        - type: "null"
                    actions:
                      anyOf:
                        - type: array
                          items:
                            type: string
                        - type: "null"
                  required:
                    - id
                    - name
                  additionalProperties: false
            required:
              - id
              - name
              - path
              - projectSlug
              - canUse
              - pages
              - offers
              - flows
            additionalProperties: false
        pages:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
                maxLength: 255
              projectSlug:
                anyOf:
                  - type: string
                  - type: "null"
              projectId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              thumbnail:
                anyOf:
                  - type: string
                  - type: "null"
            required:
              - id
              - name
              - projectId
            additionalProperties: false
        flows:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
                maxLength: 255
              shareId:
                anyOf:
                  - type: string
                    maxLength: 8
                  - type: "null"
              actions:
                anyOf:
                  - type: array
                    items:
                      type: string
                  - type: "null"
            required:
              - id
              - name
            additionalProperties: false
        offers:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
                maxLength: 1000
              packCommission:
                anyOf:
                  - type: number
                  - type: "null"
              affiliationIsActive:
                type: boolean
              affiliationIsShared:
                type: boolean
              defaultCommission:
                anyOf:
                  - type: integer
                    minimum: 1
                    maximum: 80
                  - type: "null"
              productName:
                type: string
                maxLength: 1000
              originalPrice:
                type: integer
                minimum: 500
                maximum: 9007199254740991
              thumbnail:
                anyOf:
                  - type: string
                  - type: "null"
            required:
              - id
              - name
              - affiliationIsActive
              - affiliationIsShared
              - productName
              - originalPrice
            additionalProperties: false
      required:
        - id
        - funnelsEngine
        - name
        - isActive
        - shareCount
        - createdAt
        - updatedAt
        - funnels
        - pages
        - flows
        - offers
      additionalProperties: false
    PacksImportPreviewOutput:
      type: object
      properties:
        pack:
          type: object
          properties:
            id:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            name:
              type: string
          required:
            - id
            - name
          additionalProperties: false
        funnels:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              pages:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                  required:
                    - id
                    - name
                  additionalProperties: false
              externalPages:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                    originalUrl:
                      anyOf:
                        - type: string
                        - type: "null"
                  required:
                    - id
                    - name
                  additionalProperties: false
              offers:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                    shared:
                      type: boolean
                  required:
                    - id
                    - name
                    - shared
                  additionalProperties: false
              automations:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                    scope:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - funnel
                        funnelId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        nodeId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      required:
                        - type
                        - funnelId
                      additionalProperties: false
                    dependencies:
                      type: array
                      items:
                        type: object
                        properties:
                          usageId:
                            type: string
                          kind:
                            type: string
                          originId:
                            type: string
                          name:
                            anyOf:
                              - type: string
                              - type: "null"
                          stepId:
                            anyOf:
                              - type: string
                                format: uuid
                                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              - type: "null"
                          stepType:
                            type: string
                          stepLabel:
                            type: string
                          step:
                            anyOf:
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    format: uuid
                                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                  type:
                                    type: string
                                  action:
                                    anyOf:
                                      - type: string
                                      - type: "null"
                                  target:
                                    anyOf:
                                      - type: string
                                      - type: object
                                        propertyNames:
                                          type: string
                                        additionalProperties:
                                          type: string
                                      - type: "null"
                                  meta:
                                    anyOf:
                                      - type: object
                                        propertyNames:
                                          type: string
                                        additionalProperties: {}
                                      - type: "null"
                                  input:
                                    anyOf:
                                      - type: object
                                        propertyNames:
                                          type: string
                                        additionalProperties: {}
                                      - type: "null"
                                required:
                                  - id
                                  - type
                                additionalProperties: false
                              - type: "null"
                          fieldPath:
                            type: string
                          required:
                            type: boolean
                          resolution:
                            type: string
                            enum:
                              - auto-map
                              - wizard-required
                        required:
                          - usageId
                          - kind
                          - originId
                          - stepType
                          - stepLabel
                          - fieldPath
                          - required
                          - resolution
                        additionalProperties: false
                    status:
                      type: string
                      enum:
                        - ready
                        - needs-configuration
                  required:
                    - id
                    - name
                    - scope
                    - dependencies
                    - status
                  additionalProperties: false
            required:
              - id
              - name
              - pages
              - externalPages
              - offers
              - automations
            additionalProperties: false
        standalonePages:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
            required:
              - id
              - name
            additionalProperties: false
        standaloneAutomations:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              scope:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                      - standalone
                required:
                  - type
                additionalProperties: false
              dependencies:
                type: array
                items:
                  type: object
                  properties:
                    usageId:
                      type: string
                    kind:
                      type: string
                    originId:
                      type: string
                    name:
                      anyOf:
                        - type: string
                        - type: "null"
                    stepId:
                      anyOf:
                        - type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        - type: "null"
                    stepType:
                      type: string
                    stepLabel:
                      type: string
                    step:
                      anyOf:
                        - type: object
                          properties:
                            id:
                              type: string
                              format: uuid
                              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                            type:
                              type: string
                            action:
                              anyOf:
                                - type: string
                                - type: "null"
                            target:
                              anyOf:
                                - type: string
                                - type: object
                                  propertyNames:
                                    type: string
                                  additionalProperties:
                                    type: string
                                - type: "null"
                            meta:
                              anyOf:
                                - type: object
                                  propertyNames:
                                    type: string
                                  additionalProperties: {}
                                - type: "null"
                            input:
                              anyOf:
                                - type: object
                                  propertyNames:
                                    type: string
                                  additionalProperties: {}
                                - type: "null"
                          required:
                            - id
                            - type
                          additionalProperties: false
                        - type: "null"
                    fieldPath:
                      type: string
                    required:
                      type: boolean
                    resolution:
                      type: string
                      enum:
                        - auto-map
                        - wizard-required
                  required:
                    - usageId
                    - kind
                    - originId
                    - stepType
                    - stepLabel
                    - fieldPath
                    - required
                    - resolution
                  additionalProperties: false
              status:
                type: string
                enum:
                  - ready
                  - needs-configuration
            required:
              - id
              - name
              - scope
              - dependencies
              - status
            additionalProperties: false
        standaloneOffers:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
              shared:
                type: boolean
            required:
              - id
              - name
              - shared
            additionalProperties: false
        channels:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              name:
                type: string
            required:
              - id
              - name
            additionalProperties: false
        pageEmbeds:
          type: array
          items:
            type: object
            properties:
              pageId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              pageName:
                type: string
              lists:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                  required:
                    - id
                    - name
                  additionalProperties: false
              forms:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                  required:
                    - id
                    - name
                  additionalProperties: false
            required:
              - pageId
              - pageName
              - lists
              - forms
            additionalProperties: false
      required:
        - pack
        - funnels
        - standalonePages
        - standaloneAutomations
        - standaloneOffers
        - channels
        - pageEmbeds
      additionalProperties: false
    PacksSnapshotGetOutput:
      type: object
      properties:
        status:
          type: string
          enum:
            - draft
            - validating
            - valid
            - warnings
            - blocked
        validation:
          type: object
          properties:
            issues:
              type: array
              items:
                type: object
                properties:
                  severity:
                    type: string
                    enum:
                      - error
                      - warning
                  code:
                    type: string
                  assetType:
                    type: string
                    enum:
                      - funnel
                      - page
                      - flow
                      - offer
                      - pack
                  assetId:
                    anyOf:
                      - type: string
                      - type: "null"
                  message:
                    type: string
                required:
                  - severity
                  - code
                  - assetType
                  - message
                additionalProperties: false
          required:
            - issues
          additionalProperties: false
        publishedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - status
        - validation
      additionalProperties: false
    PacksSnapshotDriftOutput:
      type: object
      properties:
        drifted:
          type: boolean
        latestVersion:
          anyOf:
            - type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            - type: "null"
        snapshotSourceUpdatedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        currentSourceUpdatedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - drifted
      additionalProperties: false
    PacksImportedListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              projectId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              title:
                anyOf:
                  - type: string
                  - type: "null"
              status:
                type: string
                enum:
                  - pending
                  - failed
                  - success
                  - partial
              user:
                type: object
                properties:
                  firstName:
                    anyOf:
                      - type: string
                      - type: "null"
                  lastName:
                    anyOf:
                      - type: string
                      - type: "null"
                  email:
                    anyOf:
                      - type: string
                      - type: "null"
                  imageUrl:
                    anyOf:
                      - type: string
                      - type: "null"
                additionalProperties: false
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            required:
              - id
              - status
              - user
              - createdAt
              - updatedAt
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    PacksImportedGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        projectId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        title:
          anyOf:
            - type: string
            - type: "null"
        status:
          type: string
          enum:
            - pending
            - failed
            - success
            - partial
        user:
          type: object
          properties:
            firstName:
              anyOf:
                - type: string
                - type: "null"
            lastName:
              anyOf:
                - type: string
                - type: "null"
            email:
              anyOf:
                - type: string
                - type: "null"
            imageUrl:
              anyOf:
                - type: string
                - type: "null"
          additionalProperties: false
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        aggregates:
          type: object
          properties:
            funnels:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  status:
                    type: string
                    enum:
                      - failed
                      - success
                  name:
                    type: string
                    maxLength: 255
                  path:
                    type: string
                    maxLength: 255
                  projectSlug:
                    anyOf:
                      - type: string
                      - type: "null"
                  projectId:
                    anyOf:
                      - type: string
                      - type: "null"
                  pages:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        name:
                          type: string
                          maxLength: 255
                        projectSlug:
                          anyOf:
                            - type: string
                            - type: "null"
                        projectId:
                          anyOf:
                            - type: string
                            - type: "null"
                        path:
                          anyOf:
                            - type: string
                            - type: "null"
                      required:
                        - id
                        - name
                      additionalProperties: false
                  offers:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        name:
                          type: string
                          maxLength: 1000
                        product:
                          anyOf:
                            - type: string
                            - type: "null"
                        productId:
                          anyOf:
                            - type: string
                            - type: "null"
                      required:
                        - id
                        - name
                      additionalProperties: false
                required:
                  - id
                  - status
                  - name
                  - path
                  - pages
                  - offers
                additionalProperties: false
            pages:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  status:
                    type: string
                    enum:
                      - failed
                      - success
                  name:
                    type: string
                    maxLength: 255
                  projectSlug:
                    anyOf:
                      - type: string
                      - type: "null"
                  projectId:
                    anyOf:
                      - type: string
                      - type: "null"
                  path:
                    anyOf:
                      - type: string
                      - type: "null"
                required:
                  - id
                  - status
                  - name
                additionalProperties: false
            flows:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  status:
                    type: string
                    enum:
                      - failed
                      - success
                  name:
                    anyOf:
                      - type: string
                        maxLength: 255
                      - type: "null"
                  shareId:
                    anyOf:
                      - type: string
                        maxLength: 8
                      - type: "null"
                  projectSlug:
                    anyOf:
                      - type: string
                      - type: "null"
                  projectId:
                    anyOf:
                      - type: string
                      - type: "null"
                required:
                  - id
                  - status
                additionalProperties: false
            offers:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  status:
                    type: string
                    enum:
                      - failed
                      - success
                  name:
                    type: string
                    maxLength: 1000
                  product:
                    anyOf:
                      - type: string
                      - type: "null"
                  productId:
                    anyOf:
                      - type: string
                      - type: "null"
                required:
                  - id
                  - status
                  - name
                additionalProperties: false
          required:
            - funnels
            - pages
            - flows
            - offers
          additionalProperties: false
      required:
        - id
        - status
        - user
        - createdAt
        - updatedAt
        - aggregates
      additionalProperties: false
    PacksCreateInput:
      type: object
      properties:
        projectId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
        description:
          anyOf:
            - type: string
            - type: "null"
        learnMoreUrl:
          anyOf:
            - type: string
            - type: "null"
        isActive:
          default: false
          type: boolean
        isFunnelOnly:
          default: false
          type: boolean
        thumbnailUrl:
          anyOf:
            - type: string
            - type: "null"
        level:
          anyOf:
            - anyOf:
                - type: string
                  const: starter
                - type: string
                  const: growth
                - type: string
                  const: professional
                - type: string
                  const: business
                - type: "null"
                  const: null
            - type: "null"
        category:
          anyOf:
            - anyOf:
                - type: string
                  const: leadsOrContacts
                - type: string
                  const: sales
                - type: string
                  const: event
                - type: string
                  const: highTicket
                - type: "null"
                  const: null
            - type: "null"
        funnelsEngine:
          type: string
          enum:
            - funnels3
            - funnels4
      required:
        - projectId
        - name
    PacksCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
      additionalProperties: false
    PacksUpdateInput:
      type: object
      properties:
        packId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        projectId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        name:
          type: string
        description:
          anyOf:
            - type: string
            - type: "null"
        learnMoreUrl:
          anyOf:
            - type: string
            - type: "null"
        isActive:
          default: false
          type: boolean
        isFunnelOnly:
          default: false
          type: boolean
        thumbnailUrl:
          anyOf:
            - type: string
            - type: "null"
        level:
          anyOf:
            - anyOf:
                - type: string
                  const: starter
                - type: string
                  const: growth
                - type: string
                  const: professional
                - type: string
                  const: business
                - type: "null"
                  const: null
            - type: "null"
        category:
          anyOf:
            - anyOf:
                - type: string
                  const: leadsOrContacts
                - type: string
                  const: sales
                - type: string
                  const: event
                - type: string
                  const: highTicket
                - type: "null"
                  const: null
            - type: "null"
        funnelsEngine:
          type: string
          enum:
            - funnels3
            - funnels4
      required:
        - packId
    PacksUpdateOutput:
      type: object
      properties:
        updated:
          type: boolean
      required:
        - updated
      additionalProperties: false
    PacksAppendInput:
      type: object
      properties:
        packId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        funnels:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        pages:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        flows:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offers:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        includeProducts:
          type: boolean
        funnelModes:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            type: string
            enum:
              - full
              - skeleton
      required:
        - packId
    PacksAppendOutput:
      type: object
      properties:
        appended:
          type: boolean
      required:
        - appended
      additionalProperties: false
    PacksRemoveInput:
      type: object
      properties:
        packId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        funnels:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        pages:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        flows:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offers:
          type: array
          items:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - packId
    PacksRemoveOutput:
      type: object
      properties:
        removed:
          type: boolean
      required:
        - removed
      additionalProperties: false
    PacksCommissionUpdateInput:
      type: object
      properties:
        commission:
          anyOf:
            - type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            - type: "null"
        packId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        offerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - packId
        - offerId
    PacksAffiliationOfferUpdateInput:
      type: object
      properties:
        packId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        commission:
          anyOf:
            - type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            - type: "null"
        isActive:
          type: boolean
        offerId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - packId
        - offerId
    PacksDeleteInput:
      type: object
      properties:
        packId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - packId
    PacksDeleteOutput:
      type: object
      properties:
        deleted:
          type: boolean
      required:
        - deleted
      additionalProperties: false
    PacksResnapshotInput:
      type: object
      properties:
        packId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - packId
    PacksResnapshotOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        version:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
      required:
        - id
        - version
      additionalProperties: false
    PacksSnapshotPublishInput:
      type: object
      properties:
        packId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        version:
          type: integer
          minimum: 1
          maximum: 9007199254740991
      required:
        - packId
        - version
    PacksSnapshotPublishOutput:
      type: object
      properties:
        status:
          type: string
          enum:
            - draft
            - validating
            - valid
            - warnings
            - blocked
        validation:
          type: object
          properties:
            issues:
              type: array
              items:
                type: object
                properties:
                  severity:
                    type: string
                    enum:
                      - error
                      - warning
                  code:
                    type: string
                  assetType:
                    type: string
                    enum:
                      - funnel
                      - page
                      - flow
                      - offer
                      - pack
                  assetId:
                    anyOf:
                      - type: string
                      - type: "null"
                  message:
                    type: string
                required:
                  - severity
                  - code
                  - assetType
                  - message
                additionalProperties: false
          required:
            - issues
          additionalProperties: false
        publishedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - status
        - validation
      additionalProperties: false
    PacksImportInput:
      type: object
      properties:
        packId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        projectId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        title:
          type: string
        domainId:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        resolutions:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            type: object
            properties:
              type:
                type: string
                enum:
                  - automation
              stepsDependencies:
                type: array
                items:
                  type: object
                  properties:
                    stepId:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    type:
                      type: string
                    action:
                      type: string
                    target:
                      anyOf:
                        - type: string
                        - type: object
                          propertyNames:
                            type: string
                          additionalProperties:
                            type: string
                    meta:
                      type: object
                      propertyNames:
                        type: string
                      additionalProperties: {}
                    input:
                      type: object
                      propertyNames:
                        type: string
                      additionalProperties: {}
                  required:
                    - stepId
                    - type
            required:
              - type
        offerResolutions:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            type: object
            properties:
              offerId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            required:
              - offerId
        channelResolutions:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            type: object
            properties:
              channelId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            required:
              - channelId
        pageResolutions:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            type: object
            properties:
              listIdMap:
                type: object
                propertyNames:
                  type: string
                additionalProperties:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              formIdMap:
                type: object
                propertyNames:
                  type: string
                additionalProperties:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        externalPageUrls:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            type: string
        overrideFlowsIds:
          type: array
          items:
            type: object
            properties:
              originFlowId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              importedFlowId:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            required:
              - originFlowId
              - importedFlowId
      required:
        - packId
        - projectId
    PacksImportOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
      additionalProperties: false
    ProjectsFiltersOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              active:
                type: boolean
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              imageIconUrl:
                anyOf:
                  - type: string
                  - type: "null"
              name:
                type: string
              slug:
                type: string
            required:
              - active
              - id
              - name
              - slug
            additionalProperties: false
      required:
        - data
      additionalProperties: false
    ProjectsListOutput:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              ownerId:
                anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: "null"
              name:
                type: string
              slug:
                type: string
              active:
                type: boolean
              imageIconUrl:
                anyOf:
                  - type: string
                  - type: "null"
              imageCoverUrl:
                anyOf:
                  - type: string
                  - type: "null"
              configs:
                anyOf:
                  - {}
                  - type: "null"
              setup:
                anyOf:
                  - type: object
                    properties:
                      funnelId:
                        anyOf:
                          - type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          - type: "null"
                      checkoutLink:
                        anyOf:
                          - type: string
                            pattern: ^https:\/\/.+$
                          - type: "null"
                      confirmedWebhook:
                        type: boolean
                      useClickmaxDomain:
                        type: boolean
                    required:
                      - confirmedWebhook
                      - useClickmaxDomain
                    additionalProperties: false
                  - type: "null"
              isImported:
                type: boolean
              isDefault:
                default: false
                type: boolean
              isFavorite:
                default: false
                type: boolean
              slugChangedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              createdAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              updatedAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              deletedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: "null"
              metrics:
                type: object
                properties:
                  pageCount:
                    default: 0
                    type: number
                  funnelCount:
                    default: 0
                    type: number
                  formCount:
                    default: 0
                    type: number
                  quizCount:
                    default: 0
                    type: number
                  flowCount:
                    default: 0
                    type: number
                  broadcastCount:
                    default: 0
                    type: number
                  domainCount:
                    default: 0
                    type: number
                  packCount:
                    default: 0
                    type: number
                required:
                  - pageCount
                  - funnelCount
                  - formCount
                  - quizCount
                  - flowCount
                  - broadcastCount
                  - domainCount
                  - packCount
                additionalProperties: false
            required:
              - id
              - name
              - slug
              - active
              - isImported
              - isDefault
              - isFavorite
              - createdAt
              - updatedAt
              - metrics
            additionalProperties: false
        meta:
          type: object
          properties:
            countItens:
              type: number
            countPages:
              type: number
            perPage:
              type: number
          required:
            - countItens
            - countPages
            - perPage
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    ProjectsGetOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        name:
          type: string
        slug:
          type: string
        active:
          type: boolean
        imageIconUrl:
          anyOf:
            - type: string
            - type: "null"
        imageCoverUrl:
          anyOf:
            - type: string
            - type: "null"
        configs:
          anyOf:
            - {}
            - type: "null"
        setup:
          anyOf:
            - type: object
              properties:
                funnelId:
                  anyOf:
                    - type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    - type: "null"
                checkoutLink:
                  anyOf:
                    - type: string
                      pattern: ^https:\/\/.+$
                    - type: "null"
                confirmedWebhook:
                  type: boolean
                useClickmaxDomain:
                  type: boolean
              required:
                - confirmedWebhook
                - useClickmaxDomain
              additionalProperties: false
            - type: "null"
        isImported:
          type: boolean
        isDefault:
          default: false
          type: boolean
        isFavorite:
          default: false
          type: boolean
        slugChangedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        metrics:
          type: object
          properties:
            pageCount:
              default: 0
              type: number
            funnelCount:
              default: 0
              type: number
            formCount:
              default: 0
              type: number
            quizCount:
              default: 0
              type: number
            flowCount:
              default: 0
              type: number
            broadcastCount:
              default: 0
              type: number
            domainCount:
              default: 0
              type: number
            packCount:
              default: 0
              type: number
          required:
            - pageCount
            - funnelCount
            - formCount
            - quizCount
            - flowCount
            - broadcastCount
            - domainCount
            - packCount
          additionalProperties: false
      required:
        - id
        - name
        - slug
        - active
        - isImported
        - isDefault
        - isFavorite
        - createdAt
        - updatedAt
        - metrics
      additionalProperties: false
    ProjectsCreateInput:
      type: object
      properties:
        projectName:
          type: string
        idempotencyKey:
          type: string
          minLength: 1
          maxLength: 128
      required:
        - projectName
    ProjectsCreateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        name:
          type: string
        slug:
          type: string
        active:
          type: boolean
        imageIconUrl:
          anyOf:
            - type: string
            - type: "null"
        imageCoverUrl:
          anyOf:
            - type: string
            - type: "null"
        configs:
          anyOf:
            - {}
            - type: "null"
        setup:
          anyOf:
            - type: object
              properties:
                funnelId:
                  anyOf:
                    - type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    - type: "null"
                checkoutLink:
                  anyOf:
                    - type: string
                      pattern: ^https:\/\/.+$
                    - type: "null"
                confirmedWebhook:
                  type: boolean
                useClickmaxDomain:
                  type: boolean
              required:
                - confirmedWebhook
                - useClickmaxDomain
              additionalProperties: false
            - type: "null"
        isImported:
          type: boolean
        isDefault:
          default: false
          type: boolean
        isFavorite:
          default: false
          type: boolean
        slugChangedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - name
        - slug
        - active
        - isImported
        - isDefault
        - isFavorite
        - createdAt
        - updatedAt
      additionalProperties: false
    ProjectsUpdateInput:
      type: object
      properties:
        slug:
          type: string
        name:
          type: string
          minLength: 1
      required:
        - slug
        - name
    ProjectsUpdateOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        ownerId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        name:
          type: string
        slug:
          type: string
        active:
          type: boolean
        imageIconUrl:
          anyOf:
            - type: string
            - type: "null"
        imageCoverUrl:
          anyOf:
            - type: string
            - type: "null"
        configs:
          anyOf:
            - {}
            - type: "null"
        setup:
          anyOf:
            - type: object
              properties:
                funnelId:
                  anyOf:
                    - type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    - type: "null"
                checkoutLink:
                  anyOf:
                    - type: string
                      pattern: ^https:\/\/.+$
                    - type: "null"
                confirmedWebhook:
                  type: boolean
                useClickmaxDomain:
                  type: boolean
              required:
                - confirmedWebhook
                - useClickmaxDomain
              additionalProperties: false
            - type: "null"
        isImported:
          type: boolean
        isDefault:
          default: false
          type: boolean
        isFavorite:
          default: false
          type: boolean
        slugChangedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        deletedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            - type: "null"
      required:
        - id
        - name
        - slug
        - active
        - isImported
        - isDefault
        - isFavorite
        - createdAt
        - updatedAt
      additionalProperties: false
    ProjectsSetDefaultInput:
      type: object
      properties:
        slug:
          type: string
      required:
        - slug
    ProjectsSetDefaultOutput:
      type: object
      properties:
        applied:
          type: boolean
      required:
        - applied
      additionalProperties: false
    ProjectsDeleteInput:
      type: object
      properties:
        slug:
          type: string
      required:
        - slug
    ProjectsDeleteOutput:
      type: object
      properties:
        deleted:
          type: boolean
      required:
        - deleted
      additionalProperties: false
    VturbStatusOutput:
      type: object
      properties:
        connected:
          type: boolean
        integration:
          anyOf:
            - type: object
              properties:
                id:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                status:
                  type: string
                  enum:
                    - pending
                    - active
                    - invalid
                accountHash:
                  anyOf:
                    - type: string
                      maxLength: 128
                    - type: "null"
                lastValidatedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    - type: "null"
                createdAt:
                  type: string
                  format: date-time
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              required:
                - id
                - status
                - createdAt
              additionalProperties: false
            - type: "null"
      required:
        - connected
        - integration
      additionalProperties: false
    VturbPlayersListOutput:
      type: object
      properties:
        players:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              pitchTime:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              duration:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              createdAt:
                type: string
              posterUrl:
                anyOf:
                  - type: string
                    format: uri
                  - type: "null"
            required:
              - id
              - name
              - pitchTime
              - duration
              - createdAt
              - posterUrl
            additionalProperties: false
      required:
        - players
      additionalProperties: false
    VturbPlayerStatsOutput:
      type: object
      properties:
        plays:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        uniqueDevices:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        finishes:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        conversions:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        conversionRate:
          type: number
        playRate:
          type: number
        engagementRate:
          type: number
        clicks:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
      required:
        - plays
        - uniqueDevices
        - finishes
        - conversions
        - conversionRate
        - playRate
        - engagementRate
        - clicks
      additionalProperties: false
    VturbPlayerLiveUsersOutput:
      type: object
      properties:
        total:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        byDomain:
          type: array
          items:
            type: object
            properties:
              domain:
                type: string
              liveUsers:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
            required:
              - domain
              - liveUsers
            additionalProperties: false
      required:
        - total
        - byDomain
      additionalProperties: false
    VturbAbTestsListOutput:
      type: object
      properties:
        abTests:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              variants:
                type: array
                items:
                  type: object
                  properties:
                    playerId:
                      type: string
                    trafficPercentage:
                      type: number
                    startedAt:
                      anyOf:
                        - type: string
                        - type: "null"
                    locked:
                      type: boolean
                  required:
                    - playerId
                    - trafficPercentage
                    - startedAt
                    - locked
                  additionalProperties: false
              startedAt:
                anyOf:
                  - type: string
                  - type: "null"
              finishedAt:
                anyOf:
                  - type: string
                  - type: "null"
              createdAt:
                type: string
              running:
                type: boolean
            required:
              - id
              - name
              - variants
              - startedAt
              - finishedAt
              - createdAt
              - running
            additionalProperties: false
      required:
        - abTests
      additionalProperties: false
    VturbAbTestStatsInput:
      type: object
      properties:
        abTestId:
          type: string
          minLength: 1
          maxLength: 128
        playerIds:
          minItems: 1
          maxItems: 2
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 128
        startDate:
          type: string
          format: date
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
        endDate:
          type: string
          format: date
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
        timezone:
          type: string
      required:
        - abTestId
        - playerIds
    VturbAbTestStatsOutput:
      type: object
      properties:
        abTest:
          type: object
          properties:
            id:
              type: string
            name:
              type: string
            startedAt:
              anyOf:
                - type: string
                - type: "null"
            finishedAt:
              anyOf:
                - type: string
                - type: "null"
          required:
            - id
            - name
            - startedAt
            - finishedAt
          additionalProperties: false
        variants:
          type: array
          items:
            type: object
            properties:
              playerId:
                type: string
              pitchTime:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              videoDuration:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              views:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              plays:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              finishes:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              clicks:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              conversions:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              playRate:
                type: number
              conversionRate:
                type: number
              engagementRate:
                type: number
              pitchAudience:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              pitchRetentionRate:
                type: number
              averageWatchedTime:
                type: number
              revenue:
                type: object
                properties:
                  usd:
                    type: number
                  brl:
                    type: number
                  eur:
                    type: number
                required:
                  - usd
                  - brl
                  - eur
                additionalProperties: false
              revenuePerVisitor:
                type: object
                properties:
                  usd:
                    type: number
                  brl:
                    type: number
                  eur:
                    type: number
                required:
                  - usd
                  - brl
                  - eur
                additionalProperties: false
              retentionCurve:
                type: array
                items:
                  type: object
                  properties:
                    second:
                      type: integer
                      minimum: -9007199254740991
                      maximum: 9007199254740991
                    viewers:
                      type: integer
                      minimum: -9007199254740991
                      maximum: 9007199254740991
                  required:
                    - second
                    - viewers
                  additionalProperties: false
            required:
              - playerId
              - pitchTime
              - videoDuration
              - views
              - plays
              - finishes
              - clicks
              - conversions
              - playRate
              - conversionRate
              - engagementRate
              - pitchAudience
              - pitchRetentionRate
              - averageWatchedTime
              - revenue
              - revenuePerVisitor
              - retentionCurve
            additionalProperties: false
      required:
        - abTest
        - variants
      additionalProperties: false
    WhoamiOutput:
      type: object
      properties:
        user:
          type: object
          properties:
            createdAt:
              anyOf:
                - type: string
                - type: "null"
            email:
              anyOf:
                - type: string
                - type: "null"
            firstName:
              anyOf:
                - type: string
                - type: "null"
            id:
              type: string
            lastName:
              anyOf:
                - type: string
                - type: "null"
            lastSeen:
              anyOf:
                - type: string
                - type: "null"
          required:
            - id
          additionalProperties: false
        workspace:
          type: object
          properties:
            workspaceId:
              type: string
            workspaceRole:
              type: string
          required:
            - workspaceId
            - workspaceRole
          additionalProperties: false
        sender:
          type: object
          properties:
            name:
              anyOf:
                - type: string
                - type: "null"
            logoUrl:
              anyOf:
                - type: string
                - type: "null"
            addressLine:
              anyOf:
                - type: string
                - type: "null"
          additionalProperties: false
      required:
        - user
        - workspace
        - sender
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
