name: Customers
description: |-

  APIs for managing customers in POS
endpoints:
  -
    custom: []
    httpMethods:
      - GET
    uri: api/v1/tenant/customers
    metadata:
      custom: []
      groupName: Customers
      groupDescription: |-

        APIs for managing customers in POS
      subgroup: ''
      subgroupDescription: ''
      title: 'List Customers'
      description: 'Get paginated list of customers'
      authenticated: true
      deprecated: false
    headers:
      Authorization: 'Bearer YOUR_TOKEN_HERE'
      Content-Type: application/json
      Accept: application/json
    urlParameters: []
    cleanUrlParameters: []
    queryParameters:
      page:
        custom: []
        name: page
        description: 'Page number.'
        required: false
        example: 1
        type: integer
        enumValues: []
        exampleWasSpecified: true
        nullable: false
        deprecated: false
      per_page:
        custom: []
        name: per_page
        description: 'Items per page (max 100).'
        required: false
        example: 15
        type: integer
        enumValues: []
        exampleWasSpecified: true
        nullable: false
        deprecated: false
      search:
        custom: []
        name: search
        description: 'Search by name, email, or phone.'
        required: false
        example: john
        type: string
        enumValues: []
        exampleWasSpecified: true
        nullable: false
        deprecated: false
    cleanQueryParameters:
      page: 1
      per_page: 15
      search: john
    bodyParameters: []
    cleanBodyParameters: []
    fileParameters: []
    responses:
      -
        custom: []
        status: 200
        content: |-
          {
            "success": true,
            "data": []
          }
        headers: []
        description: ''
    responseFields: []
    auth:
      - headers
      - Authorization
      - 'Bearer 6g43cv8PD1aE5beadkZfhV6'
    controller: null
    method: null
    route: null
  -
    custom: []
    httpMethods:
      - GET
    uri: api/v1/tenant/customers/search
    metadata:
      custom: []
      groupName: Customers
      groupDescription: |-

        APIs for managing customers in POS
      subgroup: ''
      subgroupDescription: ''
      title: 'Search Customers (Quick Lookup)'
      description: 'Fast search for POS - returns limited results for quick lookup'
      authenticated: true
      deprecated: false
    headers:
      Authorization: 'Bearer YOUR_TOKEN_HERE'
      Content-Type: application/json
      Accept: application/json
    urlParameters: []
    cleanUrlParameters: []
    queryParameters:
      q:
        custom: []
        name: q
        description: 'Search query (name, phone, email).'
        required: true
        example: john
        type: string
        enumValues: []
        exampleWasSpecified: true
        nullable: false
        deprecated: false
    cleanQueryParameters:
      q: john
    bodyParameters: []
    cleanBodyParameters: []
    fileParameters: []
    responses:
      -
        custom: []
        status: 200
        content: |-
          {
            "success": true,
            "data": []
          }
        headers: []
        description: ''
    responseFields: []
    auth:
      - headers
      - Authorization
      - 'Bearer 6g43cv8PD1aE5beadkZfhV6'
    controller: null
    method: null
    route: null
  -
    custom: []
    httpMethods:
      - GET
    uri: 'api/v1/tenant/customers/{id}'
    metadata:
      custom: []
      groupName: Customers
      groupDescription: |-

        APIs for managing customers in POS
      subgroup: ''
      subgroupDescription: ''
      title: 'Get Single Customer'
      description: 'Get customer details with order history'
      authenticated: true
      deprecated: false
    headers:
      Authorization: 'Bearer YOUR_TOKEN_HERE'
      Content-Type: application/json
      Accept: application/json
    urlParameters:
      id:
        custom: []
        name: id
        description: 'Customer ID.'
        required: true
        example: 1
        type: integer
        enumValues: []
        exampleWasSpecified: true
        nullable: false
        deprecated: false
    cleanUrlParameters:
      id: 1
    queryParameters: []
    cleanQueryParameters: []
    bodyParameters: []
    cleanBodyParameters: []
    fileParameters: []
    responses:
      -
        custom: []
        status: 401
        content: '{"message":"Unauthenticated."}'
        headers:
          cache-control: 'no-cache, private'
          content-type: application/json
          access-control-allow-origin: '*'
        description: null
    responseFields: []
    auth:
      - headers
      - Authorization
      - 'Bearer 6g43cv8PD1aE5beadkZfhV6'
    controller: null
    method: null
    route: null
  -
    custom: []
    httpMethods:
      - POST
    uri: api/v1/tenant/customers
    metadata:
      custom: []
      groupName: Customers
      groupDescription: |-

        APIs for managing customers in POS
      subgroup: ''
      subgroupDescription: ''
      title: 'Create Customer'
      description: 'Create a new customer'
      authenticated: true
      deprecated: false
    headers:
      Authorization: 'Bearer YOUR_TOKEN_HERE'
      Content-Type: application/json
      Accept: application/json
    urlParameters: []
    cleanUrlParameters: []
    queryParameters: []
    cleanQueryParameters: []
    bodyParameters:
      name:
        custom: []
        name: name
        description: 'Customer name.'
        required: true
        example: 'John Doe'
        type: string
        enumValues: []
        exampleWasSpecified: true
        nullable: false
        deprecated: false
      email:
        custom: []
        name: email
        description: 'optional Customer email.'
        required: false
        example: john@example.com
        type: string
        enumValues: []
        exampleWasSpecified: true
        nullable: true
        deprecated: false
      phone:
        custom: []
        name: phone
        description: 'Customer phone.'
        required: true
        example: '+1234567890'
        type: string
        enumValues: []
        exampleWasSpecified: true
        nullable: false
        deprecated: false
      address:
        custom: []
        name: address
        description: 'optional Customer address.'
        required: false
        example: '123 Main St'
        type: string
        enumValues: []
        exampleWasSpecified: true
        nullable: true
        deprecated: false
    cleanBodyParameters:
      name: 'John Doe'
      email: john@example.com
      phone: '+1234567890'
      address: '123 Main St'
    fileParameters: []
    responses:
      -
        custom: []
        status: 201
        content: |-
          {
            "success": true,
            "message": "Customer created successfully",
            "data": {}
          }
        headers: []
        description: ''
    responseFields: []
    auth:
      - headers
      - Authorization
      - 'Bearer 6g43cv8PD1aE5beadkZfhV6'
    controller: null
    method: null
    route: null
  -
    custom: []
    httpMethods:
      - PUT
    uri: 'api/v1/tenant/customers/{id}'
    metadata:
      custom: []
      groupName: Customers
      groupDescription: |-

        APIs for managing customers in POS
      subgroup: ''
      subgroupDescription: ''
      title: 'Update Customer'
      description: 'Update customer information'
      authenticated: true
      deprecated: false
    headers:
      Authorization: 'Bearer YOUR_TOKEN_HERE'
      Content-Type: application/json
      Accept: application/json
    urlParameters:
      id:
        custom: []
        name: id
        description: 'Customer ID.'
        required: true
        example: 1
        type: integer
        enumValues: []
        exampleWasSpecified: true
        nullable: false
        deprecated: false
    cleanUrlParameters:
      id: 1
    queryParameters: []
    cleanQueryParameters: []
    bodyParameters:
      name:
        custom: []
        name: name
        description: 'Must not be greater than 255 characters.'
        required: false
        example: b
        type: string
        enumValues: []
        exampleWasSpecified: false
        nullable: false
        deprecated: false
      email:
        custom: []
        name: email
        description: ''
        required: false
        example: null
        type: string
        enumValues: []
        exampleWasSpecified: false
        nullable: false
        deprecated: false
      phone:
        custom: []
        name: phone
        description: 'Must not be greater than 20 characters.'
        required: false
        example: ngzmiyvdljnikhwa
        type: string
        enumValues: []
        exampleWasSpecified: false
        nullable: false
        deprecated: false
      address:
        custom: []
        name: address
        description: ''
        required: false
        example: architecto
        type: string
        enumValues: []
        exampleWasSpecified: false
        nullable: true
        deprecated: false
    cleanBodyParameters:
      name: b
      phone: ngzmiyvdljnikhwa
      address: architecto
    fileParameters: []
    responses: []
    responseFields: []
    auth:
      - headers
      - Authorization
      - 'Bearer 6g43cv8PD1aE5beadkZfhV6'
    controller: null
    method: null
    route: null
  -
    custom: []
    httpMethods:
      - DELETE
    uri: 'api/v1/tenant/customers/{id}'
    metadata:
      custom: []
      groupName: Customers
      groupDescription: |-

        APIs for managing customers in POS
      subgroup: ''
      subgroupDescription: ''
      title: 'Delete Customer'
      description: 'Delete a customer'
      authenticated: true
      deprecated: false
    headers:
      Authorization: 'Bearer YOUR_TOKEN_HERE'
      Content-Type: application/json
      Accept: application/json
    urlParameters:
      id:
        custom: []
        name: id
        description: 'The ID of the customer.'
        required: true
        example: architecto
        type: string
        enumValues: []
        exampleWasSpecified: false
        nullable: false
        deprecated: false
    cleanUrlParameters:
      id: architecto
    queryParameters: []
    cleanQueryParameters: []
    bodyParameters: []
    cleanBodyParameters: []
    fileParameters: []
    responses: []
    responseFields: []
    auth:
      - headers
      - Authorization
      - 'Bearer 6g43cv8PD1aE5beadkZfhV6'
    controller: null
    method: null
    route: null
