openapi: 3.0.3
info:
  title: OpenAPI definition
  version: v0
servers:
  - url: http://localhost:8082
    description: Generated server url
paths:
  /services/catalog/config:
    get:
      tags:
        - configurations-controller
      operationId: getSalesOrgConfigurations
      parameters:
        - name: salesOrg
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/SalesOrgConfiguration'
  /services/products/v1/{salesOrg}/outlet/{outletId}/favourites:
    get:
      tags:
        - multi-favourite-list-controller
      operationId: getAllFavLists
      parameters:
        - name: salesOrg
          in: path
          required: true
          schema:
            pattern: ^[A-Za-z0-9]*$
            type: string
        - name: outletId
          in: path
          required: true
          schema:
            type: string
        - name: page
          in: query
          required: false
          schema:
            minimum: 0
            type: integer
            format: int32
            default: 0
        - name: size
          in: query
          required: false
          schema:
            maximum: 1000
            type: integer
            format: int32
            default: 10
      responses:
        '200':
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomPageDtoFavouriteListDto'
    post:
      tags:
        - multi-favourite-list-controller
      operationId: addProduct
      parameters:
        - name: salesOrg
          in: path
          required: true
          schema:
            type: string
        - name: outletId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FavouriteItemAddRequestDto'
      responses:
        '200':
          description: default response
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/FavouriteProductAddDto'
    delete:
      tags:
        - multi-favourite-list-controller
      operationId: deleteProduct
      parameters:
        - name: salesOrg
          in: path
          required: true
          schema:
            type: string
        - name: outletId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FavouriteItemDeleteRequestDto'
      responses:
        '204':
          description: default response
  /services/picos/{eid}:
    get:
      tags:
        - pic-os-controller
      operationId: getPicOsById
      parameters:
        - name: eid
          in: path
          required: true
          schema:
            type: string
        - name: salesOrg
          in: query
          required: true
          schema:
            pattern: ^[A-Za-z0-9]*$
            type: string
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PicOsDetailsDto'
    put:
      tags:
        - pic-os-controller
      operationId: updatePicOs
      parameters:
        - name: eid
          in: path
          required: true
          schema:
            type: string
        - name: salesOrg
          in: query
          required: true
          schema:
            pattern: ^[A-Za-z0-9]*$
            type: string
        - name: userEid
          in: query
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PicOsRequestDto'
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PicOsDetailsDto'
    delete:
      tags:
        - pic-os-controller
      operationId: removePicOs
      parameters:
        - name: eid
          in: path
          required: true
          schema:
            type: string
        - name: salesOrg
          in: query
          required: true
          schema:
            pattern: ^[A-Za-z0-9]*$
            type: string
        - name: userEid
          in: query
          required: true
          schema:
            type: string
      responses:
        '204':
          description: default response
  /services/variants:
    get:
      tags:
        - variant-controller
      operationId: getVariantsBySkus
      parameters:
        - name: skus
          in: query
          required: true
          schema:
            type: array
            items:
              type: string
        - name: salesOrg
          in: query
          required: true
          schema:
            type: string
        - name: outletId
          in: query
          required: true
          schema:
            type: string
        - name: distributorId
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EntityModelProductDetailsDto'
      deprecated: true
  /services/variants/{sku}:
    get:
      tags:
        - variant-controller
      operationId: getVariantBySku
      parameters:
        - name: sku
          in: path
          required: true
          schema:
            type: string
        - name: salesOrg
          in: query
          required: true
          schema:
            type: string
        - name: outletId
          in: query
          required: true
          schema:
            type: string
        - name: distributorId
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/EntityModelProductDetailsDto'
      deprecated: true
  /services/products/v1/{salesOrg}/outlet/{outletId}/favourites/items/{sku}:
    get:
      tags:
        - multi-favourite-list-controller
      operationId: getFavListsWthAssociateStatus
      parameters:
        - name: salesOrg
          in: path
          required: true
          schema:
            pattern: ^[A-Za-z0-9]*$
            type: string
        - name: outletId
          in: path
          required: true
          schema:
            type: string
        - name: sku
          in: path
          required: true
          schema:
            type: string
        - name: page
          in: query
          required: false
          schema:
            minimum: 0
            type: integer
            format: int32
            default: 0
        - name: size
          in: query
          required: false
          schema:
            maximum: 1000
            type: integer
            format: int32
            default: 10
      responses:
        '200':
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SkuAssocFavListsDto'
  /services/catalog:
    get:
      tags:
        - catalog-controller
      operationId: getAllProducts
      parameters:
        - name: salesOrg
          in: query
          required: true
          schema:
            type: string
        - name: outletId
          in: query
          required: false
          schema:
            type: string
        - name: distributorId
          in: query
          required: false
          schema:
            type: string
        - name: addressId
          in: query
          required: false
          schema:
            type: string
        - name: deliveryDate
          in: query
          required: false
          schema:
            type: string
            format: date
        - name: search
          in: query
          required: false
          schema:
            maxLength: 2147483647
            minLength: 3
            type: string
        - name: page
          in: query
          required: false
          schema:
            minimum: 0
            type: integer
            format: int64
            default: 0
        - name: size
          in: query
          required: false
          schema:
            maximum: 1000
            type: integer
            format: int64
            default: 10
        - name: withSortMode
          in: query
          required: false
          schema:
            type: boolean
            default: true
        - name: sortMode
          in: query
          required: false
          schema:
            type: string
        - name: withFilters
          in: query
          required: false
          schema:
            type: boolean
            default: true
        - name: filters
          in: query
          required: true
          schema:
            $ref: '#/components/schemas/CatalogFiltersDto'
        - name: type
          in: query
          required: false
          schema:
            type: string
            default: PRD
            enum:
              - PRD
              - PRO
              - EMP
              - FAV
              - RWD
              - FBR
              - SELLABLE_VARIANT
              - PIC
              - MFV
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/EntityModelCatalogDto'
  /services/products/v1/{salesOrg}/outlet/{outletId}/favourites/{favListId}:
    get:
      tags:
        - multi-favourite-list-controller
      operationId: getFavListItems
      parameters:
        - name: salesOrg
          in: path
          required: true
          schema:
            pattern: ^[A-Za-z0-9]*$
            type: string
        - name: outletId
          in: path
          required: true
          schema:
            type: string
        - name: favListId
          in: path
          required: true
          schema:
            minimum: 0
            type: integer
            format: int64
        - name: distributorId
          in: query
          required: false
          schema:
            type: string
        - name: deliveryDate
          in: query
          required: false
          schema:
            type: string
            format: date
        - name: page
          in: query
          required: false
          schema:
            minimum: 0
            type: integer
            format: int32
            default: 0
        - name: size
          in: query
          required: false
          schema:
            maximum: 1000
            type: integer
            format: int32
            default: 10
        - name: withSortMode
          in: query
          required: false
          schema:
            type: boolean
            default: true
        - name: sortMode
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FavouriteListItemsDto'
    put:
      tags:
        - multi-favourite-list-controller
      operationId: updateFavList
      parameters:
        - name: salesOrg
          in: path
          required: true
          schema:
            type: string
        - name: outletId
          in: path
          required: true
          schema:
            type: string
        - name: favListId
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: favListName
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: default response
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/FavouriteListUpdateDto'
    delete:
      tags:
        - multi-favourite-list-controller
      operationId: deleteFavList
      parameters:
        - name: salesOrg
          in: path
          required: true
          schema:
            type: string
        - name: outletId
          in: path
          required: true
          schema:
            type: string
        - name: favListId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '204':
          description: default response
  /services/picos:
    get:
      tags:
        - pic-os-controller
      operationId: getAllPicOs
      parameters:
        - name: salesOrg
          in: query
          required: true
          schema:
            pattern: ^[A-Za-z0-9]*$
            type: string
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PicOsDto'
    post:
      tags:
        - pic-os-controller
      operationId: createNewPicOS
      parameters:
        - name: salesOrg
          in: query
          required: true
          schema:
            pattern: ^[A-Za-z0-9]*$
            type: string
        - name: userEid
          in: query
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PicOsSimpleReqDto'
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PicOsDetailsDto'
  /catalog-api/v1/{salesOrg}/recommendations:
    post:
      tags:
        - recommendations-controller
      operationId: getRecommendations
      parameters:
        - name: salesOrg
          in: path
          required: true
          schema:
            pattern: ^[A-Za-z0-9]*$
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecommendationsRequestDto'
      responses:
        '200':
          description: default response
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CustomPageDtoBaseProductDtoProductDto'
  /services/products/favourites/{sku}:
    post:
      tags:
        - favourite-list-controller
      operationId: addProduct_1
      parameters:
        - name: sku
          in: path
          required: true
          schema:
            type: string
        - name: salesOrg
          in: query
          required: true
          schema:
            type: string
        - name: outletId
          in: query
          required: true
          schema:
            type: string
      responses:
        '204':
          description: default response
    delete:
      tags:
        - favourite-list-controller
      operationId: deleteProduct_1
      parameters:
        - name: sku
          in: path
          required: true
          schema:
            type: string
        - name: salesOrg
          in: query
          required: true
          schema:
            type: string
        - name: outletId
          in: query
          required: true
          schema:
            type: string
      responses:
        '204':
          description: default response
  /services/picos/{eid}/products/{baseSku}:
    put:
      tags:
        - pic-os-controller
      operationId: updateBaseProducts
      parameters:
        - name: eid
          in: path
          required: true
          schema:
            type: string
        - name: baseSku
          in: path
          required: true
          schema:
            type: string
        - name: position
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: salesOrg
          in: query
          required: true
          schema:
            pattern: ^[A-Za-z0-9]*$
            type: string
        - name: userEid
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PicOsDetailsDto'
    delete:
      tags:
        - pic-os-controller
      operationId: removePicOsBaseProduct
      parameters:
        - name: eid
          in: path
          required: true
          schema:
            type: string
        - name: baseSku
          in: path
          required: true
          schema:
            type: string
        - name: salesOrg
          in: query
          required: true
          schema:
            pattern: ^[A-Za-z0-9]*$
            type: string
        - name: userEid
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PicOsDetailsDto'
  /services/products/v1/{salesOrg}/outlet/{outletId}/favourites/create:
    post:
      tags:
        - multi-favourite-list-controller
      operationId: createFavouriteList
      parameters:
        - name: salesOrg
          in: path
          required: true
          schema:
            type: string
        - name: outletId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FavouriteCreateRequestDto'
      responses:
        '200':
          description: default response
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/FavouriteListDto'
  /services/filters:
    get:
      tags:
        - filters-controller
      operationId: getAllFilters
      parameters:
        - name: salesOrg
          in: query
          required: true
          schema:
            pattern: ^[A-Za-z0-9]*$
            type: string
        - name: outletId
          in: query
          required: false
          schema:
            type: string
        - name: distributorId
          in: query
          required: false
          schema:
            type: string
        - name: type
          in: query
          required: false
          schema:
            type: string
            default: PRD
            enum:
              - PRD
              - PRO
              - EMP
              - FAV
              - RWD
              - FBR
              - SELLABLE_VARIANT
              - PIC
              - MFV
        - name: deliveryDate
          in: query
          required: false
          schema:
            type: string
            format: date
        - name: page
          in: query
          required: false
          schema:
            minimum: 0
            type: integer
            format: int32
            default: 0
        - name: size
          in: query
          required: false
          schema:
            maximum: 1000
            type: integer
            format: int32
            default: 100
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PagedModelEntityModelCatalogFilterDto'
  /services/products:
    get:
      tags:
        - product-controller
      operationId: getProductsBySellableVariantsIds_1
      parameters:
        - name: variantSkus
          in: query
          required: true
          schema:
            type: array
            items:
              type: string
        - name: salesOrg
          in: query
          required: true
          schema:
            type: string
        - name: outletId
          in: query
          required: true
          schema:
            type: string
        - name: distributorId
          in: query
          required: true
          schema:
            type: string
        - name: deliveryDate
          in: query
          required: false
          schema:
            type: string
            format: date
        - name: skus
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EntityModelBaseProductDtoProductDetailsDto'
  /services/filters/{code}:
    get:
      tags:
        - filters-controller
      operationId: getFilterByCode
      parameters:
        - name: code
          in: path
          required: true
          schema:
            type: string
        - name: salesOrg
          in: query
          required: true
          schema:
            pattern: ^[A-Za-z0-9]*$
            type: string
        - name: outletId
          in: query
          required: true
          schema:
            type: string
        - name: distributorId
          in: query
          required: true
          schema:
            type: string
        - name: type
          in: query
          required: false
          schema:
            type: string
            default: PRD
            enum:
              - PRD
              - PRO
              - EMP
              - FAV
              - RWD
              - FBR
              - SELLABLE_VARIANT
              - PIC
              - MFV
        - name: deliveryDate
          in: query
          required: false
          schema:
            type: string
            format: date
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/EntityModelCatalogFilterDto'
  /services/products/{sku}:
    get:
      tags:
        - product-controller
      operationId: getProductById
      parameters:
        - name: sku
          in: path
          required: true
          schema:
            type: string
        - name: salesOrg
          in: query
          required: true
          schema:
            type: string
        - name: outletId
          in: query
          required: true
          schema:
            type: string
        - name: distributorId
          in: query
          required: true
          schema:
            type: string
        - name: deliveryDate
          in: query
          required: false
          schema:
            type: string
            format: date
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/EntityModelBaseProductDtoProductDetailsDto'
  /services/products/{baseSku}/variants/{variantSku}:
    get:
      tags:
        - variant-controller
      operationId: getVariantFromProduct
      parameters:
        - name: baseSku
          in: path
          required: true
          schema:
            type: string
        - name: variantSku
          in: path
          required: true
          schema:
            type: string
        - name: salesOrg
          in: query
          required: true
          schema:
            type: string
        - name: outletId
          in: query
          required: true
          schema:
            type: string
        - name: distributorId
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/EntityModelProductDetailsDto'
      deprecated: true
  /services/import/catalog:
    get:
      tags:
        - pull-data-controller
      operationId: importProducts
      parameters:
        - name: salesOrg
          in: query
          required: true
          schema:
            type: string
        - name: fullImport
          in: query
          required: true
          schema:
            type: boolean
            default: false
      responses:
        '204':
          description: default response
  /services/picos/{eid}/products:
    post:
      tags:
        - pic-os-controller
      operationId: bulkUpdateBaseProducts
      parameters:
        - name: eid
          in: path
          required: true
          schema:
            type: string
        - name: salesOrg
          in: query
          required: true
          schema:
            pattern: ^[A-Za-z0-9]*$
            type: string
        - name: userEid
          in: query
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/BaseProductRequestDto'
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PicOsDetailsDto'
  /services/variants/v2/{sku}:
    get:
      tags:
        - variant-controller
      operationId: getVariantBySkuV2
      parameters:
        - name: sku
          in: path
          required: true
          schema:
            type: string
        - name: salesOrg
          in: query
          required: true
          schema:
            type: string
        - name: outletId
          in: query
          required: true
          schema:
            type: string
        - name: distributorId
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/EntityModelVariantDetailsDto'
  /catalog-api/v3/{salesOrg}/products/{baseSku}/variants/{variantSku}:
    get:
      tags:
        - variant-controller
      operationId: getVariantFromProductV3
      parameters:
        - name: baseSku
          in: path
          required: true
          schema:
            type: string
        - name: variantSku
          in: path
          required: true
          schema:
            type: string
        - name: salesOrg
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/VariantDetailsDto'
  /services/picos/{eid}/targetGroups:
    post:
      tags:
        - pic-os-controller
      operationId: bulkUpdateTargetGroups
      parameters:
        - name: eid
          in: path
          required: true
          schema:
            type: string
        - name: salesOrg
          in: query
          required: true
          schema:
            pattern: ^[A-Za-z0-9]*$
            type: string
        - name: userEid
          in: query
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/TargetGroupsRequestDto'
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PicOsDetailsDto'
  /catalog-api/v1/{salesOrg}/picos/audits:
    get:
      tags:
        - picos-audit-controller
      operationId: getAllAudits
      parameters:
        - name: salesOrg
          in: path
          required: true
          schema:
            pattern: ^[A-Za-z0-9]*$
            type: string
        - name: page
          in: query
          required: false
          schema:
            minimum: 0
            type: integer
            format: int32
            default: 0
        - name: size
          in: query
          required: false
          schema:
            maximum: 1000
            type: integer
            format: int32
            default: 10
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CustomPageDtoPicosAuditDto'
  /services/products/v2/{baseSku}/variants/{variantSku}:
    get:
      tags:
        - variant-controller
      operationId: getVariantFromProductV2
      parameters:
        - name: baseSku
          in: path
          required: true
          schema:
            type: string
        - name: variantSku
          in: path
          required: true
          schema:
            type: string
        - name: salesOrg
          in: query
          required: true
          schema:
            type: string
        - name: outletId
          in: query
          required: true
          schema:
            type: string
        - name: distributorId
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/EntityModelVariantDetailsDto'
      deprecated: true
  /catalog-api/v1/{salesOrg}/picos/{eid}/audits:
    get:
      tags:
        - picos-audit-controller
      operationId: getPicOsAuditByPicosId
      parameters:
        - name: salesOrg
          in: path
          required: true
          schema:
            pattern: ^[A-Za-z0-9]*$
            type: string
        - name: eid
          in: path
          required: true
          schema:
            type: string
        - name: page
          in: query
          required: false
          schema:
            minimum: 0
            type: integer
            format: int32
            default: 0
        - name: size
          in: query
          required: false
          schema:
            maximum: 1000
            type: integer
            format: int32
            default: 10
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CustomPageDtoPicosAuditDto'
  /services/variants/v2:
    get:
      tags:
        - variant-controller
      operationId: getVariantsBySkusV2
      parameters:
        - name: skus
          in: query
          required: true
          schema:
            type: array
            items:
              type: string
        - name: salesOrg
          in: query
          required: true
          schema:
            type: string
        - name: outletId
          in: query
          required: true
          schema:
            type: string
        - name: distributorId
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: default response
          content:
            application/hal+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EntityModelVariantDetailsDto'
