dto_generator:
  entities:
    dto:
      XCart\API\Entity\Storefront\Image:
        fields:
          url:
            type: string
          width:
            type: integer
            nullable: true
          height:
            type: integer
            nullable: true
          alt:
            type: string
            nullable: true

      XCart\API\Entity\Storefront\Category\PathElement:
        fields:
          id:
            type: integer
          name:
            type: string
          cleanUrl:
            type: string
            nullable: true

      XCart\API\Entity\Storefront\ProductCategory:
        fields:
          id:
            type: integer
          name:
            type: string
          cleanUrl:
            type: string

      XCart\API\Entity\Storefront\ProductAttributeValue:
        fields:
          id:
            type: integer
          value:
            type: string
          priceModifier:
            type: float
          priceModifierType:
            type: string
          weightModifier:
            type: float
          weightModifierType:
            type: string
          isDefault:
            type: bool

      XCart\API\Entity\Storefront\ProductAttribute:
        fields:
          id:
            type: integer
          name:
            type: string
          type:
            type: XCart\Enum\AttributeType
          displayMode:
            type: XCart\Enum\AttributeDisplayMode
          editable:
            type: bool
          displayAbove:
            type: bool
          values:
            type: XCart\API\Entity\Storefront\ProductAttributeValue[]
          group:
            type: string
            nullable: true

      XCart\API\Entity\Storefront\ProductDimensions:
        fields:
          length:
            type: float
          width:
            type: float
          height:
            type: float

      XCart\API\Entity\Storefront\AddressFieldSelectorOption:
        fields:
          value:
            type: string
          label:
            type: string

      XCart\API\Entity\Storefront\AddressFieldValue:
        fields:
          serviceName:
            type: string
            nullable: true
          name:
            type: string
            groups: [read]
          value:
            type: string
            nullable: true
          required:
            type: bool
            groups: [read]

      XCart\API\Entity\Storefront\Region:
        fields:
          code:
            type: string
          name:
            type: string

      XCart\API\Entity\Storefront\State:
        fields:
          id:
            type: integer
          regionCode:
            type: string
            nullable: true
          name:
            type: string
          code:
            type: string

  enumerations:
    XCart\Enum\AttributeType:
      items:
        Text:
          value: T
        Checkbox:
          value: C
        Select:
          value: S
        Hidden:
          value: H

    XCart\Enum\AttributeDisplayMode:
      items:
        SelectBox:
          value: S
        Blocks:
          value: B
