---
openapi: 3.0.1
info:
  title: Fygi External Api
  version: v1.0
servers:
- url: http://test.api.fygi.store
  description: Test environment
- url: https://demo.api.fygi.store
  description: Demo environment
- url: https://api.fygi.store
  description: Production environment
paths:
  "/external/api/age-groups":
    put:
      tags:
      - AgeGroup
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateAgeGroupRequest"
          text/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateAgeGroupRequest"
          application/*+json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateAgeGroupRequest"
      responses:
        '200':
          description: Success
      security:
      - AuthorizationKey: []
    patch:
      tags:
      - AgeGroup
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TUpdateAgeGroupRequest"
          text/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TUpdateAgeGroupRequest"
          application/*+json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TUpdateAgeGroupRequest"
      responses:
        '200':
          description: Success
      security:
      - AuthorizationKey: []
    delete:
      tags:
      - AgeGroup
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TDeleteAgeGroupRequest"
          text/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TDeleteAgeGroupRequest"
          application/*+json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TDeleteAgeGroupRequest"
      responses:
        '200':
          description: Success
      security:
      - AuthorizationKey: []
  "/external/api/age-group-code":
    get:
      tags:
      - AgeGroupCode
      parameters:
      - name: externalStoreId
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Success
      security:
      - AuthorizationKey: []
    put:
      tags:
      - AgeGroupCode
      parameters:
      - name: externalStoreId
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Success
      security:
      - AuthorizationKey: []
  "/external/api/campaigns":
    put:
      tags:
      - Campaigns
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateCampaignRequest"
          text/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateCampaignRequest"
          application/*+json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateCampaignRequest"
      responses:
        '200':
          description: Success
      security:
      - AuthorizationKey: []
    patch:
      tags:
      - Campaigns
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TUpdateCampaignRequest"
          text/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TUpdateCampaignRequest"
          application/*+json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TUpdateCampaignRequest"
      responses:
        '200':
          description: Success
      security:
      - AuthorizationKey: []
    delete:
      tags:
      - Campaigns
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TDeleteCampaignRequest"
          text/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TDeleteCampaignRequest"
          application/*+json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TDeleteCampaignRequest"
      responses:
        '200':
          description: Success
      security:
      - AuthorizationKey: []
  "/external/api/categories":
    put:
      tags:
      - Categories
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateCategoryRequest"
          text/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateCategoryRequest"
          application/*+json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateCategoryRequest"
      responses:
        '200':
          description: Success
      security:
      - AuthorizationKey: []
    patch:
      tags:
      - Categories
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TUpdateCategoryRequest"
          text/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TUpdateCategoryRequest"
          application/*+json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TUpdateCategoryRequest"
      responses:
        '200':
          description: Success
      security:
      - AuthorizationKey: []
    delete:
      tags:
      - Categories
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TDeleteCategoryRequest"
          text/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TDeleteCategoryRequest"
          application/*+json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TDeleteCategoryRequest"
      responses:
        '200':
          description: Success
      security:
      - AuthorizationKey: []
  "/external/api/customers/details":
    post:
      tags:
      - CustomersIntegration
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/Fygi.Modules.Customers.Api.Models.CustomersDetailsModel"
      responses:
        '200':
          description: Success
          content:
            application/vnd.fygi.v1.id+json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Fygi.Modules.Customers.Application.Queries.GetCustomersDetails.CustomersDetailsResult"
        '404':
          description: Not Found
          content:
            application/vnd.fygi.v1.id+json:
              schema:
                "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
      security:
      - AuthorizationKey: []
  "/external/api/discount-codes":
    put:
      tags:
      - DiscountCode
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Transport.DiscountCodes.TCreateDiscountCodeRequest"
          text/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Transport.DiscountCodes.TCreateDiscountCodeRequest"
          application/*+json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Transport.DiscountCodes.TCreateDiscountCodeRequest"
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/Fygi.Transport.DiscountCodes.TDiscountCode"
            application/json:
              schema:
                "$ref": "#/components/schemas/Fygi.Transport.DiscountCodes.TDiscountCode"
            text/json:
              schema:
                "$ref": "#/components/schemas/Fygi.Transport.DiscountCodes.TDiscountCode"
      security:
      - AuthorizationKey: []
  "/external/api/discount-codes/{discountCodeExternalId}/campaign":
    put:
      tags:
      - DiscountCode
      parameters:
      - name: discountCodeExternalId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/Fygi.Integration.Application.DiscountCodes.Requests.IntegrationUpdateCampaignForDiscountCodeRequest"
          text/json:
            schema:
              "$ref": "#/components/schemas/Fygi.Integration.Application.DiscountCodes.Requests.IntegrationUpdateCampaignForDiscountCodeRequest"
          application/*+json:
            schema:
              "$ref": "#/components/schemas/Fygi.Integration.Application.DiscountCodes.Requests.IntegrationUpdateCampaignForDiscountCodeRequest"
      responses:
        '200':
          description: Success
      security:
      - AuthorizationKey: []
  "/external/api/microshops":
    get:
      tags:
      - Microshop
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Fygi.Integration.Application.Microshops.GetChainMicroshops.GetAllMicroshopsResult"
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Fygi.Integration.Application.Microshops.GetChainMicroshops.GetAllMicroshopsResult"
            text/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Fygi.Integration.Application.Microshops.GetChainMicroshops.GetAllMicroshopsResult"
      security:
      - AuthorizationKey: []
  "/external/api/orders":
    get:
      tags:
      - Orders
      parameters:
      - name: after
        in: query
        schema:
          type: string
          format: date-time
      - name: storeId
        in: query
        schema:
          type: string
          format: uuid
      - name: before
        in: query
        schema:
          type: string
          format: date-time
      - name: PageNumber
        in: query
        schema:
          maximum: 2147483647
          minimum: 1
          type: integer
          format: int32
      - name: PageSize
        in: query
        schema:
          maximum: 250
          minimum: 1
          type: integer
          format: int32
      responses:
        '200':
          description: Success
          headers:
            X-Pagination:
              description: meta-data
              schema:
                type: '{"pageNumber":1,"pageSize":25,"lastPage":10,"totalCount":238}'
                description: meta-data
                format: ''
          content:
            text/plain:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Fygi.Transport.Orders.TOrder"
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Fygi.Transport.Orders.TOrder"
            text/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Fygi.Transport.Orders.TOrder"
      security:
      - AuthorizationKey: []
  "/external/api/products":
    get:
      tags:
      - Products
      parameters:
      - name: modifiedAfter
        in: query
        schema:
          type: string
          format: date-time
      - name: storeId
        in: query
        schema:
          type: string
      - name: PageNumber
        in: query
        schema:
          maximum: 2147483647
          minimum: 1
          type: integer
          format: int32
      - name: PageSize
        in: query
        schema:
          maximum: 250
          minimum: 1
          type: integer
          format: int32
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Fygi.Integration.Application.Products.GetModifiedProducts.Models.GetModifiedProductResult"
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Fygi.Integration.Application.Products.GetModifiedProducts.Models.GetModifiedProductResult"
            text/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Fygi.Integration.Application.Products.GetModifiedProducts.Models.GetModifiedProductResult"
      security:
      - AuthorizationKey: []
    put:
      tags:
      - Products
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateProductRequest"
          text/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateProductRequest"
          application/*+json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateProductRequest"
      responses:
        '200':
          description: Success
      security:
      - AuthorizationKey: []
    patch:
      tags:
      - Products
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TUpdateProductRequest"
          text/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TUpdateProductRequest"
          application/*+json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TUpdateProductRequest"
      responses:
        '200':
          description: Success
      security:
      - AuthorizationKey: []
    delete:
      tags:
      - Products
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TDeleteProductRequest"
          text/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TDeleteProductRequest"
          application/*+json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TDeleteProductRequest"
      responses:
        '200':
          description: Success
      security:
      - AuthorizationKey: []
  "/external/api/products/{productId}/prices":
    patch:
      tags:
      - Products
      parameters:
      - name: productId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/Fygi.Admin.Api.Transport.Requests.Prices.TUpdatePricesRequest"
          text/json:
            schema:
              "$ref": "#/components/schemas/Fygi.Admin.Api.Transport.Requests.Prices.TUpdatePricesRequest"
          application/*+json:
            schema:
              "$ref": "#/components/schemas/Fygi.Admin.Api.Transport.Requests.Prices.TUpdatePricesRequest"
      responses:
        '200':
          description: Success
      security:
      - AuthorizationKey: []
  "/external/api/reports/z-report":
    get:
      tags:
      - Reports
      parameters:
      - name: date
        in: query
        schema:
          type: string
          format: date-time
      - name: storeId
        in: query
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Success
          headers:
            X-Pagination:
              description: meta-data
              schema:
                type: '{"pageNumber":1,"pageSize":25,"lastPage":10,"totalCount":238}'
                description: meta-data
                format: ''
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/Fygi.Transport.Reports.TReport"
            application/json:
              schema:
                "$ref": "#/components/schemas/Fygi.Transport.Reports.TReport"
            text/json:
              schema:
                "$ref": "#/components/schemas/Fygi.Transport.Reports.TReport"
      security:
      - AuthorizationKey: []
  "/external/api/statistics/revenue":
    get:
      tags:
      - Statistics
      parameters:
      - name: storeId
        in: query
        schema:
          type: string
          format: uuid
      - name: from
        in: query
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/Fygi.Integration.Api.QueryServices.Statistics.RevenueStatistics"
            application/json:
              schema:
                "$ref": "#/components/schemas/Fygi.Integration.Api.QueryServices.Statistics.RevenueStatistics"
            text/json:
              schema:
                "$ref": "#/components/schemas/Fygi.Integration.Api.QueryServices.Statistics.RevenueStatistics"
      security:
      - AuthorizationKey: []
  "/external/api/stores":
    put:
      tags:
      - Stores
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateStoreRequest"
          text/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateStoreRequest"
          application/*+json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateStoreRequest"
      responses:
        '200':
          description: Success
      security:
      - AuthorizationKey: []
    patch:
      tags:
      - Stores
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TUpdateStoreRequest"
          text/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TUpdateStoreRequest"
          application/*+json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TUpdateStoreRequest"
      responses:
        '200':
          description: Success
      security:
      - AuthorizationKey: []
    delete:
      tags:
      - Stores
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
          text/json:
            schema:
              type: array
              items:
                type: string
          application/*+json:
            schema:
              type: array
              items:
                type: string
      responses:
        '200':
          description: Success
      security:
      - AuthorizationKey: []
    get:
      tags:
      - Stores
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Fygi.Transport.Stores.TStoreShallow"
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Fygi.Transport.Stores.TStoreShallow"
            text/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Fygi.Transport.Stores.TStoreShallow"
      security:
      - AuthorizationKey: []
  "/external/api/users":
    put:
      tags:
      - Users
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreatUserRequest"
          text/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreatUserRequest"
          application/*+json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreatUserRequest"
      responses:
        '200':
          description: Success
      security:
      - AuthorizationKey: []
    patch:
      tags:
      - Users
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TUpdateUserRequest"
          text/json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TUpdateUserRequest"
          application/*+json:
            schema:
              type: array
              items:
                "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TUpdateUserRequest"
      responses:
        '200':
          description: Success
      security:
      - AuthorizationKey: []
    delete:
      tags:
      - Users
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
          text/json:
            schema:
              type: array
              items:
                type: string
          application/*+json:
            schema:
              type: array
              items:
                type: string
      responses:
        '200':
          description: Success
      security:
      - AuthorizationKey: []
components:
  schemas:
    Fygi.Admin.Api.Transport.Requests.Prices.TUpdatePriceRequest:
      required:
      - amount
      - currencyCode
      - dimensionId
      - taxPercent
      type: object
      properties:
        dimensionId:
          minLength: 1
          type: string
        currencyCode:
          maxLength: 3
          minLength: 0
          type: string
        amount:
          maximum: 2147483647
          minimum: 0
          type: integer
          format: int32
        taxPercent:
          type: integer
          format: int32
        adjustmentTypeId:
          type: string
          format: uuid
          nullable: true
        validFrom:
          type: string
          format: date-time
          nullable: true
      additionalProperties: false
    Fygi.Admin.Api.Transport.Requests.Prices.TUpdatePricesRequest:
      type: object
      properties:
        storeId:
          type: string
          nullable: true
        prices:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Admin.Api.Transport.Requests.Prices.TUpdatePriceRequest"
          nullable: true
      additionalProperties: false
    Fygi.Domain.AdjustmentTypes.AdjustmentTypeReadModel:
      type: object
      properties:
        id:
          type: integer
          format: int32
        publicId:
          type: string
          format: uuid
        name:
          type: string
          nullable: true
      additionalProperties: false
    Fygi.Domain.Campaigns.CampaignRuleScope:
      enum:
      - product
      - productCart
      - cart
      type: string
    Fygi.Domain.Campaigns.CampaignRuleType:
      enum:
      - cashDiscount
      - percentDiscount
      - newPrice
      - cartPercentDiscount
      - cartCashDiscount
      - quantityRebate
      - quantityCashRebate
      type: string
    Fygi.Domain.CountryCode:
      enum:
      - 'no'
      - se
      - de
      - dk
      - fi
      type: string
    Fygi.Domain.FulfillmentOptions.FulfillmentOptionType:
      enum:
      - locally
      - shipment
      type: string
    Fygi.Domain.Orders.OrderLineType:
      enum:
      - product
      - campaign
      - egProduct
      - egCampaign
      type: string
    Fygi.Domain.Reports.ReportType:
      enum:
      - x
      - z
      - custom
      type: string
    Fygi.Domain.Transactions.TransactionStatus:
      enum:
      - success
      - failed
      - pending
      type: string
    Fygi.Domain.Transactions.TransactionType:
      enum:
      - payment
      - refund
      - remoteTaxControl
      - shipment
      - delivery
      type: string
    Fygi.Domain.Utils.Optionals.cs.Optional`1[Fygi.Transport.Campaigns.Rules.TCampaignRule]:
      type: object
      properties:
        isSet:
          type: boolean
          readOnly: true
        value:
          "$ref": "#/components/schemas/Fygi.Transport.Campaigns.Rules.TCampaignRule"
      additionalProperties: false
    Fygi.Domain.Utils.Optionals.cs.Optional`1[Fygi.Transport.Stores.TStoreMessage]:
      type: object
      properties:
        isSet:
          type: boolean
          readOnly: true
        value:
          "$ref": "#/components/schemas/Fygi.Transport.Stores.TStoreMessage"
      additionalProperties: false
    Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Boolean]:
      type: object
      properties:
        isSet:
          type: boolean
          readOnly: true
        value:
          type: boolean
      additionalProperties: false
    ? Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Collections.Generic.IReadOnlyCollection`1[Fygi.Integration.Api.Transport.Requests.TCreateCampaignCategoryRequest]]
    : type: object
      properties:
        isSet:
          type: boolean
          readOnly: true
        value:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateCampaignCategoryRequest"
          nullable: true
      additionalProperties: false
    ? Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Collections.Generic.IReadOnlyCollection`1[Fygi.Integration.Api.Transport.Requests.TCreateCampaignProductRequest]]
    : type: object
      properties:
        isSet:
          type: boolean
          readOnly: true
        value:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateCampaignProductRequest"
          nullable: true
      additionalProperties: false
    ? Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Collections.Generic.List`1[Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateCategoryProductRequest]]
    : type: object
      properties:
        isSet:
          type: boolean
          readOnly: true
        value:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateCategoryProductRequest"
          nullable: true
      additionalProperties: false
    ? Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Collections.Generic.List`1[Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateProductDimensionRequest]]
    : type: object
      properties:
        isSet:
          type: boolean
          readOnly: true
        value:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateProductDimensionRequest"
          nullable: true
      additionalProperties: false
    ? Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Collections.Generic.List`1[Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateProductOptionRequest]]
    : type: object
      properties:
        isSet:
          type: boolean
          readOnly: true
        value:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateProductOptionRequest"
          nullable: true
      additionalProperties: false
    Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Collections.Generic.List`1[System.Guid]]:
      type: object
      properties:
        isSet:
          type: boolean
          readOnly: true
        value:
          type: array
          items:
            type: string
            format: uuid
          nullable: true
      additionalProperties: false
    Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Collections.Generic.List`1[System.String]]:
      type: object
      properties:
        isSet:
          type: boolean
          readOnly: true
        value:
          type: array
          items:
            type: string
          nullable: true
      additionalProperties: false
    Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Double]:
      type: object
      properties:
        isSet:
          type: boolean
          readOnly: true
        value:
          type: number
          format: double
      additionalProperties: false
    Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Guid]:
      type: object
      properties:
        isSet:
          type: boolean
          readOnly: true
        value:
          type: string
          format: uuid
      additionalProperties: false
    Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Int32]:
      type: object
      properties:
        isSet:
          type: boolean
          readOnly: true
        value:
          type: integer
          format: int32
      additionalProperties: false
    Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Nullable`1[System.Boolean]]:
      type: object
      properties:
        isSet:
          type: boolean
          readOnly: true
        value:
          type: boolean
          nullable: true
      additionalProperties: false
    Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Nullable`1[System.DateTime]]:
      type: object
      properties:
        isSet:
          type: boolean
          readOnly: true
        value:
          type: string
          format: date-time
          nullable: true
      additionalProperties: false
    Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Nullable`1[System.Guid]]:
      type: object
      properties:
        isSet:
          type: boolean
          readOnly: true
        value:
          type: string
          format: uuid
          nullable: true
      additionalProperties: false
    Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Nullable`1[System.Int32]]:
      type: object
      properties:
        isSet:
          type: boolean
          readOnly: true
        value:
          type: integer
          format: int32
          nullable: true
      additionalProperties: false
    Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]:
      type: object
      properties:
        isSet:
          type: boolean
          readOnly: true
        value:
          type: string
          nullable: true
      additionalProperties: false
    Fygi.Integration.Api.QueryServices.Statistics.RevenueStatistics:
      type: object
      properties:
        totalForStores:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Integration.Api.QueryServices.Statistics.TotalForStore"
          nullable: true
      additionalProperties: false
    Fygi.Integration.Api.QueryServices.Statistics.TotalForOrderReference:
      type: object
      properties:
        orderReference:
          type: string
          nullable: true
        totalAmount:
          type: integer
          format: int64
        totalForTaxGroups:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Integration.Api.QueryServices.Statistics.TotalForTaxGroup"
          nullable: true
        totalForPaymentMethod:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Integration.Api.QueryServices.Statistics.TotalForPaymentMethod"
          nullable: true
        totalForProductGroup:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Integration.Api.QueryServices.Statistics.TotalForProductGroup"
          nullable: true
      additionalProperties: false
    Fygi.Integration.Api.QueryServices.Statistics.TotalForPaymentMethod:
      type: object
      properties:
        paymentMethod:
          type: string
          nullable: true
        totalAmount:
          type: integer
          format: int64
      additionalProperties: false
    Fygi.Integration.Api.QueryServices.Statistics.TotalForProductGroup:
      type: object
      properties:
        productGroup:
          type: string
          nullable: true
        totalAmount:
          type: integer
          format: int64
        tax:
          type: integer
          format: int32
      additionalProperties: false
    Fygi.Integration.Api.QueryServices.Statistics.TotalForStore:
      type: object
      properties:
        storePublicId:
          type: string
          format: uuid
        storeExternalId:
          type: string
          nullable: true
        totalAmount:
          type: integer
          format: int64
        totalForTaxGroups:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Integration.Api.QueryServices.Statistics.TotalForTaxGroup"
          nullable: true
        totalForPaymentMethod:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Integration.Api.QueryServices.Statistics.TotalForPaymentMethod"
          nullable: true
        totalForOrderReferences:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Integration.Api.QueryServices.Statistics.TotalForOrderReference"
          nullable: true
        totalForProductGroups:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Integration.Api.QueryServices.Statistics.TotalForProductGroup"
          nullable: true
      additionalProperties: false
    Fygi.Integration.Api.QueryServices.Statistics.TotalForTaxGroup:
      type: object
      properties:
        taxGroup:
          type: string
          nullable: true
        totalAmount:
          type: integer
          format: int64
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.ProductActivation.TActivateProductRequest:
      type: object
      properties:
        storeIds:
          type: array
          items:
            type: string
          nullable: true
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.ProductActivation.TDeActivateProductRequest:
      type: object
      properties:
        storeIds:
          type: array
          items:
            type: string
          nullable: true
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TCreatUserRequest:
      required:
      - email
      - firstName
      - lastName
      - password
      - role
      type: object
      properties:
        id:
          type: string
          nullable: true
        storeId:
          type: string
          nullable: true
        firstName:
          minLength: 1
          type: string
        lastName:
          minLength: 1
          type: string
        role:
          minLength: 1
          type: string
        email:
          minLength: 1
          type: string
        password:
          minLength: 3
          type: string
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TCreateCampaignCategoryRequest:
      required:
      - id
      type: object
      properties:
        id:
          minLength: 1
          type: string
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TCreateCampaignProductRequest:
      required:
      - id
      type: object
      properties:
        id:
          minLength: 1
          type: string
        sortIndex:
          type: integer
          format: int32
          nullable: true
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TCreateCampaignRequest:
      required:
      - id
      - name
      - rule
      type: object
      properties:
        name:
          minLength: 1
          type: string
        internalName:
          type: string
          nullable: true
        id:
          minLength: 1
          type: string
        storeId:
          type: string
          nullable: true
        startDate:
          type: string
          format: date-time
          nullable: true
        endDate:
          type: string
          format: date-time
          nullable: true
        rule:
          "$ref": "#/components/schemas/Fygi.Transport.Campaigns.Rules.TCampaignRule"
        products:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateCampaignProductRequest"
          nullable: true
        categories:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateCampaignCategoryRequest"
          nullable: true
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateAgeGroupRequest:
      required:
      - id
      type: object
      properties:
        id:
          minLength: 1
          type: string
        handle:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
        minimalAge:
          type: integer
          format: int32
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateAvailabilityRequest:
      required:
      - count
      type: object
      properties:
        count:
          type: integer
          format: int32
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateCategoryProductRequest:
      required:
      - id
      type: object
      properties:
        id:
          minLength: 1
          type: string
        sortIndex:
          type: integer
          format: int32
          nullable: true
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateCategoryRequest:
      required:
      - id
      type: object
      properties:
        id:
          minLength: 1
          type: string
        handle:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        storeId:
          type: string
          nullable: true
        sortIndex:
          type: integer
          format: int32
          nullable: true
        products:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateCategoryProductRequest"
          nullable: true
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateImageRequest:
      required:
      - externalId
      - url
      type: object
      properties:
        externalId:
          minLength: 1
          type: string
        url:
          minLength: 1
          type: string
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TCreateOrUpdatePriceRequest:
      required:
      - amount
      - currencyCode
      - taxPercent
      type: object
      properties:
        currencyCode:
          maxLength: 3
          minLength: 0
          type: string
        amount:
          type: integer
          format: int32
        taxPercent:
          type: integer
          format: int32
        adjustmentType:
          type: string
          format: uuid
          nullable: true
        validFrom:
          type: string
          format: date-time
          nullable: true
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateProductDimensionRequest:
      required:
      - id
      - name
      - prices
      type: object
      properties:
        id:
          minLength: 1
          type: string
        name:
          minLength: 1
          type: string
        articleNumber:
          type: string
          nullable: true
        barcode:
          maxLength: 30
          type: string
          nullable: true
        sortIndex:
          type: integer
          format: int32
          nullable: true
        requiredDimensionId:
          type: string
          nullable: true
        productOption1Value:
          type: string
          nullable: true
        productOption2Value:
          type: string
          nullable: true
        productOption3Value:
          type: string
          nullable: true
        prices:
          minItems: 1
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateOrUpdatePriceRequest"
        availability:
          "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateAvailabilityRequest"
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateProductOptionRequest:
      required:
      - name
      - sortIndex
      - values
      type: object
      properties:
        name:
          minLength: 1
          type: string
        sortIndex:
          type: integer
          format: int32
        values:
          minItems: 1
          type: array
          items:
            type: string
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateProductRequest:
      required:
      - dimensions
      - handle
      - id
      type: object
      properties:
        id:
          minLength: 1
          type: string
        storeId:
          type: string
          nullable: true
        active:
          type: boolean
          nullable: true
        name:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
        handle:
          minLength: 1
          pattern: "^[/\\S]+$"
          type: string
        vendor:
          type: string
          nullable: true
        isShoppingBag:
          type: boolean
        isVending:
          type: boolean
        isWeight:
          type: boolean
        isNotDiscountable:
          type: boolean
        ageGroupId:
          type: string
          nullable: true
        relatedProductIds:
          type: array
          items:
            type: string
          nullable: true
        images:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateImageRequest"
          nullable: true
        categoryIds:
          type: array
          items:
            type: string
          nullable: true
        dimensions:
          minItems: 1
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateProductDimensionRequest"
        options:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateProductOptionRequest"
          nullable: true
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TCreateStoreRequest:
      required:
      - address
      - city
      - cultureName
      - currencyCode
      - customerServiceEmail
      - handle
      - id
      - legalIdentifier
      - postalCode
      - storeProfileId
      - title
      type: object
      properties:
        id:
          minLength: 1
          type: string
        title:
          minLength: 1
          type: string
        handle:
          minLength: 1
          type: string
        subTitle:
          type: string
          nullable: true
        relatedProductsTitle:
          type: string
          nullable: true
        active:
          type: boolean
        address:
          minLength: 1
          type: string
        postalCode:
          minLength: 1
          type: string
        city:
          minLength: 1
          type: string
        enterMessage:
          "$ref": "#/components/schemas/Fygi.Transport.Stores.TStoreMessage"
        exitMessage:
          "$ref": "#/components/schemas/Fygi.Transport.Stores.TStoreMessage"
        checkoutMessage:
          "$ref": "#/components/schemas/Fygi.Transport.Stores.TStoreMessage"
        currencyCode:
          minLength: 1
          type: string
        cultureName:
          minLength: 1
          type: string
        legalIdentifier:
          minLength: 1
          type: string
        customerServiceEmail:
          minLength: 1
          type: string
        selfCheckoutThresholdAmount:
          type: integer
          format: int32
          nullable: true
        selfCheckoutPercent:
          type: integer
          format: int32
          nullable: true
        adjustmentTypes:
          type: array
          items:
            type: string
            format: uuid
          nullable: true
        storeProfileId:
          type: string
          format: uuid
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TDeleteAgeGroupRequest:
      required:
      - id
      type: object
      properties:
        id:
          minLength: 1
          type: string
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TDeleteCampaignRequest:
      required:
      - id
      type: object
      properties:
        id:
          minLength: 1
          type: string
        storeId:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TDeleteCategoryRequest:
      required:
      - id
      type: object
      properties:
        id:
          minLength: 1
          type: string
        storeId:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TDeleteProductRequest:
      required:
      - id
      type: object
      properties:
        id:
          minLength: 1
          type: string
        storeId:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TUpdateAgeGroupRequest:
      required:
      - id
      type: object
      properties:
        id:
          minLength: 1
          type: string
        handle:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        name:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        minimalAge:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Int32]"
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TUpdateCampaignRequest:
      required:
      - id
      type: object
      properties:
        id:
          minLength: 1
          type: string
        name:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        image:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Nullable`1[System.Guid]]"
        startDate:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Nullable`1[System.DateTime]]"
        endDate:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Nullable`1[System.DateTime]]"
        storeId:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        active:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Nullable`1[System.Boolean]]"
        rule:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[Fygi.Transport.Campaigns.Rules.TCampaignRule]"
        products:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Collections.Generic.IReadOnlyCollection`1[Fygi.Integration.Api.Transport.Requests.TCreateCampaignProductRequest]]"
        categories:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Collections.Generic.IReadOnlyCollection`1[Fygi.Integration.Api.Transport.Requests.TCreateCampaignCategoryRequest]]"
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TUpdateCategoryRequest:
      required:
      - id
      type: object
      properties:
        id:
          minLength: 1
          type: string
        handle:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        title:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        storeId:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        sortIndex:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Nullable`1[System.Int32]]"
        products:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Collections.Generic.List`1[Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateCategoryProductRequest]]"
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TUpdateProductRequest:
      required:
      - id
      type: object
      properties:
        id:
          minLength: 1
          type: string
        storeId:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        name:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        description:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        handle:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        vendor:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        active:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Nullable`1[System.Boolean]]"
        isNotDiscountable:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Nullable`1[System.Boolean]]"
        ageGroupId:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        relatedProductIds:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Collections.Generic.List`1[System.String]]"
        imageUrls:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Collections.Generic.List`1[System.String]]"
        categoryIds:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Collections.Generic.List`1[System.String]]"
        dimensions:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Collections.Generic.List`1[Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateProductDimensionRequest]]"
        options:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Collections.Generic.List`1[Fygi.Integration.Api.Transport.Requests.TCreateOrUpdateProductOptionRequest]]"
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TUpdateStoreRequest:
      required:
      - id
      type: object
      properties:
        id:
          minLength: 1
          type: string
        title:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        subTitle:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        handle:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        relatedProductsTitle:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        active:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Boolean]"
        latitude:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Double]"
        longitude:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Double]"
        address:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        postalCode:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        city:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        enterMessage:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[Fygi.Transport.Stores.TStoreMessage]"
        exitMessage:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[Fygi.Transport.Stores.TStoreMessage]"
        checkoutMessage:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[Fygi.Transport.Stores.TStoreMessage]"
        currencyCode:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        cultureName:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        legalIdentifier:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        customerServiceEmail:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        selfCheckoutThresholdAmount:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Nullable`1[System.Int32]]"
        selfCheckoutPercent:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Nullable`1[System.Int32]]"
        adjustmentTypes:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Collections.Generic.List`1[System.Guid]]"
        storeProfileId:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Guid]"
      additionalProperties: false
    Fygi.Integration.Api.Transport.Requests.TUpdateUserRequest:
      required:
      - id
      type: object
      properties:
        id:
          minLength: 1
          type: string
        firstName:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        lastName:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        email:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        role:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        storeId:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        password:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.String]"
        active:
          "$ref": "#/components/schemas/Fygi.Domain.Utils.Optionals.cs.Optional`1[System.Boolean]"
      additionalProperties: false
    Fygi.Integration.Application.DiscountCodes.Requests.IntegrationUpdateCampaignForDiscountCodeRequest:
      type: object
      properties:
        externalIds:
          type: array
          items:
            type: string
          nullable: true
      additionalProperties: false
    Fygi.Integration.Application.Microshops.GetChainMicroshops.GetAllMicroshopsResult:
      type: object
      properties:
        id:
          type: string
          format: uuid
        handle:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
      additionalProperties: false
    Fygi.Integration.Application.Products.GetModifiedProducts.Models.GetModifiedProductDimensionResult:
      type: object
      properties:
        id:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
        barcode:
          type: string
          nullable: true
        articleNumber:
          type: string
          nullable: true
        prices:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Integration.Application.Products.GetModifiedProducts.Models.GetModifiedProductPriceResult"
          nullable: true
      additionalProperties: false
    Fygi.Integration.Application.Products.GetModifiedProducts.Models.GetModifiedProductPriceResult:
      type: object
      properties:
        amount:
          type: integer
          format: int32
        taxPercent:
          type: integer
          format: int32
        currencyCode:
          type: string
          nullable: true
      additionalProperties: false
    Fygi.Integration.Application.Products.GetModifiedProducts.Models.GetModifiedProductResult:
      type: object
      properties:
        id:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
        handle:
          type: string
          nullable: true
        vendor:
          type: string
          nullable: true
        active:
          type: boolean
        isWeight:
          type: boolean
        isVending:
          type: boolean
        isShoppingBag:
          type: boolean
        isBehindCounter:
          type: boolean
        isImported:
          type: boolean
        isNotDiscountable:
          type: boolean
        sortIndex:
          type: integer
          format: int32
          nullable: true
        modifiedAt:
          type: string
          format: date-time
        images:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Transport.Images.TImage"
          nullable: true
        dimensions:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Integration.Application.Products.GetModifiedProducts.Models.GetModifiedProductDimensionResult"
          nullable: true
      additionalProperties: false
    Fygi.Modules.Customers.Api.Models.CustomersDetailsModel:
      type: object
      properties:
        accountIds:
          type: array
          items:
            type: string
            format: uuid
          nullable: true
      additionalProperties: false
    Fygi.Modules.Customers.Application.Queries.GetCustomersDetails.CustomersDetailsResult:
      type: object
      properties:
        id:
          type: string
          format: uuid
        email:
          type: string
          nullable: true
        phoneNumber:
          type: string
          nullable: true
        firstName:
          type: string
          nullable: true
        lastName:
          type: string
          nullable: true
        birthDate:
          type: string
          format: date-time
          nullable: true
        nationalIdNumber:
          type: string
          nullable: true
        addressType:
          type: string
          nullable: true
        streetAddress:
          type: string
          nullable: true
        postalCode:
          type: string
          nullable: true
        city:
          type: string
          nullable: true
        countryCode:
          type: string
          nullable: true
        digitalConsent:
          type: boolean
        emailConsent:
          type: boolean
        personalConsent:
          type: boolean
        smsConsent:
          type: boolean
        timeOfConsent:
          type: string
          format: date-time
          nullable: true
        loyaltyProvider:
          type: string
          nullable: true
        loyaltyCustomerId:
          type: string
          nullable: true
      additionalProperties: false
    Fygi.Transport.Campaigns.Rules.TCampaignRule:
      required:
      - requiresMembership
      - type
      type: object
      properties:
        type:
          "$ref": "#/components/schemas/Fygi.Domain.Campaigns.CampaignRuleType"
        requiresMembership:
          type: boolean
        scope:
          "$ref": "#/components/schemas/Fygi.Domain.Campaigns.CampaignRuleScope"
      additionalProperties: false
    Fygi.Transport.DiscountCodes.TCreateDiscountCodeRequest:
      required:
      - id
      type: object
      properties:
        id:
          minLength: 1
          type: string
        value:
          type: string
          nullable: true
      additionalProperties: false
    Fygi.Transport.DiscountCodes.TDiscountCode:
      type: object
      properties:
        id:
          type: integer
          format: int32
        value:
          type: string
          nullable: true
      additionalProperties: false
    Fygi.Transport.FulfillmentOptions.TFulfillmentOption:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
          nullable: true
        type:
          "$ref": "#/components/schemas/Fygi.Domain.FulfillmentOptions.FulfillmentOptionType"
        default:
          type: boolean
      additionalProperties: false
    Fygi.Transport.Images.TImage:
      type: object
      properties:
        id:
          type: string
          format: uuid
        fileName:
          type: string
          nullable: true
        url:
          type: string
          nullable: true
        externalImageId:
          type: string
          nullable: true
        sizes:
          type: object
          additionalProperties:
            type: string
            nullable: true
          nullable: true
      additionalProperties: false
    Fygi.Transport.Orders.TOrder:
      type: object
      properties:
        id:
          type: string
          format: uuid
        number:
          type: string
          nullable: true
        externalId:
          type: string
          nullable: true
        orderReference:
          type: string
          nullable: true
        createdAt:
          type: string
          format: date-time
          nullable: true
        receiptSentAt:
          type: string
          format: date-time
          nullable: true
        sum:
          type: integer
          format: int32
        taxSum:
          type: integer
          format: int32
        currencyCode:
          type: string
          nullable: true
        storeId:
          type: string
          format: uuid
        customerId:
          type: string
          format: uuid
        vendingCode:
          type: string
          nullable: true
        externalStoreId:
          type: string
          nullable: true
        orderLines:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Transport.Orders.TOrderLine"
          nullable: true
        orderLineRelations:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Transport.Orders.TOrderLineRelation"
          nullable: true
        transactions:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Transport.Transactions.TTransaction"
          nullable: true
        shipments:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Transport.Orders.TShipment"
          nullable: true
        adjustmentType:
          "$ref": "#/components/schemas/Fygi.Domain.AdjustmentTypes.AdjustmentTypeReadModel"
      additionalProperties: false
    Fygi.Transport.Orders.TOrderLine:
      type: object
      properties:
        id:
          type: string
          format: uuid
        type:
          "$ref": "#/components/schemas/Fygi.Domain.Orders.OrderLineType"
        name:
          type: string
          nullable: true
        quantity:
          type: integer
          format: int32
        unitPrice:
          type: integer
          format: int32
        unitTaxPaid:
          type: integer
          format: int32
        totalPrice:
          type: integer
          format: int32
        totalTaxPaid:
          type: integer
          format: int32
        productGroupId:
          type: string
          format: uuid
          nullable: true
        taxPercent:
          type: integer
          format: int32
      additionalProperties: false
    Fygi.Transport.Orders.TOrderLineRelation:
      type: object
      properties:
        orderLineId:
          type: string
          format: uuid
        relatedOrderLineId:
          type: string
          format: uuid
        type:
          "$ref": "#/components/schemas/Fygi.Domain.Orders.OrderLineType"
        sortIndex:
          type: integer
          format: int32
      additionalProperties: false
    Fygi.Transport.Orders.TShipment:
      type: object
      properties:
        id:
          type: string
          format: uuid
        fullName:
          type: string
          nullable: true
        addressLine1:
          type: string
          nullable: true
        addressLine2:
          type: string
          nullable: true
        postalCode:
          type: string
          nullable: true
        city:
          type: string
          nullable: true
        countryName:
          type: string
          nullable: true
        countryCode:
          type: string
          nullable: true
        emailAddress:
          type: string
          nullable: true
        shipmentTrackingNumber:
          type: string
          nullable: true
        shipmentTrackingLink:
          type: string
          nullable: true
      additionalProperties: false
    Fygi.Transport.Reports.TReport:
      type: object
      properties:
        id:
          type: string
          format: uuid
        storeId:
          type: string
          format: uuid
        title:
          type: string
          nullable: true
        reportUrl:
          type: string
          nullable: true
        reportType:
          "$ref": "#/components/schemas/Fygi.Domain.Reports.ReportType"
        createdAt:
          type: string
          format: date-time
        reportDate:
          type: string
          format: date-time
          nullable: true
        canBeDeleted:
          type: boolean
      additionalProperties: false
    Fygi.Transport.StoreProfiles.TStoreProfile:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
          nullable: true
        primaryColor:
          type: string
          nullable: true
        backgroundColor:
          type: string
          nullable: true
        primaryTextColor:
          type: string
          nullable: true
        logoImage:
          "$ref": "#/components/schemas/Fygi.Transport.Images.TImage"
      additionalProperties: false
    Fygi.Transport.Stores.TStoreChain:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
          nullable: true
        handle:
          type: string
          nullable: true
        hasMembership:
          type: boolean
        hasCoupon:
          type: boolean
        privacyPolicyUrl:
          type: string
          format: uri
          nullable: true
        termsAndConditionsUrl:
          type: string
          format: uri
          nullable: true
        fulfillmentOptions:
          type: array
          items:
            "$ref": "#/components/schemas/Fygi.Transport.FulfillmentOptions.TFulfillmentOption"
          nullable: true
      additionalProperties: false
    Fygi.Transport.Stores.TStoreMessage:
      type: object
      properties:
        message:
          type: string
          nullable: true
        active:
          type: boolean
      additionalProperties: false
    Fygi.Transport.Stores.TStoreShallow:
      type: object
      properties:
        id:
          type: string
          format: uuid
        externalId:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        subTitle:
          type: string
          nullable: true
        handle:
          type: string
          nullable: true
        relatedProductsTitle:
          type: string
          nullable: true
        currencyCode:
          type: string
          nullable: true
        cultureName:
          type: string
          nullable: true
        countryCode:
          "$ref": "#/components/schemas/Fygi.Domain.CountryCode"
        storeChain:
          "$ref": "#/components/schemas/Fygi.Transport.Stores.TStoreChain"
        active:
          type: boolean
        address:
          type: string
          nullable: true
        postalCode:
          type: string
          nullable: true
        city:
          type: string
          nullable: true
        legalIdentifier:
          type: string
          nullable: true
        timeZoneId:
          type: string
          nullable: true
        storeFrontImage:
          "$ref": "#/components/schemas/Fygi.Transport.Images.TImage"
        headerImage:
          "$ref": "#/components/schemas/Fygi.Transport.Images.TImage"
        expandedImage:
          "$ref": "#/components/schemas/Fygi.Transport.Images.TImage"
        enterMessage:
          "$ref": "#/components/schemas/Fygi.Transport.Stores.TStoreMessage"
        exitMessage:
          "$ref": "#/components/schemas/Fygi.Transport.Stores.TStoreMessage"
        checkoutMessage:
          "$ref": "#/components/schemas/Fygi.Transport.Stores.TStoreMessage"
        storeProfile:
          "$ref": "#/components/schemas/Fygi.Transport.StoreProfiles.TStoreProfile"
      additionalProperties: false
    Fygi.Transport.Transactions.TTransaction:
      type: object
      properties:
        id:
          type: string
          format: uuid
        orderId:
          type: string
          format: uuid
        type:
          "$ref": "#/components/schemas/Fygi.Domain.Transactions.TransactionType"
        status:
          "$ref": "#/components/schemas/Fygi.Domain.Transactions.TransactionStatus"
        createdAt:
          type: string
          format: date-time
      additionalProperties: false
    Microsoft.AspNetCore.Mvc.ProblemDetails:
      type: object
      properties:
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
      additionalProperties: {}
  securitySchemes:
    AuthorizationKey:
      type: apiKey
      description: Authorization with api key (Integration API)
      name: authorization
      in: header