components:
  schemas:
    FilterConfigValues:
      type: object
      properties:
        order:
          type: integer
          format: int32
        enable:
          type: boolean
        ranges:
          type: array
          items:
            $ref: '#/components/schemas/Range'
    PicOsConfiguration:
      type: object
      properties:
        minNumberProducts:
          minimum: 1
          type: integer
          format: int32
        maxNumberProducts:
          maximum: 50
          type: integer
          format: int32
    Range:
      type: object
      properties:
        label:
          type: string
        from:
          type: number
          format: double
        to:
          type: number
          format: double
        order:
          type: integer
          format: int32
    RecommendationsConfiguration:
      type: object
      properties:
        maxRequest:
          minimum: 100
          type: integer
          format: int32
    SalesOrgConfiguration:
      required:
        - assortments
        - locales
        - priceValidations
      type: object
      properties:
        assortments:
          type: object
          additionalProperties:
            type: boolean
        priceValidations:
          type: object
          additionalProperties:
            type: boolean
        enableTargetGroupsPrices:
          type: boolean
        picos:
          $ref: '#/components/schemas/PicOsConfiguration'
        recommendations:
          $ref: '#/components/schemas/RecommendationsConfiguration'
        locales:
          uniqueItems: true
          type: array
          items:
            type: object
            properties:
              language:
                type: string
              displayName:
                type: string
              script:
                type: string
              country:
                type: string
              variant:
                type: string
              extensionKeys:
                uniqueItems: true
                type: array
                items:
                  type: string
              unicodeLocaleAttributes:
                uniqueItems: true
                type: array
                items:
                  type: string
              unicodeLocaleKeys:
                uniqueItems: true
                type: array
                items:
                  type: string
              iso3Language:
                type: string
              iso3Country:
                type: string
              displayLanguage:
                type: string
              displayScript:
                type: string
              displayCountry:
                type: string
              displayVariant:
                type: string
        filters:
          type: object
          additionalProperties:
            type: object
            additionalProperties:
              $ref: '#/components/schemas/FilterConfigValues'
        sortsFile:
          $ref: '#/components/schemas/SortConfigurationDto'
    SortConfigurationDto:
      type: object
      properties:
        sortModes:
          type: array
          items:
            $ref: '#/components/schemas/SortModeDto'
        default:
          type: string
    SortModeDto:
      type: object
      properties:
        code:
          type: string
        sortOrder:
          type: string
        displayOrder:
          type: integer
          format: int32
        tieBreakSorts:
          type: array
          items:
            type: string
        missingValuesPosition:
          type: string
        isInternal:
          type: boolean
        enabled:
          type: boolean
    FavouriteItemDeleteRequestDto:
      required:
        - favListId
        - sku
      type: object
      properties:
        sku:
          type: string
        favListId:
          type: integer
          format: int64
    DepositDto:
      type: object
      properties:
        product:
          $ref: '#/components/schemas/ProductDto'
        quantity:
          type: integer
          format: int64
    DetailsInfoDto:
      type: object
      properties:
        brand:
          $ref: '#/components/schemas/LabelDto'
        categories:
          type: array
          items:
            $ref: '#/components/schemas/LabelDto'
        subCategories:
          type: array
          items:
            $ref: '#/components/schemas/LabelDto'
    EntityModelProductDetailsDto:
      type: object
      properties:
        salesOrg:
          type: string
        baseSku:
          type: string
        sku:
          type: string
        label:
          type: string
        isDefault:
          type: boolean
        barcode:
          type: string
        name:
          type: string
        type:
          type: string
        isNew:
          type: boolean
        images:
          type: array
          items:
            $ref: '#/components/schemas/ImageDto'
        detailsInfo:
          $ref: '#/components/schemas/DetailsInfoDto'
        targetGroups:
          type: array
          items:
            $ref: '#/components/schemas/ProductTargetGroupDto'
        maxQtyOrderable:
          type: integer
          format: int32
        validity:
          $ref: '#/components/schemas/ValidityDto'
        description:
          type: string
        alcoholContent:
          type: number
        liquidType:
          type: string
        filtration:
          type: string
        countryOfOrigin:
          type: string
        locales:
          type: array
          items:
            type: string
        isReturnable:
          type: boolean
        isSellable:
          type: boolean
        deposits:
          type: array
          items:
            $ref: '#/components/schemas/DepositDto'
        ranking:
          type: integer
          format: int32
        fittingType:
          type: string
        ingredients:
          type: string
        ibu:
          type: integer
          format: int32
        originalGravity:
          type: number
        nutritionFacts:
          type: number
        isPasteurized:
          type: boolean
        isFiltered:
          type: boolean
        reward:
          type: boolean
        freeBeer:
          type: boolean
        package:
          $ref: '#/components/schemas/ProductPackageDto'
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
    ImageDto:
      type: object
      properties:
        url:
          type: string
        size:
          type: string
          enum:
            - TINY
            - SMALL
            - MEDIUM
            - LARGE
    LabelDto:
      type: object
      properties:
        code:
          type: string
        name:
          type: string
    Link:
      type: object
      properties:
        rel:
          type: string
        href:
          type: string
        hreflang:
          type: string
        media:
          type: string
        title:
          type: string
        type:
          type: string
        deprecation:
          type: string
        profile:
          type: string
        name:
          type: string
    ProductDetailsDto:
      type: object
      properties:
        salesOrg:
          type: string
        baseSku:
          type: string
        sku:
          type: string
        label:
          type: string
        isDefault:
          type: boolean
        barcode:
          type: string
        name:
          type: string
        type:
          type: string
        isNew:
          type: boolean
        images:
          type: array
          items:
            $ref: '#/components/schemas/ImageDto'
        detailsInfo:
          $ref: '#/components/schemas/DetailsInfoDto'
        targetGroups:
          type: array
          items:
            $ref: '#/components/schemas/ProductTargetGroupDto'
        maxQtyOrderable:
          type: integer
          format: int32
        validity:
          $ref: '#/components/schemas/ValidityDto'
        description:
          type: string
        alcoholContent:
          type: number
        liquidType:
          type: string
        filtration:
          type: string
        countryOfOrigin:
          type: string
        locales:
          type: array
          items:
            type: string
        isReturnable:
          type: boolean
        isSellable:
          type: boolean
        deposits:
          type: array
          items:
            $ref: '#/components/schemas/DepositDto'
        ranking:
          type: integer
          format: int32
        fittingType:
          type: string
        ingredients:
          type: string
        ibu:
          type: integer
          format: int32
        originalGravity:
          type: number
        nutritionFacts:
          type: number
        isPasteurized:
          type: boolean
        isFiltered:
          type: boolean
        reward:
          type: boolean
        freeBeer:
          type: boolean
        package:
          $ref: '#/components/schemas/ProductPackageDto'
    ProductDto:
      type: object
      properties:
        salesOrg:
          type: string
        baseSku:
          type: string
        sku:
          type: string
        label:
          type: string
        isDefault:
          type: boolean
        barcode:
          type: string
        name:
          type: string
        type:
          type: string
        isNew:
          type: boolean
        images:
          type: array
          items:
            $ref: '#/components/schemas/ImageDto'
        detailsInfo:
          $ref: '#/components/schemas/DetailsInfoDto'
        targetGroups:
          type: array
          items:
            $ref: '#/components/schemas/ProductTargetGroupDto'
        maxQtyOrderable:
          type: integer
          format: int32
        validity:
          $ref: '#/components/schemas/ValidityDto'
        package:
          $ref: '#/components/schemas/ProductPackageDto'
    ProductPackageDto:
      type: object
      properties:
        unit:
          type: string
        type:
          type: string
        size:
          type: string
    ProductTargetGroupDto:
      type: object
      properties:
        targetGroup:
          type: string
        ranking:
          type: integer
          format: int32
    ValidityDto:
      type: object
      properties:
        validFrom:
          type: integer
          format: int64
        validTo:
          type: integer
          format: int64
    PicOsRequestDto:
      type: object
      properties:
        title:
          maxLength: 60
          minLength: 1
          type: string
        description:
          maxLength: 60
          minLength: 1
          type: string
        position:
          minimum: 1
          type: integer
          format: int32
        enabled:
          type: boolean
    MetadataDateDto:
      type: object
      properties:
        date:
          type: string
          format: date-time
        user:
          type: string
    MetadataDto:
      type: object
      properties:
        creation:
          $ref: '#/components/schemas/MetadataDateDto'
        lastModification:
          $ref: '#/components/schemas/MetadataDateDto'
    PicOsBaseProductDto:
      type: object
      properties:
        sku:
          type: string
        salesOrg:
          type: string
        isFavourite:
          type: boolean
        variants:
          type: array
          items:
            $ref: '#/components/schemas/ProductDetailsDto'
        position:
          type: integer
          format: int32
    PicOsDetailsDto:
      type: object
      properties:
        eid:
          type: string
        salesOrg:
          type: string
        title:
          type: string
        description:
          type: string
        position:
          type: integer
          format: int32
        enabled:
          type: boolean
        canBeEnabled:
          type: boolean
        totalProducts:
          type: integer
          format: int32
        totalTgs:
          type: integer
          format: int32
        baseProducts:
          type: array
          items:
            $ref: '#/components/schemas/PicOsBaseProductDto'
        targetGroups:
          type: array
          items:
            $ref: '#/components/schemas/PicOsTargetGroupDto'
        metadata:
          $ref: '#/components/schemas/MetadataDto'
    PicOsTargetGroupDto:
      type: object
      properties:
        eid:
          type: string
    CustomPageable:
      type: object
      properties:
        page:
          type: integer
          format: int32
        size:
          type: integer
          format: int32
        totalElements:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int64
        numberOfElements:
          type: integer
          format: int32
    SkuAssocFavListsDto:
      type: object
      properties:
        sku:
          type: string
        content:
          type: array
          items:
            $ref: '#/components/schemas/SkuFavouriteListDto'
        pagination:
          $ref: '#/components/schemas/CustomPageable'
    SkuFavouriteListDto:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        associate:
          type: boolean
    CatalogFilterDto:
      required:
        - code
      type: object
      properties:
        code:
          type: string
        values:
          type: array
          items:
            type: string
        range:
          $ref: '#/components/schemas/RangeDto'
    CatalogFiltersDto:
      type: object
      properties:
        filters:
          type: array
          items:
            $ref: '#/components/schemas/CatalogFilterDto'
    RangeDto:
      type: object
      properties:
        min:
          type: number
        max:
          type: number
    BaseProductDtoProductDto:
      type: object
      properties:
        sku:
          type: string
        salesOrg:
          type: string
        isFavourite:
          type: boolean
        variants:
          type: array
          items:
            $ref: '#/components/schemas/ProductDto'
    CatalogFilterValueDto:
      type: object
      properties:
        code:
          type: string
        label:
          type: string
        selected:
          type: boolean
        count:
          type: integer
          format: int64
    CatalogSortModeDto:
      type: object
      properties:
        code:
          type: string
        label:
          type: string
        selected:
          type: boolean
    EntityModelBaseProductDtoProductDto:
      type: object
      properties:
        sku:
          type: string
        salesOrg:
          type: string
        isFavourite:
          type: boolean
        variants:
          type: array
          items:
            $ref: '#/components/schemas/ProductDto'
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
    EntityModelCatalogDto:
      type: object
      properties:
        filters:
          type: array
          items:
            $ref: '#/components/schemas/EntityModelCatalogFilterDto'
        sortModes:
          type: array
          items:
            $ref: '#/components/schemas/EntityModelCatalogSortModeDto'
        page:
          $ref: '#/components/schemas/PageMetadata'
        products:
          type: array
          items:
            $ref: '#/components/schemas/EntityModelBaseProductDtoProductDto'
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
    EntityModelCatalogFilterDto:
      type: object
      properties:
        salesOrg:
          type: string
        code:
          type: string
        tab:
          type: string
          enum:
            - PRD
            - PRO
            - EMP
            - FAV
            - RWD
            - FBR
            - SELLABLE_VARIANT
            - PIC
            - MFV
        values:
          type: array
          items:
            $ref: '#/components/schemas/CatalogFilterValueDto'
        range:
          $ref: '#/components/schemas/RangeDto'
        order:
          type: integer
          format: int32
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
    EntityModelCatalogSortModeDto:
      type: object
      properties:
        code:
          type: string
        label:
          type: string
        selected:
          type: boolean
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
    PageMetadata:
      type: object
      properties:
        size:
          type: integer
          format: int64
        totalElements:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int64
        number:
          type: integer
          format: int64
    CustomPageDtoBaseProductDtoProductDto:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/BaseProductDtoProductDto'
        pagination:
          $ref: '#/components/schemas/CustomPageable'
    FavouriteListDto:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
    FavouriteListItemsDto:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        favExists:
          type: boolean
        items:
          $ref: '#/components/schemas/CustomPageDtoBaseProductDtoProductDto'
        sortModes:
          type: array
          items:
            $ref: '#/components/schemas/CatalogSortModeDto'
    PicOsDto:
      type: object
      properties:
        eid:
          type: string
        salesOrg:
          type: string
        title:
          type: string
        description:
          type: string
        position:
          type: integer
          format: int32
        enabled:
          type: boolean
        canBeEnabled:
          type: boolean
        totalProducts:
          type: integer
          format: int32
        totalTgs:
          type: integer
          format: int32
    RecommendationsRequestDto:
      required:
        - distributorId
        - outletId
        - recommendationType
        - visitorId
      type: object
      properties:
        outletId:
          type: string
        distributorId:
          type: string
        visitorId:
          type: string
        recommendationType:
          type: string
          enum:
            - POPULAR
            - TRENDING
            - NEW
            - CURRENTLY_WATCHED
            - RECENTLY_BOUGHT
            - COMPLEMENTARY
            - SUBSTITUTING
            - CATEGORY_POPULAR
            - CATEGORY_TRENDING
            - CATEGORY_NEW
            - VISITOR_HISTORY
            - VISITOR_COMPLEMENTARY
            - VISITOR_SUBSTITUTING
            - CUSTOMER_HISTORY
            - CUSTOMER_COMPLEMENTARY
            - CUSTOMER_SUBSTITUTING
        skus:
          type: array
          items:
            type: string
        category:
          type: string
        page:
          type: integer
          format: int32
        size:
          maximum: 1000
          type: integer
          format: int32
        deliveryDate:
          type: string
          format: date
    FavouriteListUpdateDto:
      type: object
      properties:
        id:
          type: string
        outletId:
          type: string
        salesOrgId:
          type: string
        name:
          type: string
        modifiedDate:
          type: string
          format: date-time
    FavouriteCreateRequestDto:
      required:
        - favListName
      type: object
      properties:
        favListName:
          maxLength: 255
          minLength: 0
          type: string
    PagedModelEntityModelCatalogFilterDto:
      type: object
      properties:
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
        content:
          type: array
          items:
            $ref: '#/components/schemas/EntityModelCatalogFilterDto'
        page:
          $ref: '#/components/schemas/PageMetadata'
    EntityModelBaseProductDtoProductDetailsDto:
      type: object
      properties:
        sku:
          type: string
        salesOrg:
          type: string
        isFavourite:
          type: boolean
        variants:
          type: array
          items:
            $ref: '#/components/schemas/ProductDetailsDto'
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
    PicOsSimpleReqDto:
      required:
        - description
        - title
      type: object
      properties:
        title:
          maxLength: 60
          minLength: 1
          type: string
        description:
          maxLength: 60
          minLength: 1
          type: string
    BaseProductRequestDto:
      required:
        - operation
        - sku
      type: object
      properties:
        sku:
          maxLength: 20
          minLength: 1
          type: string
        position:
          type: integer
          format: int32
        operation:
          type: string
          enum:
            - UPDATE
            - REMOVE
            - CREATE
            - ADD_SKU
            - ADD_SKU_CSV
            - REMOVE_SKU
            - MOD_DESCRIPTION
            - MOD_TITLE
            - MOD_ENABLED
            - CSV_UPDATE
            - UNDEFINED_OPERATION
    CustomPageDtoFavouriteListDto:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/FavouriteListDto'
        pagination:
          $ref: '#/components/schemas/CustomPageable'
    EntityModelVariantDetailsDto:
      type: object
      properties:
        salesOrg:
          type: string
        baseSku:
          type: string
        sku:
          type: string
        label:
          type: string
        isDefault:
          type: boolean
        barcode:
          type: string
        name:
          type: string
        type:
          type: string
        isNew:
          type: boolean
        images:
          type: array
          items:
            $ref: '#/components/schemas/ImageDto'
        detailsInfo:
          $ref: '#/components/schemas/DetailsInfoDto'
        targetGroups:
          type: array
          items:
            $ref: '#/components/schemas/ProductTargetGroupDto'
        maxQtyOrderable:
          type: integer
          format: int32
        validity:
          $ref: '#/components/schemas/ValidityDto'
        description:
          type: string
        alcoholContent:
          type: number
        liquidType:
          type: string
        filtration:
          type: string
        countryOfOrigin:
          type: string
        locales:
          type: array
          items:
            type: string
        isReturnable:
          type: boolean
        isSellable:
          type: boolean
        deposits:
          type: array
          items:
            $ref: '#/components/schemas/DepositDto'
        ranking:
          type: integer
          format: int32
        fittingType:
          type: string
        ingredients:
          type: string
        ibu:
          type: integer
          format: int32
        originalGravity:
          type: number
        nutritionFacts:
          type: number
        isPasteurized:
          type: boolean
        isFiltered:
          type: boolean
        reward:
          type: boolean
        freeBeer:
          type: boolean
        package:
          $ref: '#/components/schemas/ProductPackageDto'
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
    VariantDetailsDto:
      type: object
      properties:
        salesOrg:
          type: string
        baseSku:
          type: string
        sku:
          type: string
        label:
          type: string
        isDefault:
          type: boolean
        barcode:
          type: string
        name:
          type: string
        type:
          type: string
        isNew:
          type: boolean
        images:
          type: array
          items:
            $ref: '#/components/schemas/ImageDto'
        detailsInfo:
          $ref: '#/components/schemas/DetailsInfoDto'
        targetGroups:
          type: array
          items:
            $ref: '#/components/schemas/ProductTargetGroupDto'
        maxQtyOrderable:
          type: integer
          format: int32
        validity:
          $ref: '#/components/schemas/ValidityDto'
        description:
          type: string
        alcoholContent:
          type: number
        liquidType:
          type: string
        filtration:
          type: string
        countryOfOrigin:
          type: string
        locales:
          type: array
          items:
            type: string
        isReturnable:
          type: boolean
        isSellable:
          type: boolean
        deposits:
          type: array
          items:
            $ref: '#/components/schemas/DepositDto'
        ranking:
          type: integer
          format: int32
        fittingType:
          type: string
        ingredients:
          type: string
        ibu:
          type: integer
          format: int32
        originalGravity:
          type: number
        nutritionFacts:
          type: number
        isPasteurized:
          type: boolean
        isFiltered:
          type: boolean
        reward:
          type: boolean
        freeBeer:
          type: boolean
        package:
          $ref: '#/components/schemas/ProductPackageDto'
    FavouriteItemAddRequestDto:
      required:
        - favListName
        - sku
      type: object
      properties:
        sku:
          type: string
        favListId:
          type: integer
          format: int64
        favListName:
          maxLength: 255
          minLength: 0
          type: string
    FavouriteProductAddDto:
      type: object
      properties:
        id:
          type: string
        outletId:
          type: string
        salesOrgId:
          type: string
        name:
          type: string
        sku:
          type: string
        modifiedDate:
          type: string
          format: date-time
    TargetGroupsRequestDto:
      required:
        - eid
        - operation
      type: object
      properties:
        eid:
          maxLength: 20
          minLength: 1
          type: string
        operation:
          type: string
          enum:
            - UPDATE
            - REMOVE
            - CREATE
            - ADD_SKU
            - ADD_SKU_CSV
            - REMOVE_SKU
            - MOD_DESCRIPTION
            - MOD_TITLE
            - MOD_ENABLED
            - CSV_UPDATE
            - UNDEFINED_OPERATION
    CustomPageDtoPicosAuditDto:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/PicosAuditDto'
        pagination:
          $ref: '#/components/schemas/CustomPageable'
    PicosAuditDto:
      type: object
      properties:
        picosId:
          type: string
        salesOrg:
          type: string
        operation:
          type: string
          enum:
            - UPDATE
            - REMOVE
            - CREATE
            - ADD_SKU
            - ADD_SKU_CSV
            - REMOVE_SKU
            - MOD_DESCRIPTION
            - MOD_TITLE
            - MOD_ENABLED
            - CSV_UPDATE
            - UNDEFINED_OPERATION
        value:
          type: string
        date:
          type: string
          format: date-time
        user:
          type: string
