definitions:
  addressparam.BenefactorAddAddressRequest:
    properties:
      address:
        example: tehran
        type: string
      city_id:
        example: 1
        type: integer
      lat:
        example: 22.23
        type: number
      lon:
        example: 22.22
        type: number
      name:
        example: home
        type: string
      postal_code:
        example: "1234567890"
        type: string
    type: object
  addressparam.BenefactorAddAddressResponse:
    properties:
      address:
        $ref: '#/definitions/entity.Address'
    type: object
  addressparam.GetAddressResponse:
    properties:
      address:
        $ref: '#/definitions/entity.Address'
    type: object
  addressparam.GetAllAddressesResponse:
    properties:
      all_addresses:
        items:
          $ref: '#/definitions/entity.Address'
        type: array
    type: object
  addressparam.GetAllCitiesResponse:
    properties:
      cities:
        items:
          $ref: '#/definitions/entity.City'
        type: array
    type: object
  addressparam.GetAllProvincesResponse:
    properties:
      provinces:
        items:
          $ref: '#/definitions/entity.Province'
        type: array
    type: object
  addressparam.UpdateAddressRequest:
    properties:
      address:
        example: Zanjan Province, Zanjan, Etemadieh, 6th St, Iran
        type: string
      city_id:
        example: 163
        type: integer
      lat:
        example: 123.456
        type: number
      lon:
        example: 123.456
        type: number
      name:
        example: Home
        type: string
      postal_code:
        example: "1234567890"
        type: string
    type: object
  adminkindboxreqparam.AssignSenderRequest:
    properties:
      sender_agent_id:
        type: integer
    type: object
  adminkindboxreqparam.AssignSenderResponse:
    type: object
  adminkindboxreqparam.DeliverKindBoxReqResponse:
    type: object
  adminkindboxreqparam.DeliveryAwaitingGetResponse:
    properties:
      benefactorID:
        type: integer
      countAccepted:
        type: integer
      countRequested:
        type: integer
      deliverAddressID:
        type: integer
      deliverReferDate:
        type: string
      deliverReferTimeID:
        type: integer
      deliveredAt:
        type: string
      description:
        type: string
      id:
        type: integer
      kindBoxType:
        $ref: '#/definitions/entity.KindBoxType'
      senderAgentID:
        type: integer
      status:
        $ref: '#/definitions/entity.KindBoxReqStatus'
    type: object
  adminkindboxreqparam.KindBoxReqAcceptRequest:
    properties:
      count_accepted:
        type: integer
    type: object
  adminkindboxreqparam.KindBoxReqAcceptResponse:
    properties:
      count_accepted:
        type: integer
      count_requested:
        type: integer
      deliver_address_id:
        type: integer
      deliver_refer_date:
        type: string
      kind_box_req_id:
        type: integer
      kind_box_req_status:
        $ref: '#/definitions/entity.KindBoxReqStatus'
    type: object
  adminkindboxreqparam.KindBoxReqGetAllResponse:
    properties:
      all_kind_box_req:
        items:
          $ref: '#/definitions/entity.KindBoxReq'
        type: array
      pagination:
        $ref: '#/definitions/param.PaginationResponse'
    type: object
  adminkindboxreqparam.KindBoxReqRejectRequest:
    properties:
      description:
        example: description
        type: string
    type: object
  adminkindboxreqparam.KindBoxReqRejectResponse:
    properties:
      benefactor_id:
        example: 1
        type: integer
      count_requested:
        example: 1
        type: integer
      deliver_address_id:
        example: 1
        type: integer
      deliver_refer_date:
        example: "2025-01-02 15:04:05"
        type: string
      description:
        example: description
        type: string
      id:
        example: 1
        type: integer
      kind_box_type:
        allOf:
        - $ref: '#/definitions/entity.KindBoxType'
        example: 1
      status:
        allOf:
        - $ref: '#/definitions/entity.KindBoxReqStatus'
        example: 1
    type: object
  adminserviceparam.AdminInfo:
    properties:
      description:
        example: This is a description
        type: string
      email:
        example: example@gmail.com
        type: string
      first_name:
        example: John
        type: string
      gender:
        allOf:
        - $ref: '#/definitions/entity.Gender'
        example: 1
      id:
        example: 1
        type: integer
      last_name:
        example: Doe
        type: string
      phone_number:
        example: "09123456789"
        type: string
      role:
        allOf:
        - $ref: '#/definitions/entity.AdminRole'
        example: 2
      status:
        allOf:
        - $ref: '#/definitions/entity.AdminStatus'
        example: 1
    type: object
  adminserviceparam.Agent:
    properties:
      first_name:
        example: John
        type: string
      id:
        example: 1
        type: integer
      last_name:
        example: Doe
        type: string
      phone_number:
        example: "09123456789"
        type: string
    type: object
  adminserviceparam.GetAllAgentResponse:
    properties:
      agents:
        items:
          $ref: '#/definitions/adminserviceparam.Agent'
        type: array
    type: object
  adminserviceparam.LoginWithPhoneNumberRequest:
    properties:
      password:
        example: password123
        type: string
      phone_number:
        example: "09123456789"
        type: string
    type: object
  adminserviceparam.LoginWithPhoneNumberResponse:
    properties:
      admin_info:
        $ref: '#/definitions/adminserviceparam.AdminInfo'
      tokens:
        $ref: '#/definitions/adminserviceparam.Tokens'
    type: object
  adminserviceparam.RegisterRequest:
    properties:
      description:
        example: this is a description
        type: string
      email:
        example: miaad.66@gmail.com
        type: string
      first_name:
        example: miaad
        type: string
      gender:
        allOf:
        - $ref: '#/definitions/entity.Gender'
        example: 1
      last_name:
        example: shahi
        type: string
      password:
        example: Abc123456
        type: string
      phone_number:
        example: "09183723447"
        type: string
      role:
        allOf:
        - $ref: '#/definitions/entity.AdminRole'
        example: 2
      status:
        allOf:
        - $ref: '#/definitions/entity.AdminStatus'
        example: 1
    type: object
  adminserviceparam.RegisterResponse:
    properties:
      admin:
        $ref: '#/definitions/entity.Admin'
    type: object
  adminserviceparam.Tokens:
    properties:
      access_token:
        type: string
      refresh_token:
        type: string
    type: object
  benefactoreparam.BenefactroInfo:
    properties:
      first_name:
        example: mehdi
        type: string
      id:
        example: 1
        type: integer
      last_name:
        example: rez
        type: string
      role:
        example: benefactor
        type: string
    type: object
  benefactoreparam.LoginOrRegisterRequest:
    properties:
      phone_number:
        example: "09198829528"
        type: string
      verification_code:
        example: "12345"
        type: string
    type: object
  benefactoreparam.LoginOrRegisterResponse:
    properties:
      benefactore_info:
        $ref: '#/definitions/benefactoreparam.BenefactroInfo'
      tokens:
        $ref: '#/definitions/benefactoreparam.Tokens'
    type: object
  benefactoreparam.SendOtpRequest:
    properties:
      phone_number:
        example: "09198829528"
        type: string
    type: object
  benefactoreparam.SendOtpResponse:
    properties:
      code:
        description: "this just use in test .env\n\t\tTODO - remove it after test"
        type: string
      phone_number:
        example: "09198829528"
        type: string
    type: object
  benefactoreparam.Tokens:
    properties:
      access_token:
        type: string
      refresh_token:
        type: string
    type: object
  benefactorkindboxparam.KindBoxGetResponse:
    properties:
      amount:
        type: integer
      benefactorID:
        type: integer
      deliverAddressID:
        type: integer
      deliverReferDate:
        type: string
      deliveredAt:
        type: string
      id:
        type: integer
      kindBoxReqID:
        type: integer
      receiverAgentID:
        type: integer
      returnAddressID:
        type: integer
      returnReferDate:
        type: string
      returnedAt:
        type: string
      senderAgentID:
        type: integer
      serialNumber:
        type: string
      status:
        $ref: '#/definitions/entity.KindBoxStatus'
      type:
        $ref: '#/definitions/entity.KindBoxType'
    type: object
  benefactorkindboxreqparam.KindBoxReqAddRequest:
    properties:
      benefactor_id:
        example: 1
        type: integer
      count_requested:
        example: 2
        type: integer
      deliver_address_id:
        example: 1
        type: integer
      deliver_refer_date:
        example: "2025-01-02T15:04:05Z"
        type: string
      deliver_refer_time_id:
        example: 1
        type: integer
      type_id:
        allOf:
        - $ref: '#/definitions/entity.KindBoxType'
        example: 1
    type: object
  benefactorkindboxreqparam.KindBoxReqAddResponse:
    properties:
      kind_box_req:
        $ref: '#/definitions/entity.KindBoxReq'
    type: object
  benefactorkindboxreqparam.KindBoxReqDeleteResponse:
    type: object
  benefactorkindboxreqparam.KindBoxReqGetResponse:
    properties:
      kind_box_req:
        $ref: '#/definitions/entity.KindBoxReq'
    type: object
  benefactorkindboxreqparam.KindBoxReqUpdateRequest:
    properties:
      count_requested:
        example: 2
        type: integer
      deliver_address_id:
        example: 2
        type: integer
      deliver_refer_date:
        example: "2025-01-02 15:04:05"
        type: string
      deliver_refer_time_id:
        example: 1
        type: integer
      description:
        example: this is a description for...
        type: string
      kind_box_type:
        allOf:
        - $ref: '#/definitions/entity.KindBoxType'
        example: 1
    type: object
  benefactorkindboxreqparam.KindBoxReqUpdateResponse:
    properties:
      kind_box_req:
        $ref: '#/definitions/entity.KindBoxReq'
    type: object
  entity.Address:
    properties:
      address:
        type: string
      benefactorID:
        type: integer
      cityID:
        type: integer
      id:
        type: integer
      lat:
        type: number
      lon:
        type: number
      name:
        type: string
      postalCode:
        type: string
      provinceID:
        type: integer
    type: object
  entity.Admin:
    properties:
      description:
        type: string
      email:
        type: string
      firstName:
        type: string
      gender:
        $ref: '#/definitions/entity.Gender'
      id:
        type: integer
      lastName:
        type: string
      password:
        type: string
      phoneNumber:
        type: string
      role:
        $ref: '#/definitions/entity.AdminRole'
      status:
        $ref: '#/definitions/entity.AdminStatus'
    type: object
  entity.AdminRole:
    enum:
    - 1
    - 2
    - 3
    type: integer
    x-enum-varnames:
    - AdminSuperAdminRole
    - AdminAdminRole
    - AdminAgentRole
  entity.AdminStatus:
    enum:
    - 1
    - 2
    type: integer
    x-enum-varnames:
    - AdminActiveStatus
    - AdminInactiveStatus
  entity.City:
    properties:
      id:
        type: integer
      name:
        type: string
      provinceID:
        type: integer
    type: object
  entity.Gender:
    enum:
    - 1
    - 2
    type: integer
    x-enum-varnames:
    - MaleGender
    - FemaleGender
  entity.KindBoxReq:
    properties:
      benefactorID:
        type: integer
      countAccepted:
        type: integer
      countRequested:
        type: integer
      deliverAddressID:
        type: integer
      deliverReferDate:
        type: string
      deliverReferTimeID:
        type: integer
      deliveredAt:
        type: string
      description:
        type: string
      id:
        type: integer
      kindBoxType:
        $ref: '#/definitions/entity.KindBoxType'
      senderAgentID:
        type: integer
      status:
        $ref: '#/definitions/entity.KindBoxReqStatus'
    type: object
  entity.KindBoxReqStatus:
    enum:
    - 1
    - 2
    - 3
    - 4
    - 5
    type: integer
    x-enum-varnames:
    - KindBoxReqPendingStatus
    - KindBoxReqAcceptedStatus
    - KindBoxReqAssignedSenderAgentStatus
    - KindBoxReqRejectedStatus
    - KindBoxReqDeliveredStatus
  entity.KindBoxStatus:
    enum:
    - 1
    - 2
    - 3
    - 4
    - 5
    type: integer
    x-enum-varnames:
    - KindBoxDeliveredStatus
    - KindBoxReadyToReturnStatus
    - KindBoxAssignedReceiverAgentStatus
    - KindBoxReturnedStatus
    - KindBoxEnumeratedStatus
  entity.KindBoxType:
    enum:
    - 1
    - 2
    - 3
    type: integer
    x-enum-varnames:
    - KindBoxOnTable
    - KindBoxCylindrical
    - KindBoxStandUp
  entity.Province:
    properties:
      id:
        type: integer
      name:
        type: string
    type: object
  param.PaginationResponse:
    properties:
      page_number:
        example: 1
        type: integer
      page_size:
        example: 10
        type: integer
      total:
        example: 100
        type: integer
    type: object
