openapi: 3.0.0
info:
    title: OTPs API
    description: API for managing OTPs
    version: 1.0.0
servers:
    - url: https://polapi.myecommerce.in/api/v1
    - url: http://localhost:3000/api/v1
      description: development server
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'Bearer token to access these API endpoints'
security:
  - bearerAuth: []
paths:
    /otps:
        post:
            summary: Create a new OTP
            tags:
                - OTPs
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            type: object
                            properties:
                                mobile:
                                    type: string
            responses:
                "200":
                    description: An services
                    content:
                        application/json:
                            schema:
                                type: object
                                items:
    /authorizations:
        post:
            tags:
                - Authorizations
            summary: get access token OTP
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            type: object
                            properties:
                                mobile:
                                    type: string
                                otp:
                                    type: string
                                devicemasters:
                                    type: object
                                    properties:
                                        device_name:
                                            type: string
                                        device_os:
                                            type: string
                                        software_version:
                                            type: string
            responses:
                "200":
                    description: Welcome To Property On Location App
                    content:
                        application/json:
                            schema:
                                type: object
                                items:
                                $ref: "#/components/schemas/users"
                "422":
                    description: validation error
                "401":
                    description: Unauthorized
                "500":
                    description: Internal Server Error
    /assets:
        post:
            summary: upload files
            tags:
                - assets upload
            requestBody:
                required: true
                content:
                    multipart/form-data:
                        schema:
                            type: object
                            properties:
                                file:
                                    type: string
                                    format: binary

            responses:
                "200":
                    description: An services
                    content:
                        application/json:
                            schema:
                                type: object
                                items:
                                $ref: "#/components/schemas/assets"
    /properties:
        get:
            tags:
                - properties
            summary: get property listing
            description: Optional extended description in CommonMark or HTML.
            parameters:
                - in: query
                  name: first
                  schema:
                      type: integer
                  description: The number of items to skip before starting to collect the result set
                - in: query
                  name: rows
                  schema:
                      type: integer
                  description: The numbers of items to return
                - in: query
                  name: select
                  schema:
                      type: string
                  description: select perticular columns
                - in: query
                  name: pagination
                  schema:
                      type: string
                  description: if pagination needed set it to true
                - in: query
                  name: filter
                  schema:
                      type: string
                  description: (column_name,oprator,value|column_name,oprator,value) use this format to filter, operater is optional,supported operator are [=,!=,<,<=,>,>=],if value are multiple then use COMMA seprated,each filter seprated by | symbol. ex. filter=districts_id,=,360|promoted,no
                - in: query
                  name: order
                  schema:
                      type: string
                  description: (column_name,type|column_name,type) use this format to order, supported type are [ASC,DESC], each filter order by | symbol. ex. order=states_id,DESC|budget,ASC
            responses:
                "200":
                    description: Welcome To Property On Location App
                    content:
                        application/json:
                "422":
                    description: validation error
                "401":
                    description: Unauthorized
                "500":
                    description: Internal Server Error
    # properties getbyid
    /properties/{id}:
        get:
            tags:
                - get Properties
            summary: Get an Properties by ID
            description: Optional extended description in CommonMark or HTML.
            parameters:
                - name: id
                  in: path
                  required: true
                  schema:
                      type: integer
            requestBody:
                required: false
            responses:
                "200":
                    description: An services
                    content:
                        application/json:
                            schema:
                                type: object
                                items:
                                $ref: "#/components/schemas/properties"
                "422":
                    description: validation error
                "401":
                    description: Unauthorized
                "500":
                    description: Internal Server Error
    # cities with areas
    /cities/{id}/areas:
        get:
            security:
                - bearerAuth: []
            tags:
                - get cities with areas
            summary: Get cities with areas
            description: Optional extended description in CommonMark or HTML.
            parameters:
                - name: id
                  in: path
                  required: true
                  schema:
                      type: integer
            requestBody:
                required: false
            responses:
                "200":
                    description: An Cities with areas
                    content:
                        application/json:
                            schema:
                                type: array
                                items:
                                $ref: "#/components/schemas/Area"
                "422":
                    description: validation error
                "401":
                    description: Unauthorized
                "500":
                    description: Internal Server Error

    # services
    /services:
        get:
            tags:
                - services
            summary: get services listing
            description: Optional extended description in CommonMark or HTML.
            parameters:
                - in: query
                  name: first
                  schema:
                      type: integer
                  description: The number of items to skip before starting to collect the result set
                - in: query
                  name: rows
                  schema:
                      type: integer
                  description: The numbers of items to return
                - in: query
                  name: select
                  schema:
                      type: string
                  description: select perticular columns
                - in: query
                  name: pagination
                  schema:
                      type: string
                  description: if pagination needed set it to true
                - in: query
                  name: filter
                  schema:
                      type: string
                  description: (column_name,oprator,value|column_name,oprator,value) use this format to filter, operater is optional,supported operator are [=,!=,<,<=,>,>=],if value are multiple then use COMMA seprated,each filter seprated by | symbol. ex. filter=districts_id,=,360|promoted,no
                - in: query
                  name: order
                  schema:
                      type: string
                  description: (column_name,type|column_name,type) use this format to order, supported type are [ASC,DESC], each filter order by | symbol. ex. order=states_id,DESC|budget,ASC
            responses:
                "200":
                    description: Welcome To Property On Location App
                    content:
                        application/json:
                            schema:
                                type: array
                                items:
                                    $ref: "#/components/schemas/services"
                "422":
                    description: validation error
                "401":
                    description: Unauthorized
                "500":
                    description: Internal Server Error
        post:
            tags:
                - services
            summary: post service
            description: Optional extended description in CommonMark or HTML.
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            type: object
                            items:
                            $ref: "#/components/schemas/services"

            responses:
                "200":
                    description: Welcome To Property On Location App
                    content:
                        application/json:
                            schema:
                                type: object
                                items:
                                $ref: "#/components/schemas/services"
                "422":
                    description: validation error
                "401":
                    description: Unauthorized
                "500":
                    description: Internal Server Error

    # services (get)
    /services/{id}:
        get:
            tags:
                - get services
            summary: Get an services by ID
            description: Optional extended description in CommonMark or HTML.
            parameters:
                - name: id
                  in: path
                  required: true
                  schema:
                      type: integer
            requestBody:
                required: false
            responses:
                "200":
                    description: An services
                    content:
                        application/json:
                            schema:
                                type: object
                                items:
                                $ref: "#/components/schemas/services"
                "422":
                    description: validation error
                "401":
                    description: Unauthorized
                "500":
                    description: Internal Server Error
        put:
            tags:
                - put services
            summary: update an services by ID
            parameters:
                - name: id
                  in: path
                  required: true
                  schema:
                      type: integer
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                        $ref: "#/components/schemas/services"
            responses:
                "200":
                    description: An services
                    content:
                        application/json:
                            schema:
                                type: object
                                items:
                                $ref: "#/components/schemas/services"
                "422":
                    description: validation error
                "401":
                    description: Unauthorized
                "500":
                    description: Internal Server Error
        delete:
            summary: delete an services by ID
            tags:
                - delete services
            parameters:
                - name: id
                  in: path
                  required: true
                  schema:
                      type: integer
            responses:
                "200":
                    description: An services
                    content:
                        application/json:
                            schema:
                                type: object
                                items:
                                $ref: "#/components/schemas/services"
                "422":
                    description: validation error
                "401":
                    description: Unauthorized
                "500":
                    description: Internal Server Error
    # areaunits (get)
    /areaunits:
        get:
            tags:
                - areaunits
            summary: Get area units listing
            description: Retrieve a list of all area units. Optional extended description in CommonMark or HTML.
            responses:
                "200":
                    description: A list of area units
                    content:
                        application/json:
                            schema:
                                type: array
                                items:
                                    $ref: "#/components/schemas/areaunits"
                "422":
                    description: Validation error
                "401":
                    description: Unauthorized
                "500":
                    description: Internal Server Error
    # suggestion a/c to your city name
    /cities/:id/suggestions:
        get:
            tags:
                - list of suggestion a/c to your city name
            summary: get suggestion a/c to your city name
            parameters:
                - name: id
                  in: path
                  required: true
                  schema:
                      type: integer
            description: Retrieve a list of all suggestion a/c to your city name
            responses:
                "200":
                    description: A list of all suggestions
                    content:
                        application/json:
                            schema:
                                type: array
                                items:
                                    $ref: "#/components/schemas/Area"
                                    $ref: "#/components/schemas/properties"
                "422":
                    description: Validation error
                "401":
                    description: Unauthorized
                "500":
                    description: Internal Server Error
    # posttypes (get)
    /posttypes:
        get:
            tags:
                - posttypes
            summary: Get post types listing
            description: Retrieve a list of all post types. Optional extended description in CommonMark or HTML.
            responses:
                "200":
                    description: A list of post types
                    content:
                        application/json:
                            schema:
                                type: array
                                items:
                                    $ref: "#/components/schemas/posttypes"
                "422":
                    description: Validation error
                "401":
                    description: Unauthorized
                "500":
                    description: Internal Server Error
    # servicesmasters
    /servicesmasters:
        get:
            tags:
                - servicesmasters
            summary: Get services masters listing
            description: Retrieve a list of all services masters. Optional extended description in CommonMark or HTML.
            responses:
                "200":
                    description: A list of services masters
                    content:
                        application/json:
                            schema:
                                type: array
                                items:
                                $ref: "#/components/schemas/servicesmasters"
                "422":
                    description: Validation error
                "401":
                    description: Unauthorized
                "500":
                    description: Internal Server Error
    # users
    /users/{id}:
        put:
            summary: update an user by ID
            tags:
                - update user
            parameters:
                - name: id
                  in: path
                  required: true
                  schema:
                      type: integer
            responses:
                "200":
                    description: An user
                    content:
                        application/json:
                            schema:
                                type: object
                                items:
                                $ref: "#/components/schemas/users"
                "422":
                    description: validation error
                "401":
                    description: Unauthorized
                "500":
                    description: Internal Server Error
