openapi: 3.0.3
info:
  title: 'Your App API Documentation'
  description: ''
  version: 1.0.0
servers:
  -
    url: 'http://shofy.test'
tags:
  -
    name: Address
    description: ''
  -
    name: Ads
    description: ''
  -
    name: Authentication
    description: ''
  -
    name: Blog
    description: ''
  -
    name: Brands
    description: ''
  -
    name: Cart
    description: ''
  -
    name: Checkout
    description: ''
  -
    name: Compare
    description: ''
  -
    name: Coupons
    description: ''
  -
    name: Currencies
    description: ''
  -
    name: 'Device Tokens'
    description: ''
  -
    name: Downloads
    description: ''
  -
    name: Endpoints
    description: ''
  -
    name: Filters
    description: ''
  -
    name: 'Flash Sale'
    description: ''
  -
    name: Languages
    description: ''
  -
    name: Notifications
    description: ''
  -
    name: 'Order Returns'
    description: ''
  -
    name: Orders
    description: "\nAPIs for order tracking"
  -
    name: Page
    description: ''
  -
    name: 'Product Categories'
    description: ''
  -
    name: Products
    description: ''
  -
    name: Profile
    description: ''
  -
    name: Reviews
    description: ''
  -
    name: 'Simple Slider'
    description: ''
  -
    name: Wishlist
    description: ''