info:
  contact: {}
paths:
  /address/:
    get:
      consumes:
      - application/json
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/addressparam.GetAllAddressesResponse'
        "400":
          description: Bad request
          schema:
            type: string
      security:
      - AuthBearerBenefactor: []
      summary: Get all benefactor addresses
      tags:
      - Address
    post:
      consumes:
      - application/json
      description: This endpoint allows an authenticated benefactor to add a new address
        to their account.
      parameters:
      - description: New address details
        in: body
        name: Request
        required: true
        schema:
          $ref: '#/definitions/addressparam.BenefactorAddAddressRequest'
      produces:
      - application/json
      responses:
        "201":
          description: Created
          schema:
            $ref: '#/definitions/addressparam.BenefactorAddAddressResponse'
        "400":
          description: Bad request
          schema:
            type: string
      security:
      - AuthBearerBenefactor: []
      summary: Add a new address for a benefactor
      tags:
      - Address
  /address/{id}:
    delete:
      description: This endpoint is used to delete an address by benefactor
      parameters:
      - description: Address ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "204":
          description: No Content
        "400":
          description: Bad request
          schema:
            type: string
      security:
      - AuthBearerBenefactor: []
      summary: Delete address by benefactor
      tags:
      - Address
    get:
      consumes:
      - application/json
      parameters:
      - description: Address ID
        in: path
        name: id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/addressparam.GetAddressResponse'
        "400":
          description: Bad request
          schema:
            type: string
      security:
      - AuthBearerBenefactor: []
      summary: Get a benefactor address
      tags:
      - Address
    patch:
      consumes:
      - application/json
      parameters:
      - description: Address ID
        in: path
        name: id
        required: true
        type: integer
      - description: Edit address details
        in: body
        name: Request
        required: true
        schema:
          $ref: '#/definitions/addressparam.UpdateAddressRequest'
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "400":
          description: Bad request
          schema:
            type: string
      security:
      - AuthBearerBenefactor: []
      summary: Edit benefactor address
      tags:
      - Address
  /address/cities:
    get:
      consumes:
      - application/json
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/addressparam.GetAllCitiesResponse'
        "400":
          description: Bad request
          schema:
            type: string
      summary: Get all cities
      tags:
      - Address
  /address/provinces:
    get:
      consumes:
      - application/json
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/addressparam.GetAllProvincesResponse'
        "400":
          description: Bad request
          schema:
            type: string
      summary: Get all provinces
      tags:
      - Address
  /admin/kindboxreqs:
    get:
      consumes:
      - application/json
      parameters:
      - description: page_number
        in: query
        name: page_number
        type: integer
      - description: page_size
        in: query
        name: page_size
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/adminkindboxreqparam.KindBoxReqGetAllResponse'
        "400":
          description: Bad request
          schema:
            type: string
      security:
      - AuthBearerAdmin: []
      summary: Admin get all kindboxreq
      tags:
      - KindBoxReq
  /admin/kindboxreqs/accept-kind-box-req/{id}:
    patch:
      consumes:
      - application/json
      parameters:
      - description: KindBoxReq ID
        in: path
        name: id
        required: true
        type: integer
      - description: Accept KindBoxReq Request Body
        in: body
        name: Request
        required: true
        schema:
          $ref: '#/definitions/adminkindboxreqparam.KindBoxReqAcceptRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/adminkindboxreqparam.KindBoxReqAcceptResponse'
        "400":
          description: Bad request
          schema:
            type: string
      security:
      - AuthBearerAdmin: []
      summary: Accept kind box request by admin
      tags:
      - KindBoxReq
  /admin/kindboxreqs/assign-sender-agent/{id}:
    patch:
      consumes:
      - application/json
      parameters:
      - description: KindBoxReq ID
        in: path
        name: id
        required: true
        type: integer
      - description: Assign Sender Agent Request Body
        in: body
        name: Request
        required: true
        schema:
          $ref: '#/definitions/adminkindboxreqparam.AssignSenderRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/adminkindboxreqparam.AssignSenderResponse'
        "400":
          description: Bad request
          schema:
            type: string
      security:
      - AuthBearerAdmin: []
      summary: Admin Assign Sender Agent to kindboxreq
      tags:
      - KindBoxReq
  /admin/kindboxreqs/awaiting-delivery/{id}:
    get:
      consumes:
      - application/json
      parameters:
      - description: KindBoxReq ID
        in: path
        name: id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/adminkindboxreqparam.DeliveryAwaitingGetResponse'
        "400":
          description: Bad request
          schema:
            type: string
      security:
      - AuthBearerAdmin: []
      summary: Get a kind box reqs that is awaiting delivery by agent
      tags:
      - KindBoxReq
  /admin/kindboxreqs/deliver-kind-box-req/{id}:
    patch:
      consumes:
      - application/json
      parameters:
      - description: KindBoxReq ID
        in: path
        name: id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/adminkindboxreqparam.DeliverKindBoxReqResponse'
        "400":
          description: Bad request
          schema:
            type: string
      security:
      - AuthBearerAdmin: []
      summary: Admin deliver a kindboxreq
      tags:
      - KindBoxReq
  /admin/kindboxreqs/reject-kind-box-req/{id}:
    patch:
      consumes:
      - application/json
      parameters:
      - description: KindBoxReq id
        in: path
        name: id
        required: true
        type: integer
      - description: KindBoxReq Reject Request Body
        in: body
        name: Request
        required: true
        schema:
          $ref: '#/definitions/adminkindboxreqparam.KindBoxReqRejectRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/adminkindboxreqparam.KindBoxReqRejectResponse'
        "400":
          description: Bad request
          schema:
            type: string
      security:
      - AuthBearerAdmin: []
      summary: Reject a kindboxreq by admin
      tags:
      - KindBoxReq
  /admins/agents:
    get:
      consumes:
      - application/json
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/adminserviceparam.GetAllAgentResponse'
        "400":
          description: Bad request
          schema:
            type: string
      security:
      - AuthBearerAdmin: []
      summary: Get all agents by admin
      tags:
      - Admin
  /admins/login-by-phone:
    post:
      consumes:
      - application/json
      parameters:
      - description: Admin login request body
        in: body
        name: Request
        required: true
        schema:
          $ref: '#/definitions/adminserviceparam.LoginWithPhoneNumberRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/adminserviceparam.LoginWithPhoneNumberResponse'
        "400":
          description: Bad request
          schema:
            type: string
      summary: "Admin login by\tPhoneNumber"
      tags:
      - Admin
  /admins/register:
    post:
      consumes:
      - application/json
      parameters:
      - description: Admin Register Request Body
        in: body
        name: Request
        required: true
        schema:
          $ref: '#/definitions/adminserviceparam.RegisterRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/adminserviceparam.RegisterResponse'
        "400":
          description: Bad request
          schema:
            type: string
      security:
      - AuthBearerAdmin: []
      summary: Register an admin by super-admin
      tags:
      - Admin
  /benefactor/kindboxes/:
    get:
      consumes:
      - application/json
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/benefactorkindboxparam.KindBoxGetResponse'
        "400":
          description: Bad request
          schema:
            type: string
      security:
      - AuthBearerBenefactor: []
      summary: Get all kind boxes for a benefactor
      tags:
      - KindBox
  /benefactor/kindboxes/{id}:
    get:
      consumes:
      - application/json
      description: This endpoint retrieves a specific kind box associated with an
        authenticated benefactor.
      parameters:
      - description: Kind box ID
        in: path
        name: id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/benefactorkindboxparam.KindBoxGetResponse'
        "400":
          description: Bad request
          schema:
            type: string
      security:
      - AuthBearerBenefactor: []
      summary: Get a specific kind box for a benefactor
      tags:
      - KindBox
  /benefactor/kindboxreqs/:
    post:
      consumes:
      - application/json
      parameters:
      - description: New kind box request details
        in: body
        name: Request
        required: true
        schema:
          $ref: '#/definitions/benefactorkindboxreqparam.KindBoxReqAddRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/benefactorkindboxreqparam.KindBoxReqAddResponse'
        "400":
          description: Bad request
          schema:
            type: string
      security:
      - AuthBearerBenefactor: []
      summary: Add a new kind box request for a benefactor
      tags:
      - KindBoxReq
  /benefactor/kindboxreqs/{id}:
    delete:
      consumes:
      - application/json
      description: This endpoint is used to delete benefactor's kindboxreq at pending
        status
      parameters:
      - description: Kind box request ID
        in: path
        name: id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/benefactorkindboxreqparam.KindBoxReqDeleteResponse'
        "400":
          description: Bad request
          schema:
            type: string
      security:
      - AuthBearerBenefactor: []
      summary: delete kindboxreq by benefactor
      tags:
      - KindBoxReq
    get:
      consumes:
      - application/json
      parameters:
      - description: Kind box request ID
        in: path
        name: id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/benefactorkindboxreqparam.KindBoxReqGetResponse'
        "400":
          description: Bad request
          schema:
            type: string
      security:
      - AuthBearerBenefactor: []
      summary: Get a kind box request for a benefactor
      tags:
      - KindBoxReq
    patch:
      consumes:
      - application/json
      parameters:
      - description: KindBoxReq ID
        in: path
        name: id
        required: true
        type: integer
      - description: Update kind box req fields
        in: body
        name: Request
        required: true
        schema:
          $ref: '#/definitions/benefactorkindboxreqparam.KindBoxReqUpdateRequest'
      produces:
      - application/json
      responses:
        "204":
          description: No Content
          schema:
            $ref: '#/definitions/benefactorkindboxreqparam.KindBoxReqUpdateResponse'
        "400":
          description: Bad request
          schema:
            type: string
      security:
      - AuthBearerBenefactor: []
      summary: update kindBoxReq
      tags:
      - KindBoxReq
  /benefactor/login-register:
    post:
      consumes:
      - application/json
      description: This endpoint is used to authenticate an existing benefactor account
        or register a new one.
      parameters:
      - description: Login or register request details
        in: body
        name: Request
        required: true
        schema:
          $ref: '#/definitions/benefactoreparam.LoginOrRegisterRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/benefactoreparam.LoginOrRegisterResponse'
        "400":
          description: Bad request
          schema:
            type: string
      summary: Login or register a benefactor
      tags:
      - Benefactor
  /benefactor/send-otp:
    post:
      consumes:
      - application/json
      description: This endpoint sends an OTP to the benefactor's phone number for
        verification purposes.
      parameters:
      - description: Send OTP request details
        in: body
        name: Request
        required: true
        schema:
          $ref: '#/definitions/benefactoreparam.SendOtpRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/benefactoreparam.SendOtpResponse'
        "400":
          description: Bad request
          schema:
            type: string
      summary: Send OTP to benefactor
      tags:
      - Benefactor
securityDefinitions:
  AuthBearerAdmin:
    description: Type the word 'Bearer' followed by a space and Admin JWT token
    in: header
    name: Authorization
    type: apiKey
  AuthBearerBenefactor:
    description: Type the word 'Bearer' followed by a space and Benefactor JWT token
    in: header
    name: Authorization
    type: apiKey
swagger: "2.0"