components:
    schemas:
        services:
            description: services table
            type: object
            properties:
                mobile:
                    type: string
                "type":
                    type: string
                "professions_id":
                    type: string
                "name":
                    type: string
                "company":
                    type: string
                "states_id":
                    type: number
                "districts_id":
                    type: number
                "areas_id":
                    type: number
                "cities_id":
                    type: number
                "latitude":
                    type: number
                "longitude":
                    type: number
                "city":
                    type: string
                "address":
                    type: string
                "qualification":
                    type: string
                "experience":
                    type: string
                "aboutus":
                    type: string
                "contactno":
                    type: string
                "email":
                    type: string
                "websiteurl":
                    type: string
                "project":
                    type: string
                "refcode":
                    type: string
                "users_id":
                    type: string
                "workingtimes":
                    type: array
                    items:
                        $ref: "#/components/schemas/workingtimes"
                "photos":
                    type: array
                    items:
                        $ref: "#/components/schemas/photos"
                "users":
                    type: object
                    items:
                    $ref: "#/components/schemas/assets"
        users:
            description: describe workingtimes table
            type: object
            properties:
                "id":
                    type: number
                "refno":
                    type: string
                "status":
                    type: string
                "mobile":
                    type: string
                "name":
                    type: string
                "email":
                    type: string
                "loginas":
                    type: string
                "isold":
                    type: boolean
                "token":
                    type: string
        workingtimes:
            description: describe workingtimes table
            type: object
            properties:
                "day":
                    type: string
                "start":
                    type: string
                "end":
                    type: string
                "is_holiday":
                    type: boolean
        # assets
        assets:
            description: describe assets table
            type: object
            properties:
                "id":
                    type: string
                "uuid":
                    type: string
                "location":
                    type: string
                "ext":
                    type: string
                "mimetype":
                    type: string
                "type":
                    type: string

        # Area Units
        areaunits:
            description: Area units
            type: object
            properties:
                id:
                    type: integer
                    format: int64

                name:
                    type: string
                    maxLength: 255

                slug:
                    type: string
                    maxLength: 255

                status:
                    type: string
                    enum:
                        - active
                        - inactive
                        - deleted
                    default: active

                created_at:
                    type: string
                    format: date-time

                    default: now
                modified_at:
                    type: string
                    format: date-time

                    default: now

        #post type
        posttypes:
            description: Post type
            type: object
            properties:
                id:
                    type: integer
                    format: int64
                name:
                    type: string
                    maxLength: 255
                created_at:
                    type: string
                    format: date-time
                modified_at:
                    type: string
                    format: date-time

        # service master
        ServicesMaster:
            description: Service master
            type: object
            properties:
                id:
                    type: integer
                    format: int64
                name:
                    type: string
                    maxLength: 255
                slug:
                    type: string
                    maxLength: 255
                created_at:
                    type: string
                    format: date-time
                modified_at:
                    type: string
                    format: date-time
        # areas
        Area:
            type: object
            description: Represents an area within a city.
            properties:
                id:
                    type: integer
                    format: int64
                    description: Unique identifier for the area.
                name:
                    type: string
                    maxLength: 255
                    description: Name of the area.
                latitude:
                    type: number
                    format: double
                    description: Latitude coordinate of the area.
                longitude:
                    type: number
                    format: double
                    description: Longitude coordinate of the area.
                cities_id:
                    type: integer
                    format: int64
                    description: Identifier of the city to which the area belongs.
                status:
                    type: string
                    enum: [active, inactive, deleted]
                    description: Current status of the area.
                created_at:
                    type: string
                    format: date-time
                    description: Timestamp when the area was created.
                modified_at:
                    type: string
                    format: date-time
                    description: Timestamp when the area was last modified.
            required:
                - name
                - latitude
                - longitude
                - cities_id
                - status
        # states
        State:
            type: object
            description: Represents a state with its status and timestamps.
            properties:
                id:
                    type: integer
                    format: int64
                    description: Unique identifier for the state.
                name:
                    type: string
                    description: Name of the state.
                status:
                    type: string
                    enum:
                        - active
                        - deleted
                        - inactive
                        - sold
                    description: Current status of the state.
                    default: active
                created_at:
                    type: string
                    format: date-time
                    description: Timestamp when the state was created.
                modified_at:
                    type: string
                    format: date-time
                    description: Timestamp when the state was last modified.
            required:
                - name
                - status

        # district
        District:
            type: object
            description: Represents a district with its geographical coordinates and status.
            properties:
                id:
                    type: integer
                    format: int64
                    description: Unique identifier for the district.
                name:
                    type: string
                    description: Name of the district.
                states_id:
                    type: integer
                    format: int64
                    description: Identifier of the state to which the district belongs.
                latitude:
                    type: number
                    format: double
                    description: Latitude coordinate of the district.
                longitude:
                    type: number
                    format: double
                    description: Longitude coordinate of the district.
                status:
                    type: string
                    enum:
                        - active
                        - deleted
                        - inactive
                        - sold
                    description: Current status of the district.
                    default: active
                created_at:
                    type: string
                    format: date-time
                    description: Timestamp when the district was created.
                modified_at:
                    type: string
                    format: date-time
                    description: Timestamp when the district was last modified.
            required:
                - name
                - states_id
                - latitude
                - longitude
                - status
        Category:
            type: object
            description: Represents a category with its name, status, and timestamps.
            properties:
                id:
                    type: integer
                    format: int64
                    description: Unique identifier for the district.
                name:
                    type: string
                    description: Name of the district.
                status:
                    type: string
                    enum:
                        - active
                        - inactive
                        - deleted
                    description: Current status of the category.
                    default: active
                created_at:
                    type: string
                    format: date-time
                    description: Timestamp when the district was created.
                modified_at:
                    type: string
                    format: date-time
                    description: Timestamp when the district was last modified.
            required:
                - name
                - status
        # Currencies
        Currency:
            type: object
            description: Represents a currency with its name, symbol, and timestamps.
            properties:
                id:
                    type: integer
                    format: int64
                    description: Unique identifier for the currency.
                name:
                    type: string
                    maxLength: 255
                    description: Name of the currency.
                symbol:
                    type: string
                    maxLength: 10
                    description: Symbol of the currency.
                created_at:
                    type: string
                    format: date-time
                    description: Timestamp when the currency was created.
                modified_at:
                    type: string
                    format: date-time
                    description: Timestamp when the currency was last modified.
            required:
                - name
                - symbol

        # Devices Masters
        DeviceMaster:
            type: object
            description: Represents a device with its name, operating system, software version, and associated user.
            properties:
                id:
                    type: integer
                    format: int64
                    description: Unique identifier for the device.
                device_name:
                    type: string
                    maxLength: 255
                    description: Name of the device.
                device_os:
                    type: string
                    nullable: true
                    description: Operating system of the device.
                software_version:
                    type: string
                    description: Software version installed on the device.
                users_id:
                    type: integer
                    format: int64
                    description: Identifier of the user associated with the device.
                created_at:
                    type: string
                    format: date-time
                    description: Timestamp when the device record was created.
                modified_at:
                    type: string
                    format: date-time
                    description: Timestamp when the device record was last modified.
            required:
                - device_name
                - software_version
                - users_id
        #Kind Of Property
        KindOfProperty:
            type: object
            description: >-
                Represents a kind of property associated with a property master and post
                type.
            properties:
                id:
                    type: integer
                    format: int64
                    description: Unique identifier for the kind of property.
                kindofpropertymasters_id:
                    type: integer
                    format: int64
                    description: Identifier of the related property master.
                posttypes_id:
                    type: integer
                    format: int64
                    description: Identifier of the related post type.
                created_at:
                    type: string
                    format: date-time
                    description: Timestamp when the kind of property record was created.
                modified_at:
                    type: string
                    format: date-time
                    description: Timestamp when the kind of property record was last modified.
            required:
                - kindofpropertymasters_id
                - posttypes_id

        # kindofpropertymasters
        KindOfPropertyMaster:
            type: object
            description: Represents a master record for different kinds of properties.
            properties:
                id:
                    type: integer
                    format: int64
                    description: Unique identifier for the kind of property master.
                name:
                    type: string
                    maxLength: 255
                    description: Name of the kind of property.
                created_at:
                    type: string
                    format: date-time
                    description: Timestamp when the record was created.
                modified_at:
                    type: string
                    format: date-time
                    description: Timestamp when the record was last modified.
            required:
                - name

        # Locality

        Locality:
            type: object
            description: Represents a locality associated with specific requirements.
            properties:
                id:
                    type: integer
                    format: int64
                    description: Unique identifier for the locality.
                requirements_id:
                    type: integer
                    format: int64
                    description: Identifier of the related requirements.
                priority:
                    type: string
                    description: Priority level of the locality.
                created_at:
                    type: string
                    format: date-time
                    description: Timestamp when the locality record was created.
                modified_at:
                    type: string
                    format: date-time
                    description: Timestamp when the locality record was last modified.
            required:
                - requirements_id
                - priority
        # OTPs
        OTP:
            type: object
            description: >-
                Represents an OTP (One-Time Password) entry with details about the code,
                validity, and usage.
            properties:
                id:
                    type: integer
                    format: int64
                    description: Unique identifier for the OTP entry.
                mobile:
                    type: string
                    maxLength: 255
                    description: Mobile number associated with the OTP.
                code:
                    type: string
                    maxLength: 255
                    description: The OTP code.
                validity:
                    type: string
                    format: date-time
                    description: Expiration date and time of the OTP.
                used:
                    type: boolean
                    description: Indicates whether the OTP has been used.
                    default: false
                devicemasters_id:
                    type: integer
                    format: int64
                    nullable: true
                    description: Identifier of the device master associated with the OTP.
                created_at:
                    type: string
                    format: date-time
                    description: Timestamp when the OTP record was created.
                modified_at:
                    type: string
                    format: date-time
                    description: Timestamp when the OTP record was last modified.
            required:
                - mobile
                - code
                - validity
                - used
        # PropertyAmenity
        PropertyAmenity:
            type: object
            description: Represents an amenity available for properties.
            properties:
                id:
                    type: integer
                    format: int64
                    description: Unique identifier for the property amenity.
                name:
                    type: string
                    maxLength: 255
                    description: Name of the property amenity.
                status:
                    type: string
                    enum:
                        - active
                        - inactive
                        - deleted
                    description: Status of the property amenity.
                    default: active
                created_at:
                    type: string
                    format: date-time
                    description: Timestamp when the property amenity record was created.
                modified_at:
                    type: string
                    format: date-time
                    description: Timestamp when the property amenity record was last modified.
            required:
                - name
                - status
        #
        Requirement:
            type: object
            description: Represents a requirement related to property transactions.
            properties:
                id:
                    type: integer
                    format: int64
                    description: Unique identifier for the requirement.
                uuid:
                    type: string
                    description: UUID for the requirement.
                latitude:
                    type: number
                    format: double
                    description: Latitude of the property.
                longitude:
                    type: number
                    format: double
                    description: Longitude of the property.
                states_id:
                    type: integer
                    format: int64
                    description: Identifier of the state.
                districts_id:
                    type: integer
                    format: int64
                    description: Identifier of the district.
                refno:
                    type: string
                    description: Reference number for the requirement.
                posttypes_id:
                    type: integer
                    format: int64
                    description: Identifier for the post type.
                kindofpropertymasters_id:
                    type: integer
                    format: int64
                    description: Identifier for the kind of property master.
                selectpropertytypemasters_id:
                    type: integer
                    format: int64
                    description: Identifier for the selected property type master.
                minbudgets:
                    type: integer
                    format: int32
                    description: Minimum budget.
                maxbudgets:
                    type: integer
                    format: int32
                    description: Maximum budget.
                minarea:
                    type: integer
                    format: int32
                    description: Minimum area.
                maxarea:
                    type: integer
                    format: int32
                    description: Maximum area.
                rentperunit:
                    type: string
                    description: Rent per unit.
                possession:
                    type: string
                    enum:
                        - ready-to-move
                        - under-construction
                    description: Possession status.
                status:
                    type: string
                    enum:
                        - active
                        - deleted
                        - inactive
                        - sold
                    description: Status of the requirement.
                users_id:
                    type: integer
                    format: int64
                    description: Identifier of the user.
                created_at:
                    type: string
                    format: date-time
                    description: Timestamp when the record was created.
                modified_at:
                    type: string
                    format: date-time
                    description: Timestamp when the record was last modified.
                types:
                    type: string
                    enum:
                        - property
                        - builder
                        - contractor
                    description: Type of the requirement.
                propertystatus:
                    type: string
                    enum:
                        - new
                        - re-sale
                    description: Status of the property.
                furnishstatus:
                    type: string
                    enum:
                        - unfurnished
                        - semi-furnished
                        - furnished
                    description: Furnishing status of the property.
                possessionstatus:
                    type: string
                    enum:
                        - ready to move
                        - later
                    description: Possession status.
                possessionexpt:
                    type: string
                    format: date-time
                    description: Expected possession date.
                spesificdate:
                    type: string
                    format: date-time
                    description: Specific date related to the requirement.
            required:
                - uuid
                - latitude
                - longitude
                - states_id
                - districts_id
                - posttypes_id
                - kindofpropertymasters_id
                - selectpropertytypemasters_id
                - minbudgets
                - maxbudgets
                - minarea
                - maxarea
                - rentperunit
                - possession
                - status
                - users_id
                - types
                - propertystatus
                - furnishstatus
                - possessionstatus

        #Review
        Review:
            type: object
            description: Represents a review given by a user.
            properties:
                id:
                    type: integer
                    format: int64
                    description: Unique identifier for the review.
                users_id:
                    type: integer
                    format: int64
                    description: Identifier for the user who made the review.
                reviewable_id:
                    type: integer
                    description: Identifier for the entity being reviewed.
                reviewable_type:
                    type: string
                    description: 'The type of entity being reviewed (e.g., "product", "service").'
                rate:
                    type: integer
                    description: Rating given by the user.
                review:
                    type: string
                    description: Textual review provided by the user.
                created_at:
                    type: string
                    format: date-time
                    description: Timestamp when the review was created.
                modified_at:
                    type: string
                    format: date-time
                    description: Timestamp when the review was last modified.
            required:
                - users_id
                - reviewable_id
                - reviewable_type
        #RoomType
        RoomType:
            type: object
            description: Represents a type of room.
            properties:
                id:
                    type: integer
                    format: int64
                    description: Unique identifier for the room type.
                name:
                    type: string
                    maxLength: 255
                    description: Name of the room type.
                status:
                    type: string
                    enum:
                        - active
                        - deleted
                        - inactive
                        - sold
                    description: Status of the room type.
                created_at:
                    type: string
                    format: date-time
                    description: Timestamp when the room type was created.
                modified_at:
                    type: string
                    format: date-time
                    description: Timestamp when the room type was last modified.
            required:
                - name
                - status
        #SelectPropertyTypeMaster
        SelectPropertyTypeMaster:
            type: object
            description: Represents a master record for selected property types.
            properties:
                id:
                    type: integer
                    format: int64
                    description: Unique identifier for the property type master.
                name:
                    type: string
                    maxLength: 255
                    description: Name of the property type master.
                slug:
                    type: string
                    maxLength: 255
                    description: Slug for the property type master.
                created_at:
                    type: string
                    format: date-time
                    description: Timestamp when the property type master was created.
                modified_at:
                    type: string
                    format: date-time
                    description: Timestamp when the property type master was last modified.
            required:
                - name
                - slug
        #SelectPropertyType
        SelectPropertyType:
            type: object
            description: >-
                Represents a selected property type with references to other property types
                and categories.
            properties:
                id:
                    type: integer
                    format: int64
                    description: Unique identifier for the selected property type.
                selectpropertytypemasters_id:
                    type: integer
                    format: int64
                    description: Identifier for the property type master this record belongs to.
                kindofproperties_id:
                    type: integer
                    format: int64
                    description: Identifier for the kind of property this record is associated with.
                created_at:
                    type: string
                    format: date-time
                    description: Timestamp when the selected property type was created.
                modified_at:
                    type: string
                    format: date-time
                    description: Timestamp when the selected property type was last modified.
            required:
                - selectpropertytypemasters_id
                - kindofproperties_id
        #ServiceCategory
        ServiceCategory:
            type: object
            description: >-
                Represents a category for services with a unique slug and a reference to
                service masters.
            properties:
                id:
                    type: integer
                    format: int64
                    description: Unique identifier for the service category.
                name:
                    type: string
                    description: Name of the service category.
                slug:
                    type: string
                    description: Unique slug for the service category.
                servicesmasters_id:
                    type: string
                    description: Slug of the service master this category belongs to.
                created_at:
                    type: string
                    format: date-time
                    description: Timestamp when the service category was created.
                modified_at:
                    type: string
                    format: date-time
                    description: Timestamp when the service category was last modified.
            required:
                - name
                - slug
                - servicesmasters_id
        #Tenant
        Tenant:
            type: object
            description: Represents a tenant with a status and timestamps.
            properties:
                id:
                    type: integer
                    format: int64
                    description: Unique identifier for the tenant.
                name:
                    type: string
                    description: Name of the tenant.
                status:
                    type: string
                    enum:
                        - active
                        - inactive
                        - deleted
                    description: Current status of the tenant.
                created_at:
                    type: string
                    format: date-time
                    description: Timestamp when the tenant was created.
                modified_at:
                    type: string
                    format: date-time
                    description: Timestamp when the tenant was last modified.
            required:
                - name
                - status
#Token
        Token:
            type: object
            description: Represents a token used for authentication or other purposes.
            properties:
                id:
                    type: integer
                    format: int64
                    description: Unique identifier for the token.
                users_id:
                    type: string
                    description: Identifier of the user associated with the token.
                key:
                    type: string
                    description: The token key used for authentication or identification.
                devicemasters_id:
                    type: integer
                    format: int64
                    description: Identifier of the device associated with the token.
                created_at:
                    type: string
                    format: date-time
                    description: Timestamp when the token was created.
                modified_at:
                    type: string
                    format: date-time
                    description: Timestamp when the token was last modified.
            required:
                - users_id
                - key
                - devicemasters_id