paths:
  /api/v1/ecommerce/addresses:
    get:
      summary: 'Get list of address by customer'
      operationId: getListOfAddressByCustomer
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Address
      security: []
    post:
      summary: 'Create new address for customer'
      operationId: createNewAddressForCustomer
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    id: 1
                    name: 'John Doe'
                    phone: '0123456789'
                    email: john.doe@example.com
                    country: 'United States'
                    state: California
                    city: 'Los Angeles'
                    address: '123 Main St'
                    zip_code: '90001'
                    is_default: true
                  message: null
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 1
                      name:
                        type: string
                        example: 'John Doe'
                      phone:
                        type: string
                        example: '0123456789'
                      email:
                        type: string
                        example: john.doe@example.com
                      country:
                        type: string
                        example: 'United States'
                      state:
                        type: string
                        example: California
                      city:
                        type: string
                        example: 'Los Angeles'
                      address:
                        type: string
                        example: '123 Main St'
                      zip_code:
                        type: string
                        example: '90001'
                      is_default:
                        type: boolean
                        example: true
                  message:
                    type: string
                    example: null
      tags:
        - Address
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'The name of the address owner.'
                  example: 'John Doe'
                  nullable: false
                email:
                  type: string
                  description: 'The email address.'
                  example: john.doe@example.com
                  nullable: true
                phone:
                  type: string
                  description: 'The phone number.'
                  example: '0123456789'
                  nullable: false
                country:
                  type: string
                  description: 'The country name or country code.'
                  example: 'United States or US'
                  nullable: true
                state:
                  type: string
                  description: 'The state/province name.'
                  example: California
                  nullable: true
                city:
                  type: string
                  description: 'The city name.'
                  example: 'Los Angeles'
                  nullable: true
                address:
                  type: string
                  description: 'The street address.'
                  example: '123 Main St'
                  nullable: true
                is_default:
                  type: boolean
                  description: 'Set as default address.'
                  example: true
                  nullable: true
                zip_code:
                  type: string
                  description: 'The postal/zip code.'
                  example: '90001'
                  nullable: true
              required:
                - name
                - email
                - phone
  '/api/v1/ecommerce/addresses/{id}':
    put:
      summary: 'Update an address'
      operationId: updateAnAddress
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    id: 1
                    name: 'John Doe'
                    phone: '0123456789'
                    email: john.doe@example.com
                    country: 'United States'
                    state: California
                    city: 'Los Angeles'
                    address: '123 Main St'
                    zip_code: '90001'
                    is_default: true
                  message: null
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 1
                      name:
                        type: string
                        example: 'John Doe'
                      phone:
                        type: string
                        example: '0123456789'
                      email:
                        type: string
                        example: john.doe@example.com
                      country:
                        type: string
                        example: 'United States'
                      state:
                        type: string
                        example: California
                      city:
                        type: string
                        example: 'Los Angeles'
                      address:
                        type: string
                        example: '123 Main St'
                      zip_code:
                        type: string
                        example: '90001'
                      is_default:
                        type: boolean
                        example: true
                  message:
                    type: string
                    example: null
      tags:
        - Address
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'The name of the address owner.'
                  example: 'John Doe'
                  nullable: false
                email:
                  type: string
                  description: 'The email address.'
                  example: john.doe@example.com
                  nullable: false
                phone:
                  type: string
                  description: 'The phone number.'
                  example: '0123456789'
                  nullable: false
                country:
                  type: string
                  description: 'The country name or country code.'
                  example: 'United States or US'
                  nullable: false
                state:
                  type: string
                  description: 'The state/province name.'
                  example: California
                  nullable: false
                city:
                  type: string
                  description: 'The city name.'
                  example: 'Los Angeles'
                  nullable: false
                address:
                  type: string
                  description: 'The street address.'
                  example: '123 Main St'
                  nullable: false
                is_default:
                  type: boolean
                  description: 'Set as default address.'
                  example: true
                  nullable: false
                zip_code:
                  type: string
                  description: 'The postal/zip code.'
                  example: '90001'
                  nullable: true
              required:
                - name
                - email
                - phone
                - state
                - city
                - address
    delete:
      summary: 'Delete an address'
      operationId: deleteAnAddress
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data: null
                  message: 'Address deleted successfully'
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: 'Address deleted successfully'
      tags:
        - Address
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the address.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/ecommerce/countries:
    get:
      summary: 'Get list of available countries'
      operationId: getListOfAvailableCountries
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    -
                      name: Vietnam
                      code: VN
                  message: null
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: array
                    example:
                      -
                        name: Vietnam
                        code: VN
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: Vietnam
                        code:
                          type: string
                          example: VN
                  message:
                    type: string
                    example: null
      tags:
        - Address
      security: []
  /api/v1/ads:
    get:
      summary: 'Get ads'
      operationId: getAds
      description: ''
      parameters:
        -
          in: query
          name: keys
          description: 'Array of ad keys to filter by.'
          example:
            - homepage-banner
            - sidebar-banner
          required: false
          schema:
            type: array
            description: 'Array of ad keys to filter by.'
            example:
              - homepage-banner
              - sidebar-banner
            items:
              type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data: []
                  message: null
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: array
                    example: []
                  message:
                    type: string
                    example: null
      tags:
        - Ads
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                keys:
                  type: array
                  description: 'Array of ad keys to filter by.'
                  example:
                    - homepage-banner
                    - sidebar-banner
                  items:
                    type: string
      security: []
  /api/v1/register:
    post:
      summary: Register
      operationId: register
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data: null
                  message: 'Registered successfully! We emailed you to verify your account!'
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: 'Registered successfully! We emailed you to verify your account!'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'The given data was invalid.'
                  errors:
                    name:
                      - 'The name field is required.'
                    email:
                      - 'The email field is required.'
                    password:
                      - 'The password field is required.'
                properties:
                  message:
                    type: string
                    example: 'The given data was invalid.'
                  errors:
                    type: object
                    properties:
                      name:
                        type: array
                        example:
                          - 'The name field is required.'
                        items:
                          type: string
                      email:
                        type: array
                        example:
                          - 'The email field is required.'
                        items:
                          type: string
                      password:
                        type: array
                        example:
                          - 'The password field is required.'
                        items:
                          type: string
      tags:
        - Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                first_name:
                  type: string
                  description: 'The first name of the user. This field is required when <code>name</code> is not present. Must not be greater than 120 characters. Must be at least 2 characters.'
                  example: John
                  nullable: true
                last_name:
                  type: string
                  description: 'The last name of the user. This field is required when <code>name</code> is not present. Must not be greater than 120 characters. Must be at least 2 characters.'
                  example: Smith
                  nullable: true
                name:
                  type: string
                  description: 'The name of the user.'
                  example: consequatur
                  nullable: true
                email:
                  type: string
                  description: 'The email of the user.'
                  example: qkunze@example.com
                  nullable: false
                password:
                  type: string
                  description: 'The password of user to create.'
                  example: 'O[2UZ5ij-e/dl4m{o,'
                  nullable: false
                phone:
                  type: string
                  description: 'The phone of the user.'
                  example: consequatur
                  nullable: true
                password_confirmation:
                  type: string
                  description: 'The password confirmation.'
                  example: consequatur
                  nullable: false
              required:
                - name
                - email
                - password
                - phone
                - password_confirmation
      security: []
  /api/v1/login:
    post:
      summary: Login
      operationId: login
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    token: 1|aF5s7p3xxx1lVL8hkSrPN72m4wPVpTvTs...
                  message: null
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: object
                    properties:
                      token:
                        type: string
                        example: 1|aF5s7p3xxx1lVL8hkSrPN72m4wPVpTvTs...
                  message:
                    type: string
                    example: null
      tags:
        - Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: 'The email of the user.'
                  example: qkunze@example.com
                  nullable: false
                password:
                  type: string
                  description: 'The password of user to create.'
                  example: 'O[2UZ5ij-e/dl4m{o,'
                  nullable: false
              required:
                - email
                - password
      security: []
  /api/v1/email/check:
    post:
      summary: 'Check email existing or not'
      operationId: checkEmailExistingOrNot
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    exists: true
                  message: null
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: object
                    properties:
                      exists:
                        type: boolean
                        example: true
                  message:
                    type: string
                    example: null
      tags:
        - Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: 'The email of the user.'
                  example: qkunze@example.com
                  nullable: false
              required:
                - email
      security: []
  /api/v1/password/forgot:
    post:
      summary: 'Forgot password'
      operationId: forgotPassword
      description: 'Send a reset link to the given user.'
      parameters: []
      responses: {  }
      tags:
        - Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: 'The email of the user.'
                  example: qkunze@example.com
                  nullable: false
              required:
                - email
      security: []
  /api/v1/resend-verify-account-email:
    post:
      summary: 'Resend email verification'
      operationId: resendEmailVerification
      description: 'Resend the email verification notification.'
      parameters: []
      responses: {  }
      tags:
        - Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: 'The email of the user.'
                  example: qkunze@example.com
                  nullable: false
              required:
                - email
      security: []
  /api/v1/logout:
    get:
      summary: Logout
      operationId: logout
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Authentication
  /api/v1/search:
    get:
      summary: 'Search post'
      operationId: searchPost
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: 'No results found, please try with different keywords.'
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: 'No results found, please try with different keywords.'
      tags:
        - Blog
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                q:
                  type: string
                  description: 'The search keyword.'
                  example: consequatur
                  nullable: false
              required:
                - q
      security: []
  /api/v1/posts:
    get:
      summary: 'List posts'
      operationId: listPosts
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 1
                      name: '4 Expert Tips On How To Choose The Right Men’s Wallet'
                      slug: 4-expert-tips-on-how-to-choose-the-right-mens-wallet
                      description: "Alice's, and they sat down at her as hard as it can talk: at any rate I'll never go THERE again!' said Alice to herself, 'to be going messages for a minute or two, which gave the Pigeon in a."
                      image: 'http://shofy.test/storage/main/blog/post-6.jpg'
                      categories:
                        -
                          id: 5
                          name: 'Organic Fruits'
                          slug: organic-fruits
                          url: 'http://shofy.test/blog/organic-fruits'
                          description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
                      tags:
                        -
                          id: 5
                          name: Modern
                          slug: modern
                          description: null
                        -
                          id: 7
                          name: Vintage
                          slug: vintage
                          description: null
                      created_at: '2025-06-25T01:43:37.000000Z'
                      updated_at: '2025-06-25T01:43:37.000000Z'
                    -
                      id: 2
                      name: 'Sexy Clutches: How to Buy & Wear a Designer Clutch Bag'
                      slug: sexy-clutches-how-to-buy-wear-a-designer-clutch-bag
                      description: "Mock Turtle said: 'advance twice, set to work nibbling at the proposal. 'Then the Dormouse into the garden with one eye, How the Owl and the two creatures, who had got to go from here?' 'That."
                      image: 'http://shofy.test/storage/main/blog/post-3.jpg'
                      categories:
                        -
                          id: 2
                          name: Fashion
                          slug: fashion
                          url: 'http://shofy.test/blog/fashion'
                          description: 'Consequatur magni suscipit veniam labore optio modi minus. Cum neque rerum id natus non placeat rerum. Iure vel recusandae quia voluptatem omnis ratione tempora quia.'
                        -
                          id: 6
                          name: Ecological
                          slug: ecological
                          url: 'http://shofy.test/blog/ecological'
                          description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
                      tags:
                        -
                          id: 2
                          name: Design
                          slug: design
                          description: null
                        -
                          id: 6
                          name: Nature
                          slug: nature
                          description: null
                        -
                          id: 7
                          name: Vintage
                          slug: vintage
                          description: null
                      created_at: '2025-06-25T01:43:37.000000Z'
                      updated_at: '2025-06-25T01:43:37.000000Z'
                    -
                      id: 3
                      name: 'The Top 2020 Handbag Trends to Know'
                      slug: the-top-2020-handbag-trends-to-know
                      description: "White Rabbit, 'and that's why. Pig!' She said it to be Involved in this way! Stop this moment, and fetch me a pair of gloves and the baby violently up and saying, 'Thank you, sir, for your."
                      image: 'http://shofy.test/storage/main/blog/post-2.jpg'
                      categories:
                        -
                          id: 5
                          name: 'Organic Fruits'
                          slug: organic-fruits
                          url: 'http://shofy.test/blog/organic-fruits'
                          description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
                      tags:
                        -
                          id: 2
                          name: Design
                          slug: design
                          description: null
                        -
                          id: 4
                          name: Branding
                          slug: branding
                          description: null
                        -
                          id: 7
                          name: Vintage
                          slug: vintage
                          description: null
                      created_at: '2025-06-25T01:43:37.000000Z'
                      updated_at: '2025-06-25T01:43:37.000000Z'
                    -
                      id: 4
                      name: 'How to Match the Color of Your Handbag With an Outfit'
                      slug: how-to-match-the-color-of-your-handbag-with-an-outfit
                      description: "Alice could speak again. In a little girl she'll think me for asking! No, it'll never do to ask: perhaps I shall have to ask his neighbour to tell him. 'A nice muddle their slates'll be in a hurry."
                      image: 'http://shofy.test/storage/main/blog/post-2.jpg'
                      categories:
                        -
                          id: 2
                          name: Fashion
                          slug: fashion
                          url: 'http://shofy.test/blog/fashion'
                          description: 'Consequatur magni suscipit veniam labore optio modi minus. Cum neque rerum id natus non placeat rerum. Iure vel recusandae quia voluptatem omnis ratione tempora quia.'
                        -
                          id: 6
                          name: Ecological
                          slug: ecological
                          url: 'http://shofy.test/blog/ecological'
                          description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
                      tags:
                        -
                          id: 1
                          name: General
                          slug: general
                          description: null
                        -
                          id: 3
                          name: Fashion
                          slug: fashion
                          description: null
                        -
                          id: 7
                          name: Vintage
                          slug: vintage
                          description: null
                      created_at: '2025-06-25T01:43:37.000000Z'
                      updated_at: '2025-06-25T01:43:37.000000Z'
                    -
                      id: 5
                      name: 'How to Care for Leather Bags'
                      slug: how-to-care-for-leather-bags
                      description: "She had not got into it), and handed them round as prizes. There was no label this time she heard a little of her sharp little chin. 'I've a right to grow larger again, and Alice called out as loud."
                      image: 'http://shofy.test/storage/main/blog/post-5.jpg'
                      categories:
                        -
                          id: 1
                          name: 'Crisp Bread & Cake'
                          slug: crisp-bread-cake
                          url: 'http://shofy.test/blog/crisp-bread-cake'
                          description: 'Et magni blanditiis quos optio delectus animi possimus. Repudiandae expedita alias ipsam. Magnam quas ipsam autem ipsam.'
                        -
                          id: 6
                          name: Ecological
                          slug: ecological
                          url: 'http://shofy.test/blog/ecological'
                          description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
                      tags:
                        -
                          id: 4
                          name: Branding
                          slug: branding
                          description: null
                        -
                          id: 5
                          name: Modern
                          slug: modern
                          description: null
                        -
                          id: 8
                          name: Sunglasses
                          slug: sunglasses
                          description: null
                      created_at: '2025-06-25T01:43:37.000000Z'
                      updated_at: '2025-06-25T01:43:37.000000Z'
                    -
                      id: 6
                      name: "We're Crushing Hard on Summer's 10 Biggest Bag Trends"
                      slug: were-crushing-hard-on-summers-10-biggest-bag-trends
                      description: 'Duchess began in a very respectful tone, but frowning and making faces at him as he could go. Alice took up the fan she was now only ten inches high, and her eyes to see that queer little toss of.'
                      image: 'http://shofy.test/storage/main/blog/post-10.jpg'
                      categories:
                        -
                          id: 4
                          name: Commercial
                          slug: commercial
                          url: 'http://shofy.test/blog/commercial'
                          description: 'Optio incidunt delectus ut adipisci ea neque et aliquid. Alias iure ratione omnis consequatur. Dolor sequi natus sit iste aut.'
                        -
                          id: 6
                          name: Ecological
                          slug: ecological
                          url: 'http://shofy.test/blog/ecological'
                          description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
                      tags:
                        -
                          id: 6
                          name: Nature
                          slug: nature
                          description: null
                        -
                          id: 8
                          name: Sunglasses
                          slug: sunglasses
                          description: null
                      created_at: '2025-06-25T01:43:37.000000Z'
                      updated_at: '2025-06-25T01:43:37.000000Z'
                    -
                      id: 7
                      name: 'Essential Qualities of Highly Successful Music'
                      slug: essential-qualities-of-highly-successful-music
                      description: "He looked at Two. Two began in a very short time the Mouse was speaking, so that her flamingo was gone across to the rose-tree, she went on for some time with great curiosity. 'Soles and eels, of."
                      image: 'http://shofy.test/storage/main/blog/post-12.jpg'
                      categories:
                        -
                          id: 6
                          name: Ecological
                          slug: ecological
                          url: 'http://shofy.test/blog/ecological'
                          description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
                      tags:
                        -
                          id: 1
                          name: General
                          slug: general
                          description: null
                        -
                          id: 2
                          name: Design
                          slug: design
                          description: null
                        -
                          id: 7
                          name: Vintage
                          slug: vintage
                          description: null
                      created_at: '2025-06-25T01:43:37.000000Z'
                      updated_at: '2025-06-25T01:43:37.000000Z'
                    -
                      id: 8
                      name: '9 Things I Love About Shaving My Head'
                      slug: 9-things-i-love-about-shaving-my-head
                      description: "White Rabbit; 'in fact, there's nothing written on the trumpet, and called out, 'First witness!' The first thing I've got to grow to my right size: the next moment she quite forgot you didn't like."
                      image: 'http://shofy.test/storage/main/blog/post-6.jpg'
                      categories:
                        -
                          id: 2
                          name: Fashion
                          slug: fashion
                          url: 'http://shofy.test/blog/fashion'
                          description: 'Consequatur magni suscipit veniam labore optio modi minus. Cum neque rerum id natus non placeat rerum. Iure vel recusandae quia voluptatem omnis ratione tempora quia.'
                        -
                          id: 3
                          name: Electronic
                          slug: electronic
                          url: 'http://shofy.test/blog/electronic'
                          description: 'Culpa quia voluptas sint aut maiores minus debitis. Et dolor occaecati ullam qui. Perspiciatis natus rerum officia veniam cum odio molestias. Omnis laudantium ipsam ut voluptatum.'
                      tags:
                        -
                          id: 5
                          name: Modern
                          slug: modern
                          description: null
                        -
                          id: 8
                          name: Sunglasses
                          slug: sunglasses
                          description: null
                      created_at: '2025-06-25T01:43:37.000000Z'
                      updated_at: '2025-06-25T01:43:37.000000Z'
                    -
                      id: 9
                      name: 'Why Teamwork Really Makes The Dream Work'
                      slug: why-teamwork-really-makes-the-dream-work
                      description: "I've kept her eyes immediately met those of a well--' 'What did they live at the cook, and a scroll of parchment in the world! Oh, my dear paws! Oh my dear paws! Oh my fur and whiskers! She'll get."
                      image: 'http://shofy.test/storage/main/blog/post-1.jpg'
                      categories:
                        -
                          id: 1
                          name: 'Crisp Bread & Cake'
                          slug: crisp-bread-cake
                          url: 'http://shofy.test/blog/crisp-bread-cake'
                          description: 'Et magni blanditiis quos optio delectus animi possimus. Repudiandae expedita alias ipsam. Magnam quas ipsam autem ipsam.'
                        -
                          id: 5
                          name: 'Organic Fruits'
                          slug: organic-fruits
                          url: 'http://shofy.test/blog/organic-fruits'
                          description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
                      tags:
                        -
                          id: 3
                          name: Fashion
                          slug: fashion
                          description: null
                        -
                          id: 4
                          name: Branding
                          slug: branding
                          description: null
                        -
                          id: 5
                          name: Modern
                          slug: modern
                          description: null
                      created_at: '2025-06-25T01:43:37.000000Z'
                      updated_at: '2025-06-25T01:43:37.000000Z'
                    -
                      id: 10
                      name: 'The World Caters to Average People'
                      slug: the-world-caters-to-average-people
                      description: 'Jack-in-the-box, and up I goes like a stalk out of its mouth open, gazing up into the air off all its feet at once, in a voice sometimes choked with sobs, to sing "Twinkle, twinkle, little bat! How.'
                      image: 'http://shofy.test/storage/main/blog/post-8.jpg'
                      categories:
                        -
                          id: 4
                          name: Commercial
                          slug: commercial
                          url: 'http://shofy.test/blog/commercial'
                          description: 'Optio incidunt delectus ut adipisci ea neque et aliquid. Alias iure ratione omnis consequatur. Dolor sequi natus sit iste aut.'
                        -
                          id: 5
                          name: 'Organic Fruits'
                          slug: organic-fruits
                          url: 'http://shofy.test/blog/organic-fruits'
                          description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
                      tags:
                        -
                          id: 2
                          name: Design
                          slug: design
                          description: null
                        -
                          id: 6
                          name: Nature
                          slug: nature
                          description: null
                        -
                          id: 8
                          name: Sunglasses
                          slug: sunglasses
                          description: null
                      created_at: '2025-06-25T01:43:37.000000Z'
                      updated_at: '2025-06-25T01:43:37.000000Z'
                  links:
                    first: 'http://shofy.test/api/v1/posts?page=1'
                    last: 'http://shofy.test/api/v1/posts?page=2'
                    prev: null
                    next: 'http://shofy.test/api/v1/posts?page=2'
                  meta:
                    current_page: 1
                    from: 1
                    last_page: 2
                    links:
                      -
                        url: null
                        label: '&laquo; Previous'
                        active: false
                      -
                        url: 'http://shofy.test/api/v1/posts?page=1'
                        label: '1'
                        active: true
                      -
                        url: 'http://shofy.test/api/v1/posts?page=2'
                        label: '2'
                        active: false
                      -
                        url: 'http://shofy.test/api/v1/posts?page=2'
                        label: 'Next &raquo;'
                        active: false
                    path: 'http://shofy.test/api/v1/posts'
                    per_page: 10
                    to: 10
                    total: 18
                  error: false
                  message: null
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 1
                        name: '4 Expert Tips On How To Choose The Right Men’s Wallet'
                        slug: 4-expert-tips-on-how-to-choose-the-right-mens-wallet
                        description: "Alice's, and they sat down at her as hard as it can talk: at any rate I'll never go THERE again!' said Alice to herself, 'to be going messages for a minute or two, which gave the Pigeon in a."
                        image: 'http://shofy.test/storage/main/blog/post-6.jpg'
                        categories:
                          -
                            id: 5
                            name: 'Organic Fruits'
                            slug: organic-fruits
                            url: 'http://shofy.test/blog/organic-fruits'
                            description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
                        tags:
                          -
                            id: 5
                            name: Modern
                            slug: modern
                            description: null
                          -
                            id: 7
                            name: Vintage
                            slug: vintage
                            description: null
                        created_at: '2025-06-25T01:43:37.000000Z'
                        updated_at: '2025-06-25T01:43:37.000000Z'
                      -
                        id: 2
                        name: 'Sexy Clutches: How to Buy & Wear a Designer Clutch Bag'
                        slug: sexy-clutches-how-to-buy-wear-a-designer-clutch-bag
                        description: "Mock Turtle said: 'advance twice, set to work nibbling at the proposal. 'Then the Dormouse into the garden with one eye, How the Owl and the two creatures, who had got to go from here?' 'That."
                        image: 'http://shofy.test/storage/main/blog/post-3.jpg'
                        categories:
                          -
                            id: 2
                            name: Fashion
                            slug: fashion
                            url: 'http://shofy.test/blog/fashion'
                            description: 'Consequatur magni suscipit veniam labore optio modi minus. Cum neque rerum id natus non placeat rerum. Iure vel recusandae quia voluptatem omnis ratione tempora quia.'
                          -
                            id: 6
                            name: Ecological
                            slug: ecological
                            url: 'http://shofy.test/blog/ecological'
                            description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
                        tags:
                          -
                            id: 2
                            name: Design
                            slug: design
                            description: null
                          -
                            id: 6
                            name: Nature
                            slug: nature
                            description: null
                          -
                            id: 7
                            name: Vintage
                            slug: vintage
                            description: null
                        created_at: '2025-06-25T01:43:37.000000Z'
                        updated_at: '2025-06-25T01:43:37.000000Z'
                      -
                        id: 3
                        name: 'The Top 2020 Handbag Trends to Know'
                        slug: the-top-2020-handbag-trends-to-know
                        description: "White Rabbit, 'and that's why. Pig!' She said it to be Involved in this way! Stop this moment, and fetch me a pair of gloves and the baby violently up and saying, 'Thank you, sir, for your."
                        image: 'http://shofy.test/storage/main/blog/post-2.jpg'
                        categories:
                          -
                            id: 5
                            name: 'Organic Fruits'
                            slug: organic-fruits
                            url: 'http://shofy.test/blog/organic-fruits'
                            description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
                        tags:
                          -
                            id: 2
                            name: Design
                            slug: design
                            description: null
                          -
                            id: 4
                            name: Branding
                            slug: branding
                            description: null
                          -
                            id: 7
                            name: Vintage
                            slug: vintage
                            description: null
                        created_at: '2025-06-25T01:43:37.000000Z'
                        updated_at: '2025-06-25T01:43:37.000000Z'
                      -
                        id: 4
                        name: 'How to Match the Color of Your Handbag With an Outfit'
                        slug: how-to-match-the-color-of-your-handbag-with-an-outfit
                        description: "Alice could speak again. In a little girl she'll think me for asking! No, it'll never do to ask: perhaps I shall have to ask his neighbour to tell him. 'A nice muddle their slates'll be in a hurry."
                        image: 'http://shofy.test/storage/main/blog/post-2.jpg'
                        categories:
                          -
                            id: 2
                            name: Fashion
                            slug: fashion
                            url: 'http://shofy.test/blog/fashion'
                            description: 'Consequatur magni suscipit veniam labore optio modi minus. Cum neque rerum id natus non placeat rerum. Iure vel recusandae quia voluptatem omnis ratione tempora quia.'
                          -
                            id: 6
                            name: Ecological
                            slug: ecological
                            url: 'http://shofy.test/blog/ecological'
                            description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
                        tags:
                          -
                            id: 1
                            name: General
                            slug: general
                            description: null
                          -
                            id: 3
                            name: Fashion
                            slug: fashion
                            description: null
                          -
                            id: 7
                            name: Vintage
                            slug: vintage
                            description: null
                        created_at: '2025-06-25T01:43:37.000000Z'
                        updated_at: '2025-06-25T01:43:37.000000Z'
                      -
                        id: 5
                        name: 'How to Care for Leather Bags'
                        slug: how-to-care-for-leather-bags
                        description: "She had not got into it), and handed them round as prizes. There was no label this time she heard a little of her sharp little chin. 'I've a right to grow larger again, and Alice called out as loud."
                        image: 'http://shofy.test/storage/main/blog/post-5.jpg'
                        categories:
                          -
                            id: 1
                            name: 'Crisp Bread & Cake'
                            slug: crisp-bread-cake
                            url: 'http://shofy.test/blog/crisp-bread-cake'
                            description: 'Et magni blanditiis quos optio delectus animi possimus. Repudiandae expedita alias ipsam. Magnam quas ipsam autem ipsam.'
                          -
                            id: 6
                            name: Ecological
                            slug: ecological
                            url: 'http://shofy.test/blog/ecological'
                            description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
                        tags:
                          -
                            id: 4
                            name: Branding
                            slug: branding
                            description: null
                          -
                            id: 5
                            name: Modern
                            slug: modern
                            description: null
                          -
                            id: 8
                            name: Sunglasses
                            slug: sunglasses
                            description: null
                        created_at: '2025-06-25T01:43:37.000000Z'
                        updated_at: '2025-06-25T01:43:37.000000Z'
                      -
                        id: 6
                        name: "We're Crushing Hard on Summer's 10 Biggest Bag Trends"
                        slug: were-crushing-hard-on-summers-10-biggest-bag-trends
                        description: 'Duchess began in a very respectful tone, but frowning and making faces at him as he could go. Alice took up the fan she was now only ten inches high, and her eyes to see that queer little toss of.'
                        image: 'http://shofy.test/storage/main/blog/post-10.jpg'
                        categories:
                          -
                            id: 4
                            name: Commercial
                            slug: commercial
                            url: 'http://shofy.test/blog/commercial'
                            description: 'Optio incidunt delectus ut adipisci ea neque et aliquid. Alias iure ratione omnis consequatur. Dolor sequi natus sit iste aut.'
                          -
                            id: 6
                            name: Ecological
                            slug: ecological
                            url: 'http://shofy.test/blog/ecological'
                            description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
                        tags:
                          -
                            id: 6
                            name: Nature
                            slug: nature
                            description: null
                          -
                            id: 8
                            name: Sunglasses
                            slug: sunglasses
                            description: null
                        created_at: '2025-06-25T01:43:37.000000Z'
                        updated_at: '2025-06-25T01:43:37.000000Z'
                      -
                        id: 7
                        name: 'Essential Qualities of Highly Successful Music'
                        slug: essential-qualities-of-highly-successful-music
                        description: "He looked at Two. Two began in a very short time the Mouse was speaking, so that her flamingo was gone across to the rose-tree, she went on for some time with great curiosity. 'Soles and eels, of."
                        image: 'http://shofy.test/storage/main/blog/post-12.jpg'
                        categories:
                          -
                            id: 6
                            name: Ecological
                            slug: ecological
                            url: 'http://shofy.test/blog/ecological'
                            description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
                        tags:
                          -
                            id: 1
                            name: General
                            slug: general
                            description: null
                          -
                            id: 2
                            name: Design
                            slug: design
                            description: null
                          -
                            id: 7
                            name: Vintage
                            slug: vintage
                            description: null
                        created_at: '2025-06-25T01:43:37.000000Z'
                        updated_at: '2025-06-25T01:43:37.000000Z'
                      -
                        id: 8
                        name: '9 Things I Love About Shaving My Head'
                        slug: 9-things-i-love-about-shaving-my-head
                        description: "White Rabbit; 'in fact, there's nothing written on the trumpet, and called out, 'First witness!' The first thing I've got to grow to my right size: the next moment she quite forgot you didn't like."
                        image: 'http://shofy.test/storage/main/blog/post-6.jpg'
                        categories:
                          -
                            id: 2
                            name: Fashion
                            slug: fashion
                            url: 'http://shofy.test/blog/fashion'
                            description: 'Consequatur magni suscipit veniam labore optio modi minus. Cum neque rerum id natus non placeat rerum. Iure vel recusandae quia voluptatem omnis ratione tempora quia.'
                          -
                            id: 3
                            name: Electronic
                            slug: electronic
                            url: 'http://shofy.test/blog/electronic'
                            description: 'Culpa quia voluptas sint aut maiores minus debitis. Et dolor occaecati ullam qui. Perspiciatis natus rerum officia veniam cum odio molestias. Omnis laudantium ipsam ut voluptatum.'
                        tags:
                          -
                            id: 5
                            name: Modern
                            slug: modern
                            description: null
                          -
                            id: 8
                            name: Sunglasses
                            slug: sunglasses
                            description: null
                        created_at: '2025-06-25T01:43:37.000000Z'
                        updated_at: '2025-06-25T01:43:37.000000Z'
                      -
                        id: 9
                        name: 'Why Teamwork Really Makes The Dream Work'
                        slug: why-teamwork-really-makes-the-dream-work
                        description: "I've kept her eyes immediately met those of a well--' 'What did they live at the cook, and a scroll of parchment in the world! Oh, my dear paws! Oh my dear paws! Oh my fur and whiskers! She'll get."
                        image: 'http://shofy.test/storage/main/blog/post-1.jpg'
                        categories:
                          -
                            id: 1
                            name: 'Crisp Bread & Cake'
                            slug: crisp-bread-cake
                            url: 'http://shofy.test/blog/crisp-bread-cake'
                            description: 'Et magni blanditiis quos optio delectus animi possimus. Repudiandae expedita alias ipsam. Magnam quas ipsam autem ipsam.'
                          -
                            id: 5
                            name: 'Organic Fruits'
                            slug: organic-fruits
                            url: 'http://shofy.test/blog/organic-fruits'
                            description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
                        tags:
                          -
                            id: 3
                            name: Fashion
                            slug: fashion
                            description: null
                          -
                            id: 4
                            name: Branding
                            slug: branding
                            description: null
                          -
                            id: 5
                            name: Modern
                            slug: modern
                            description: null
                        created_at: '2025-06-25T01:43:37.000000Z'
                        updated_at: '2025-06-25T01:43:37.000000Z'
                      -
                        id: 10
                        name: 'The World Caters to Average People'
                        slug: the-world-caters-to-average-people
                        description: 'Jack-in-the-box, and up I goes like a stalk out of its mouth open, gazing up into the air off all its feet at once, in a voice sometimes choked with sobs, to sing "Twinkle, twinkle, little bat! How.'
                        image: 'http://shofy.test/storage/main/blog/post-8.jpg'
                        categories:
                          -
                            id: 4
                            name: Commercial
                            slug: commercial
                            url: 'http://shofy.test/blog/commercial'
                            description: 'Optio incidunt delectus ut adipisci ea neque et aliquid. Alias iure ratione omnis consequatur. Dolor sequi natus sit iste aut.'
                          -
                            id: 5
                            name: 'Organic Fruits'
                            slug: organic-fruits
                            url: 'http://shofy.test/blog/organic-fruits'
                            description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
                        tags:
                          -
                            id: 2
                            name: Design
                            slug: design
                            description: null
                          -
                            id: 6
                            name: Nature
                            slug: nature
                            description: null
                          -
                            id: 8
                            name: Sunglasses
                            slug: sunglasses
                            description: null
                        created_at: '2025-06-25T01:43:37.000000Z'
                        updated_at: '2025-06-25T01:43:37.000000Z'
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 1
                        name:
                          type: string
                          example: '4 Expert Tips On How To Choose The Right Men’s Wallet'
                        slug:
                          type: string
                          example: 4-expert-tips-on-how-to-choose-the-right-mens-wallet
                        description:
                          type: string
                          example: "Alice's, and they sat down at her as hard as it can talk: at any rate I'll never go THERE again!' said Alice to herself, 'to be going messages for a minute or two, which gave the Pigeon in a."
                        image:
                          type: string
                          example: 'http://shofy.test/storage/main/blog/post-6.jpg'
                        categories:
                          type: array
                          example:
                            -
                              id: 5
                              name: 'Organic Fruits'
                              slug: organic-fruits
                              url: 'http://shofy.test/blog/organic-fruits'
                              description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
                          items:
                            type: object
                            properties:
                              id:
                                type: integer
                                example: 5
                              name:
                                type: string
                                example: 'Organic Fruits'
                              slug:
                                type: string
                                example: organic-fruits
                              url:
                                type: string
                                example: 'http://shofy.test/blog/organic-fruits'
                              description:
                                type: string
                                example: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
                        tags:
                          type: array
                          example:
                            -
                              id: 5
                              name: Modern
                              slug: modern
                              description: null
                            -
                              id: 7
                              name: Vintage
                              slug: vintage
                              description: null
                          items:
                            type: object
                            properties:
                              id:
                                type: integer
                                example: 5
                              name:
                                type: string
                                example: Modern
                              slug:
                                type: string
                                example: modern
                              description:
                                type: string
                                example: null
                        created_at:
                          type: string
                          example: '2025-06-25T01:43:37.000000Z'
                        updated_at:
                          type: string
                          example: '2025-06-25T01:43:37.000000Z'
                  links:
                    type: object
                    properties:
                      first:
                        type: string
                        example: 'http://shofy.test/api/v1/posts?page=1'
                      last:
                        type: string
                        example: 'http://shofy.test/api/v1/posts?page=2'
                      prev:
                        type: string
                        example: null
                      next:
                        type: string
                        example: 'http://shofy.test/api/v1/posts?page=2'
                  meta:
                    type: object
                    properties:
                      current_page:
                        type: integer
                        example: 1
                      from:
                        type: integer
                        example: 1
                      last_page:
                        type: integer
                        example: 2
                      links:
                        type: array
                        example:
                          -
                            url: null
                            label: '&laquo; Previous'
                            active: false
                          -
                            url: 'http://shofy.test/api/v1/posts?page=1'
                            label: '1'
                            active: true
                          -
                            url: 'http://shofy.test/api/v1/posts?page=2'
                            label: '2'
                            active: false
                          -
                            url: 'http://shofy.test/api/v1/posts?page=2'
                            label: 'Next &raquo;'
                            active: false
                        items:
                          type: object
                          properties:
                            url:
                              type: string
                              example: null
                            label:
                              type: string
                              example: '&laquo; Previous'
                            active:
                              type: boolean
                              example: false
                      path:
                        type: string
                        example: 'http://shofy.test/api/v1/posts'
                      per_page:
                        type: integer
                        example: 10
                      to:
                        type: integer
                        example: 10
                      total:
                        type: integer
                        example: 18
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: null
      tags:
        - Blog
      security: []
  /api/v1/categories:
    get:
      summary: 'List categories'
      operationId: listCategories
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 6
                      name: Ecological
                      slug: ecological
                      description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
                      children: []
                      parent:
                        id: null
                        name: null
                        slug: ''
                        url: 'http://shofy.test'
                        description: null
                    -
                      id: 5
                      name: 'Organic Fruits'
                      slug: organic-fruits
                      description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
                      children: []
                      parent:
                        id: null
                        name: null
                        slug: ''
                        url: 'http://shofy.test'
                        description: null
                    -
                      id: 4
                      name: Commercial
                      slug: commercial
                      description: 'Optio incidunt delectus ut adipisci ea neque et aliquid. Alias iure ratione omnis consequatur. Dolor sequi natus sit iste aut.'
                      children: []
                      parent:
                        id: null
                        name: null
                        slug: ''
                        url: 'http://shofy.test'
                        description: null
                    -
                      id: 3
                      name: Electronic
                      slug: electronic
                      description: 'Culpa quia voluptas sint aut maiores minus debitis. Et dolor occaecati ullam qui. Perspiciatis natus rerum officia veniam cum odio molestias. Omnis laudantium ipsam ut voluptatum.'
                      children: []
                      parent:
                        id: null
                        name: null
                        slug: ''
                        url: 'http://shofy.test'
                        description: null
                    -
                      id: 2
                      name: Fashion
                      slug: fashion
                      description: 'Consequatur magni suscipit veniam labore optio modi minus. Cum neque rerum id natus non placeat rerum. Iure vel recusandae quia voluptatem omnis ratione tempora quia.'
                      children: []
                      parent:
                        id: null
                        name: null
                        slug: ''
                        url: 'http://shofy.test'
                        description: null
                    -
                      id: 1
                      name: 'Crisp Bread & Cake'
                      slug: crisp-bread-cake
                      description: 'Et magni blanditiis quos optio delectus animi possimus. Repudiandae expedita alias ipsam. Magnam quas ipsam autem ipsam.'
                      children: []
                      parent:
                        id: null
                        name: null
                        slug: ''
                        url: 'http://shofy.test'
                        description: null
                  links:
                    first: 'http://shofy.test/api/v1/categories?page=1'
                    last: 'http://shofy.test/api/v1/categories?page=1'
                    prev: null
                    next: null
                  meta:
                    current_page: 1
                    from: 1
                    last_page: 1
                    links:
                      -
                        url: null
                        label: '&laquo; Previous'
                        active: false
                      -
                        url: 'http://shofy.test/api/v1/categories?page=1'
                        label: '1'
                        active: true
                      -
                        url: null
                        label: 'Next &raquo;'
                        active: false
                    path: 'http://shofy.test/api/v1/categories'
                    per_page: 10
                    to: 6
                    total: 6
                  error: false
                  message: null
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 6
                        name: Ecological
                        slug: ecological
                        description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
                        children: []
                        parent:
                          id: null
                          name: null
                          slug: ''
                          url: 'http://shofy.test'
                          description: null
                      -
                        id: 5
                        name: 'Organic Fruits'
                        slug: organic-fruits
                        description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
                        children: []
                        parent:
                          id: null
                          name: null
                          slug: ''
                          url: 'http://shofy.test'
                          description: null
                      -
                        id: 4
                        name: Commercial
                        slug: commercial
                        description: 'Optio incidunt delectus ut adipisci ea neque et aliquid. Alias iure ratione omnis consequatur. Dolor sequi natus sit iste aut.'
                        children: []
                        parent:
                          id: null
                          name: null
                          slug: ''
                          url: 'http://shofy.test'
                          description: null
                      -
                        id: 3
                        name: Electronic
                        slug: electronic
                        description: 'Culpa quia voluptas sint aut maiores minus debitis. Et dolor occaecati ullam qui. Perspiciatis natus rerum officia veniam cum odio molestias. Omnis laudantium ipsam ut voluptatum.'
                        children: []
                        parent:
                          id: null
                          name: null
                          slug: ''
                          url: 'http://shofy.test'
                          description: null
                      -
                        id: 2
                        name: Fashion
                        slug: fashion
                        description: 'Consequatur magni suscipit veniam labore optio modi minus. Cum neque rerum id natus non placeat rerum. Iure vel recusandae quia voluptatem omnis ratione tempora quia.'
                        children: []
                        parent:
                          id: null
                          name: null
                          slug: ''
                          url: 'http://shofy.test'
                          description: null
                      -
                        id: 1
                        name: 'Crisp Bread & Cake'
                        slug: crisp-bread-cake
                        description: 'Et magni blanditiis quos optio delectus animi possimus. Repudiandae expedita alias ipsam. Magnam quas ipsam autem ipsam.'
                        children: []
                        parent:
                          id: null
                          name: null
                          slug: ''
                          url: 'http://shofy.test'
                          description: null
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 6
                        name:
                          type: string
                          example: Ecological
                        slug:
                          type: string
                          example: ecological
                        description:
                          type: string
                          example: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
                        children:
                          type: array
                          example: []
                        parent:
                          type: object
                          properties:
                            id:
                              type: string
                              example: null
                            name:
                              type: string
                              example: null
                            slug:
                              type: string
                              example: ''
                            url:
                              type: string
                              example: 'http://shofy.test'
                            description:
                              type: string
                              example: null
                  links:
                    type: object
                    properties:
                      first:
                        type: string
                        example: 'http://shofy.test/api/v1/categories?page=1'
                      last:
                        type: string
                        example: 'http://shofy.test/api/v1/categories?page=1'
                      prev:
                        type: string
                        example: null
                      next:
                        type: string
                        example: null
                  meta:
                    type: object
                    properties:
                      current_page:
                        type: integer
                        example: 1
                      from:
                        type: integer
                        example: 1
                      last_page:
                        type: integer
                        example: 1
                      links:
                        type: array
                        example:
                          -
                            url: null
                            label: '&laquo; Previous'
                            active: false
                          -
                            url: 'http://shofy.test/api/v1/categories?page=1'
                            label: '1'
                            active: true
                          -
                            url: null
                            label: 'Next &raquo;'
                            active: false
                        items:
                          type: object
                          properties:
                            url:
                              type: string
                              example: null
                            label:
                              type: string
                              example: '&laquo; Previous'
                            active:
                              type: boolean
                              example: false
                      path:
                        type: string
                        example: 'http://shofy.test/api/v1/categories'
                      per_page:
                        type: integer
                        example: 10
                      to:
                        type: integer
                        example: 6
                      total:
                        type: integer
                        example: 6
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: null
      tags:
        - Blog
      security: []
  /api/v1/tags:
    get:
      summary: 'List tags'
      operationId: listTags
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 1
                      name: General
                      slug: general
                      description: null
                    -
                      id: 2
                      name: Design
                      slug: design
                      description: null
                    -
                      id: 3
                      name: Fashion
                      slug: fashion
                      description: null
                    -
                      id: 4
                      name: Branding
                      slug: branding
                      description: null
                    -
                      id: 5
                      name: Modern
                      slug: modern
                      description: null
                    -
                      id: 6
                      name: Nature
                      slug: nature
                      description: null
                    -
                      id: 7
                      name: Vintage
                      slug: vintage
                      description: null
                    -
                      id: 8
                      name: Sunglasses
                      slug: sunglasses
                      description: null
                  links:
                    first: 'http://shofy.test/api/v1/tags?page=1'
                    last: 'http://shofy.test/api/v1/tags?page=1'
                    prev: null
                    next: null
                  meta:
                    current_page: 1
                    from: 1
                    last_page: 1
                    links:
                      -
                        url: null
                        label: '&laquo; Previous'
                        active: false
                      -
                        url: 'http://shofy.test/api/v1/tags?page=1'
                        label: '1'
                        active: true
                      -
                        url: null
                        label: 'Next &raquo;'
                        active: false
                    path: 'http://shofy.test/api/v1/tags'
                    per_page: 10
                    to: 8
                    total: 8
                  error: false
                  message: null
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 1
                        name: General
                        slug: general
                        description: null
                      -
                        id: 2
                        name: Design
                        slug: design
                        description: null
                      -
                        id: 3
                        name: Fashion
                        slug: fashion
                        description: null
                      -
                        id: 4
                        name: Branding
                        slug: branding
                        description: null
                      -
                        id: 5
                        name: Modern
                        slug: modern
                        description: null
                      -
                        id: 6
                        name: Nature
                        slug: nature
                        description: null
                      -
                        id: 7
                        name: Vintage
                        slug: vintage
                        description: null
                      -
                        id: 8
                        name: Sunglasses
                        slug: sunglasses
                        description: null
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 1
                        name:
                          type: string
                          example: General
                        slug:
                          type: string
                          example: general
                        description:
                          type: string
                          example: null
                  links:
                    type: object
                    properties:
                      first:
                        type: string
                        example: 'http://shofy.test/api/v1/tags?page=1'
                      last:
                        type: string
                        example: 'http://shofy.test/api/v1/tags?page=1'
                      prev:
                        type: string
                        example: null
                      next:
                        type: string
                        example: null
                  meta:
                    type: object
                    properties:
                      current_page:
                        type: integer
                        example: 1
                      from:
                        type: integer
                        example: 1
                      last_page:
                        type: integer
                        example: 1
                      links:
                        type: array
                        example:
                          -
                            url: null
                            label: '&laquo; Previous'
                            active: false
                          -
                            url: 'http://shofy.test/api/v1/tags?page=1'
                            label: '1'
                            active: true
                          -
                            url: null
                            label: 'Next &raquo;'
                            active: false
                        items:
                          type: object
                          properties:
                            url:
                              type: string
                              example: null
                            label:
                              type: string
                              example: '&laquo; Previous'
                            active:
                              type: boolean
                              example: false
                      path:
                        type: string
                        example: 'http://shofy.test/api/v1/tags'
                      per_page:
                        type: integer
                        example: 10
                      to:
                        type: integer
                        example: 8
                      total:
                        type: integer
                        example: 8
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: null
      tags:
        - Blog
      security: []
  /api/v1/posts/filters:
    get:
      summary: 'Filters posts'
      operationId: filtersPosts
      description: ''
      parameters:
        -
          in: query
          name: page
          description: 'Current page of the collection. Default: 1'
          example: 17
          required: false
          schema:
            type: integer
            description: 'Current page of the collection. Default: 1'
            example: 17
            nullable: false
        -
          in: query
          name: per_page
          description: 'Maximum number of items to be returned in result set.Default: 10'
          example: 17
          required: false
          schema:
            type: integer
            description: 'Maximum number of items to be returned in result set.Default: 10'
            example: 17
            nullable: false
        -
          in: query
          name: search
          description: 'Limit results to those matching a string.'
          example: consequatur
          required: false
          schema:
            type: string
            description: 'Limit results to those matching a string.'
            example: consequatur
            nullable: false
        -
          in: query
          name: after
          description: 'Limit response to posts published after a given ISO8601 compliant date.'
          example: consequatur
          required: false
          schema:
            type: string
            description: 'Limit response to posts published after a given ISO8601 compliant date.'
            example: consequatur
            nullable: false
        -
          in: query
          name: author
          description: 'Limit result set to posts assigned to specific authors.'
          example: consequatur
          required: false
          schema:
            type: string
            description: 'Limit result set to posts assigned to specific authors.'
            example: consequatur
            nullable: false
        -
          in: query
          name: author_exclude
          description: 'Ensure result set excludes posts assigned to specific authors.'
          example: consequatur
          required: false
          schema:
            type: string
            description: 'Ensure result set excludes posts assigned to specific authors.'
            example: consequatur
            nullable: false
        -
          in: query
          name: before
          description: 'Limit response to posts published before a given ISO8601 compliant date.'
          example: consequatur
          required: false
          schema:
            type: string
            description: 'Limit response to posts published before a given ISO8601 compliant date.'
            example: consequatur
            nullable: false
        -
          in: query
          name: exclude
          description: 'Ensure result set excludes specific IDs.'
          example: consequatur
          required: false
          schema:
            type: string
            description: 'Ensure result set excludes specific IDs.'
            example: consequatur
            nullable: false
        -
          in: query
          name: include
          description: 'Limit result set to specific IDs.'
          example: consequatur
          required: false
          schema:
            type: string
            description: 'Limit result set to specific IDs.'
            example: consequatur
            nullable: false
        -
          in: query
          name: order
          description: 'Order sort attribute ascending or descending. Default: desc .One of: asc, desc'
          example: consequatur
          required: false
          schema:
            type: string
            description: 'Order sort attribute ascending or descending. Default: desc .One of: asc, desc'
            example: consequatur
            nullable: false
        -
          in: query
          name: order_by
          description: 'Sort collection by object attribute. Default: updated_at. One of: author, created_at, updated_at, id,  slug, title'
          example: consequatur
          required: false
          schema:
            type: string
            description: 'Sort collection by object attribute. Default: updated_at. One of: author, created_at, updated_at, id,  slug, title'
            example: consequatur
            nullable: false
        -
          in: query
          name: categories
          description: 'Limit result set to all items that have the specified term assigned in the categories taxonomy.'
          example: consequatur
          required: false
          schema:
            type: string
            description: 'Limit result set to all items that have the specified term assigned in the categories taxonomy.'
            example: consequatur
            nullable: false
        -
          in: query
          name: categories_exclude
          description: 'Limit result set to all items except those that have the specified term assigned in the categories taxonomy.'
          example: consequatur
          required: false
          schema:
            type: string
            description: 'Limit result set to all items except those that have the specified term assigned in the categories taxonomy.'
            example: consequatur
            nullable: false
        -
          in: query
          name: tags
          description: 'Limit result set to all items that have the specified term assigned in the tags taxonomy.'
          example: consequatur
          required: false
          schema:
            type: string
            description: 'Limit result set to all items that have the specified term assigned in the tags taxonomy.'
            example: consequatur
            nullable: false
        -
          in: query
          name: tags_exclude
          description: 'Limit result set to all items except those that have the specified term assigned in the tags taxonomy.'
          example: consequatur
          required: false
          schema:
            type: string
            description: 'Limit result set to all items except those that have the specified term assigned in the tags taxonomy.'
            example: consequatur
            nullable: false
        -
          in: query
          name: featured
          description: 'Limit result set to items that are sticky.'
          example: consequatur
          required: false
          schema:
            type: string
            description: 'Limit result set to items that are sticky.'
            example: consequatur
            nullable: false
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data: []
                  links:
                    first: 'http://shofy.test/api/v1/posts/filters?page=1'
                    last: 'http://shofy.test/api/v1/posts/filters?page=1'
                    prev: 'http://shofy.test/api/v1/posts/filters?page=16'
                    next: null
                  meta:
                    current_page: 17
                    from: null
                    last_page: 1
                    links:
                      -
                        url: 'http://shofy.test/api/v1/posts/filters?page=16'
                        label: '&laquo; Previous'
                        active: false
                      -
                        url: 'http://shofy.test/api/v1/posts/filters?page=1'
                        label: '1'
                        active: false
                      -
                        url: null
                        label: 'Next &raquo;'
                        active: false
                    path: 'http://shofy.test/api/v1/posts/filters'
                    per_page: 17
                    to: null
                    total: 0
                  error: false
                  message: null
                properties:
                  data:
                    type: array
                    example: []
                  links:
                    type: object
                    properties:
                      first:
                        type: string
                        example: 'http://shofy.test/api/v1/posts/filters?page=1'
                      last:
                        type: string
                        example: 'http://shofy.test/api/v1/posts/filters?page=1'
                      prev:
                        type: string
                        example: 'http://shofy.test/api/v1/posts/filters?page=16'
                      next:
                        type: string
                        example: null
                  meta:
                    type: object
                    properties:
                      current_page:
                        type: integer
                        example: 17
                      from:
                        type: string
                        example: null
                      last_page:
                        type: integer
                        example: 1
                      links:
                        type: array
                        example:
                          -
                            url: 'http://shofy.test/api/v1/posts/filters?page=16'
                            label: '&laquo; Previous'
                            active: false
                          -
                            url: 'http://shofy.test/api/v1/posts/filters?page=1'
                            label: '1'
                            active: false
                          -
                            url: null
                            label: 'Next &raquo;'
                            active: false
                        items:
                          type: object
                          properties:
                            url:
                              type: string
                              example: 'http://shofy.test/api/v1/posts/filters?page=16'
                            label:
                              type: string
                              example: '&laquo; Previous'
                            active:
                              type: boolean
                              example: false
                      path:
                        type: string
                        example: 'http://shofy.test/api/v1/posts/filters'
                      per_page:
                        type: integer
                        example: 17
                      to:
                        type: string
                        example: null
                      total:
                        type: integer
                        example: 0
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: null
      tags:
        - Blog
      security: []
  '/api/v1/posts/{slug}':
    get:
      summary: 'Get post by slug'
      operationId: getPostBySlug
      description: ''
      parameters:
        -
          in: query
          name: slug
          description: 'Find by slug of post.'
          example: consequatur
          required: false
          schema:
            type: string
            description: 'Find by slug of post.'
            example: consequatur
            nullable: false
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: 'Not found'
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: 'Not found'
      tags:
        - Blog
      security: []
    parameters:
      -
        in: path
        name: slug
        description: 'The slug of the post.'
        example: consequatur
        required: true
        schema:
          type: string
  /api/v1/categories/filters:
    get:
      summary: 'Filters categories'
      operationId: filtersCategories
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 5
                      name: 'Organic Fruits'
                      slug: organic-fruits
                      url: 'http://shofy.test/blog/organic-fruits'
                      description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
                    -
                      id: 2
                      name: Fashion
                      slug: fashion
                      url: 'http://shofy.test/blog/fashion'
                      description: 'Consequatur magni suscipit veniam labore optio modi minus. Cum neque rerum id natus non placeat rerum. Iure vel recusandae quia voluptatem omnis ratione tempora quia.'
                    -
                      id: 3
                      name: Electronic
                      slug: electronic
                      url: 'http://shofy.test/blog/electronic'
                      description: 'Culpa quia voluptas sint aut maiores minus debitis. Et dolor occaecati ullam qui. Perspiciatis natus rerum officia veniam cum odio molestias. Omnis laudantium ipsam ut voluptatum.'
                    -
                      id: 6
                      name: Ecological
                      slug: ecological
                      url: 'http://shofy.test/blog/ecological'
                      description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
                    -
                      id: 1
                      name: 'Crisp Bread & Cake'
                      slug: crisp-bread-cake
                      url: 'http://shofy.test/blog/crisp-bread-cake'
                      description: 'Et magni blanditiis quos optio delectus animi possimus. Repudiandae expedita alias ipsam. Magnam quas ipsam autem ipsam.'
                    -
                      id: 4
                      name: Commercial
                      slug: commercial
                      url: 'http://shofy.test/blog/commercial'
                      description: 'Optio incidunt delectus ut adipisci ea neque et aliquid. Alias iure ratione omnis consequatur. Dolor sequi natus sit iste aut.'
                  links:
                    first: 'http://shofy.test/api/v1/categories/filters?page=1'
                    last: 'http://shofy.test/api/v1/categories/filters?page=1'
                    prev: null
                    next: null
                  meta:
                    current_page: 1
                    from: 1
                    last_page: 1
                    links:
                      -
                        url: null
                        label: '&laquo; Previous'
                        active: false
                      -
                        url: 'http://shofy.test/api/v1/categories/filters?page=1'
                        label: '1'
                        active: true
                      -
                        url: null
                        label: 'Next &raquo;'
                        active: false
                    path: 'http://shofy.test/api/v1/categories/filters'
                    per_page: 10
                    to: 6
                    total: 6
                  error: false
                  message: null
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 5
                        name: 'Organic Fruits'
                        slug: organic-fruits
                        url: 'http://shofy.test/blog/organic-fruits'
                        description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
                      -
                        id: 2
                        name: Fashion
                        slug: fashion
                        url: 'http://shofy.test/blog/fashion'
                        description: 'Consequatur magni suscipit veniam labore optio modi minus. Cum neque rerum id natus non placeat rerum. Iure vel recusandae quia voluptatem omnis ratione tempora quia.'
                      -
                        id: 3
                        name: Electronic
                        slug: electronic
                        url: 'http://shofy.test/blog/electronic'
                        description: 'Culpa quia voluptas sint aut maiores minus debitis. Et dolor occaecati ullam qui. Perspiciatis natus rerum officia veniam cum odio molestias. Omnis laudantium ipsam ut voluptatum.'
                      -
                        id: 6
                        name: Ecological
                        slug: ecological
                        url: 'http://shofy.test/blog/ecological'
                        description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
                      -
                        id: 1
                        name: 'Crisp Bread & Cake'
                        slug: crisp-bread-cake
                        url: 'http://shofy.test/blog/crisp-bread-cake'
                        description: 'Et magni blanditiis quos optio delectus animi possimus. Repudiandae expedita alias ipsam. Magnam quas ipsam autem ipsam.'
                      -
                        id: 4
                        name: Commercial
                        slug: commercial
                        url: 'http://shofy.test/blog/commercial'
                        description: 'Optio incidunt delectus ut adipisci ea neque et aliquid. Alias iure ratione omnis consequatur. Dolor sequi natus sit iste aut.'
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 5
                        name:
                          type: string
                          example: 'Organic Fruits'
                        slug:
                          type: string
                          example: organic-fruits
                        url:
                          type: string
                          example: 'http://shofy.test/blog/organic-fruits'
                        description:
                          type: string
                          example: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
                  links:
                    type: object
                    properties:
                      first:
                        type: string
                        example: 'http://shofy.test/api/v1/categories/filters?page=1'
                      last:
                        type: string
                        example: 'http://shofy.test/api/v1/categories/filters?page=1'
                      prev:
                        type: string
                        example: null
                      next:
                        type: string
                        example: null
                  meta:
                    type: object
                    properties:
                      current_page:
                        type: integer
                        example: 1
                      from:
                        type: integer
                        example: 1
                      last_page:
                        type: integer
                        example: 1
                      links:
                        type: array
                        example:
                          -
                            url: null
                            label: '&laquo; Previous'
                            active: false
                          -
                            url: 'http://shofy.test/api/v1/categories/filters?page=1'
                            label: '1'
                            active: true
                          -
                            url: null
                            label: 'Next &raquo;'
                            active: false
                        items:
                          type: object
                          properties:
                            url:
                              type: string
                              example: null
                            label:
                              type: string
                              example: '&laquo; Previous'
                            active:
                              type: boolean
                              example: false
                      path:
                        type: string
                        example: 'http://shofy.test/api/v1/categories/filters'
                      per_page:
                        type: integer
                        example: 10
                      to:
                        type: integer
                        example: 6
                      total:
                        type: integer
                        example: 6
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: null
      tags:
        - Blog
      security: []
  '/api/v1/categories/{slug}':
    get:
      summary: 'Get category by slug'
      operationId: getCategoryBySlug
      description: ''
      parameters:
        -
          in: query
          name: slug
          description: 'Find by slug of category.'
          example: consequatur
          required: false
          schema:
            type: string
            description: 'Find by slug of category.'
            example: consequatur
            nullable: false
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: 'Not found'
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: 'Not found'
      tags:
        - Blog
      security: []
    parameters:
      -
        in: path
        name: slug
        description: 'The slug of the category.'
        example: consequatur
        required: true
        schema:
          type: string
  /api/v1/ecommerce/brands:
    get:
      summary: 'Get list of brands'
      operationId: getListOfBrands
      description: ''
      parameters:
        -
          in: query
          name: brands
          description: 'List of brand IDs if you need filter by brands.'
          example: null
          required: false
          schema:
            type: array
            description: 'List of brand IDs if you need filter by brands.'
            example: null
            items:
              type: string
        -
          in: query
          name: page
          description: 'Page number. Default: 1.'
          example: null
          required: false
          schema:
            type: integer
            description: 'Page number. Default: 1.'
            example: null
            nullable: false
        -
          in: query
          name: per_page
          description: 'Number of items per page. Default: 16.'
          example: null
          required: false
          schema:
            type: integer
            description: 'Number of items per page. Default: 16.'
            example: null
            nullable: false
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data: []
                  links:
                    first: 'http://shofy.test/api/v1/ecommerce/brands?page=1'
                    last: 'http://shofy.test/api/v1/ecommerce/brands?page=1'
                    prev: null
                    next: null
                  meta:
                    current_page: 1
                    from: null
                    last_page: 1
                    links:
                      -
                        url: null
                        label: '&laquo; Previous'
                        active: false
                      -
                        url: 'http://shofy.test/api/v1/ecommerce/brands?page=1'
                        label: '1'
                        active: true
                      -
                        url: null
                        label: 'Next &raquo;'
                        active: false
                    path: 'http://shofy.test/api/v1/ecommerce/brands'
                    per_page: 16
                    to: null
                    total: 0
                  error: false
                  message: null
                properties:
                  data:
                    type: array
                    example: []
                  links:
                    type: object
                    properties:
                      first:
                        type: string
                        example: 'http://shofy.test/api/v1/ecommerce/brands?page=1'
                      last:
                        type: string
                        example: 'http://shofy.test/api/v1/ecommerce/brands?page=1'
                      prev:
                        type: string
                        example: null
                      next:
                        type: string
                        example: null
                  meta:
                    type: object
                    properties:
                      current_page:
                        type: integer
                        example: 1
                      from:
                        type: string
                        example: null
                      last_page:
                        type: integer
                        example: 1
                      links:
                        type: array
                        example:
                          -
                            url: null
                            label: '&laquo; Previous'
                            active: false
                          -
                            url: 'http://shofy.test/api/v1/ecommerce/brands?page=1'
                            label: '1'
                            active: true
                          -
                            url: null
                            label: 'Next &raquo;'
                            active: false
                        items:
                          type: object
                          properties:
                            url:
                              type: string
                              example: null
                            label:
                              type: string
                              example: '&laquo; Previous'
                            active:
                              type: boolean
                              example: false
                      path:
                        type: string
                        example: 'http://shofy.test/api/v1/ecommerce/brands'
                      per_page:
                        type: integer
                        example: 16
                      to:
                        type: string
                        example: null
                      total:
                        type: integer
                        example: 0
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: null
      tags:
        - Brands
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                brands:
                  type: array
                  description: 'The <code>id</code> of an existing record in the ec_product_brands table.'
                  example: null
                  items:
                    type: string
                    nullable: true
                is_featured:
                  type: boolean
                  description: 'Filter by featured status.'
                  example: false
                  nullable: true
      security: []
  '/api/v1/ecommerce/brands/{slug}':
    get:
      summary: 'Get brand details by slug'
      operationId: getBrandDetailsBySlug
      description: ''
      parameters: []
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: ''
                properties:
                  message:
                    type: string
                    example: ''
      tags:
        - Brands
      security: []
    parameters:
      -
        in: path
        name: slug
        description: 'The slug of the brand.'
        example: consequatur
        required: true
        schema:
          type: string
  '/api/v1/ecommerce/brands/{id}/products':
    get:
      summary: 'Get products by brand'
      operationId: getProductsByBrand
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 126
                      slug: testing
                      url: 'http://shofy.test/products/testing'
                      name: Testing
                      sku: SF-2443-GZIR
                      description: ''
                      content: ''
                      quantity: 0
                      is_out_of_stock: false
                      stock_status_label: 'In stock'
                      stock_status_html: '<span class="text-success">In stock</span>'
                      price: 0
                      price_formatted: $0.00
                      original_price: 0
                      original_price_formatted: $0.00
                      reviews_avg: null
                      reviews_count: 0
                      images: []
                      images_thumb: []
                      image_with_sizes: null
                      weight: 0
                      height: 0
                      wide: 0
                      length: 0
                      image_url: 'http://shofy.test/vendor/core/core/base/images/placeholder.png'
                      product_options: []
                      store:
                        id: null
                        slug: null
                        name: null
                  links:
                    first: 'http://shofy.test/api/v1/ecommerce/brands/1/products?page=1'
                    last: 'http://shofy.test/api/v1/ecommerce/brands/1/products?page=1'
                    prev: null
                    next: null
                  meta:
                    current_page: 1
                    from: 1
                    last_page: 1
                    links:
                      -
                        url: null
                        label: '&laquo; Previous'
                        active: false
                      -
                        url: 'http://shofy.test/api/v1/ecommerce/brands/1/products?page=1'
                        label: '1'
                        active: true
                      -
                        url: null
                        label: 'Next &raquo;'
                        active: false
                    path: 'http://shofy.test/api/v1/ecommerce/brands/1/products'
                    per_page: 24
                    to: 1
                    total: 1
                  error: false
                  message: null
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 126
                        slug: testing
                        url: 'http://shofy.test/products/testing'
                        name: Testing
                        sku: SF-2443-GZIR
                        description: ''
                        content: ''
                        quantity: 0
                        is_out_of_stock: false
                        stock_status_label: 'In stock'
                        stock_status_html: '<span class="text-success">In stock</span>'
                        price: 0
                        price_formatted: $0.00
                        original_price: 0
                        original_price_formatted: $0.00
                        reviews_avg: null
                        reviews_count: 0
                        images: []
                        images_thumb: []
                        image_with_sizes: null
                        weight: 0
                        height: 0
                        wide: 0
                        length: 0
                        image_url: 'http://shofy.test/vendor/core/core/base/images/placeholder.png'
                        product_options: []
                        store:
                          id: null
                          slug: null
                          name: null
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 126
                        slug:
                          type: string
                          example: testing
                        url:
                          type: string
                          example: 'http://shofy.test/products/testing'
                        name:
                          type: string
                          example: Testing
                        sku:
                          type: string
                          example: SF-2443-GZIR
                        description:
                          type: string
                          example: ''
                        content:
                          type: string
                          example: ''
                        quantity:
                          type: integer
                          example: 0
                        is_out_of_stock:
                          type: boolean
                          example: false
                        stock_status_label:
                          type: string
                          example: 'In stock'
                        stock_status_html:
                          type: string
                          example: '<span class="text-success">In stock</span>'
                        price:
                          type: integer
                          example: 0
                        price_formatted:
                          type: string
                          example: $0.00
                        original_price:
                          type: integer
                          example: 0
                        original_price_formatted:
                          type: string
                          example: $0.00
                        reviews_avg:
                          type: string
                          example: null
                        reviews_count:
                          type: integer
                          example: 0
                        images:
                          type: array
                          example: []
                        images_thumb:
                          type: array
                          example: []
                        image_with_sizes:
                          type: string
                          example: null
                        weight:
                          type: integer
                          example: 0
                        height:
                          type: integer
                          example: 0
                        wide:
                          type: integer
                          example: 0
                        length:
                          type: integer
                          example: 0
                        image_url:
                          type: string
                          example: 'http://shofy.test/vendor/core/core/base/images/placeholder.png'
                        product_options:
                          type: array
                          example: []
                        store:
                          type: object
                          properties:
                            id:
                              type: string
                              example: null
                            slug:
                              type: string
                              example: null
                            name:
                              type: string
                              example: null
                  links:
                    type: object
                    properties:
                      first:
                        type: string
                        example: 'http://shofy.test/api/v1/ecommerce/brands/1/products?page=1'
                      last:
                        type: string
                        example: 'http://shofy.test/api/v1/ecommerce/brands/1/products?page=1'
                      prev:
                        type: string
                        example: null
                      next:
                        type: string
                        example: null
                  meta:
                    type: object
                    properties:
                      current_page:
                        type: integer
                        example: 1
                      from:
                        type: integer
                        example: 1
                      last_page:
                        type: integer
                        example: 1
                      links:
                        type: array
                        example:
                          -
                            url: null
                            label: '&laquo; Previous'
                            active: false
                          -
                            url: 'http://shofy.test/api/v1/ecommerce/brands/1/products?page=1'
                            label: '1'
                            active: true
                          -
                            url: null
                            label: 'Next &raquo;'
                            active: false
                        items:
                          type: object
                          properties:
                            url:
                              type: string
                              example: null
                            label:
                              type: string
                              example: '&laquo; Previous'
                            active:
                              type: boolean
                              example: false
                      path:
                        type: string
                        example: 'http://shofy.test/api/v1/ecommerce/brands/1/products'
                      per_page:
                        type: integer
                        example: 24
                      to:
                        type: integer
                        example: 1
                      total:
                        type: integer
                        example: 1
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: null
      tags:
        - Brands
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the brand.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/ecommerce/cart:
    post:
      summary: 'Add product to cart'
      operationId: addProductToCart
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Cart
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                product_id:
                  type: integer
                  description: 'ID of the product.'
                  example: 1
                  nullable: false
                qty:
                  type: integer
                  description: 'Quantity of the product. Default: 1.'
                  example: 1
                  nullable: false
              required:
                - product_id
                - qty
      security: []
  '/api/v1/ecommerce/cart/{id}':
    post:
      summary: 'Add product to cart'
      operationId: addProductToCart
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Cart
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                product_id:
                  type: integer
                  description: 'ID of the product.'
                  example: 1
                  nullable: false
                qty:
                  type: integer
                  description: 'Quantity of the product. Default: 1.'
                  example: 1
                  nullable: false
              required:
                - product_id
                - qty
      security: []
    put:
      summary: 'Update quantity of a product in cart'
      operationId: updateQuantityOfAProductInCart
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Cart
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                product_id:
                  type: integer
                  description: 'ID of the product.'
                  example: 1
                  nullable: false
                qty:
                  type: integer
                  description: 'Quantity of the product.'
                  example: 1
                  nullable: false
              required:
                - product_id
                - qty
      security: []
    delete:
      summary: 'Remove a cart item by its ID.'
      operationId: removeACartItemByItsID
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Cart
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                product_id:
                  type: string
                  description: 'The ID of the product to remove from the cart. The <code>id</code> of an existing record in the ec_products table.'
                  example: 1
                  nullable: false
              required:
                - product_id
      security: []
    get:
      summary: 'Get a cart item by id.'
      operationId: getACartItemById
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  id: consequatur
                  cart_items: []
                  count: 0
                  raw_total: 0
                  raw_total_formatted: $0.00
                  sub_total: 0
                  sub_total_formatted: $0.00
                  tax_amount: 0
                  tax_amount_formatted: $0.00
                  promotion_discount_amount: 0
                  promotion_discount_amount_formatted: $0.00
                  coupon_discount_amount: 0
                  coupon_discount_amount_formatted: $0.00
                  applied_coupon_code: null
                  order_total: 0
                  order_total_formatted: $0.00
                properties:
                  id:
                    type: string
                    example: consequatur
                  cart_items:
                    type: array
                    example: []
                  count:
                    type: integer
                    example: 0
                  raw_total:
                    type: integer
                    example: 0
                  raw_total_formatted:
                    type: string
                    example: $0.00
                  sub_total:
                    type: integer
                    example: 0
                  sub_total_formatted:
                    type: string
                    example: $0.00
                  tax_amount:
                    type: integer
                    example: 0
                  tax_amount_formatted:
                    type: string
                    example: $0.00
                  promotion_discount_amount:
                    type: integer
                    example: 0
                  promotion_discount_amount_formatted:
                    type: string
                    example: $0.00
                  coupon_discount_amount:
                    type: integer
                    example: 0
                  coupon_discount_amount_formatted:
                    type: string
                    example: $0.00
                  applied_coupon_code:
                    type: string
                    example: null
                  order_total:
                    type: integer
                    example: 0
                  order_total_formatted:
                    type: string
                    example: $0.00
      tags:
        - Cart
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                customer_id:
                  type: integer
                  description: 'is ID of the customer.'
                  example: 1
                  nullable: false
                id:
                  type: string
                  description: 'ID of the cart item.'
                  example: e70c6c88dae8344b03e39bb147eba66a
                  nullable: false
              required:
                - id
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the cart.'
        example: consequatur
        required: true
        schema:
          type: string
  /api/v1/ecommerce/cart/refresh:
    post:
      summary: 'Refresh cart items'
      operationId: refreshCartItems
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Cart
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                products:
                  type: array
                  description: 'List of products with product_id and quantity.'
                  example:
                    - consequatur
                  items:
                    type: string
              required:
                - products
      security: []
  /api/v1/ecommerce/checkout/taxes/calculate:
    post:
      summary: 'Calculate tax for products in cart'
      operationId: calculateTaxForProductsInCart
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  items:
                    -
                      product_id: 1
                      price: 100
                      price_formatted: $100.00
                      quantity: 2
                      tax_rate: 10
                      tax_amount: 20
                      tax_amount_formatted: $20.00
                      subtotal: 200
                      subtotal_formatted: $200.00
                      total: 220
                      total_formatted: $220.00
                  totals:
                    sub_total: 200
                    sub_total_formatted: $200.00
                    tax_amount: 20
                    tax_amount_formatted: $20.00
                    total: 220
                    total_formatted: $220.00
                properties:
                  items:
                    type: array
                    example:
                      -
                        product_id: 1
                        price: 100
                        price_formatted: $100.00
                        quantity: 2
                        tax_rate: 10
                        tax_amount: 20
                        tax_amount_formatted: $20.00
                        subtotal: 200
                        subtotal_formatted: $200.00
                        total: 220
                        total_formatted: $220.00
                    items:
                      type: object
                      properties:
                        product_id:
                          type: integer
                          example: 1
                        price:
                          type: integer
                          example: 100
                        price_formatted:
                          type: string
                          example: $100.00
                        quantity:
                          type: integer
                          example: 2
                        tax_rate:
                          type: integer
                          example: 10
                        tax_amount:
                          type: integer
                          example: 20
                        tax_amount_formatted:
                          type: string
                          example: $20.00
                        subtotal:
                          type: integer
                          example: 200
                        subtotal_formatted:
                          type: string
                          example: $200.00
                        total:
                          type: integer
                          example: 220
                        total_formatted:
                          type: string
                          example: $220.00
                  totals:
                    type: object
                    properties:
                      sub_total:
                        type: integer
                        example: 200
                      sub_total_formatted:
                        type: string
                        example: $200.00
                      tax_amount:
                        type: integer
                        example: 20
                      tax_amount_formatted:
                        type: string
                        example: $20.00
                      total:
                        type: integer
                        example: 220
                      total_formatted:
                        type: string
                        example: $220.00
      tags:
        - Cart
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                products:
                  type: array
                  description: 'List of products with id and quantity.'
                  example:
                    - consequatur
                  items:
                    type: string
                country:
                  type: string
                  description: 'Country code.'
                  example: US
                  nullable: true
                state:
                  type: string
                  description: 'State code.'
                  example: CA
                  nullable: true
                city:
                  type: string
                  description: 'City name.'
                  example: 'Los Angeles'
                  nullable: true
                zip_code:
                  type: string
                  description: 'ZIP code.'
                  example: '90001'
                  nullable: true
              required:
                - products
      security: []
  '/api/v1/ecommerce/checkout/cart/{id}':
    get:
      summary: "Process Checkout\n\nProcess the checkout for a specific cart ID. This endpoint restores the cart, generates an order token,\nand redirects the user to the checkout page."
      operationId: processCheckoutProcessTheCheckoutForASpecificCartIDThisEndpointRestoresTheCartGeneratesAnOrderTokenandRedirectsTheUserToTheCheckoutPage
      description: ''
      parameters: []
      responses:
        302:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example: {  }
                properties: {  }
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated.
                properties:
                  message:
                    type: string
                    example: Unauthenticated.
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Cart not found.'
                properties:
                  message:
                    type: string
                    example: 'Cart not found.'
      tags:
        - Checkout
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the cart to process.'
        example: '12345'
        required: true
        schema:
          type: string
  /api/v1/ecommerce/compare:
    post:
      summary: 'Add product to compare'
      operationId: addProductToCompare
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Compare
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                product_id:
                  type: integer
                  description: 'ID of the product.'
                  example: 1
                  nullable: false
              required:
                - product_id
      security: []
  '/api/v1/ecommerce/compare/{id}':
    post:
      summary: 'Add product to compare'
      operationId: addProductToCompare
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Compare
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                product_id:
                  type: integer
                  description: 'ID of the product.'
                  example: 1
                  nullable: false
              required:
                - product_id
      security: []
    delete:
      summary: 'Remove a product from compare list'
      operationId: removeAProductFromCompareList
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Compare
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                product_id:
                  type: string
                  description: 'The ID of the product to remove from the compare list. The <code>id</code> of an existing record in the ec_products table.'
                  example: 1
                  nullable: false
              required:
                - product_id
      security: []
    get:
      summary: 'Get compare items'
      operationId: getCompareItems
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  id: consequatur
                  data:
                    count: 0
                    items: []
                properties:
                  id:
                    type: string
                    example: consequatur
                  data:
                    type: object
                    properties:
                      count:
                        type: integer
                        example: 0
                      items:
                        type: array
                        example: []
      tags:
        - Compare
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: 'ID of the compare list.'
                  example: e70c6c88dae8344b03e39bb147eba66a
                  nullable: false
              required:
                - id
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the compare.'
        example: consequatur
        required: true
        schema:
          type: string
  /api/v1/ecommerce/coupon/apply:
    post:
      summary: 'Apply coupon code'
      operationId: applyCouponCode
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Coupons
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                coupon_code:
                  type: string
                  description: 'The coupon code.'
                  example: DISCOUNT20
                  nullable: false
                cart_id:
                  type: string
                  description: 'ID of the cart to apply coupon to.'
                  example: e70c6c88dae8344b03e39bb147eba66a
                  nullable: false
              required:
                - coupon_code
                - cart_id
      security: []
  /api/v1/ecommerce/coupon/remove:
    post:
      summary: 'Remove coupon code'
      operationId: removeCouponCode
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Coupons
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                cart_id:
                  type: string
                  description: 'ID of the cart to remove coupon from.'
                  example: e70c6c88dae8344b03e39bb147eba66a
                  nullable: false
      security: []
  /api/v1/ecommerce/currencies:
    get:
      summary: 'Get list of available currencies'
      operationId: getListOfAvailableCurrencies
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    -
                      id: 1
                      title: USD
                      symbol: $
                      is_prefix_symbol: true
                      decimals: 2
                      order: 0
                      is_default: true
                      exchange_rate: 1
                    -
                      id: 2
                      title: EUR
                      symbol: €
                      is_prefix_symbol: false
                      decimals: 2
                      order: 1
                      is_default: false
                      exchange_rate: 0.91
                  message: null
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: array
                    example:
                      -
                        id: 1
                        title: USD
                        symbol: $
                        is_prefix_symbol: true
                        decimals: 2
                        order: 0
                        is_default: true
                        exchange_rate: 1
                      -
                        id: 2
                        title: EUR
                        symbol: €
                        is_prefix_symbol: false
                        decimals: 2
                        order: 1
                        is_default: false
                        exchange_rate: 0.91
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 1
                        title:
                          type: string
                          example: USD
                        symbol:
                          type: string
                          example: $
                        is_prefix_symbol:
                          type: boolean
                          example: true
                        decimals:
                          type: integer
                          example: 2
                        order:
                          type: integer
                          example: 0
                        is_default:
                          type: boolean
                          example: true
                        exchange_rate:
                          type: integer
                          example: 1
                  message:
                    type: string
                    example: null
      tags:
        - Currencies
      security: []
  /api/v1/ecommerce/currencies/current:
    get:
      summary: 'Get current currency'
      operationId: getCurrentCurrency
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    id: 1
                    title: USD
                    symbol: $
                    is_prefix_symbol: true
                    decimals: 2
                    order: 0
                    is_default: true
                    exchange_rate: 1
                  message: null
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 1
                      title:
                        type: string
                        example: USD
                      symbol:
                        type: string
                        example: $
                      is_prefix_symbol:
                        type: boolean
                        example: true
                      decimals:
                        type: integer
                        example: 2
                      order:
                        type: integer
                        example: 0
                      is_default:
                        type: boolean
                        example: true
                      exchange_rate:
                        type: integer
                        example: 1
                  message:
                    type: string
                    example: null
      tags:
        - Currencies
      security: []
  /api/v1/device-tokens:
    post:
      summary: 'Register or update device token'
      operationId: registerOrUpdateDeviceToken
      description: 'Register a new device token or update an existing one for push notifications.'
      parameters: []
      responses: {  }
      tags:
        - 'Device Tokens'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                token:
                  type: string
                  description: 'The FCM device token.'
                  example: consequatur
                  nullable: false
                platform:
                  type: string
                  description: 'The device platform (android, ios).'
                  example: consequatur
                  nullable: true
                app_version:
                  type: string
                  description: 'The app version.'
                  example: consequatur
                  nullable: true
                device_id:
                  type: string
                  description: 'The unique device identifier.'
                  example: consequatur
                  nullable: true
                user_type:
                  type: string
                  description: 'The user type (customer, admin).'
                  example: consequatur
                  nullable: true
                user_id:
                  type: integer
                  description: 'The user ID.'
                  example: 17
                  nullable: true
              required:
                - token
      security: []
    get:
      summary: "Get user's device tokens"
      operationId: getUsersDeviceTokens
      description: 'Retrieve all device tokens for the authenticated user.'
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - 'Device Tokens'
      security: []
  '/api/v1/device-tokens/{id}':
    put:
      summary: 'Update device token'
      operationId: updateDeviceToken
      description: 'Update an existing device token.'
      parameters: []
      responses: {  }
      tags:
        - 'Device Tokens'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                platform:
                  type: string
                  description: 'The device platform (android, ios).'
                  example: consequatur
                  nullable: false
                app_version:
                  type: string
                  description: 'The app version.'
                  example: consequatur
                  nullable: false
                device_id:
                  type: string
                  description: 'The unique device identifier.'
                  example: consequatur
                  nullable: false
      security: []
    delete:
      summary: 'Delete device token'
      operationId: deleteDeviceToken
      description: 'Delete a device token to stop receiving push notifications.'
      parameters: []
      responses: {  }
      tags:
        - 'Device Tokens'
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the device token.'
        example: consequatur
        required: true
        schema:
          type: string
  /api/v1/device-tokens/by-token:
    delete:
      summary: 'Delete device token by token value'
      operationId: deleteDeviceTokenByTokenValue
      description: 'Delete a device token using the token value.'
      parameters: []
      responses: {  }
      tags:
        - 'Device Tokens'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                token:
                  type: string
                  description: 'The FCM device token to delete.'
                  example: consequatur
                  nullable: false
              required:
                - token
      security: []
  '/api/v1/device-tokens/{id}/deactivate':
    post:
      summary: 'Deactivate device token'
      operationId: deactivateDeviceToken
      description: 'Deactivate a device token without deleting it.'
      parameters: []
      responses: {  }
      tags:
        - 'Device Tokens'
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the device token.'
        example: consequatur
        required: true
        schema:
          type: string
  /api/v1/ecommerce/downloads:
    get:
      summary: 'Get list of digital products available for download'
      operationId: getListOfDigitalProductsAvailableForDownload
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Downloads
  '/api/v1/ecommerce/downloads/{id}':
    get:
      summary: 'Download a digital product'
      operationId: downloadADigitalProduct
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Downloads
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the download.'
        example: '1562'
        required: true
        schema:
          type: string
  '/api/v1/ecommerce/download/{token}/{filename}':
    get:
      summary: 'Download a file using a token'
      operationId: downloadAFileUsingAToken
      description: ''
      parameters: []
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: ''
                properties:
                  message:
                    type: string
                    example: ''
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: token
        description: ''
        example: consequatur
        required: true
        schema:
          type: string
      -
        in: path
        name: filename
        description: ''
        example: consequatur
        required: true
        schema:
          type: string
  '/api/v1/ecommerce/orders/download-proof/{token}/{filename}':
    get:
      summary: 'Download a proof file using a token'
      operationId: downloadAProofFileUsingAToken
      description: ''
      parameters: []
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: ''
                properties:
                  message:
                    type: string
                    example: ''
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: token
        description: ''
        example: consequatur
        required: true
        schema:
          type: string
      -
        in: path
        name: filename
        description: ''
        example: consequatur
        required: true
        schema:
          type: string
  /api/v1/auth/apple:
    post:
      summary: ''
      operationId: postApiV1AuthApple
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
  /api/v1/auth/google:
    post:
      summary: ''
      operationId: postApiV1AuthGoogle
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
  /api/v1/auth/facebook:
    post:
      summary: ''
      operationId: postApiV1AuthFacebook
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
  /api/v1/auth/x:
    post:
      summary: ''
      operationId: postApiV1AuthX
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
  /api/v1/ecommerce/filters:
    get:
      summary: 'Get filter data for products'
      operationId: getFilterDataForProducts
      description: ''
      parameters:
        -
          in: query
          name: category
          description: 'Category ID to get filter data for a specific category.'
          example: null
          required: false
          schema:
            type: integer
            description: 'Category ID to get filter data for a specific category.'
            example: null
            nullable: false
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    categories:
                      -
                        id: 1
                        name: 'New Arrivals'
                        slug: new-arrivals
                        url: product-categories/new-arrivals
                        parent_id: 0
                      -
                        id: 2
                        name: Electronics
                        slug: electronics
                        url: product-categories/electronics
                        parent_id: 0
                      -
                        id: 19
                        name: Gifts
                        slug: gifts
                        url: product-categories/gifts
                        parent_id: 0
                      -
                        id: 20
                        name: Computers
                        slug: computers
                        url: product-categories/computers
                        parent_id: 0
                      -
                        id: 25
                        name: 'Smartphones & Tablets'
                        slug: smartphones-tablets
                        url: product-categories/smartphones-tablets
                        parent_id: 0
                      -
                        id: 26
                        name: "TV,\n                Video & Music"
                        slug: tv-video-music
                        url: product-categories/tv-video-music
                        parent_id: 0
                      -
                        id: 27
                        name: Cameras
                        slug: cameras
                        url: product-categories/cameras
                        parent_id: 0
                      -
                        id: 28
                        name: Cooking
                        slug: cooking
                        url: product-categories/cooking
                        parent_id: 0
                      -
                        id: 29
                        name: Accessories
                        slug: accessories
                        url: product-categories/accessories
                        parent_id: 0
                      -
                        id: 31
                        name: Sports
                        slug: sports
                        url: product-categories/sports
                        parent_id: 0
                      -
                        id: 32
                        name: 'Electronics Gadgets'
                        slug: electronics-gadgets
                        url: product-categories/electronics-gadgets
                        parent_id: 0
                      -
                        id: 3
                        name: Featured
                        slug: featured
                        url: product-categories/featured
                        parent_id: 2
                      -
                        id: 7
                        name: 'Computers & Laptops'
                        slug: computers-laptops
                        url: product-categories/computers-laptops
                        parent_id: 2
                      -
                        id: 12
                        name: Accessories
                        slug: accessories
                        url: product-categories/accessories
                        parent_id: 2
                      -
                        id: 17
                        name: 'Gaming Console'
                        slug: gaming-console
                        url: product-categories/gaming-console
                        parent_id: 2
                      -
                        id: 18
                        name: Playstation
                        slug: playstation
                        url: product-categories/playstation
                        parent_id: 2
                      -
                        id: 4
                        name: 'New Arrivals'
                        slug: new-arrivals
                        url: product-categories/new-arrivals
                        parent_id: 3
                      -
                        id: 5
                        name: 'Best Sellers'
                        slug: best-sellers
                        url: product-categories/best-sellers
                        parent_id: 3
                      -
                        id: 6
                        name: 'Mobile Phone'
                        slug: mobile-phone
                        url: product-categories/mobile-phone
                        parent_id: 3
                      -
                        id: 8
                        name: 'Top Brands'
                        slug: top-brands
                        url: product-categories/top-brands
                        parent_id: 7
                      -
                        id: 9
                        name: 'Weekly Best Selling'
                        slug: weekly-best-selling
                        url: product-categories/weekly-best-selling
                        parent_id: 7
                      -
                        id: 10
                        name: 'CPU Heat Pipes'
                        slug: cpu-heat-pipes
                        url: product-categories/cpu-heat-pipes
                        parent_id: 7
                      -
                        id: 11
                        name: 'CPU Coolers'
                        slug: cpu-coolers
                        url: product-categories/cpu-coolers
                        parent_id: 7
                      -
                        id: 13
                        name: Headphones
                        slug: headphones
                        url: product-categories/headphones
                        parent_id: 12
                      -
                        id: 14
                        name: 'Wireless Headphones'
                        slug: wireless-headphones
                        url: product-categories/wireless-headphones
                        parent_id: 12
                      -
                        id: 15
                        name: 'TWS Earphones'
                        slug: tws-earphones
                        url: product-categories/tws-earphones
                        parent_id: 12
                      -
                        id: 16
                        name: 'Smart Watch'
                        slug: smart-watch
                        url: product-categories/smart-watch
                        parent_id: 12
                      -
                        id: 21
                        name: Desktop
                        slug: desktop
                        url: product-categories/desktop
                        parent_id: 20
                      -
                        id: 22
                        name: Laptop
                        slug: laptop
                        url: product-categories/laptop
                        parent_id: 20
                      -
                        id: 23
                        name: Tablet
                        slug: tablet
                        url: product-categories/tablet
                        parent_id: 20
                      -
                        id: 24
                        name: Accessories
                        slug: accessories
                        url: product-categories/accessories
                        parent_id: 20
                      -
                        id: 30
                        name: 'With Bluetooth'
                        slug: with-bluetooth
                        url: product-categories/with-bluetooth
                        parent_id: 29
                      -
                        id: 33
                        name: Micrscope
                        slug: micrscope
                        url: product-categories/micrscope
                        parent_id: 32
                      -
                        id: 34
                        name: 'Remote Control'
                        slug: remote-control
                        url: product-categories/remote-control
                        parent_id: 32
                      -
                        id: 35
                        name: Monitor
                        slug: monitor
                        url: product-categories/monitor
                        parent_id: 32
                      -
                        id: 36
                        name: Thermometer
                        slug: thermometer
                        url: product-categories/thermometer
                        parent_id: 32
                      -
                        id: 37
                        name: Backpack
                        slug: backpack
                        url: product-categories/backpack
                        parent_id: 32
                      -
                        id: 38
                        name: Headphones
                        slug: headphones
                        url: product-categories/headphones
                        parent_id: 32
                    brands: []
                    tags: []
                    price_ranges: []
                    max_price: 0
                    current_category_id: 0
                    current_filter_categories: []
                    attributes:
                      -
                        id: 1
                        title: Color
                        slug: color
                        display_layout: visual
                        attributes: []
                      -
                        id: 3
                        title: Weight
                        slug: weight
                        display_layout: text
                        attributes: []
                      -
                        id: 2
                        title: Size
                        slug: size
                        display_layout: text
                        attributes: []
                      -
                        id: 4
                        title: Boxes
                        slug: boxes
                        display_layout: text
                        attributes: []
                  error: false
                  message: null
                properties:
                  data:
                    type: object
                    properties:
                      categories:
                        type: array
                        example:
                          -
                            id: 1
                            name: 'New Arrivals'
                            slug: new-arrivals
                            url: product-categories/new-arrivals
                            parent_id: 0
                          -
                            id: 2
                            name: Electronics
                            slug: electronics
                            url: product-categories/electronics
                            parent_id: 0
                          -
                            id: 19
                            name: Gifts
                            slug: gifts
                            url: product-categories/gifts
                            parent_id: 0
                          -
                            id: 20
                            name: Computers
                            slug: computers
                            url: product-categories/computers
                            parent_id: 0
                          -
                            id: 25
                            name: 'Smartphones & Tablets'
                            slug: smartphones-tablets
                            url: product-categories/smartphones-tablets
                            parent_id: 0
                          -
                            id: 26
                            name: "TV,\n                Video & Music"
                            slug: tv-video-music
                            url: product-categories/tv-video-music
                            parent_id: 0
                          -
                            id: 27
                            name: Cameras
                            slug: cameras
                            url: product-categories/cameras
                            parent_id: 0
                          -
                            id: 28
                            name: Cooking
                            slug: cooking
                            url: product-categories/cooking
                            parent_id: 0
                          -
                            id: 29
                            name: Accessories
                            slug: accessories
                            url: product-categories/accessories
                            parent_id: 0
                          -
                            id: 31
                            name: Sports
                            slug: sports
                            url: product-categories/sports
                            parent_id: 0
                          -
                            id: 32
                            name: 'Electronics Gadgets'
                            slug: electronics-gadgets
                            url: product-categories/electronics-gadgets
                            parent_id: 0
                          -
                            id: 3
                            name: Featured
                            slug: featured
                            url: product-categories/featured
                            parent_id: 2
                          -
                            id: 7
                            name: 'Computers & Laptops'
                            slug: computers-laptops
                            url: product-categories/computers-laptops
                            parent_id: 2
                          -
                            id: 12
                            name: Accessories
                            slug: accessories
                            url: product-categories/accessories
                            parent_id: 2
                          -
                            id: 17
                            name: 'Gaming Console'
                            slug: gaming-console
                            url: product-categories/gaming-console
                            parent_id: 2
                          -
                            id: 18
                            name: Playstation
                            slug: playstation
                            url: product-categories/playstation
                            parent_id: 2
                          -
                            id: 4
                            name: 'New Arrivals'
                            slug: new-arrivals
                            url: product-categories/new-arrivals
                            parent_id: 3
                          -
                            id: 5
                            name: 'Best Sellers'
                            slug: best-sellers
                            url: product-categories/best-sellers
                            parent_id: 3
                          -
                            id: 6
                            name: 'Mobile Phone'
                            slug: mobile-phone
                            url: product-categories/mobile-phone
                            parent_id: 3
                          -
                            id: 8
                            name: 'Top Brands'
                            slug: top-brands
                            url: product-categories/top-brands
                            parent_id: 7
                          -
                            id: 9
                            name: 'Weekly Best Selling'
                            slug: weekly-best-selling
                            url: product-categories/weekly-best-selling
                            parent_id: 7
                          -
                            id: 10
                            name: 'CPU Heat Pipes'
                            slug: cpu-heat-pipes
                            url: product-categories/cpu-heat-pipes
                            parent_id: 7
                          -
                            id: 11
                            name: 'CPU Coolers'
                            slug: cpu-coolers
                            url: product-categories/cpu-coolers
                            parent_id: 7
                          -
                            id: 13
                            name: Headphones
                            slug: headphones
                            url: product-categories/headphones
                            parent_id: 12
                          -
                            id: 14
                            name: 'Wireless Headphones'
                            slug: wireless-headphones
                            url: product-categories/wireless-headphones
                            parent_id: 12
                          -
                            id: 15
                            name: 'TWS Earphones'
                            slug: tws-earphones
                            url: product-categories/tws-earphones
                            parent_id: 12
                          -
                            id: 16
                            name: 'Smart Watch'
                            slug: smart-watch
                            url: product-categories/smart-watch
                            parent_id: 12
                          -
                            id: 21
                            name: Desktop
                            slug: desktop
                            url: product-categories/desktop
                            parent_id: 20
                          -
                            id: 22
                            name: Laptop
                            slug: laptop
                            url: product-categories/laptop
                            parent_id: 20
                          -
                            id: 23
                            name: Tablet
                            slug: tablet
                            url: product-categories/tablet
                            parent_id: 20
                          -
                            id: 24
                            name: Accessories
                            slug: accessories
                            url: product-categories/accessories
                            parent_id: 20
                          -
                            id: 30
                            name: 'With Bluetooth'
                            slug: with-bluetooth
                            url: product-categories/with-bluetooth
                            parent_id: 29
                          -
                            id: 33
                            name: Micrscope
                            slug: micrscope
                            url: product-categories/micrscope
                            parent_id: 32
                          -
                            id: 34
                            name: 'Remote Control'
                            slug: remote-control
                            url: product-categories/remote-control
                            parent_id: 32
                          -
                            id: 35
                            name: Monitor
                            slug: monitor
                            url: product-categories/monitor
                            parent_id: 32
                          -
                            id: 36
                            name: Thermometer
                            slug: thermometer
                            url: product-categories/thermometer
                            parent_id: 32
                          -
                            id: 37
                            name: Backpack
                            slug: backpack
                            url: product-categories/backpack
                            parent_id: 32
                          -
                            id: 38
                            name: Headphones
                            slug: headphones
                            url: product-categories/headphones
                            parent_id: 32
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            name:
                              type: string
                              example: 'New Arrivals'
                            slug:
                              type: string
                              example: new-arrivals
                            url:
                              type: string
                              example: product-categories/new-arrivals
                            parent_id:
                              type: integer
                              example: 0
                      brands:
                        type: array
                        example: []
                      tags:
                        type: array
                        example: []
                      price_ranges:
                        type: array
                        example: []
                      max_price:
                        type: integer
                        example: 0
                      current_category_id:
                        type: integer
                        example: 0
                      current_filter_categories:
                        type: array
                        example: []
                      attributes:
                        type: array
                        example:
                          -
                            id: 1
                            title: Color
                            slug: color
                            display_layout: visual
                            attributes: []
                          -
                            id: 3
                            title: Weight
                            slug: weight
                            display_layout: text
                            attributes: []
                          -
                            id: 2
                            title: Size
                            slug: size
                            display_layout: text
                            attributes: []
                          -
                            id: 4
                            title: Boxes
                            slug: boxes
                            display_layout: text
                            attributes: []
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            title:
                              type: string
                              example: Color
                            slug:
                              type: string
                              example: color
                            display_layout:
                              type: string
                              example: visual
                            attributes:
                              type: array
                              example: []
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: null
      tags:
        - Filters
      security: []
  /api/v1/ecommerce/flash-sales:
    get:
      summary: 'Get flash sales'
      operationId: getFlashSales
      description: ''
      parameters:
        -
          in: query
          name: keys
          description: 'Array of flash sale keys to filter by.'
          example: null
          required: false
          schema:
            type: array
            description: 'Array of flash sale keys to filter by.'
            example: null
            items:
              type: string
      responses:
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: 'The keys field is required.'
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: 'The keys field is required.'
      tags:
        - 'Flash Sale'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                keys:
                  type: array
                  description: 'Array of flash sale keys to filter by.'
                  example: null
                  items:
                    type: string
      security: []
  /api/v1/languages:
    get:
      summary: 'Get list of available languages'
      operationId: getListOfAvailableLanguages
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    -
                      lang_id: 1
                      lang_name: English
                      lang_locale: en
                      lang_code: en_US
                      lang_flag: '<svg ...>'
                      lang_is_default: true
                      lang_is_rtl: false
                      lang_order: 0
                    -
                      lang_id: 2
                      lang_name: Vietnamese
                      lang_locale: vi
                      lang_code: vi
                      lang_flag: '<svg ...>'
                      lang_is_default: false
                      lang_is_rtl: false
                      lang_order: 1
                  message: null
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: array
                    example:
                      -
                        lang_id: 1
                        lang_name: English
                        lang_locale: en
                        lang_code: en_US
                        lang_flag: '<svg ...>'
                        lang_is_default: true
                        lang_is_rtl: false
                        lang_order: 0
                      -
                        lang_id: 2
                        lang_name: Vietnamese
                        lang_locale: vi
                        lang_code: vi
                        lang_flag: '<svg ...>'
                        lang_is_default: false
                        lang_is_rtl: false
                        lang_order: 1
                    items:
                      type: object
                      properties:
                        lang_id:
                          type: integer
                          example: 1
                        lang_name:
                          type: string
                          example: English
                        lang_locale:
                          type: string
                          example: en
                        lang_code:
                          type: string
                          example: en_US
                        lang_flag:
                          type: string
                          example: '<svg ...>'
                        lang_is_default:
                          type: boolean
                          example: true
                        lang_is_rtl:
                          type: boolean
                          example: false
                        lang_order:
                          type: integer
                          example: 0
                  message:
                    type: string
                    example: null
      tags:
        - Languages
      security: []
  /api/v1/languages/current:
    get:
      summary: 'Get current language'
      operationId: getCurrentLanguage
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    lang_id: 1
                    lang_name: English
                    lang_locale: en
                    lang_code: en_US
                    lang_flag: us
                    lang_is_default: true
                    lang_is_rtl: false
                    lang_order: 0
                  message: null
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: object
                    properties:
                      lang_id:
                        type: integer
                        example: 1
                      lang_name:
                        type: string
                        example: English
                      lang_locale:
                        type: string
                        example: en
                      lang_code:
                        type: string
                        example: en_US
                      lang_flag:
                        type: string
                        example: us
                      lang_is_default:
                        type: boolean
                        example: true
                      lang_is_rtl:
                        type: boolean
                        example: false
                      lang_order:
                        type: integer
                        example: 0
                  message:
                    type: string
                    example: null
      tags:
        - Languages
      security: []
  /api/v1/notifications:
    get:
      summary: 'Get user notifications'
      operationId: getUserNotifications
      description: 'Retrieve notifications for the authenticated user.'
      parameters:
        -
          in: query
          name: page
          description: 'Page number for pagination.'
          example: 1
          required: false
          schema:
            type: integer
            description: 'Page number for pagination.'
            example: 1
            nullable: false
        -
          in: query
          name: per_page
          description: 'Number of notifications per page (max 50).'
          example: 20
          required: false
          schema:
            type: integer
            description: 'Number of notifications per page (max 50).'
            example: 20
            nullable: false
        -
          in: query
          name: unread_only
          description: 'Filter to show only unread notifications.'
          example: false
          required: false
          schema:
            type: boolean
            description: 'Filter to show only unread notifications.'
            example: false
            nullable: false
        -
          in: query
          name: type
          description: 'Filter by notification type.'
          example: general
          required: false
          schema:
            type: string
            description: 'Filter by notification type.'
            example: general
            nullable: false
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Notifications
      security: []
  /api/v1/notifications/stats:
    get:
      summary: 'Get notification statistics'
      operationId: getNotificationStatistics
      description: 'Get notification statistics for the authenticated user.'
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Notifications
      security: []
  /api/v1/notifications/mark-all-read:
    post:
      summary: 'Mark all notifications as read'
      operationId: markAllNotificationsAsRead
      description: 'Mark all notifications as read for the authenticated user.'
      parameters: []
      responses: {  }
      tags:
        - Notifications
      security: []
  '/api/v1/notifications/{id}/read':
    post:
      summary: 'Mark notification as read'
      operationId: markNotificationAsRead
      description: 'Mark a specific notification as read for the authenticated user.'
      parameters: []
      responses: {  }
      tags:
        - Notifications
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the notification.'
        example: consequatur
        required: true
        schema:
          type: string
  '/api/v1/notifications/{id}/clicked':
    post:
      summary: 'Mark notification as clicked'
      operationId: markNotificationAsClicked
      description: 'Mark a notification as clicked when user taps on it.'
      parameters: []
      responses: {  }
      tags:
        - Notifications
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the notification.'
        example: consequatur
        required: true
        schema:
          type: string
  '/api/v1/notifications/{id}':
    delete:
      summary: 'Delete notification'
      operationId: deleteNotification
      description: "Delete a notification from user's list."
      parameters: []
      responses: {  }
      tags:
        - Notifications
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the notification.'
        example: consequatur
        required: true
        schema:
          type: string
  /api/v1/ecommerce/order-returns:
    get:
      summary: 'Get list of order return requests for the current user'
      operationId: getListOfOrderReturnRequestsForTheCurrentUser
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - 'Order Returns'
    post:
      summary: 'Submit a new order return request'
      operationId: submitANewOrderReturnRequest
      description: ''
      parameters: []
      responses: {  }
      tags:
        - 'Order Returns'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                order_id:
                  type: integer
                  description: 'The ID of the order to return.'
                  example: 1
                  nullable: false
                return_items:
                  type: array
                  description: 'The items to return with order_item_id, is_return, and qty.'
                  example:
                    - consequatur
                  items:
                    type: string
                reason:
                  type: string
                  description: 'The reason for the return.'
                  example: DAMAGED_PRODUCT
                  nullable: false
              required:
                - order_id
                - return_items
                - reason
  '/api/v1/ecommerce/order-returns/{id}':
    get:
      summary: 'Get detail of an order return request'
      operationId: getDetailOfAnOrderReturnRequest
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - 'Order Returns'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the order return.'
        example: '1562'
        required: true
        schema:
          type: string
  '/api/v1/ecommerce/orders/{order_id}/returns':
    get:
      summary: 'Get order information for return request'
      operationId: getOrderInformationForReturnRequest
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - 'Order Returns'
    parameters:
      -
        in: path
        name: order_id
        description: 'The ID of the order.'
        example: '1562'
        required: true
        schema:
          type: string
  /api/v1/ecommerce/orders:
    get:
      summary: 'Get list of orders by customer'
      operationId: getListOfOrdersByCustomer
      description: ''
      parameters:
        -
          in: query
          name: status
          description: 'Filter orders by status (pending, processing, completed, canceled).'
          example: completed
          required: false
          schema:
            type: string
            description: 'Filter orders by status (pending, processing, completed, canceled).'
            example: completed
            nullable: false
        -
          in: query
          name: shipping_status
          description: 'Filter orders by shipping status (not_shipped, delivering, delivered, canceled).'
          example: delivered
          required: false
          schema:
            type: string
            description: 'Filter orders by shipping status (not_shipped, delivering, delivered, canceled).'
            example: delivered
            nullable: false
        -
          in: query
          name: payment_status
          description: 'Filter orders by payment status (pending, completed, refunding, refunded, canceled).'
          example: completed
          required: false
          schema:
            type: string
            description: 'Filter orders by payment status (pending, completed, refunding, refunded, canceled).'
            example: completed
            nullable: false
        -
          in: query
          name: per_page
          description: 'Number of orders per page.'
          example: 10
          required: false
          schema:
            type: integer
            description: 'Number of orders per page.'
            example: 10
            nullable: false
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Orders
  '/api/v1/ecommerce/orders/{id}':
    get:
      summary: 'Get order detail'
      operationId: getOrderDetail
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Orders
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the order.'
        example: consequatur
        required: true
        schema:
          type: string
  '/api/v1/ecommerce/orders/{id}/cancel':
    post:
      summary: 'Cancel an order'
      operationId: cancelAnOrder
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Orders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                cancellation_reason:
                  type: string
                  description: 'The reason for cancellation.'
                  example: OTHER
                  nullable: false
                cancellation_reason_description:
                  type: string
                  description: 'The description of the cancellation reason (required if cancellation_reason is OTHER).'
                  example: 'I found a better deal elsewhere'
                  nullable: true
              required:
                - cancellation_reason
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the order.'
        example: consequatur
        required: true
        schema:
          type: string
  '/api/v1/ecommerce/orders/{id}/invoice':
    get:
      summary: 'Print an order invoice'
      operationId: printAnOrderInvoice
      description: ''
      parameters:
        -
          in: query
          name: type
          description: 'Type of response (print or download).'
          example: download
          required: false
          schema:
            type: string
            description: 'Type of response (print or download).'
            example: download
            nullable: false
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Orders
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the order.'
        example: consequatur
        required: true
        schema:
          type: string
  '/api/v1/ecommerce/orders/{id}/upload-proof':
    post:
      summary: 'Upload payment proof for an order'
      operationId: uploadPaymentProofForAnOrder
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Orders
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: 'The payment proof file (jpeg, jpg, png, pdf, max 2MB).'
                  nullable: false
              required:
                - file
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the order.'
        example: consequatur
        required: true
        schema:
          type: string
  '/api/v1/ecommerce/orders/{id}/download-proof':
    get:
      summary: 'Download payment proof for an order'
      operationId: downloadPaymentProofForAnOrder
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Orders
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the order.'
        example: consequatur
        required: true
        schema:
          type: string
  '/api/v1/ecommerce/orders/{id}/confirm-delivery':
    post:
      summary: 'Confirm delivery of an order'
      operationId: confirmDeliveryOfAnOrder
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Orders
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the order.'
        example: consequatur
        required: true
        schema:
          type: string
  /api/v1/ecommerce/orders/tracking:
    post:
      summary: 'Track an order'
      operationId: trackAnOrder
      description: 'Track an order by order code and email/phone'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Order found successfully'
                  data:
                    order:
                      id: 1
                      code: ORD-12345
                      status: completed
                      amount: 100.0
                      shipping_amount: 10.0
                      payment_fee: 5.0
                      tax_amount: 5.0
                      sub_total: 90.0
                      discount_amount: 0.0
                      payment_id: 1
                      user_id: 1
                      created_at: '2023-08-10T12:34:56.000000Z'
                      updated_at: '2023-08-10T12:34:56.000000Z'
                      address:
                        id: 1
                        name: 'John Doe'
                        email: customer@example.com
                        phone: '+1234567890'
                        address: '123 Main St'
                        city: 'New York'
                        state: NY
                        country: US
                        zip_code: '10001'
                      products:
                        -
                          id: 1
                          name: 'Product 1'
                          price: 90.0
                          qty: 1
                      histories:
                        -
                          id: 1
                          action: create_order
                          description: 'Order was created'
                          created_at: '2023-08-10T12:34:56.000000Z'
                      shipment:
                        id: 1
                        status: delivered
                        tracking_id: SHIP-12345
                        tracking_link: 'https://example.com/tracking/SHIP-12345'
                      payment:
                        id: 1
                        status: completed
                        payment_channel: stripe
                        amount: 100.0
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Order found successfully'
                  data:
                    type: object
                    properties:
                      order:
                        type: object
                        properties:
                          id:
                            type: integer
                            example: 1
                          code:
                            type: string
                            example: ORD-12345
                          status:
                            type: string
                            example: completed
                          amount:
                            type: number
                            example: 100.0
                          shipping_amount:
                            type: number
                            example: 10.0
                          payment_fee:
                            type: number
                            example: 5.0
                          tax_amount:
                            type: number
                            example: 5.0
                          sub_total:
                            type: number
                            example: 90.0
                          discount_amount:
                            type: number
                            example: 0.0
                          payment_id:
                            type: integer
                            example: 1
                          user_id:
                            type: integer
                            example: 1
                          created_at:
                            type: string
                            example: '2023-08-10T12:34:56.000000Z'
                          updated_at:
                            type: string
                            example: '2023-08-10T12:34:56.000000Z'
                          address:
                            type: object
                            properties:
                              id:
                                type: integer
                                example: 1
                              name:
                                type: string
                                example: 'John Doe'
                              email:
                                type: string
                                example: customer@example.com
                              phone:
                                type: string
                                example: '+1234567890'
                              address:
                                type: string
                                example: '123 Main St'
                              city:
                                type: string
                                example: 'New York'
                              state:
                                type: string
                                example: NY
                              country:
                                type: string
                                example: US
                              zip_code:
                                type: string
                                example: '10001'
                          products:
                            type: array
                            example:
                              -
                                id: 1
                                name: 'Product 1'
                                price: 90
                                qty: 1
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 1
                                name:
                                  type: string
                                  example: 'Product 1'
                                price:
                                  type: number
                                  example: 90.0
                                qty:
                                  type: integer
                                  example: 1
                          histories:
                            type: array
                            example:
                              -
                                id: 1
                                action: create_order
                                description: 'Order was created'
                                created_at: '2023-08-10T12:34:56.000000Z'
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 1
                                action:
                                  type: string
                                  example: create_order
                                description:
                                  type: string
                                  example: 'Order was created'
                                created_at:
                                  type: string
                                  example: '2023-08-10T12:34:56.000000Z'
                          shipment:
                            type: object
                            properties:
                              id:
                                type: integer
                                example: 1
                              status:
                                type: string
                                example: delivered
                              tracking_id:
                                type: string
                                example: SHIP-12345
                              tracking_link:
                                type: string
                                example: 'https://example.com/tracking/SHIP-12345'
                          payment:
                            type: object
                            properties:
                              id:
                                type: integer
                                example: 1
                              status:
                                type: string
                                example: completed
                              payment_channel:
                                type: string
                                example: stripe
                              amount:
                                type: number
                                example: 100.0
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Order not found'
                  code: 404
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Order not found'
                  code:
                    type: integer
                    example: 404
      tags:
        - Orders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                code:
                  type: string
                  description: 'The order code.'
                  example: ORD-12345
                  nullable: false
                email:
                  type: string
                  description: 'if phone not provided The email associated with the order.'
                  example: customer@example.com
                  nullable: false
                phone:
                  type: string
                  description: 'if email not provided The phone number associated with the order.'
                  example: '+1234567890'
                  nullable: false
              required:
                - code
                - email
                - phone
      security: []
  /api/v1/pages:
    get:
      summary: 'List pages'
      operationId: listPages
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 1
                      name: Home
                      slug: home
                      description: null
                      image: null
                      template: full-width
                      status:
                        value: published
                        label: Published
                      created_at: '2025-06-25T01:43:45.000000Z'
                      updated_at: '2025-06-25T01:43:45.000000Z'
                    -
                      id: 2
                      name: Categories
                      slug: categories
                      description: null
                      image: null
                      template: full-width
                      status:
                        value: published
                        label: Published
                      created_at: '2025-06-25T01:43:45.000000Z'
                      updated_at: '2025-06-25T01:43:45.000000Z'
                    -
                      id: 3
                      name: Brands
                      slug: brands
                      description: null
                      image: null
                      template: null
                      status:
                        value: published
                        label: Published
                      created_at: '2025-06-25T01:43:45.000000Z'
                      updated_at: '2025-06-25T01:43:45.000000Z'
                    -
                      id: 4
                      name: Coupons
                      slug: coupons
                      description: null
                      image: null
                      template: full-width
                      status:
                        value: published
                        label: Published
                      created_at: '2025-06-25T01:43:45.000000Z'
                      updated_at: '2025-06-25T01:43:45.000000Z'
                    -
                      id: 5
                      name: Blog
                      slug: blog
                      description: null
                      image: null
                      template: full-width
                      status:
                        value: published
                        label: Published
                      created_at: '2025-06-25T01:43:45.000000Z'
                      updated_at: '2025-06-25T01:43:45.000000Z'
                    -
                      id: 6
                      name: Contact
                      slug: contact
                      description: null
                      image: null
                      template: full-width
                      status:
                        value: published
                        label: Published
                      created_at: '2025-06-25T01:43:45.000000Z'
                      updated_at: '2025-06-25T01:43:45.000000Z'
                    -
                      id: 7
                      name: FAQs
                      slug: faqs
                      description: null
                      image: null
                      template: null
                      status:
                        value: published
                        label: Published
                      created_at: '2025-06-25T01:43:45.000000Z'
                      updated_at: '2025-06-25T01:43:45.000000Z'
                    -
                      id: 8
                      name: 'Cookie Policy'
                      slug: cookie-policy
                      description: null
                      image: null
                      template: null
                      status:
                        value: published
                        label: Published
                      created_at: '2025-06-25T01:43:45.000000Z'
                      updated_at: '2025-06-25T01:43:45.000000Z'
                    -
                      id: 9
                      name: 'Our Story'
                      slug: our-story
                      description: null
                      image: null
                      template: null
                      status:
                        value: published
                        label: Published
                      created_at: '2025-06-25T01:43:45.000000Z'
                      updated_at: '2025-06-25T01:43:45.000000Z'
                    -
                      id: 10
                      name: Careers
                      slug: careers
                      description: null
                      image: null
                      template: null
                      status:
                        value: published
                        label: Published
                      created_at: '2025-06-25T01:43:45.000000Z'
                      updated_at: '2025-06-25T01:43:45.000000Z'
                  links:
                    first: 'http://shofy.test/api/v1/pages?page=1'
                    last: 'http://shofy.test/api/v1/pages?page=2'
                    prev: null
                    next: 'http://shofy.test/api/v1/pages?page=2'
                  meta:
                    current_page: 1
                    from: 1
                    last_page: 2
                    links:
                      -
                        url: null
                        label: '&laquo; Previous'
                        active: false
                      -
                        url: 'http://shofy.test/api/v1/pages?page=1'
                        label: '1'
                        active: true
                      -
                        url: 'http://shofy.test/api/v1/pages?page=2'
                        label: '2'
                        active: false
                      -
                        url: 'http://shofy.test/api/v1/pages?page=2'
                        label: 'Next &raquo;'
                        active: false
                    path: 'http://shofy.test/api/v1/pages'
                    per_page: 10
                    to: 10
                    total: 13
                  error: false
                  message: null
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 1
                        name: Home
                        slug: home
                        description: null
                        image: null
                        template: full-width
                        status:
                          value: published
                          label: Published
                        created_at: '2025-06-25T01:43:45.000000Z'
                        updated_at: '2025-06-25T01:43:45.000000Z'
                      -
                        id: 2
                        name: Categories
                        slug: categories
                        description: null
                        image: null
                        template: full-width
                        status:
                          value: published
                          label: Published
                        created_at: '2025-06-25T01:43:45.000000Z'
                        updated_at: '2025-06-25T01:43:45.000000Z'
                      -
                        id: 3
                        name: Brands
                        slug: brands
                        description: null
                        image: null
                        template: null
                        status:
                          value: published
                          label: Published
                        created_at: '2025-06-25T01:43:45.000000Z'
                        updated_at: '2025-06-25T01:43:45.000000Z'
                      -
                        id: 4
                        name: Coupons
                        slug: coupons
                        description: null
                        image: null
                        template: full-width
                        status:
                          value: published
                          label: Published
                        created_at: '2025-06-25T01:43:45.000000Z'
                        updated_at: '2025-06-25T01:43:45.000000Z'
                      -
                        id: 5
                        name: Blog
                        slug: blog
                        description: null
                        image: null
                        template: full-width
                        status:
                          value: published
                          label: Published
                        created_at: '2025-06-25T01:43:45.000000Z'
                        updated_at: '2025-06-25T01:43:45.000000Z'
                      -
                        id: 6
                        name: Contact
                        slug: contact
                        description: null
                        image: null
                        template: full-width
                        status:
                          value: published
                          label: Published
                        created_at: '2025-06-25T01:43:45.000000Z'
                        updated_at: '2025-06-25T01:43:45.000000Z'
                      -
                        id: 7
                        name: FAQs
                        slug: faqs
                        description: null
                        image: null
                        template: null
                        status:
                          value: published
                          label: Published
                        created_at: '2025-06-25T01:43:45.000000Z'
                        updated_at: '2025-06-25T01:43:45.000000Z'
                      -
                        id: 8
                        name: 'Cookie Policy'
                        slug: cookie-policy
                        description: null
                        image: null
                        template: null
                        status:
                          value: published
                          label: Published
                        created_at: '2025-06-25T01:43:45.000000Z'
                        updated_at: '2025-06-25T01:43:45.000000Z'
                      -
                        id: 9
                        name: 'Our Story'
                        slug: our-story
                        description: null
                        image: null
                        template: null
                        status:
                          value: published
                          label: Published
                        created_at: '2025-06-25T01:43:45.000000Z'
                        updated_at: '2025-06-25T01:43:45.000000Z'
                      -
                        id: 10
                        name: Careers
                        slug: careers
                        description: null
                        image: null
                        template: null
                        status:
                          value: published
                          label: Published
                        created_at: '2025-06-25T01:43:45.000000Z'
                        updated_at: '2025-06-25T01:43:45.000000Z'
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 1
                        name:
                          type: string
                          example: Home
                        slug:
                          type: string
                          example: home
                        description:
                          type: string
                          example: null
                        image:
                          type: string
                          example: null
                        template:
                          type: string
                          example: full-width
                        status:
                          type: object
                          properties:
                            value:
                              type: string
                              example: published
                            label:
                              type: string
                              example: Published
                        created_at:
                          type: string
                          example: '2025-06-25T01:43:45.000000Z'
                        updated_at:
                          type: string
                          example: '2025-06-25T01:43:45.000000Z'
                  links:
                    type: object
                    properties:
                      first:
                        type: string
                        example: 'http://shofy.test/api/v1/pages?page=1'
                      last:
                        type: string
                        example: 'http://shofy.test/api/v1/pages?page=2'
                      prev:
                        type: string
                        example: null
                      next:
                        type: string
                        example: 'http://shofy.test/api/v1/pages?page=2'
                  meta:
                    type: object
                    properties:
                      current_page:
                        type: integer
                        example: 1
                      from:
                        type: integer
                        example: 1
                      last_page:
                        type: integer
                        example: 2
                      links:
                        type: array
                        example:
                          -
                            url: null
                            label: '&laquo; Previous'
                            active: false
                          -
                            url: 'http://shofy.test/api/v1/pages?page=1'
                            label: '1'
                            active: true
                          -
                            url: 'http://shofy.test/api/v1/pages?page=2'
                            label: '2'
                            active: false
                          -
                            url: 'http://shofy.test/api/v1/pages?page=2'
                            label: 'Next &raquo;'
                            active: false
                        items:
                          type: object
                          properties:
                            url:
                              type: string
                              example: null
                            label:
                              type: string
                              example: '&laquo; Previous'
                            active:
                              type: boolean
                              example: false
                      path:
                        type: string
                        example: 'http://shofy.test/api/v1/pages'
                      per_page:
                        type: integer
                        example: 10
                      to:
                        type: integer
                        example: 10
                      total:
                        type: integer
                        example: 13
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: null
      tags:
        - Page
      security: []
  '/api/v1/pages/{id}':
    get:
      summary: 'Get page by ID'
      operationId: getPageByID
      description: ''
      parameters:
        -
          in: query
          name: id
          description: 'Find by ID of page.'
          example: 17
          required: false
          schema:
            type: integer
            description: 'Find by ID of page.'
            example: 17
            nullable: false
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: 'Not found'
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: 'Not found'
      tags:
        - Page
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the page.'
        example: consequatur
        required: true
        schema:
          type: string
  /api/v1/ecommerce/product-categories:
    get:
      summary: 'Get list of product categories'
      operationId: getListOfProductCategories
      description: ''
      parameters:
        -
          in: query
          name: categories
          description: 'nullable array List of category IDs if you need filter by categories, (e.g. [1,2,3]).'
          example: null
          required: false
          schema:
            type: string
            description: 'nullable array List of category IDs if you need filter by categories, (e.g. [1,2,3]).'
            example: null
            nullable: false
        -
          in: query
          name: page
          description: 'Page number. Default: 1.'
          example: null
          required: false
          schema:
            type: integer
            description: 'Page number. Default: 1.'
            example: null
            nullable: false
        -
          in: query
          name: per_page
          description: 'Number of items per page. Default: 16.'
          example: null
          required: false
          schema:
            type: integer
            description: 'Number of items per page. Default: 16.'
            example: null
            nullable: false
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 21
                      name: Desktop
                      icon: 'ti ti-device-desktop'
                      icon_image: null
                      is_featured: 0
                      parent_id: 20
                      slug: desktop
                      image_with_sizes:
                        origin: 'http://shofy.test/storage/main/product-categories/category-thumb-5-600x600.jpg'
                        thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-5-150x150.jpg'
                        medium: 'http://shofy.test/storage/main/product-categories/category-thumb-5-600x600.jpg'
                        rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-5-420x270.jpg'
                    -
                      id: 33
                      name: Micrscope
                      icon: null
                      icon_image: null
                      is_featured: 0
                      parent_id: 32
                      slug: micrscope
                      image_with_sizes: null
                    -
                      id: 3
                      name: Featured
                      icon: null
                      icon_image: null
                      is_featured: 0
                      parent_id: 2
                      slug: featured
                      image_with_sizes:
                        origin: 'http://shofy.test/storage/main/product-categories/menu-1-600x600.jpg'
                        thumb: 'http://shofy.test/storage/main/product-categories/menu-1-150x150.jpg'
                        medium: 'http://shofy.test/storage/main/product-categories/menu-1-600x600.jpg'
                        rectangle: 'http://shofy.test/storage/main/product-categories/menu-1-420x270.jpg'
                    -
                      id: 4
                      name: 'New Arrivals'
                      icon: null
                      icon_image: null
                      is_featured: 0
                      parent_id: 3
                      slug: new-arrivals
                      image_with_sizes: null
                    -
                      id: 1
                      name: 'New Arrivals'
                      icon: 'ti ti-home'
                      icon_image: null
                      is_featured: 0
                      parent_id: 0
                      slug: new-arrivals
                      image_with_sizes: null
                    -
                      id: 8
                      name: 'Top Brands'
                      icon: null
                      icon_image: null
                      is_featured: 0
                      parent_id: 7
                      slug: top-brands
                      image_with_sizes: null
                    -
                      id: 22
                      name: Laptop
                      icon: 'ti ti-device-laptop'
                      icon_image: null
                      is_featured: 0
                      parent_id: 20
                      slug: laptop
                      image_with_sizes:
                        origin: 'http://shofy.test/storage/main/product-categories/category-thumb-3-600x600.jpg'
                        thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-3-150x150.jpg'
                        medium: 'http://shofy.test/storage/main/product-categories/category-thumb-3-600x600.jpg'
                        rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-3-420x270.jpg'
                    -
                      id: 2
                      name: Electronics
                      icon: 'ti ti-device-tv'
                      icon_image: null
                      is_featured: 0
                      parent_id: 0
                      slug: electronics
                      image_with_sizes: null
                    -
                      id: 14
                      name: 'Wireless Headphones'
                      icon: null
                      icon_image: null
                      is_featured: 0
                      parent_id: 12
                      slug: wireless-headphones
                      image_with_sizes:
                        origin: 'http://shofy.test/storage/main/product-categories/category-thumb-1-600x600.jpg'
                        thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-1-150x150.jpg'
                        medium: 'http://shofy.test/storage/main/product-categories/category-thumb-1-600x600.jpg'
                        rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-1-420x270.jpg'
                    -
                      id: 9
                      name: 'Weekly Best Selling'
                      icon: null
                      icon_image: null
                      is_featured: 0
                      parent_id: 7
                      slug: weekly-best-selling
                      image_with_sizes: null
                    -
                      id: 5
                      name: 'Best Sellers'
                      icon: null
                      icon_image: null
                      is_featured: 0
                      parent_id: 3
                      slug: best-sellers
                      image_with_sizes: null
                    -
                      id: 34
                      name: 'Remote Control'
                      icon: null
                      icon_image: null
                      is_featured: 0
                      parent_id: 32
                      slug: remote-control
                      image_with_sizes: null
                    -
                      id: 12
                      name: Accessories
                      icon: null
                      icon_image: null
                      is_featured: 0
                      parent_id: 2
                      slug: accessories
                      image_with_sizes:
                        origin: 'http://shofy.test/storage/main/product-categories/menu-3-600x600.jpg'
                        thumb: 'http://shofy.test/storage/main/product-categories/menu-3-150x150.jpg'
                        medium: 'http://shofy.test/storage/main/product-categories/menu-3-600x600.jpg'
                        rectangle: 'http://shofy.test/storage/main/product-categories/menu-3-420x270.jpg'
                    -
                      id: 15
                      name: 'TWS Earphones'
                      icon: null
                      icon_image: null
                      is_featured: 0
                      parent_id: 12
                      slug: tws-earphones
                      image_with_sizes:
                        origin: 'http://shofy.test/storage/main/product-categories/category-thumb-6-600x600.jpg'
                        thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-6-150x150.jpg'
                        medium: 'http://shofy.test/storage/main/product-categories/category-thumb-6-600x600.jpg'
                        rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-6-420x270.jpg'
                    -
                      id: 19
                      name: Gifts
                      icon: 'ti ti-gift'
                      icon_image: null
                      is_featured: 0
                      parent_id: 0
                      slug: gifts
                      image_with_sizes: null
                    -
                      id: 23
                      name: Tablet
                      icon: 'ti ti-device-tablet'
                      icon_image: null
                      is_featured: 0
                      parent_id: 20
                      slug: tablet
                      image_with_sizes:
                        origin: 'http://shofy.test/storage/main/product-categories/category-thumb-4-600x600.jpg'
                        thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-4-150x150.jpg'
                        medium: 'http://shofy.test/storage/main/product-categories/category-thumb-4-600x600.jpg'
                        rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-4-420x270.jpg'
                    -
                      id: 35
                      name: Monitor
                      icon: null
                      icon_image: null
                      is_featured: 0
                      parent_id: 32
                      slug: monitor
                      image_with_sizes: null
                    -
                      id: 17
                      name: 'Gaming Console'
                      icon: null
                      icon_image: null
                      is_featured: 0
                      parent_id: 2
                      slug: gaming-console
                      image_with_sizes:
                        origin: 'http://shofy.test/storage/main/product-categories/category-thumb-8-600x600.jpg'
                        thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-8-150x150.jpg'
                        medium: 'http://shofy.test/storage/main/product-categories/category-thumb-8-600x600.jpg'
                        rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-8-420x270.jpg'
                    -
                      id: 36
                      name: Thermometer
                      icon: null
                      icon_image: null
                      is_featured: 0
                      parent_id: 32
                      slug: thermometer
                      image_with_sizes: null
                    -
                      id: 20
                      name: Computers
                      icon: 'ti ti-device-laptop'
                      icon_image: null
                      is_featured: 0
                      parent_id: 0
                      slug: computers
                      image_with_sizes: null
                    -
                      id: 24
                      name: Accessories
                      icon: 'ti ti-keyboard'
                      icon_image: null
                      is_featured: 0
                      parent_id: 20
                      slug: accessories
                      image_with_sizes: null
                    -
                      id: 11
                      name: 'CPU Coolers'
                      icon: null
                      icon_image: null
                      is_featured: 0
                      parent_id: 7
                      slug: cpu-coolers
                      image_with_sizes:
                        origin: 'http://shofy.test/storage/main/product-categories/category-thumb-9-600x600.jpg'
                        thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-9-150x150.jpg'
                        medium: 'http://shofy.test/storage/main/product-categories/category-thumb-9-600x600.jpg'
                        rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-9-420x270.jpg'
                    -
                      id: 25
                      name: 'Smartphones & Tablets'
                      icon: 'ti ti-device-mobile'
                      icon_image: null
                      is_featured: 0
                      parent_id: 0
                      slug: smartphones-tablets
                      image_with_sizes:
                        origin: 'http://shofy.test/storage/main/product-categories/category-thumb-10-600x600.jpg'
                        thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-10-150x150.jpg'
                        medium: 'http://shofy.test/storage/main/product-categories/category-thumb-10-600x600.jpg'
                        rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-10-420x270.jpg'
                    -
                      id: 18
                      name: Playstation
                      icon: null
                      icon_image: null
                      is_featured: 0
                      parent_id: 2
                      slug: playstation
                      image_with_sizes:
                        origin: 'http://shofy.test/storage/main/product-categories/category-thumb-12-600x600.jpg'
                        thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-12-150x150.jpg'
                        medium: 'http://shofy.test/storage/main/product-categories/category-thumb-12-600x600.jpg'
                        rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-12-420x270.jpg'
                    -
                      id: 37
                      name: Backpack
                      icon: null
                      icon_image: null
                      is_featured: 0
                      parent_id: 32
                      slug: backpack
                      image_with_sizes: null
                    -
                      id: 26
                      name: "TV,\n                Video & Music"
                      icon: 'ti ti-device-tv'
                      icon_image: null
                      is_featured: 0
                      parent_id: 0
                      slug: tv-video-music
                      image_with_sizes: null
                    -
                      id: 38
                      name: Headphones
                      icon: null
                      icon_image: null
                      is_featured: 0
                      parent_id: 32
                      slug: headphones
                      image_with_sizes:
                        origin: 'http://shofy.test/storage/main/product-categories/category-thumb-1-600x600.jpg'
                        thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-1-150x150.jpg'
                        medium: 'http://shofy.test/storage/main/product-categories/category-thumb-1-600x600.jpg'
                        rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-1-420x270.jpg'
                    -
                      id: 27
                      name: Cameras
                      icon: 'ti ti-camera'
                      icon_image: null
                      is_featured: 0
                      parent_id: 0
                      slug: cameras
                      image_with_sizes: null
                    -
                      id: 28
                      name: Cooking
                      icon: 'ti ti-grill-spatula'
                      icon_image: null
                      is_featured: 0
                      parent_id: 0
                      slug: cooking
                      image_with_sizes: null
                    -
                      id: 29
                      name: Accessories
                      icon: 'ti ti-building-store'
                      icon_image: null
                      is_featured: 0
                      parent_id: 0
                      slug: accessories
                      image_with_sizes: null
                    -
                      id: 31
                      name: Sports
                      icon: 'ti ti-ball-football'
                      icon_image: null
                      is_featured: 0
                      parent_id: 0
                      slug: sports
                      image_with_sizes: null
                    -
                      id: 32
                      name: 'Electronics Gadgets'
                      icon: 'ti ti-cpu-2'
                      icon_image: null
                      is_featured: 0
                      parent_id: 0
                      slug: electronics-gadgets
                      image_with_sizes: null
                  error: false
                  message: null
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 21
                        name: Desktop
                        icon: 'ti ti-device-desktop'
                        icon_image: null
                        is_featured: 0
                        parent_id: 20
                        slug: desktop
                        image_with_sizes:
                          origin: 'http://shofy.test/storage/main/product-categories/category-thumb-5-600x600.jpg'
                          thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-5-150x150.jpg'
                          medium: 'http://shofy.test/storage/main/product-categories/category-thumb-5-600x600.jpg'
                          rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-5-420x270.jpg'
                      -
                        id: 33
                        name: Micrscope
                        icon: null
                        icon_image: null
                        is_featured: 0
                        parent_id: 32
                        slug: micrscope
                        image_with_sizes: null
                      -
                        id: 3
                        name: Featured
                        icon: null
                        icon_image: null
                        is_featured: 0
                        parent_id: 2
                        slug: featured
                        image_with_sizes:
                          origin: 'http://shofy.test/storage/main/product-categories/menu-1-600x600.jpg'
                          thumb: 'http://shofy.test/storage/main/product-categories/menu-1-150x150.jpg'
                          medium: 'http://shofy.test/storage/main/product-categories/menu-1-600x600.jpg'
                          rectangle: 'http://shofy.test/storage/main/product-categories/menu-1-420x270.jpg'
                      -
                        id: 4
                        name: 'New Arrivals'
                        icon: null
                        icon_image: null
                        is_featured: 0
                        parent_id: 3
                        slug: new-arrivals
                        image_with_sizes: null
                      -
                        id: 1
                        name: 'New Arrivals'
                        icon: 'ti ti-home'
                        icon_image: null
                        is_featured: 0
                        parent_id: 0
                        slug: new-arrivals
                        image_with_sizes: null
                      -
                        id: 8
                        name: 'Top Brands'
                        icon: null
                        icon_image: null
                        is_featured: 0
                        parent_id: 7
                        slug: top-brands
                        image_with_sizes: null
                      -
                        id: 22
                        name: Laptop
                        icon: 'ti ti-device-laptop'
                        icon_image: null
                        is_featured: 0
                        parent_id: 20
                        slug: laptop
                        image_with_sizes:
                          origin: 'http://shofy.test/storage/main/product-categories/category-thumb-3-600x600.jpg'
                          thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-3-150x150.jpg'
                          medium: 'http://shofy.test/storage/main/product-categories/category-thumb-3-600x600.jpg'
                          rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-3-420x270.jpg'
                      -
                        id: 2
                        name: Electronics
                        icon: 'ti ti-device-tv'
                        icon_image: null
                        is_featured: 0
                        parent_id: 0
                        slug: electronics
                        image_with_sizes: null
                      -
                        id: 14
                        name: 'Wireless Headphones'
                        icon: null
                        icon_image: null
                        is_featured: 0
                        parent_id: 12
                        slug: wireless-headphones
                        image_with_sizes:
                          origin: 'http://shofy.test/storage/main/product-categories/category-thumb-1-600x600.jpg'
                          thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-1-150x150.jpg'
                          medium: 'http://shofy.test/storage/main/product-categories/category-thumb-1-600x600.jpg'
                          rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-1-420x270.jpg'
                      -
                        id: 9
                        name: 'Weekly Best Selling'
                        icon: null
                        icon_image: null
                        is_featured: 0
                        parent_id: 7
                        slug: weekly-best-selling
                        image_with_sizes: null
                      -
                        id: 5
                        name: 'Best Sellers'
                        icon: null
                        icon_image: null
                        is_featured: 0
                        parent_id: 3
                        slug: best-sellers
                        image_with_sizes: null
                      -
                        id: 34
                        name: 'Remote Control'
                        icon: null
                        icon_image: null
                        is_featured: 0
                        parent_id: 32
                        slug: remote-control
                        image_with_sizes: null
                      -
                        id: 12
                        name: Accessories
                        icon: null
                        icon_image: null
                        is_featured: 0
                        parent_id: 2
                        slug: accessories
                        image_with_sizes:
                          origin: 'http://shofy.test/storage/main/product-categories/menu-3-600x600.jpg'
                          thumb: 'http://shofy.test/storage/main/product-categories/menu-3-150x150.jpg'
                          medium: 'http://shofy.test/storage/main/product-categories/menu-3-600x600.jpg'
                          rectangle: 'http://shofy.test/storage/main/product-categories/menu-3-420x270.jpg'
                      -
                        id: 15
                        name: 'TWS Earphones'
                        icon: null
                        icon_image: null
                        is_featured: 0
                        parent_id: 12
                        slug: tws-earphones
                        image_with_sizes:
                          origin: 'http://shofy.test/storage/main/product-categories/category-thumb-6-600x600.jpg'
                          thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-6-150x150.jpg'
                          medium: 'http://shofy.test/storage/main/product-categories/category-thumb-6-600x600.jpg'
                          rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-6-420x270.jpg'
                      -
                        id: 19
                        name: Gifts
                        icon: 'ti ti-gift'
                        icon_image: null
                        is_featured: 0
                        parent_id: 0
                        slug: gifts
                        image_with_sizes: null
                      -
                        id: 23
                        name: Tablet
                        icon: 'ti ti-device-tablet'
                        icon_image: null
                        is_featured: 0
                        parent_id: 20
                        slug: tablet
                        image_with_sizes:
                          origin: 'http://shofy.test/storage/main/product-categories/category-thumb-4-600x600.jpg'
                          thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-4-150x150.jpg'
                          medium: 'http://shofy.test/storage/main/product-categories/category-thumb-4-600x600.jpg'
                          rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-4-420x270.jpg'
                      -
                        id: 35
                        name: Monitor
                        icon: null
                        icon_image: null
                        is_featured: 0
                        parent_id: 32
                        slug: monitor
                        image_with_sizes: null
                      -
                        id: 17
                        name: 'Gaming Console'
                        icon: null
                        icon_image: null
                        is_featured: 0
                        parent_id: 2
                        slug: gaming-console
                        image_with_sizes:
                          origin: 'http://shofy.test/storage/main/product-categories/category-thumb-8-600x600.jpg'
                          thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-8-150x150.jpg'
                          medium: 'http://shofy.test/storage/main/product-categories/category-thumb-8-600x600.jpg'
                          rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-8-420x270.jpg'
                      -
                        id: 36
                        name: Thermometer
                        icon: null
                        icon_image: null
                        is_featured: 0
                        parent_id: 32
                        slug: thermometer
                        image_with_sizes: null
                      -
                        id: 20
                        name: Computers
                        icon: 'ti ti-device-laptop'
                        icon_image: null
                        is_featured: 0
                        parent_id: 0
                        slug: computers
                        image_with_sizes: null
                      -
                        id: 24
                        name: Accessories
                        icon: 'ti ti-keyboard'
                        icon_image: null
                        is_featured: 0
                        parent_id: 20
                        slug: accessories
                        image_with_sizes: null
                      -
                        id: 11
                        name: 'CPU Coolers'
                        icon: null
                        icon_image: null
                        is_featured: 0
                        parent_id: 7
                        slug: cpu-coolers
                        image_with_sizes:
                          origin: 'http://shofy.test/storage/main/product-categories/category-thumb-9-600x600.jpg'
                          thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-9-150x150.jpg'
                          medium: 'http://shofy.test/storage/main/product-categories/category-thumb-9-600x600.jpg'
                          rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-9-420x270.jpg'
                      -
                        id: 25
                        name: 'Smartphones & Tablets'
                        icon: 'ti ti-device-mobile'
                        icon_image: null
                        is_featured: 0
                        parent_id: 0
                        slug: smartphones-tablets
                        image_with_sizes:
                          origin: 'http://shofy.test/storage/main/product-categories/category-thumb-10-600x600.jpg'
                          thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-10-150x150.jpg'
                          medium: 'http://shofy.test/storage/main/product-categories/category-thumb-10-600x600.jpg'
                          rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-10-420x270.jpg'
                      -
                        id: 18
                        name: Playstation
                        icon: null
                        icon_image: null
                        is_featured: 0
                        parent_id: 2
                        slug: playstation
                        image_with_sizes:
                          origin: 'http://shofy.test/storage/main/product-categories/category-thumb-12-600x600.jpg'
                          thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-12-150x150.jpg'
                          medium: 'http://shofy.test/storage/main/product-categories/category-thumb-12-600x600.jpg'
                          rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-12-420x270.jpg'
                      -
                        id: 37
                        name: Backpack
                        icon: null
                        icon_image: null
                        is_featured: 0
                        parent_id: 32
                        slug: backpack
                        image_with_sizes: null
                      -
                        id: 26
                        name: "TV,\n                Video & Music"
                        icon: 'ti ti-device-tv'
                        icon_image: null
                        is_featured: 0
                        parent_id: 0
                        slug: tv-video-music
                        image_with_sizes: null
                      -
                        id: 38
                        name: Headphones
                        icon: null
                        icon_image: null
                        is_featured: 0
                        parent_id: 32
                        slug: headphones
                        image_with_sizes:
                          origin: 'http://shofy.test/storage/main/product-categories/category-thumb-1-600x600.jpg'
                          thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-1-150x150.jpg'
                          medium: 'http://shofy.test/storage/main/product-categories/category-thumb-1-600x600.jpg'
                          rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-1-420x270.jpg'
                      -
                        id: 27
                        name: Cameras
                        icon: 'ti ti-camera'
                        icon_image: null
                        is_featured: 0
                        parent_id: 0
                        slug: cameras
                        image_with_sizes: null
                      -
                        id: 28
                        name: Cooking
                        icon: 'ti ti-grill-spatula'
                        icon_image: null
                        is_featured: 0
                        parent_id: 0
                        slug: cooking
                        image_with_sizes: null
                      -
                        id: 29
                        name: Accessories
                        icon: 'ti ti-building-store'
                        icon_image: null
                        is_featured: 0
                        parent_id: 0
                        slug: accessories
                        image_with_sizes: null
                      -
                        id: 31
                        name: Sports
                        icon: 'ti ti-ball-football'
                        icon_image: null
                        is_featured: 0
                        parent_id: 0
                        slug: sports
                        image_with_sizes: null
                      -
                        id: 32
                        name: 'Electronics Gadgets'
                        icon: 'ti ti-cpu-2'
                        icon_image: null
                        is_featured: 0
                        parent_id: 0
                        slug: electronics-gadgets
                        image_with_sizes: null
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 21
                        name:
                          type: string
                          example: Desktop
                        icon:
                          type: string
                          example: 'ti ti-device-desktop'
                        icon_image:
                          type: string
                          example: null
                        is_featured:
                          type: integer
                          example: 0
                        parent_id:
                          type: integer
                          example: 20
                        slug:
                          type: string
                          example: desktop
                        image_with_sizes:
                          type: object
                          properties:
                            origin:
                              type: string
                              example: 'http://shofy.test/storage/main/product-categories/category-thumb-5-600x600.jpg'
                            thumb:
                              type: string
                              example: 'http://shofy.test/storage/main/product-categories/category-thumb-5-150x150.jpg'
                            medium:
                              type: string
                              example: 'http://shofy.test/storage/main/product-categories/category-thumb-5-600x600.jpg'
                            rectangle:
                              type: string
                              example: 'http://shofy.test/storage/main/product-categories/category-thumb-5-420x270.jpg'
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: null
      tags:
        - 'Product Categories'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                categories:
                  type: array
                  description: 'The <code>id</code> of an existing record in the ec_product_categories table.'
                  example: null
                  items:
                    type: string
                    nullable: true
                is_featured:
                  type: boolean
                  description: 'Filter by featured status.'
                  example: false
                  nullable: true
      security: []
  '/api/v1/ecommerce/product-categories/{slug}':
    get:
      summary: 'Get product category details by slug'
      operationId: getProductCategoryDetailsBySlug
      description: ''
      parameters: []
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: ''
                properties:
                  message:
                    type: string
                    example: ''
      tags:
        - 'Product Categories'
      security: []
    parameters:
      -
        in: path
        name: slug
        description: 'The slug of the product category.'
        example: consequatur
        required: true
        schema:
          type: string
  '/api/v1/ecommerce/product-categories/{id}/products':
    get:
      summary: 'Get products by category'
      operationId: getProductsByCategory
      description: ''
      parameters: []
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [Botble\Ecommerce\Models\ProductCategory] consequatur'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [Botble\Ecommerce\Models\ProductCategory] consequatur'
      tags:
        - 'Product Categories'
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the product category.'
        example: consequatur
        required: true
        schema:
          type: string
  /api/v1/ecommerce/products:
    get:
      summary: 'Get list of products'
      operationId: getListOfProducts
      description: ''
      parameters:
        -
          in: query
          name: categories
          description: 'Filter by category IDs.'
          example: null
          required: false
          schema:
            type: array
            description: 'Filter by category IDs.'
            example: null
            items:
              type: string
        -
          in: query
          name: brands
          description: 'Filter by brand IDs.'
          example: null
          required: false
          schema:
            type: array
            description: 'Filter by brand IDs.'
            example: null
            items:
              type: string
        -
          in: query
          name: collections
          description: 'Filter by collection IDs.'
          example: null
          required: false
          schema:
            type: array
            description: 'Filter by collection IDs.'
            example: null
            items:
              type: string
        -
          in: query
          name: q
          description: 'Search term.'
          example: null
          required: false
          schema:
            type: string
            description: 'Search term.'
            example: null
            nullable: false
        -
          in: query
          name: sort_by
          description: 'Sort field. Value: default_sorting, date_asc, date_desc, price_asc, price_desc, name_asc, name_desc, rating_asc, rating_desc'
          example: consequatur
          required: false
          schema:
            type: string
            description: 'Sort field. Value: default_sorting, date_asc, date_desc, price_asc, price_desc, name_asc, name_desc, rating_asc, rating_desc'
            example: consequatur
            nullable: false
        -
          in: query
          name: page
          description: 'The current page.'
          example: null
          required: false
          schema:
            type: integer
            description: 'The current page.'
            example: null
            nullable: false
        -
          in: query
          name: per_page
          description: 'Number of items per page.'
          example: null
          required: false
          schema:
            type: integer
            description: 'Number of items per page.'
            example: null
            nullable: false
        -
          in: query
          name: discounted_only
          description: 'Filter by discounted only.'
          example: null
          required: false
          schema:
            type: boolean
            description: 'Filter by discounted only.'
            example: null
            nullable: false
        -
          in: query
          name: min_price
          description: 'Minimum price.'
          example: null
          required: false
          schema:
            type: integer
            description: 'Minimum price.'
            example: null
            nullable: false
        -
          in: query
          name: max_price
          description: 'Maximum price.'
          example: null
          required: false
          schema:
            type: integer
            description: 'Maximum price.'
            example: null
            nullable: false
        -
          in: query
          name: price_ranges
          description: 'Price ranges as JSON string.'
          example: '[{"from":10,"to":20},{"from":30,"to":40}]'
          required: false
          schema:
            type: string
            description: 'Price ranges as JSON string.'
            example: '[{"from":10,"to":20},{"from":30,"to":40}]'
            nullable: false
        -
          in: query
          name: attributes
          description: 'Attributes as JSON string.'
          example: '[{"id":1,"value":1},{"id":2,"value":2}]'
          required: false
          schema:
            type: string
            description: 'Attributes as JSON string.'
            example: '[{"id":1,"value":1},{"id":2,"value":2}]'
            nullable: false
      responses:
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Server Error'
                properties:
                  message:
                    type: string
                    example: 'Server Error'
      tags:
        - Products
      security: []
  '/api/v1/ecommerce/products/{slug}':
    get:
      summary: 'Get product details by slug'
      operationId: getProductDetailsBySlug
      description: ''
      parameters: []
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: ''
                properties:
                  message:
                    type: string
                    example: ''
      tags:
        - Products
      security: []
    parameters:
      -
        in: path
        name: slug
        description: 'The slug of the product.'
        example: consequatur
        required: true
        schema:
          type: string
  '/api/v1/ecommerce/products/{slug}/related':
    get:
      summary: 'Get related products'
      operationId: getRelatedProducts
      description: ''
      parameters: []
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: ''
                properties:
                  message:
                    type: string
                    example: ''
      tags:
        - Products
      security: []
    parameters:
      -
        in: path
        name: slug
        description: 'The slug of the product.'
        example: consequatur
        required: true
        schema:
          type: string
  '/api/v1/ecommerce/products/{slug}/cross-sale':
    get:
      summary: 'Get cross-sale products for a product'
      operationId: getCrossSaleProductsForAProduct
      description: ''
      parameters: []
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: ''
                properties:
                  message:
                    type: string
                    example: ''
      tags:
        - Products
      security: []
    parameters:
      -
        in: path
        name: slug
        description: 'The slug of the product.'
        example: consequatur
        required: true
        schema:
          type: string
  '/api/v1/ecommerce/products/{slug}/reviews':
    get:
      summary: "Get product's reviews"
      operationId: getProductsReviews
      description: ''
      parameters: []
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: ''
                properties:
                  message:
                    type: string
                    example: ''
      tags:
        - Products
      security: []
    parameters:
      -
        in: path
        name: slug
        description: 'The slug of the product.'
        example: consequatur
        required: true
        schema:
          type: string
  '/api/v1/ecommerce/product-variation/{id}':
    get:
      summary: 'Get product variation by attributes'
      operationId: getProductVariationByAttributes
      description: ''
      parameters:
        -
          in: query
          name: attributes
          description: 'Array of attribute IDs.'
          example: null
          required: false
          schema:
            type: array
            description: 'Array of attribute IDs.'
            example: null
            items:
              type: string
        -
          in: query
          name: reference_product
          description: 'Reference product slug.'
          example: null
          required: false
          schema:
            type: string
            description: 'Reference product slug.'
            example: null
            nullable: false
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: 'Not available'
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: 'Not available'
      tags:
        - Products
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                reference_product:
                  type: string
                  description: ''
                  example: consequatur
                  nullable: false
                attributes:
                  type: array
                  description: ''
                  example:
                    - consequatur
                  items:
                    type: string
              required:
                - reference_product
                - attributes
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the product variation.'
        example: '1562'
        required: true
        schema:
          type: string
  /api/v1/me:
    get:
      summary: 'Get the user profile information.'
      operationId: getTheUserProfileInformation
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Profile
    put:
      summary: 'Update profile'
      operationId: updateProfile
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Profile
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                first_name:
                  type: string
                  description: 'This field is required when <code>name</code> is not present. Must not be greater than 120 characters. Must be at least 2 characters.'
                  example: vmqeopfuudtdsufvyvddqamniihfqcoynlazghdtqtqxbajwbpilpmufinllwloauydlsmsjur
                  nullable: true
                last_name:
                  type: string
                  description: 'This field is required when <code>name</code> is not present. Must not be greater than 120 characters. Must be at least 2 characters.'
                  example: yvojcybzvrbyickznkygloigmkwxphlvazjrcnfbaqywuxhgjjmzuxjubqouzswiwxtrkimfca
                  nullable: true
                name:
                  type: string
                  description: Name.
                  example: consequatur
                  nullable: true
                phone:
                  type: string
                  description: Phone.
                  example: consequatur
                  nullable: true
                dob:
                  type: date
                  description: 'nullable Date of birth (format: Y-m-d).'
                  example: consequatur
                  nullable: true
                gender:
                  type: string
                  description: 'Gender (male, female, other).'
                  example: consequatur
                  nullable: true
                description:
                  type: string
                  description: Description
                  example: 'Dolores dolorum amet iste laborum eius est dolor.'
                  nullable: true
                email:
                  type: string
                  description: Email.
                  example: qkunze@example.com
                  nullable: true
              required:
                - name
                - phone
  /api/v1/update/avatar:
    post:
      summary: 'Update Avatar'
      operationId: updateAvatar
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Profile
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                avatar:
                  type: string
                  format: binary
                  description: 'Avatar file.'
                  nullable: false
              required:
                - avatar
  /api/v1/update/password:
    put:
      summary: 'Update password'
      operationId: updatePassword
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Profile
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                password:
                  type: string
                  description: 'The new password of user.'
                  example: 'O[2UZ5ij-e/dl4m{o,'
                  nullable: false
                old_password:
                  type: string
                  description: 'The current password of user.'
                  example: consequatur
                  nullable: false
              required:
                - password
                - old_password
  /api/v1/ecommerce/reviews:
    get:
      summary: 'Get list of reviews for the current user'
      operationId: getListOfReviewsForTheCurrentUser
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Reviews
    post:
      summary: 'Create a new review'
      operationId: createANewReview
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Reviews
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                product_id:
                  type: integer
                  description: 'The ID of the product to review.'
                  example: 1
                  nullable: false
                star:
                  type: integer
                  description: 'The rating from 1 to 5 stars.'
                  example: 5
                  nullable: false
                comment:
                  type: string
                  description: 'The review comment.'
                  example: 'This is a great product! I highly recommend it.'
                  nullable: false
                images:
                  type: array
                  description: 'Array of images for the review (optional).'
                  example: null
                  items:
                    type: string
              required:
                - product_id
                - star
                - comment
  '/api/v1/ecommerce/reviews/{id}':
    delete:
      summary: 'Delete a review'
      operationId: deleteAReview
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Reviews
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the review.'
        example: '1562'
        required: true
        schema:
          type: string
  /api/v1/simple-sliders:
    get:
      summary: 'Get sliders'
      operationId: getSliders
      description: ''
      parameters:
        -
          in: query
          name: keys
          description: 'Array of slider keys to filter by.'
          example:
            - home-slider
            - product-slider
          required: false
          schema:
            type: array
            description: 'Array of slider keys to filter by.'
            example:
              - home-slider
              - product-slider
            items:
              type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    -
                      id: 1
                      name: 'Home slider'
                      key: home-slider
                      description: 'The main slider on homepage'
                      items:
                        -
                          id: 1
                          title: 'The best tablet Collection 2023'
                          description: 'Exclusive offer <span>-35%</span> off this week'
                          image: 'http://shofy.test/storage/main/sliders/slider-1.png'
                          link: /products
                          order: 0
                          background_color: '#115061'
                          is_light: 0
                          subtitle: 'Starting at <b>$274.00</b>'
                          button_label: 'Shop Now'
                        -
                          id: 2
                          title: 'The best note book collection 2023'
                          description: 'Exclusive offer <span>-10%</span> off this week'
                          image: 'http://shofy.test/storage/main/sliders/slider-3.png'
                          link: /products
                          order: 1
                          background_color: '#115061'
                          is_light: 0
                          subtitle: 'Starting at <b>$999.00</b>'
                          button_label: 'Shop Now'
                        -
                          id: 3
                          title: 'The best phone collection 2023'
                          description: 'Exclusive offer <span>-10%</span> off this week'
                          image: 'http://shofy.test/storage/main/sliders/slider-2.png'
                          link: /products
                          order: 2
                          background_color: '#E3EDF6'
                          is_light: 1
                          subtitle: 'Starting at <b>$999.00</b>'
                          button_label: 'Shop Now'
                  message: null
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: array
                    example:
                      -
                        id: 1
                        name: 'Home slider'
                        key: home-slider
                        description: 'The main slider on homepage'
                        items:
                          -
                            id: 1
                            title: 'The best tablet Collection 2023'
                            description: 'Exclusive offer <span>-35%</span> off this week'
                            image: 'http://shofy.test/storage/main/sliders/slider-1.png'
                            link: /products
                            order: 0
                            background_color: '#115061'
                            is_light: 0
                            subtitle: 'Starting at <b>$274.00</b>'
                            button_label: 'Shop Now'
                          -
                            id: 2
                            title: 'The best note book collection 2023'
                            description: 'Exclusive offer <span>-10%</span> off this week'
                            image: 'http://shofy.test/storage/main/sliders/slider-3.png'
                            link: /products
                            order: 1
                            background_color: '#115061'
                            is_light: 0
                            subtitle: 'Starting at <b>$999.00</b>'
                            button_label: 'Shop Now'
                          -
                            id: 3
                            title: 'The best phone collection 2023'
                            description: 'Exclusive offer <span>-10%</span> off this week'
                            image: 'http://shofy.test/storage/main/sliders/slider-2.png'
                            link: /products
                            order: 2
                            background_color: '#E3EDF6'
                            is_light: 1
                            subtitle: 'Starting at <b>$999.00</b>'
                            button_label: 'Shop Now'
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 1
                        name:
                          type: string
                          example: 'Home slider'
                        key:
                          type: string
                          example: home-slider
                        description:
                          type: string
                          example: 'The main slider on homepage'
                        items:
                          type: array
                          example:
                            -
                              id: 1
                              title: 'The best tablet Collection 2023'
                              description: 'Exclusive offer <span>-35%</span> off this week'
                              image: 'http://shofy.test/storage/main/sliders/slider-1.png'
                              link: /products
                              order: 0
                              background_color: '#115061'
                              is_light: 0
                              subtitle: 'Starting at <b>$274.00</b>'
                              button_label: 'Shop Now'
                            -
                              id: 2
                              title: 'The best note book collection 2023'
                              description: 'Exclusive offer <span>-10%</span> off this week'
                              image: 'http://shofy.test/storage/main/sliders/slider-3.png'
                              link: /products
                              order: 1
                              background_color: '#115061'
                              is_light: 0
                              subtitle: 'Starting at <b>$999.00</b>'
                              button_label: 'Shop Now'
                            -
                              id: 3
                              title: 'The best phone collection 2023'
                              description: 'Exclusive offer <span>-10%</span> off this week'
                              image: 'http://shofy.test/storage/main/sliders/slider-2.png'
                              link: /products
                              order: 2
                              background_color: '#E3EDF6'
                              is_light: 1
                              subtitle: 'Starting at <b>$999.00</b>'
                              button_label: 'Shop Now'
                          items:
                            type: object
                            properties:
                              id:
                                type: integer
                                example: 1
                              title:
                                type: string
                                example: 'The best tablet Collection 2023'
                              description:
                                type: string
                                example: 'Exclusive offer <span>-35%</span> off this week'
                              image:
                                type: string
                                example: 'http://shofy.test/storage/main/sliders/slider-1.png'
                              link:
                                type: string
                                example: /products
                              order:
                                type: integer
                                example: 0
                              background_color:
                                type: string
                                example: '#115061'
                              is_light:
                                type: integer
                                example: 0
                              subtitle:
                                type: string
                                example: 'Starting at <b>$274.00</b>'
                              button_label:
                                type: string
                                example: 'Shop Now'
                  message:
                    type: string
                    example: null
      tags:
        - 'Simple Slider'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                keys:
                  type: array
                  description: 'Array of slider keys to filter by.'
                  example:
                    - home-slider
                    - product-slider
                  items:
                    type: string
      security: []
  /api/v1/ecommerce/wishlist:
    post:
      summary: 'Add product to wishlist'
      operationId: addProductToWishlist
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Wishlist
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                product_id:
                  type: integer
                  description: 'ID of the product.'
                  example: 1
                  nullable: false
              required:
                - product_id
      security: []
  '/api/v1/ecommerce/wishlist/{id}':
    post:
      summary: 'Add product to wishlist'
      operationId: addProductToWishlist
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Wishlist
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                product_id:
                  type: integer
                  description: 'ID of the product.'
                  example: 1
                  nullable: false
              required:
                - product_id
      security: []
    delete:
      summary: 'Remove a product from wishlist'
      operationId: removeAProductFromWishlist
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Wishlist
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                product_id:
                  type: string
                  description: 'The ID of the product to remove from the wishlist. The <code>id</code> of an existing record in the ec_products table.'
                  example: 1
                  nullable: false
              required:
                - product_id
      security: []
    get:
      summary: 'Get wishlist items'
      operationId: getWishlistItems
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  id: consequatur
                  data:
                    count: 0
                    items: []
                properties:
                  id:
                    type: string
                    example: consequatur
                  data:
                    type: object
                    properties:
                      count:
                        type: integer
                        example: 0
                      items:
                        type: array
                        example: []
      tags:
        - Wishlist
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: 'ID of the wishlist.'
                  example: e70c6c88dae8344b03e39bb147eba66a
                  nullable: false
              required:
                - id
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the wishlist.'
        example: consequatur
        required: true
        schema:
          type: string
