---
openapi: 3.1.0
info:
  contact:
    email: support@creditruralgn.com
    name: CRÉDIT RURAL
    url: https://wallet.creditruralgn.com/
  description: Le microservice core de S.I de crédit money.
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  title: CRÉDIT WALLET CORE API
  version: 1.0.0
tags:
- name: Administration admins manage
  description: Gérer les administrateurs
- name: Administration agents manage
  description: Gérer les agents
- name: Administration bulk payment manage
  description: Gérer les paiements de masse
- name: Administration coupon
  description: Gérer les bons d'achat
- name: Administration foire aux questions
  description: Gérer les catégories et les réponses de foire aux questions
- name: Administration loans
  description: Voir les opérations de prêts
- name: Administration operation
  description: Gérer les taux de commission du master agent
- name: Administration operations
  description: Voir opérations
- name: Administration product
  description: Gérer les produits
- name: Administration product category
  description: Gérer les catégories de produits
- name: Administration référentiel
  description: Gérer le référentiel
- name: Administration shop manage
  description: Gérer les boutiques
- name: Administration supplier
  description: Gérer les fournisseurs
- name: Administration supplier category
  description: Gérer les catégories de fournisseur
- name: Administration sécurité
  description: Gérer la sécurité du système
- name: Administration users manage
  description: Gérer les utilisateurs
- name: Administration établissements
  description: Voir établissements
- name: Administration évènements
  description: Gérer les évènements et les tickets d'un évènement
- name: Agents manage
  description: Gérer l'identité des agents
- name: BI APIs
  description: APIs pour les analyses BI
- name: Cartes visa partenaires
  description: Gestion des cartes visa partenaires
- name: Commission manage
  description: Gérer les commissions des agents
- name: "Gestion des tontine [Agent collecteur]"
  description: CRUD pour les tontines
- name: Méthodes de paiement
  description: Gérer les méthodes de paiement
- name: Payment manage
  description: Gérer les paiements de masse
- name: Référentiel Agences
  description: Gérer le référentiel agences
- name: Référentiel Pays
  description: Gérer le référentiel pays
- name: Référentiel Points de service
  description: Gérer le référentiel points de service
- name: Référentiel Régions
  description: Gérer le référentiel régions
- name: Référentiel Villes
  description: Gérer le référentiel villes
- name: Shop manage
  description: Gérer les boutiques des utilisateurs
- name: Supplier manage
  description: Gérer les produits et les fournisseurs
- name: Sécurité permission
  description: Gérer les permissions
- name: Sécurité profil
  description: Gérer les profils administrateur
- name: Taux commissions master agent
  description: Gérer les taux de commission du master agent
- name: Types opérations
  description: Gérer les types d'opérations
- name: Users manage
  description: Gérer l'identité des utilisateurs
security:
- Auth JWT:
  - JWT
components:
  responses: {}
  schemas:
    AccountCreationRequest:
      type: object
      required:
      - name
      - phone
      - password
      - country
      properties:
        name:
          type: string
        phone:
          type: string
        password:
          type: string
        country:
          type: string
    AddTokenRequest:
      type: object
      properties:
        token:
          type: string
    AdminAccountRequest:
      type: object
      required:
      - first_name
      - last_name
      - password
      - profile
      properties:
        email:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        password:
          type: string
        confirm_password:
          type: string
        gender:
          $ref: "#/components/schemas/Gender"
        civility:
          $ref: "#/components/schemas/Civility"
        profile:
          type: integer
          format: int64
        avatar:
          $ref: "#/components/schemas/BinaryFile"
        is_root:
          type: boolean
    AdminTransfertOperationRequestBody:
      type: object
    AgencyRequest:
      type: object
      required:
      - cityId
      - name
      - walletPhone
      properties:
        cityId:
          type: integer
          format: int64
        name:
          type: string
        walletPhone:
          type: string
        fixe:
          type: string
        fax:
          type: string
        lon:
          type: number
          format: double
        lat:
          type: number
          format: double
    AgentFinalizeWithdrawalRequest:
      type: object
      required:
      - otp
      - password
      - amount
      - beneficiaryId
      properties:
        otp:
          type: string
        password:
          type: string
        amount:
          type: integer
          format: int64
        beneficiaryId:
          type: integer
          format: int64
    AgentInitWithdrawalRequest:
      type: object
      required:
      - amount
      - beneficiaryId
      properties:
        amount:
          type: integer
          format: int64
        beneficiaryId:
          type: integer
          format: int64
        pinValidation:
          type: boolean
        agentPin:
          type: string
    ApiResponse:
      type: object
      properties:
        status_code:
          type: integer
          format: int32
        status_message:
          type: string
        data: {}
    AssignCardRequest:
      type: object
      required:
      - userId
      - cardUID
      properties:
        userId:
          type: integer
          format: int64
        cardUID:
          type: string
    AssignRoleRequest:
      type: object
      required:
      - adminId
      - profileId
      properties:
        adminId:
          type: integer
          format: int64
        profileId:
          type: integer
          format: int64
    AssignUserRequest:
      type: object
    AuthRequest:
      type: object
      required:
      - login
      - password
      properties:
        login:
          type: string
        password:
          type: string
        remember:
          type: boolean
        device:
          $ref: "#/components/schemas/DeviceRequest"
    BeneficiaryRequest:
      type: object
      required:
      - phone
      - name
      properties:
        phone:
          type: string
        name:
          type: string
    BetPaymentTontineRequest:
      type: object
      required:
      - memberId
      - tontineId
      - tontineCycleId
      - betNumber
      - pin
      properties:
        memberId:
          type: integer
          format: int64
        tontineId:
          type: integer
          format: int64
        tontineCycleId:
          type: integer
          format: int64
        betNumber:
          type: integer
          format: int32
        pin:
          type: string
    BinaryFile:
      type: object
      required:
      - fileName
      - extension
      - binary
      properties:
        fileName:
          type: string
          minLength: 1
        extension:
          type: string
          minLength: 1
        binary:
          type: string
          minLength: 1
    BulkPaymentRequest:
      type: object
      required:
      - password
      - items
      properties:
        password:
          type: string
        message:
          type: string
        notify_person:
          type: boolean
        items:
          type: array
          items:
            $ref: "#/components/schemas/PaymentBulkItemRequest"
    BulkTicketImportRequest:
      type: object
      required:
      - tickets
      properties:
        tickets:
          type: array
          items:
            $ref: "#/components/schemas/TicketRequestBody"
    BulkUserItemRequest:
      type: object
      required:
      - name
      - phone
      - code_pin
      properties:
        name:
          type: string
        phone:
          type: string
        code_pin:
          type: string
    BulkUserRequest:
      type: object
      required:
      - password
      - items
      properties:
        password:
          type: string
        message:
          type: string
        items:
          type: array
          items:
            $ref: "#/components/schemas/BulkUserItemRequest"
    BulkVisaCreationRequest:
      type: object
      required:
      - cards
      properties:
        cards:
          type: array
          items:
            $ref: "#/components/schemas/VisaCreationRequest"
    CalculateOperationFeesRequest:
      type: object
      required:
      - walletMethodeId
      - amount
      properties:
        walletMethodeId:
          type: integer
          format: int64
        amount:
          type: integer
          format: int64
    CancelBetPaymentTontineRequest:
      type: object
      required:
      - tontineCycleId
      - betsIds
      - password
      properties:
        tontineCycleId:
          type: integer
          format: int64
        betsIds:
          type: array
          items:
            type: integer
            format: int64
        password:
          type: string
    CardDeletionRequest:
      type: object
      required:
      - cardId
      - userId
      properties:
        cardId:
          type: integer
          format: int64
        userId:
          type: integer
          format: int64
    CardEditionRequest:
      type: object
      required:
      - cardId
      - userId
      - cardUID
      properties:
        cardId:
          type: integer
          format: int64
        userId:
          type: integer
          format: int64
        cardUID:
          type: string
    CardVisaAddRequest:
      type: object
      required:
      - cardNumber
      - phoneNumber
      - pin
      properties:
        cardNumber:
          type: string
        phoneNumber:
          type: string
        pin:
          type: string
    CardVisaPhoneEditionRequest:
      type: object
      required:
      - phoneNumber
      properties:
        phoneNumber:
          type: string
    CardVisaRechargingRequest:
      type: object
      required:
      - amount
      - pin
      properties:
        amount:
          type: integer
          format: int32
        pin:
          type: string
    CardVisaTransferRequest:
      type: object
      required:
      - beneficiaryCardClientId
      - beneficiaryLastFor
      - pin
      - amount
      properties:
        beneficiaryCardClientId:
          type: string
        beneficiaryLastFor:
          type: string
        pin:
          type: string
        amount:
          type: integer
          format: int32
    CardVisaWithdrawalRequest:
      type: object
      required:
      - amount
      - pin
      properties:
        amount:
          type: integer
          format: int32
        pin:
          type: string
    ChangePasswordRequest:
      type: object
      required:
      - phone
      - code
      - password
      - confirm_password
      properties:
        phone:
          type: string
        code:
          type: string
        password:
          type: string
        confirm_password:
          type: string
    ChargingRequest:
      type: object
      required:
      - account_debited
      - amount
      - code
      - full_name
      - phone
      properties:
        account_debited:
          type: string
        amount:
          type: integer
          format: int64
        code:
          type: string
        full_name:
          type: string
        phone:
          type: string
    CheckingEventTicketBody:
      type: object
      required:
      - qrCodeData
      - mode
      properties:
        qrCodeData:
          type: string
        mode:
          type: integer
          format: int32
    ChildFeeRequest:
      type: object
      required:
      - fullName
      - amount
      - parentPhone
      properties:
        fullName:
          type: string
        matricule:
          type: string
        amount:
          type: integer
          format: int32
        parentPhone:
          type: string
        paymentFeeDueDateRequestList:
          type: array
          items:
            $ref: "#/components/schemas/PaymentFeeDueDateRequest"
    CityRequest:
      type: object
      required:
      - regionId
      - name
      properties:
        regionId:
          type: integer
          format: int64
        lon:
          type: number
          format: double
        lat:
          type: number
          format: double
        name:
          type: string
    Civility:
      type: string
      enum:
      - Monsieur
      - Madame
      - Mademoiselle
    CloseTontineRequest:
      type: object
      required:
      - tontineCycleId
      - password
      - withdrawalMode
      properties:
        tontineCycleId:
          type: integer
          format: int64
        password:
          type: string
        agencyCashWalletPhone:
          type: string
        withdrawalMode:
          $ref: "#/components/schemas/WITHDRAWALL_MODE"
    CollectTontineBetRequest:
      type: object
      required:
      - memberId
      - tontineCycleId
      - betNumber
      - password
      properties:
        memberId:
          type: integer
          format: int64
        tontineCycleId:
          type: integer
          format: int64
        betNumber:
          type: integer
          format: int32
        password:
          type: string
    CommissionPaymentTontineRequest:
      type: object
      properties:
        tontineCycleIds:
          type: array
          items:
            type: integer
            format: int64
        password:
          type: string
    ConfirmCouponPaymentRequest:
      type: object
      required:
      - code
      - shopId
      - couponId
      properties:
        code:
          type: string
        shopId:
          type: integer
          format: int64
        couponId:
          type: integer
          format: int64
    ConfirmWithdrawalRequest:
      type: object
      required:
      - pin
      properties:
        pin:
          type: string
    ContentDataRequest:
      type: object
      properties:
        value:
          type: string
    CountryRequest:
      type: object
      required:
      - code
      - name
      - indicatif
      properties:
        code:
          type: string
        longitude:
          type: number
          format: double
        latitude:
          type: number
          format: double
        name:
          type: string
        indicatif:
          type: string
        flag:
          $ref: "#/components/schemas/BinaryFile"
    CouponRequest:
      type: object
      required:
      - productId
      - quantity
      - clientPhone
      - amount
      - shopId
      properties:
        productId:
          type: integer
          format: int64
        quantity:
          type: integer
          format: int32
        clientPhone:
          type: string
        amount:
          type: integer
          format: int64
        pin:
          type: string
        shopId:
          type: integer
          format: int64
    CouponSearchRequest:
      type: object
      required:
      - reference
      properties:
        reference:
          type: string
    CouponUSSDSearchRequest:
      type: object
      required:
      - code_coupon
      - phone
      - shop_code
      properties:
        code_coupon:
          type: string
        phone:
          type: string
        shop_code:
          type: string
    Date:
      type: string
      format: date
      examples:
      - 2022-03-10
    DefaultEmptyRequest:
      type: object
      required:
      - phone
      properties:
        phone:
          type: string
    DepositAgentRequest:
      type: object
      required:
      - password
      - amount
      - beneficiaryId
      properties:
        password:
          type: string
        amount:
          type: integer
          format: int64
        beneficiaryId:
          type: integer
          format: int64
    DeviceRequest:
      type: object
      properties:
        uuid:
          type: string
        model:
          type: string
        os:
          type: string
        brand:
          type: string
        appName:
          type: string
        appVersion:
          type: string
    EditPasswordRequest:
      type: object
      required:
      - password
      - new_password
      - confirm_password
      properties:
        password:
          type: string
        new_password:
          type: string
        confirm_password:
          type: string
    EstablishmentCreationRequest:
      type: object
      required:
      - name
      - locate
      properties:
        name:
          type: string
        locate:
          type: string
        type:
          type: string
        phone1:
          type: string
        phone2:
          type: string
        phone3:
          type: string
        fixe:
          type: string
        fax:
          type: string
        email:
          type: string
        webSite:
          type: string
        crgAccountNumber:
          type: string
    ExternalAppAuthRequest:
      type: object
      required:
      - name
      - secret
      - key
      properties:
        name:
          type: string
        secret:
          type: string
        key:
          type: string
    ExternalAppTransferRequest:
      type: object
      required:
      - reason
      - transactions
      properties:
        reason:
          type: string
        transactions:
          type: array
          items:
            $ref: "#/components/schemas/SingleTransactionRequest"
    FaqQuestionRequest:
      type: object
      required:
      - question
      - category
      properties:
        question:
          type: string
        response:
          type: string
        category:
          type: integer
          format: int64
    FaqRequest:
      type: object
      required:
      - label
      properties:
        label:
          type: string
    FinalizeOperationRequest:
      type: object
      required:
      - operationRequestId
      - pin
      - phone
      properties:
        operationRequestId:
          type: integer
          format: int64
        pin:
          type: string
        phone:
          type: string
    Gender:
      type: string
      enum:
      - M
      - F
    IdVerificationRequest:
      type: object
      required:
      - identityId
      - identityFileCloud
      - verdict
      properties:
        identityId:
          type: integer
          format: int64
        identityFileCloud:
          type: integer
          format: int64
        comment:
          type: string
        verdict:
          $ref: "#/components/schemas/Verdict"
    IdentityRequest:
      type: object
    InitChargingRequest:
      type: object
      required:
      - account_debited
      - amount
      properties:
        account_debited:
          type: string
        amount:
          type: integer
          format: int64
    InitTransferRequest:
      type: object
      required:
      - amount
      - beneficiaryId
      properties:
        amount:
          type: integer
          format: int64
        beneficiaryId:
          type: integer
          format: int64
    InitValidateChargingRequest:
      type: object
      required:
      - member_code
      - phone
      - account_debited
      - amount
      properties:
        member_code:
          type: string
        phone:
          type: string
        account_debited:
          type: string
        amount:
          type: string
    InitWithdrawalOperationRequest:
      type: object
      required:
      - userId
      - amount
      - pin
      - agentPhone
      properties:
        userId:
          type: integer
          format: int64
        amount:
          type: integer
          format: int64
        pin:
          type: string
        agentPhone:
          type: string
    LimitationLoanPaymentRequest:
      type: object
      required:
      - amount
      properties:
        amount:
          type: number
          format: double
    LinkToAgencyRequest:
      type: object
      required:
      - userId
      properties:
        userId:
          type: integer
          format: int64
        servicePointId:
          type: integer
          format: int64
        agencyId:
          type: integer
          format: int64
    LinkWalletConfirmationRequest:
      type: object
      required:
      - phoneNumber
      - otpCode
      properties:
        phoneNumber:
          type: string
        otpCode:
          type: string
    LinkWalletPhoneRequest:
      type: object
      properties:
        phoneNumber:
          type: string
    LocalTransferRequest:
      type: object
      required:
      - beneficiaryId
      - amount
      - code
      - comment
      properties:
        beneficiaryId:
          type: integer
          format: int64
        amount:
          type: integer
          format: int64
        code:
          type: string
        comment:
          type: string
    MapStringNewCookie: {}
    MapStringString: {}
    MerchantPaymentRequest:
      type: object
      required:
      - password
      - amount
      - shopId
      properties:
        password:
          type: string
        amount:
          type: integer
          format: int64
        shopId:
          type: integer
          format: int64
        designation:
          type: string
    MobilePhoneRequest:
      type: object
      required:
      - number
      - country
      properties:
        number:
          type: string
        country:
          type: string
        label:
          type: string
    MobileTontineCreationRequest:
      type: object
      required:
      - usersListIds
      - numberOfBets
      - durationInDays
      - betAmount
      - type
      properties:
        usersListIds:
          type: array
          minItems: 1
          items:
            type: integer
            format: int64
        numberOfBets:
          type: integer
          format: int32
        durationInDays:
          type: integer
          format: int32
        betAmount:
          type: integer
          format: int32
        type:
          $ref: "#/components/schemas/TONTINE_TYPE"
    MultivaluedMapStringObject: {}
    MultivaluedMapStringString: {}
    NewPasswordRequest:
      type: object
      required:
      - password
      - new_password
      - confirm_password
      properties:
        password:
          type: string
        new_password:
          type: string
        confirm_password:
          type: string
    OtpRequest:
      type: object
      required:
      - phone
      properties:
        phone:
          type: string
        country:
          type: string
    OtpVerifyRequest:
      type: object
      required:
      - phone
      - code
      properties:
        phone:
          type: string
        code:
          type: string
        verificationType:
          type: integer
          format: int32
    PasswordDefineRequest:
      type: object
      required:
      - newPassword
      - confirmPassword
      properties:
        newPassword:
          type: string
        confirmPassword:
          type: string
    PaymentBulkItemRequest:
      type: object
      required:
      - phone
      - amount
      - name
      properties:
        phone:
          type: string
        amount:
          type: integer
          format: int64
        name:
          type: string
        designation:
          type: string
    PaymentFeeDueDateRequest:
      type: object
      required:
      - startAt
      - endAt
      - amount
      properties:
        startAt:
          $ref: "#/components/schemas/Date"
        endAt:
          $ref: "#/components/schemas/Date"
        amount:
          type: integer
          format: int32
    PaymentMethodRequest:
      type: object
      properties:
        feeWithdrawal:
          type: integer
          format: int32
        fee_delivery:
          type: integer
          format: int32
        binaryFile:
          $ref: "#/components/schemas/BinaryFile"
    PeriodTemporal:
      type: string
      enum:
      - ALL
      - DAILY
      - MONTHLY
      - YEARLY
    ProductCategoryRequest:
      type: object
      required:
      - name
      properties:
        name:
          type: string
    ProductRequest:
      type: object
      required:
      - name
      - unity
      - price
      - supplierId
      - quantity
      properties:
        name:
          type: string
        unity:
          type: string
        description:
          type: string
        price:
          type: integer
          format: int64
        supplierId:
          type: integer
          format: int64
        quantity:
          type: integer
          format: int32
        image:
          $ref: "#/components/schemas/BinaryFile"
    ProfileEditionRequest:
      type: object
      required:
      - last_name
      - first_name
      - civility
      - gender
      properties:
        last_name:
          type: string
        first_name:
          type: string
        civility:
          $ref: "#/components/schemas/Civility"
        gender:
          $ref: "#/components/schemas/Gender"
    ProfileRequest:
      type: object
      required:
      - name
      - permissions
      properties:
        name:
          type: string
        description:
          type: string
        onlyAdmin:
          type: boolean
        permissions:
          type: array
          items:
            type: integer
            format: int64
    QrcodeScanRequest:
      type: object
      required:
      - data
      - mode
      properties:
        data:
          type: string
        mode:
          type: integer
          format: int32
    RegionRequest:
      type: object
      required:
      - code
      - countryId
      - name
      properties:
        code:
          type: string
        countryId:
          type: integer
          format: int64
        name:
          type: string
    ResetPasswordRequest:
      type: object
      required:
      - email
      properties:
        email:
          type: string
    SHOP_ROLE:
      type: string
      enum:
      - OWNER
      - CASHIER
      - SELLER
    SchoolFeePaymentRequest:
      type: object
      required:
      - amount
      - payment_due_id
      - password
      properties:
        amount:
          type: integer
          format: int64
        is_full_payment:
          type: boolean
        payment_due_id:
          type: integer
          format: int64
        password:
          type: string
    SchoolFeeRequest:
      type: object
      required:
      - startYear
      - endYear
      - childFeeRequestList
      properties:
        startYear:
          type: integer
          format: int32
        endYear:
          type: integer
          format: int32
        childFeeRequestList:
          type: array
          items:
            $ref: "#/components/schemas/ChildFeeRequest"
    SearchSchoolFeesRequest:
      type: object
      required:
      - parent_phone
      properties:
        parent_phone:
          type: string
    ServicePointRequest:
      type: object
      required:
      - agencyId
      - name
      - code
      properties:
        agencyId:
          type: integer
          format: int64
        name:
          type: string
        code:
          type: string
        fixe:
          type: string
        fax:
          type: string
        tel:
          type: string
        tel2:
          type: string
        lon:
          type: number
          format: double
        lat:
          type: number
          format: double
        neighborhood:
          type: string
    ShopMerchantRequest:
      type: object
      required:
      - userId
      properties:
        userId:
          type: integer
          format: int64
        role:
          $ref: "#/components/schemas/SHOP_ROLE"
    ShopRequest:
      type: object
      required:
      - name
      - shopType
      - resume
      - description
      - address
      - creditLimit
      - acceptCreditPayment
      properties:
        userId:
          type: integer
          format: int64
        name:
          type: string
        code:
          type: string
        shopType:
          $ref: "#/components/schemas/ShopType"
        account_number:
          type: string
        member_code:
          type: string
        phone1:
          type: string
        phone2:
          type: string
        email:
          type: string
        resume:
          type: string
        description:
          type: string
          minLength: 1
        callbackUrl:
          type: string
        notifyUrl:
          type: string
        longitude:
          type: number
          format: double
        latitude:
          type: number
          format: double
        address:
          type: string
          minLength: 1
        creditLimit:
          type: number
          format: double
        acceptCreditPayment:
          type: boolean
    ShopType:
      type: string
      enum:
      - CREDIT_MONEY
      - INTERCAISSE
    ShopWithdrawalCreditMobileRequest:
      type: object
      required:
      - shopId
      - amount
      - code
      - operationChannelMethod
      properties:
        shopId:
          type: integer
          format: int64
        amount:
          type: integer
          format: int64
        code:
          type: string
        operationChannelMethod:
          type: integer
          format: int64
    ShopWithdrawalRequest:
      type: object
      required:
      - shopId
      - amount
      - password
      - operationChannelMethod
      properties:
        shopId:
          type: integer
          format: int64
        amount:
          type: integer
          format: int64
        password:
          type: string
        operationChannelMethod:
          type: integer
          format: int64
    SingleTransactionRequest:
      type: object
      required:
      - phoneNumber
      - amount
      properties:
        phoneNumber:
          type: string
        amount:
          type: integer
          format: int32
        externalIdentifier:
          type: string
        customData1:
          type: string
    StatPeriod:
      type: string
      enum:
      - YESTERDAY
      - THIS_WEEK
      - LAST_WEEK
      - YEAR
      - ALL
      - DEFINE
    SupplierCategoryRequest:
      type: object
      required:
      - name
      properties:
        name:
          type: string
    SupplierRequest:
      type: object
      required:
      - account
      - name
      properties:
        account:
          type: integer
          format: int64
        name:
          type: string
        description:
          type: string
        phone:
          type: string
        address:
          type: string
    TONTINE_TYPE:
      type: string
      enum:
      - INDIVIDUAL
      - GROUP
    TauxCommissionMasterAgentRequest:
      type: object
      properties:
        percentMasterAgent:
          type: integer
          format: int32
          maximum: 100
          minimum: 0
    TicketPaymentRequestBody:
      type: object
      required:
      - category
      - numberOfTickets
      - eventId
      - pin
      properties:
        category:
          type: string
        numberOfTickets:
          type: integer
          format: int32
        eventId:
          type: integer
          format: int64
        pin:
          type: string
        phone:
          type: string
    TicketRequestBody:
      type: object
      required:
      - reference
      - placeNumber
      - price
      - type
      - status
      properties:
        reference:
          type: string
        placeNumber:
          type: integer
          format: int32
        price:
          type: integer
          format: int32
        type:
          $ref: "#/components/schemas/TicketTypeEnum"
        status:
          $ref: "#/components/schemas/TicketStatusEnum"
        category:
          type: string
    TicketStatusEnum:
      type: string
      enum:
      - AVAILABLE
      - SOLD
      - SUSPENDED
      - CHECKED
    TicketTypeEnum:
      type: string
      enum:
      - FREE
      - PAID
    ToggleUserRequest:
      type: object
      required:
      - state
      - userId
      properties:
        state:
          type: boolean
        userId:
          type: integer
          format: int64
    TontineCreationRequest:
      type: object
      required:
      - usersListIds
      - numberOfBets
      - durationInDays
      - betAmount
      - type
      properties:
        usersListIds:
          type: array
          minItems: 1
          items:
            type: integer
            format: int64
        numberOfBets:
          type: integer
          format: int32
        durationInDays:
          type: integer
          format: int32
        betAmount:
          type: integer
          format: int32
        type:
          $ref: "#/components/schemas/TONTINE_TYPE"
    TypeOperationRequest:
      type: object
      properties:
        fee:
          type: integer
          format: int32
        maxAmount:
          type: integer
          format: int32
        minAmount:
          type: integer
          format: int32
        binaryFile:
          $ref: "#/components/schemas/BinaryFile"
    USSDGetOwnTontinesRequest:
      type: object
      required:
      - userId
      properties:
        userId:
          type: integer
          format: int64
    USSDTontineCollectRequest:
      type: object
      required:
      - agentId
      - betNumber
      - pin
      properties:
        agentId:
          type: integer
          format: int64
        betNumber:
          type: integer
          format: int32
        pin:
          type: string
    USSDTontineCreationRequest:
      type: object
      required:
      - agentId
      - userId
      - amount
      - pin
      properties:
        agentId:
          type: integer
          format: int64
        userId:
          type: integer
          format: int64
        amount:
          type: integer
          format: int64
        pin:
          type: string
    UploadAvatarRequest:
      type: object
    UserIdentityEditionRequest:
      type: object
      required:
      - name
      properties:
        name:
          type: string
    ValidateAddBeneficiary:
      type: object
      required:
      - beneficiary_name
      - phone
      - beneficiary_phone
      properties:
        beneficiary_name:
          type: string
        phone:
          type: string
        beneficiary_phone:
          type: string
    ValidateAgentDepositOperationRequest:
      type: object
      required:
      - userId
      - amount
      - pin
      - agentPhone
      properties:
        userId:
          type: integer
          format: int64
        amount:
          type: integer
          format: int64
        pin:
          type: string
        agentPhone:
          type: string
    ValidateChargingRequest:
      type: object
      required:
      - phone
      - member_code
      - account_debited
      - amount
      - code
      - full_name
      - wallet_charging_phone
      properties:
        phone:
          type: string
        member_code:
          type: string
        account_debited:
          type: string
        amount:
          type: integer
          format: int64
        code:
          type: string
        full_name:
          type: string
        wallet_charging_phone:
          type: string
    ValidateCrgOperation:
      type: object
      required:
      - phone
      - account_debited
      - member_code
      - amount
      properties:
        phone:
          type: string
        account_debited:
          type: string
        member_code:
          type: string
        amount:
          type: integer
          format: int64
    ValidateLoanPaymentRequest:
      type: object
      required:
      - operationId
      - password
      - decision
      properties:
        operationId:
          type: integer
          format: int64
        password:
          type: string
        decision:
          type: boolean
    ValidateTransferRequest:
      type: object
      required:
      - phone
      - idBeneficiary
      - amount
      properties:
        phone:
          type: string
        idBeneficiary:
          type: integer
          format: int64
        amount:
          type: integer
          format: int64
    Verdict:
      type: string
      enum:
      - VALID
      - REJECT
    VerifyUserRequest:
      type: object
      required:
      - identity
      properties:
        identity:
          $ref: "#/components/schemas/IdVerificationRequest"
    VignetteInfoRequest:
      type: object
      required:
      - documentType
      - matricule
      - amount
      - vignetteId
      - categoryId
      properties:
        documentType:
          type: string
        matricule:
          type: string
        amount:
          type: string
        vignetteId:
          type: integer
          format: int32
        categoryId:
          type: integer
          format: int32
    VignettePaymentRequest:
      type: object
      required:
      - password
      - matricule
      - typeDocument
      - idVignette
      - chassis
      - carCategory
      - libelleVignette
      - tel
      - amount
      - idRegion
      - nomRegion
      - idCommune
      - nomCommune
      properties:
        password:
          type: string
        matricule:
          type: string
        typeDocument:
          type: string
        idVignette:
          type: string
        chassis:
          type: string
        carCategory:
          type: string
        libelleVignette:
          type: string
        tel:
          type: string
        amount:
          type: integer
          format: int64
        idRegion:
          type: integer
          format: int32
        nomRegion:
          type: string
        idCommune:
          type: integer
          format: int32
        nomCommune:
          type: string
    VisaCreationRequest:
      type: object
      required:
      - lastFour
      - cardID
      properties:
        lastFour:
          type: string
        expireDate:
          $ref: "#/components/schemas/Date"
        cardID:
          type: string
    WITHDRAWALL_MODE:
      type: string
      enum:
      - CASH
      - WALLET
    WithdrawalCreditMobileRequest:
      type: object
      required:
      - account_debited
      - amount
      - code
      - full_name
      - phone
      properties:
        account_debited:
          type: string
        amount:
          type: integer
          format: int64
        code:
          type: string
        full_name:
          type: string
        phone:
          type: string
  securitySchemes:
    jwt:
      type: http
      scheme: bearer
      bearerFormat: jwt
    SecurityScheme:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Authentication
paths:
  /admin/administrators/manage/assign-agent/{id-admin}/{id-user}:
    put:
      tags:
      - Administration admins manage
      parameters:
      - name: id-admin
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: id-user
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Assign Agent
      security:
      - jwt:
        - Admin
  /admin/administrators/manage/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration admins manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AdminAccountRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/administrators/manage/detach-agent/{id-admin}:
    put:
      tags:
      - Administration admins manage
      parameters:
      - name: id-admin
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Detach Agent
      security:
      - jwt:
        - Admin
  /admin/administrators/manage/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration admins manage
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/administrators/manage/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration admins manage
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/administrators/manage/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration admins manage
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/administrators/manage/reset-password/{id}:
    put:
      tags:
      - Administration admins manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PasswordDefineRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Reset Password
      security:
      - jwt:
        - Admin
  /admin/administrators/manage/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration admins manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/administrators/manage/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration admins manage
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/administrators/manage/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration admins manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/administrators/manage/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration admins manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AdminAccountRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration admins manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration admins manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/agent/commissions/export:
    get:
      tags:
      - Administration agents manage
      - Commission manage
      parameters:
      - name: endDate
        in: query
        schema:
          type: string
          default: ""
      - name: startDate
        in: query
        schema:
          type: string
          default: ""
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Export CSV
      security:
      - jwt:
        - Admin
  /admin/agent/commissions/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration agents manage
      - Commission manage
      parameters:
      - name: endDate
        in: query
        schema:
          type: string
          default: ""
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      - name: startDate
        in: query
        schema:
          type: string
          default: ""
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/agent/manage/agent-reliable-master/paginate:
    get:
      summary: Get paginate agents list reliable to master agent
      description: Returns agents list
      tags:
      - Administration agents manage
      - Agents manage
      parameters:
      - name: masterAgentId
        in: query
        schema:
          type: integer
          format: int64
          default: 0
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
        - Agent
  /admin/agent/manage/assign-master-agent/{id-user-master-agent}/{id-user}:
    put:
      tags:
      - Administration agents manage
      - Agents manage
      parameters:
      - name: id-user
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: id-user-master-agent
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Assign Master Agent
      security:
      - jwt:
        - Admin
  /admin/agent/manage/detach-master-agent/{id-user}:
    put:
      tags:
      - Administration agents manage
      - Agents manage
      parameters:
      - name: id-user
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Detach Master Agent
      security:
      - jwt:
        - Admin
  /admin/agent/manage/export:
    get:
      tags:
      - Administration agents manage
      - Agents manage
      parameters:
      - name: collector
        in: query
        schema:
          type: boolean
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Export CSV
      security:
      - jwt:
        - Admin
  /admin/agent/manage/export-collectors:
    get:
      summary: Export agents collector list
      description: Returns Export collector csv
      tags:
      - Administration agents manage
      - Agents manage
      parameters:
      - name: agenceId
        in: query
        schema:
          type: integer
          format: int64
      - name: cityId
        in: query
        schema:
          type: integer
          format: int64
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: regionId
        in: query
        schema:
          type: integer
          format: int64
      - name: search
        in: query
        schema:
          type: string
      - name: servicePointId
        in: query
        schema:
          type: integer
          format: int64
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
        - Agent
  /admin/agent/manage/link-to-service-point:
    put:
      summary: Lier un agent à un point de service.
      description: Permet à l'administrateur de lier un agent à un point de service
        ou une agence
      tags:
      - Administration agents manage
      - Agents manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LinkToAgencyRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/agent/manage/master-agent/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration agents manage
      - Agents manage
      parameters:
      - name: collector
        in: query
        schema:
          type: boolean
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/agent/manage/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration agents manage
      - Agents manage
      parameters:
      - name: collector
        in: query
        schema:
          type: boolean
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/agent/manage/paginate-collectors:
    get:
      summary: Get paginate agents collector list
      description: Returns agents collector list
      tags:
      - Administration agents manage
      - Agents manage
      parameters:
      - name: agencyId
        in: query
        schema:
          type: integer
          format: int64
      - name: cityId
        in: query
        schema:
          type: integer
          format: int64
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: regionId
        in: query
        schema:
          type: integer
          format: int64
      - name: search
        in: query
        schema:
          type: string
      - name: servicePointId
        in: query
        schema:
          type: integer
          format: int64
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
        - Agent
  /admin/agent/manage/toggle-manage-coupon:
    put:
      summary: Changer de donner le droit à un agent de gérer les bons.
      description: Permet à l'administrateur de de donner ou retirer le droit à un
        agent de gérer les bons
      tags:
      - Administration agents manage
      - Agents manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ToggleUserRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/agent/manage/toggle-manage-supplier:
    put:
      summary: Charger de donner le droit à un agent de gérer les fournisseur.
      description: Permet à l'administrateur de de donner ou retirer le droit à un
        agent de gérer les fournisseur
      tags:
      - Administration agents manage
      - Agents manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ToggleUserRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/agent/manage/toggle-to-collector/{id}:
    put:
      summary: Charger de transformer un agent en collecteur.
      description: Permet à l'administrateur de transformer un agent en collecteur
        lié à une agence
      tags:
      - Administration agents manage
      - Agents manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/agent/manage/toggle-to-independant-agent/{id}:
    put:
      summary: Charger de transformer un agent en agent indépendant.
      description: Permet à l'administrateur de transformer un agent en agent indépendant
      tags:
      - Administration agents manage
      - Agents manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/agent/manage/toggle-to-master-agent/{id}:
    put:
      summary: Charger de transformer un agent en master agent.
      description: Permet à l'administrateur de transformer un agent en master agent
      tags:
      - Administration agents manage
      - Agents manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/agent/manage/toggle-to-super-agent/{id}:
    put:
      summary: Charger de transformer un agent en super agent.
      description: Permet à l'administrateur de transformer un agent en super agent
      tags:
      - Administration agents manage
      - Agents manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/agents/operations/commissions/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration operations
      requestBody:
        content:
          application/json:
            schema: {}
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/agents/operations/commissions/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration operations
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/agents/operations/commissions/export:
    get:
      tags:
      - Administration operations
      parameters:
      - name: endDate
        in: query
        schema:
          type: string
          default: ""
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: startDate
        in: query
        schema:
          type: string
          default: ""
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Export CSV
      security:
      - jwt:
        - Admin
  /admin/agents/operations/commissions/exportv1:
    get:
      tags:
      - Administration operations
      parameters:
      - name: endDate
        in: query
        schema:
          type: string
          default: ""
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: startDate
        in: query
        schema:
          type: string
          default: ""
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Export CS Vv 1
      security:
      - jwt:
        - Admin
  /admin/agents/operations/commissions/mode/toggle/{id}:
    get:
      tags:
      - Administration operations
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Config By Name
      security:
      - jwt:
        - Admin
  /admin/agents/operations/commissions/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration operations
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
          default: ""
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      - name: endDate
        in: query
        schema:
          type: string
          default: ""
      - name: startDate
        in: query
        schema:
          type: string
          default: ""
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/agents/operations/commissions/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration operations
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/agents/operations/commissions/paginatev1:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration operations
      parameters:
      - name: endDate
        in: query
        schema:
          type: string
          default: ""
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
          default: ""
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: startDate
        in: query
        schema:
          type: string
          default: ""
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/agents/operations/commissions/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration operations
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/agents/operations/commissions/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration operations
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/agents/operations/commissions/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration operations
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/agents/operations/commissions/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration operations
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema: {}
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration operations
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration operations
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/bulk-payment/manage/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration bulk payment manage
      - Payment manage
      requestBody:
        content:
          application/json:
            schema: {}
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/bulk-payment/manage/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration bulk payment manage
      - Payment manage
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/bulk-payment/manage/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration bulk payment manage
      - Payment manage
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/bulk-payment/manage/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration bulk payment manage
      - Payment manage
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/bulk-payment/manage/pay:
    post:
      summary: Bulk payment
      description: Bulk payment
      tags:
      - Administration bulk payment manage
      - Payment manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BulkPaymentRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/bulk-payment/manage/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration bulk payment manage
      - Payment manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/bulk-payment/manage/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration bulk payment manage
      - Payment manage
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/bulk-payment/manage/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration bulk payment manage
      - Payment manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/bulk-payment/manage/verify-contacts:
    post:
      tags:
      - Administration bulk payment manage
      - Payment manage
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Verify Contacts
      security:
      - jwt:
        - Admin
  /admin/bulk-payment/manage/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration bulk payment manage
      - Payment manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema: {}
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration bulk payment manage
      - Payment manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration bulk payment manage
      - Payment manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/coupon/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration coupon
      - Supplier manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CouponRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/coupon/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration coupon
      - Supplier manage
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/coupon/export:
    get:
      tags:
      - Administration coupon
      - Supplier manage
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      - name: supplier
        in: query
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Export CSV
      security:
      - jwt:
        - Admin
  /admin/coupon/list-coupons-for-supplier/{id}:
    get:
      tags:
      - Administration coupon
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Coupons
      security:
      - jwt:
        - Admin
  /admin/coupon/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration coupon
      - Supplier manage
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/coupon/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration coupon
      - Supplier manage
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/coupon/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration coupon
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/coupon/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration coupon
      - Supplier manage
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/coupon/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration coupon
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/coupon/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration coupon
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CouponRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration coupon
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration coupon
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/establishments/add-school-fees/{id}:
    post:
      tags:
      - Administration établissements
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SchoolFeeRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Add School Fee
      security:
      - jwt:
        - Admin
  /admin/establishments/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration établissements
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EstablishmentCreationRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/establishments/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration établissements
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/establishments/export/{id}:
    get:
      tags:
      - Administration établissements
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
          default: ""
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: status
        in: query
        schema:
          type: string
          default: ""
      - name: type
        in: query
        schema:
          type: integer
          format: int64
          default: 0
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Export CSV
      security:
      - jwt:
        - Admin
  /admin/establishments/icon/{id}:
    post:
      tags:
      - Administration établissements
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Upload Icon
      security:
      - jwt:
        - Admin
    delete:
      tags:
      - Administration établissements
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Delete Icon
      security:
      - jwt:
        - Admin
  /admin/establishments/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration établissements
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/establishments/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration établissements
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/establishments/school-fee/{id}:
    get:
      tags:
      - Administration établissements
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Single School Fee
      security:
      - jwt:
        - Admin
  /admin/establishments/school-fees-operations/{id}:
    get:
      tags:
      - Administration établissements
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Paginate School Fee Operations
      security:
      - jwt:
        - Admin
  /admin/establishments/school-fees/{id}:
    get:
      tags:
      - Administration établissements
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Paginate School Fee
      security:
      - jwt:
        - Admin
  /admin/establishments/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration établissements
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/establishments/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration établissements
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/establishments/stats/{id}:
    get:
      tags:
      - Administration établissements
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Stats
      security:
      - jwt:
        - Admin
  /admin/establishments/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration établissements
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/establishments/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration établissements
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EstablishmentCreationRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration établissements
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration établissements
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/events/agents/{eventId}:
    get:
      summary: Liste des agents liés à un évènement
      tags:
      - Administration évènements
      parameters:
      - name: eventId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/events/checked-tickets/{eventId}:
    get:
      summary: Liste des tickets vérifiés d'un évènement
      tags:
      - Administration évènements
      parameters:
      - name: eventId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/events/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration évènements
      requestBody:
        content:
          application/json:
            schema: {}
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/events/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration évènements
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/events/export-tickets/{eventId}:
    get:
      summary: Exporter les tickets d'un évènement en fonction des critères de filtres
      tags:
      - Administration évènements
      parameters:
      - name: eventId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: category
        in: query
        schema:
          type: string
      - name: endDate
        in: query
        schema:
          type: string
      - name: paid
        in: query
        schema:
          type: boolean
      - name: startDate
        in: query
        schema:
          type: string
      - name: status
        in: query
        schema:
          $ref: "#/components/schemas/TicketStatusEnum"
      - name: type
        in: query
        schema:
          $ref: "#/components/schemas/TicketTypeEnum"
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/events/import-tickets/{id}:
    post:
      summary: Importer des tickets d'un évènement
      tags:
      - Administration évènements
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BulkTicketImportRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/events/link-agent/{eventId}/{agentId}:
    put:
      summary: Lier un agent à un évènement
      tags:
      - Administration évènements
      parameters:
      - name: agentId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: eventId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/events/new:
    post:
      summary: Créer un nouvel évènement
      tags:
      - Administration évènements
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - name
              - start
              - end
              - walletUserId
              properties:
                cover:
                  type: string
                  format: binary
                name:
                  type: string
                  minLength: 1
                description:
                  type: string
                start:
                  type: string
                  description: "Date de début de l'évènement. Format: yyyy-MM-dd"
                end:
                  type: string
                  description: "Date de fin de l'évènement. Format: yyyy-MM-dd"
                address:
                  type: string
                longitude:
                  type: string
                latitude:
                  type: string
                crgCommission:
                  type: string
                walletUserId:
                  type: integer
                  format: int64
                notificationUrl:
                  type: string
            encoding:
              cover:
                contentType: application/octet-stream
              walletUserId:
                contentType: text/plain
              notificationUrl:
                contentType: text/plain
              address:
                contentType: text/plain
              latitude:
                contentType: text/plain
              name:
                contentType: text/plain
              start:
                contentType: text/plain
              description:
                contentType: text/plain
              end:
                contentType: text/plain
              crgCommission:
                contentType: text/plain
              longitude:
                contentType: text/plain
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/events/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration évènements
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/events/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration évènements
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/events/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration évènements
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/events/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration évènements
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/events/stats/{eventId}:
    get:
      summary: Statistiques d'un évènement
      tags:
      - Administration évènements
      parameters:
      - name: eventId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/events/tickets/{eventId}:
    get:
      summary: Liste des tickets d'un évènement avec filtres
      tags:
      - Administration évènements
      parameters:
      - name: eventId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: category
        in: query
        schema:
          type: string
      - name: endDate
        in: query
        schema:
          type: string
      - name: paid
        in: query
        schema:
          type: boolean
      - name: startDate
        in: query
        schema:
          type: string
      - name: status
        in: query
        schema:
          $ref: "#/components/schemas/TicketStatusEnum"
      - name: type
        in: query
        schema:
          $ref: "#/components/schemas/TicketTypeEnum"
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/events/toggle-event-sale/{eventId}:
    put:
      summary: Retirer ou mettre un évènement en vente. Le statut de l'évènement sera
        basculé entre actif et inactif
      tags:
      - Administration évènements
      parameters:
      - name: eventId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/events/toggle-ticket-sale/{ticketId}:
    put:
      summary: Retirer ou mettre un ticket en vente. Le statut du ticket sera basculé
        entre 'AVAILABLE' et 'SUSPENDED'
      tags:
      - Administration évènements
      parameters:
      - name: ticketId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/events/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration évènements
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/events/unlink-agent/{eventId}/{agentId}:
    delete:
      summary: Dissocier un agent d'un évènement
      tags:
      - Administration évènements
      parameters:
      - name: agentId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: eventId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/events/update-cover/{id}:
    put:
      summary: Mettre à jour la cover d'un évènement
      tags:
      - Administration évènements
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
            encoding:
              file:
                contentType: application/octet-stream
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/events/update-ticket/{id}:
    put:
      summary: Mettre à jour un ticket
      tags:
      - Administration évènements
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TicketRequestBody"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/events/update/{id}:
    put:
      summary: Mettre à jour un évènement
      tags:
      - Administration évènements
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - name
              - start
              - end
              - walletUserId
              properties:
                cover:
                  type: string
                  format: binary
                name:
                  type: string
                  minLength: 1
                description:
                  type: string
                start:
                  type: string
                  description: "Date de début de l'évènement. Format: yyyy-MM-dd"
                end:
                  type: string
                  description: "Date de fin de l'évènement. Format: yyyy-MM-dd"
                address:
                  type: string
                longitude:
                  type: string
                latitude:
                  type: string
                crgCommission:
                  type: string
                walletUserId:
                  type: integer
                  format: int64
                notificationUrl:
                  type: string
            encoding:
              cover:
                contentType: application/octet-stream
              walletUserId:
                contentType: text/plain
              notificationUrl:
                contentType: text/plain
              address:
                contentType: text/plain
              latitude:
                contentType: text/plain
              name:
                contentType: text/plain
              start:
                contentType: text/plain
              description:
                contentType: text/plain
              end:
                contentType: text/plain
              crgCommission:
                contentType: text/plain
              longitude:
                contentType: text/plain
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/events/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration évènements
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema: {}
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration évènements
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration évènements
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/faq/category/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration foire aux questions
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FaqRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/faq/category/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration foire aux questions
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/faq/category/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration foire aux questions
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/faq/category/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration foire aux questions
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/faq/category/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration foire aux questions
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/faq/category/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration foire aux questions
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/faq/category/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration foire aux questions
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/faq/category/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration foire aux questions
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FaqRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration foire aux questions
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration foire aux questions
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/faq/question/by-category/{id}:
    get:
      summary: Get all question by category.
      description: Returns all question by category ID
      tags:
      - Administration foire aux questions
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/faq/question/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration foire aux questions
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FaqQuestionRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/faq/question/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration foire aux questions
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/faq/question/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration foire aux questions
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/faq/question/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration foire aux questions
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/faq/question/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration foire aux questions
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/faq/question/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration foire aux questions
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/faq/question/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration foire aux questions
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/faq/question/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration foire aux questions
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FaqQuestionRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration foire aux questions
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration foire aux questions
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/loans/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration loans
      requestBody:
        content:
          application/json:
            schema: {}
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/loans/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration loans
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/loans/mode/toggle/{id}:
    get:
      tags:
      - Administration loans
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Config By Name
      security:
      - jwt:
        - Admin
  /admin/loans/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration loans
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
          default: ""
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      - name: endDate
        in: query
        schema:
          type: string
          default: ""
      - name: shopId
        in: query
        schema:
          type: integer
          format: int64
          default: 0
      - name: startDate
        in: query
        schema:
          type: string
          default: ""
      - name: status
        in: query
        schema:
          type: string
          default: ""
      - name: userId
        in: query
        schema:
          type: integer
          format: int64
          default: 0
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/loans/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration loans
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/loans/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration loans
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/loans/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration loans
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/loans/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration loans
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/loans/transfer:
    post:
      summary: Transfer money by the admin.
      description: "Transfer money by the admin : user account to the another user\
        \ account , operation type"
      tags:
      - Administration loans
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AdminTransfertOperationRequestBody"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/loans/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration loans
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema: {}
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration loans
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration loans
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/operation/payment-method/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration operation
      - Méthodes de paiement
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentMethodRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operation/payment-method/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration operation
      - Méthodes de paiement
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operation/payment-method/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration operation
      - Méthodes de paiement
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operation/payment-method/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration operation
      - Méthodes de paiement
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operation/payment-method/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration operation
      - Méthodes de paiement
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operation/payment-method/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration operation
      - Méthodes de paiement
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operation/payment-method/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration operation
      - Méthodes de paiement
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operation/payment-method/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration operation
      - Méthodes de paiement
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentMethodRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration operation
      - Méthodes de paiement
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration operation
      - Méthodes de paiement
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/operation/taux-commission-master-agent/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration operation
      - Taux commissions master agent
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TauxCommissionMasterAgentRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operation/taux-commission-master-agent/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration operation
      - Taux commissions master agent
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operation/taux-commission-master-agent/mode/toggle/{id}:
    get:
      tags:
      - Administration operation
      - Taux commissions master agent
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Config By Name
      security:
      - jwt:
        - Admin
  /admin/operation/taux-commission-master-agent/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration operation
      - Taux commissions master agent
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operation/taux-commission-master-agent/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration operation
      - Taux commissions master agent
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operation/taux-commission-master-agent/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration operation
      - Taux commissions master agent
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operation/taux-commission-master-agent/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration operation
      - Taux commissions master agent
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operation/taux-commission-master-agent/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration operation
      - Taux commissions master agent
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operation/taux-commission-master-agent/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration operation
      - Taux commissions master agent
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TauxCommissionMasterAgentRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration operation
      - Taux commissions master agent
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration operation
      - Taux commissions master agent
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/operation/type/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration operation
      - Types opérations
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TypeOperationRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operation/type/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration operation
      - Types opérations
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operation/type/mode/toggle/{id}:
    get:
      tags:
      - Administration operation
      - Types opérations
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Config By Name
      security:
      - jwt:
        - Admin
  /admin/operation/type/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration operation
      - Types opérations
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operation/type/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration operation
      - Types opérations
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operation/type/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration operation
      - Types opérations
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operation/type/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration operation
      - Types opérations
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operation/type/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration operation
      - Types opérations
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operation/type/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration operation
      - Types opérations
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TypeOperationRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration operation
      - Types opérations
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration operation
      - Types opérations
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/operations/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration operations
      requestBody:
        content:
          application/json:
            schema: {}
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operations/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration operations
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operations/export:
    get:
      tags:
      - Administration operations
      parameters:
      - name: endDate
        in: query
        schema:
          type: string
          default: ""
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
          default: ""
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: startDate
        in: query
        schema:
          type: string
          default: ""
      - name: status
        in: query
        schema:
          type: string
          default: ""
      - name: type
        in: query
        schema:
          type: integer
          format: int64
          default: 0
      - name: user
        in: query
        schema:
          type: integer
          format: int64
          default: 0
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Export CSV
      security:
      - jwt:
        - Admin
  /admin/operations/graph:
    get:
      tags:
      - Administration operations
      parameters:
      - name: end_at
        in: query
        schema:
          type: string
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/PeriodTemporal"
          - default: ALL
      - name: start_at
        in: query
        schema:
          type: string
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Graph
      security:
      - jwt:
        - Admin
  /admin/operations/mode/toggle/{id}:
    get:
      tags:
      - Administration operations
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Config By Name
      security:
      - jwt:
        - Admin
  /admin/operations/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration operations
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
          default: ""
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      - name: endDate
        in: query
        schema:
          type: string
          default: ""
      - name: startDate
        in: query
        schema:
          type: string
          default: ""
      - name: status
        in: query
        schema:
          type: string
          default: ""
      - name: type
        in: query
        schema:
          type: integer
          format: int64
          default: 0
      - name: user
        in: query
        schema:
          type: integer
          format: int64
          default: 0
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/operations/paginate-v2:
    get:
      tags:
      - Administration operations
      parameters:
      - name: endDate
        in: query
        schema:
          type: string
          default: ""
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
          default: ""
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: startDate
        in: query
        schema:
          type: string
          default: ""
      - name: status
        in: query
        schema:
          type: string
          default: ""
      - name: type
        in: query
        schema:
          type: integer
          format: int64
          default: 0
      - name: user
        in: query
        schema:
          type: integer
          format: int64
          default: 0
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Paginate Rewrite V 2
      security:
      - jwt:
        - Admin
  /admin/operations/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration operations
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operations/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration operations
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operations/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration operations
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
          type: string
          default: ""
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
          type: string
          default: ""
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/operations/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration operations
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/operations/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration operations
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema: {}
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration operations
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration operations
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/product-category/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration product category
      - Supplier manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProductCategoryRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/product-category/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration product category
      - Supplier manage
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/product-category/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration product category
      - Supplier manage
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/product-category/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration product category
      - Supplier manage
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/product-category/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration product category
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/product-category/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration product category
      - Supplier manage
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/product-category/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration product category
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/product-category/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration product category
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProductCategoryRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration product category
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration product category
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/product/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration product
      - Supplier manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProductRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/product/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration product
      - Supplier manage
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/product/export:
    get:
      tags:
      - Administration product
      - Supplier manage
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      - name: supplier
        in: query
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Export CSV
      security:
      - jwt:
        - Admin
  /admin/product/list-products-for-supplier/{id}:
    get:
      tags:
      - Administration product
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Product For Supplier
      security:
      - jwt:
        - Admin
  /admin/product/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration product
      - Supplier manage
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/product/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration product
      - Supplier manage
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/product/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration product
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/product/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration product
      - Supplier manage
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/product/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration product
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/product/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration product
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProductRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration product
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration product
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/referential/agency/by-city/{id}:
    get:
      summary: Get all agencies by city ID
      description: Returns all agencies by city ID
      tags:
      - Administration référentiel
      - Référentiel Agences
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/referential/agency/by-region/{id}:
    get:
      summary: Get all agencies by region ID
      description: Returns all agencies by region ID
      tags:
      - Administration référentiel
      - Référentiel Agences
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/referential/agency/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration référentiel
      - Référentiel Agences
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AgencyRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/agency/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration référentiel
      - Référentiel Agences
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/agency/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration référentiel
      - Référentiel Agences
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/agency/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration référentiel
      - Référentiel Agences
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/agency/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration référentiel
      - Référentiel Agences
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/agency/statistiques/{id}:
    get:
      summary: Get agency stats
      description: Returns all agency stats
      tags:
      - Administration référentiel
      - Référentiel Agences
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/referential/agency/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration référentiel
      - Référentiel Agences
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/agency/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration référentiel
      - Référentiel Agences
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/agency/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration référentiel
      - Référentiel Agences
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AgencyRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration référentiel
      - Référentiel Agences
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration référentiel
      - Référentiel Agences
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/referential/city/by-region/{id}:
    get:
      summary: Get all cities by region ID
      description: Returns all cities by region ID
      tags:
      - Administration référentiel
      - Référentiel Villes
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/referential/city/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration référentiel
      - Référentiel Villes
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CityRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/city/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration référentiel
      - Référentiel Villes
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/city/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration référentiel
      - Référentiel Villes
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/city/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration référentiel
      - Référentiel Villes
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/city/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration référentiel
      - Référentiel Villes
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/city/statistiques/{id}:
    get:
      summary: Get region stats
      description: Returns all region stats
      tags:
      - Administration référentiel
      - Référentiel Villes
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/referential/city/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration référentiel
      - Référentiel Villes
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/city/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration référentiel
      - Référentiel Villes
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/city/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration référentiel
      - Référentiel Villes
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CityRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration référentiel
      - Référentiel Villes
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration référentiel
      - Référentiel Villes
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/referential/configuration/alert:
    get:
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Alert
      tags:
      - Configuration Controller
      security:
      - jwt:
        - Admin
  /admin/referential/configuration/by-name/{name}:
    put:
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ContentDataRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Put Config By Name
      tags:
      - Configuration Controller
      security:
      - jwt:
        - Admin
    get:
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Config By Name
      tags:
      - Configuration Controller
      security:
      - jwt:
        - Admin
  /admin/referential/configuration/paginate:
    get:
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Paginate
      tags:
      - Configuration Controller
      security:
      - jwt:
        - Admin
  /admin/referential/country/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration référentiel
      - Référentiel Pays
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CountryRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/country/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration référentiel
      - Référentiel Pays
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/country/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration référentiel
      - Référentiel Pays
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/country/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration référentiel
      - Référentiel Pays
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/country/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration référentiel
      - Référentiel Pays
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/country/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration référentiel
      - Référentiel Pays
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/country/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration référentiel
      - Référentiel Pays
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/country/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration référentiel
      - Référentiel Pays
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CountryRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration référentiel
      - Référentiel Pays
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration référentiel
      - Référentiel Pays
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/referential/region/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration référentiel
      - Référentiel Régions
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RegionRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/region/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration référentiel
      - Référentiel Régions
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/region/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration référentiel
      - Référentiel Régions
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/region/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration référentiel
      - Référentiel Régions
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/region/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration référentiel
      - Référentiel Régions
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/region/statistiques/{id}:
    get:
      summary: Get region stats
      description: Returns all region stats
      tags:
      - Administration référentiel
      - Référentiel Régions
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/referential/region/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration référentiel
      - Référentiel Régions
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/region/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration référentiel
      - Référentiel Régions
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/region/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration référentiel
      - Référentiel Régions
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RegionRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration référentiel
      - Référentiel Régions
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration référentiel
      - Référentiel Régions
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/referential/service-point/by-agency/{id}:
    get:
      summary: Get all service point by agency ID
      description: Returns all service point by agency ID
      tags:
      - Administration référentiel
      - Référentiel Points de service
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/referential/service-point/by-city/{id}:
    get:
      summary: Get all service point by city ID
      description: Returns all service point by city ID
      tags:
      - Administration référentiel
      - Référentiel Points de service
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/referential/service-point/by-region/{id}:
    get:
      summary: Get all service point by region ID
      description: Returns all service point by region ID
      tags:
      - Administration référentiel
      - Référentiel Points de service
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/referential/service-point/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration référentiel
      - Référentiel Points de service
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ServicePointRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/service-point/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration référentiel
      - Référentiel Points de service
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/service-point/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration référentiel
      - Référentiel Points de service
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/service-point/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration référentiel
      - Référentiel Points de service
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/service-point/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration référentiel
      - Référentiel Points de service
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/service-point/statistiques/{id}:
    get:
      summary: Get service point stats
      description: Returns all service point stats
      tags:
      - Administration référentiel
      - Référentiel Points de service
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/referential/service-point/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration référentiel
      - Référentiel Points de service
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/service-point/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration référentiel
      - Référentiel Points de service
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/referential/service-point/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration référentiel
      - Référentiel Points de service
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ServicePointRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration référentiel
      - Référentiel Points de service
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration référentiel
      - Référentiel Points de service
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/security/account/assign-role:
    post:
      summary: Assign a profile to administrator .
      description: Assign a profile to administrator by root
      tags:
      - Administration sécurité
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssignRoleRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/security/account/avatar:
    put:
      summary: Changer l'avatar du compte d'un administrateur.
      description: Permet a un administrateur d'éditer son avatar.
      tags:
      - Administration sécurité
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BinaryFile"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Supprimer l'avatar du compte d'un administrateur.
      description: Permet a un administrateur de supprimer son avatar.
      tags:
      - Administration sécurité
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/security/account/create-account:
    post:
      summary: Créer un compte administrateur.
      description: Permet a un administrateur de soumettre son compte. Si il n'existe
        aucun compte dans le système le compte est automatiquement validé et mis en
        ROOT.
      tags:
      - Administration sécurité
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AdminAccountRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/security/account/define-new-password:
    put:
      summary: Definition d'un nouveau mot de passe.
      description: Permet a un administrateur de définir un nouveau mot de passe.
      tags:
      - Administration sécurité
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/NewPasswordRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/security/account/edit-password:
    put:
      summary: Edition du mot de passe.
      description: Permet a un administrateur d'éditer son mot de passe.
      tags:
      - Administration sécurité
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EditPasswordRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/security/account/login:
    post:
      summary: Connexion au compte.
      description: Permet au client mobile de se connecter a son compte
      tags:
      - Administration sécurité
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AuthRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/security/account/logout:
    post:
      tags:
      - Administration sécurité
      responses:
        "200":
          description: OK
      summary: Logout
  /admin/security/account/profile:
    get:
      summary: Récupérer le compte d'un administrateur.
      description: Permet a un administrateur de récupérer son profil.
      tags:
      - Administration sécurité
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    put:
      summary: Edition du compte d'un administrateur.
      description: Permet a un administrateur d'éditer son profil.
      tags:
      - Administration sécurité
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProfileEditionRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/security/account/refresh-access-token:
    post:
      tags:
      - Administration sécurité
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Refresh Token
      security:
      - jwt:
        - Admin
  /admin/security/account/request-reset-password:
    get:
      summary: Demander la reinitialisation du mot de passe.
      description: Permet a un administrateur de demander la reinitialisation de son
        mot de passe.
      tags:
      - Administration sécurité
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ResetPasswordRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/security/permission/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration sécurité
      - Sécurité permission
      requestBody:
        content:
          application/json:
            schema: {}
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/security/permission/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration sécurité
      - Sécurité permission
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/security/permission/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration sécurité
      - Sécurité permission
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/security/permission/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration sécurité
      - Sécurité permission
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/security/permission/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration sécurité
      - Sécurité permission
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/security/permission/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration sécurité
      - Sécurité permission
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/security/permission/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration sécurité
      - Sécurité permission
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/security/permission/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration sécurité
      - Sécurité permission
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema: {}
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration sécurité
      - Sécurité permission
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration sécurité
      - Sécurité permission
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/security/profile/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration sécurité
      - Sécurité profil
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProfileRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/security/profile/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration sécurité
      - Sécurité profil
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/security/profile/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration sécurité
      - Sécurité profil
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/security/profile/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration sécurité
      - Sécurité profil
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/security/profile/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration sécurité
      - Sécurité profil
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/security/profile/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration sécurité
      - Sécurité profil
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/security/profile/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration sécurité
      - Sécurité profil
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/security/profile/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration sécurité
      - Sécurité profil
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProfileRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration sécurité
      - Sécurité profil
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration sécurité
      - Sécurité profil
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/shop/manage/add-merchant/{id}:
    post:
      tags:
      - Administration shop manage
      - Shop manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ShopMerchantRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Add Merchant
      security:
      - jwt:
        - Admin
  /admin/shop/manage/core-banking-shops:
    get:
      summary: Liste des boutiques du core banking.
      description: Permet de récupérer la liste des boutiques du core banking.
      tags:
      - Administration shop manage
      - Shop manage
      responses:
        "200":
          description: OK
  /admin/shop/manage/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration shop manage
      - Shop manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ShopRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/shop/manage/delete-icon/{id}:
    delete:
      tags:
      - Administration shop manage
      - Shop manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Delete Icon
      security:
      - jwt:
        - Admin
  /admin/shop/manage/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration shop manage
      - Shop manage
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/shop/manage/edit-loan-limitation/{id}:
    put:
      tags:
      - Administration shop manage
      - Shop manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LimitationLoanPaymentRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Edit Shop Loan Limitation
      security:
      - jwt:
        - Admin
  /admin/shop/manage/generate-qrcode/{id}:
    get:
      tags:
      - Administration shop manage
      - Shop manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Generate QR Code
      security:
      - jwt:
        - Admin
  /admin/shop/manage/list-merchants/{id}:
    get:
      tags:
      - Administration shop manage
      - Shop manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Merchants
      security:
      - jwt:
        - Admin
  /admin/shop/manage/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration shop manage
      - Shop manage
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/shop/manage/paginate-operation/{shop-id}:
    get:
      tags:
      - Administration shop manage
      - Shop manage
      parameters:
      - name: shop-id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
          default: ""
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: status
        in: query
        schema:
          type: string
          default: ""
      - name: type
        in: query
        schema:
          type: integer
          format: int64
          default: 0
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Paginate Operations
      security:
      - jwt:
        - Admin
  /admin/shop/manage/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration shop manage
      - Shop manage
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/shop/manage/remove-merchant/{id}:
    put:
      tags:
      - Administration shop manage
      - Shop manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ShopMerchantRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Remove Merchant
      security:
      - jwt:
        - Admin
  /admin/shop/manage/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration shop manage
      - Shop manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/shop/manage/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration shop manage
      - Shop manage
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/shop/manage/stats-shop/{shop-id}:
    get:
      tags:
      - Administration shop manage
      - Shop manage
      parameters:
      - name: shop-id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Shop Stats
      security:
      - jwt:
        - Admin
  /admin/shop/manage/toggle-loan-payment/{id}:
    put:
      tags:
      - Administration shop manage
      - Shop manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Toggle Loan Payment
      security:
      - jwt:
        - Admin
  /admin/shop/manage/toggle-status/{id}:
    put:
      tags:
      - Administration shop manage
      - Shop manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Toggle Shop State
      security:
      - jwt:
        - Admin
  /admin/shop/manage/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration shop manage
      - Shop manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/shop/manage/update-wallet-account-user/{id}/{userId}:
    put:
      tags:
      - Administration shop manage
      - Shop manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: userId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Update Wallet Account User
      security:
      - jwt:
        - Admin
  /admin/shop/manage/upload-icon/{id}:
    put:
      tags:
      - Administration shop manage
      - Shop manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Upload Group Icon
      security:
      - jwt:
        - Admin
  /admin/shop/manage/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration shop manage
      - Shop manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ShopRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration shop manage
      - Shop manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration shop manage
      - Shop manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/supplier-category/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration supplier category
      - Supplier manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SupplierCategoryRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/supplier-category/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration supplier category
      - Supplier manage
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/supplier-category/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration supplier category
      - Supplier manage
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/supplier-category/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration supplier category
      - Supplier manage
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/supplier-category/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration supplier category
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/supplier-category/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration supplier category
      - Supplier manage
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/supplier-category/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration supplier category
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/supplier-category/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration supplier category
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SupplierCategoryRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration supplier category
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration supplier category
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/supplier/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration supplier
      - Supplier manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SupplierRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/supplier/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration supplier
      - Supplier manage
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/supplier/export:
    get:
      tags:
      - Administration supplier
      - Supplier manage
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Export CSV
      security:
      - jwt:
        - Admin
  /admin/supplier/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration supplier
      - Supplier manage
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/supplier/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration supplier
      - Supplier manage
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/supplier/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration supplier
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/supplier/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration supplier
      - Supplier manage
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/supplier/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration supplier
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/supplier/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration supplier
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SupplierRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration supplier
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration supplier
      - Supplier manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/user/manage/assign-user-identity-verification:
    put:
      summary: S'attribuer une verification.
      description: Permet à l'administrateur de s'attribuer une verification d'identité
        d'un utilisateur
      tags:
      - Administration users manage
      - Users manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssignUserRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/user/manage/assign_card:
    put:
      summary: Assigner une card à un utilisateur.
      description: Permet à l'administrateur d'assigner une carte à un utilisateur.
      tags:
      - Administration users manage
      - Users manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssignCardRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/user/manage/bulkuser/{id}:
    get:
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
          default: 1000
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Bulk User
      security:
      - jwt:
        - Admin
  /admin/user/manage/bulkuserpaginate:
    get:
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Bulk User Paginate
      security:
      - jwt:
        - Admin
  /admin/user/manage/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Administration users manage
      - Users manage
      requestBody:
        content:
          application/json:
            schema: {}
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/user/manage/create/massaccount:
    post:
      tags:
      - Administration users manage
      - Users manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BulkUserRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Create Mass Account
      security:
      - jwt:
        - Admin
  /admin/user/manage/delete_card:
    delete:
      summary: Assigner une card à un utilisateur.
      description: Permet à l'administrateur de supprimer la carte d'un utilisateur.
      tags:
      - Administration users manage
      - Users manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CardDeletionRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/user/manage/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/user/manage/edit_card:
    put:
      summary: Assigner une card à un utilisateur.
      description: Permet à l'administrateur de modifier la carte d'un utilisateur.
      tags:
      - Administration users manage
      - Users manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CardEditionRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/user/manage/export:
    get:
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: endDate
        in: query
        schema:
          type: string
          default: ""
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
          default: ""
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      - name: startDate
        in: query
        schema:
          type: string
          default: ""
      - name: userType
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Export CSV
      security:
      - jwt:
        - Admin
  /admin/user/manage/graph:
    get:
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: end_at
        in: query
        schema:
          type: string
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/PeriodTemporal"
          - default: ALL
      - name: start_at
        in: query
        schema:
          type: string
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Graph
      security:
      - jwt:
        - Admin
  /admin/user/manage/identity-cloud-file/{id}:
    get:
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Identity Cloud File Resource
      security:
      - jwt:
        - Admin
  /admin/user/manage/identity-resource/{id}:
    get:
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Identities Resource
      security:
      - jwt:
        - Admin
  /admin/user/manage/identity/{id}:
    put:
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserIdentityEditionRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Edit Identity
      security:
      - jwt:
        - Admin
  /admin/user/manage/operations/charging/{id}:
    get:
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get User Charging Operations
      security:
      - jwt:
        - Admin
  /admin/user/manage/operations/charging/{id}/export:
    get:
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        schema:
          type: integer
          format: int32
          default: 1000
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Export User Charging
      security:
      - jwt:
        - Admin
  /admin/user/manage/operations/transfers/{id}:
    get:
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        schema:
          type: integer
          format: int32
          default: 25
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get User Transfers Operations
      security:
      - jwt:
        - Admin
  /admin/user/manage/operations/transfers/{id}/export:
    get:
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        schema:
          type: integer
          format: int32
          default: 1000
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Export User Transfers Operations
      security:
      - jwt:
        - Admin
  /admin/user/manage/operations/withdrawal/{id}:
    get:
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        schema:
          type: integer
          format: int32
          default: 25
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get User Withdrawal Operations
      security:
      - jwt:
        - Admin
  /admin/user/manage/operations/withdrawal/{id}/export:
    get:
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        schema:
          type: integer
          format: int32
          default: 1000
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Export User Withdrawal Operations
      security:
      - jwt:
        - Admin
  /admin/user/manage/operations/{id}:
    get:
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get User Operations
      security:
      - jwt:
        - Admin
  /admin/user/manage/operations/{id}/export:
    get:
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        schema:
          type: integer
          format: int32
          default: 1000
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Export User Operations
      security:
      - jwt:
        - Admin
  /admin/user/manage/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      - name: endDate
        in: query
        schema:
          type: string
          default: ""
      - name: startDate
        in: query
        schema:
          type: string
          default: ""
      - name: userType
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
  /admin/user/manage/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/user/manage/revoke_card:
    put:
      summary: Revoquer une card à un utilisateur.
      description: Permet à l'administrateur de revoquer une carte à un utilisateur.
      tags:
      - Administration users manage
      - Users manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssignCardRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/user/manage/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/user/manage/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/user/manage/stats-override:
    get:
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: end_at
        in: query
        schema:
          type: string
      - name: period
        in: query
        schema:
          $ref: "#/components/schemas/StatPeriod"
      - name: start_at
        in: query
        schema:
          type: string
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Stats Override
      security:
      - jwt:
        - Admin
  /admin/user/manage/toggle-user-account:
    put:
      summary: Changer l'état du compte d'un utilisateur.
      description: "Permet à l'administrateur de changer l'état du compte d'un utilisateur,\
        \ généralement pour désactiver ou réactiver le compte d'une personne"
      tags:
      - Administration users manage
      - Users manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ToggleUserRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/user/manage/toggle-user-agent:
    put:
      summary: Changer l'état du compte d'un utilisateur.
      description: Permet à l'administrateur de définir un utilisateur comme un agent
        ou inversement
      tags:
      - Administration users manage
      - Users manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ToggleUserRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/user/manage/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/user/manage/unverified-users:
    get:
      summary: Liste des utilisateurs non vérifiés.
      description: Permet à l'administrateur de récupérer la liste des utilisateurs
        non vérifiés
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: q
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/user/manage/verify-user-identity:
    put:
      summary: Vérifier l'identité d'une personne.
      description: Permet à l'administrateur de vérifier l'identité d'un utilisateur
      tags:
      - Administration users manage
      - Users manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/VerifyUserRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/user/manage/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema: {}
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Administration users manage
      - Users manage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /admin/visa_cards/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - Cartes visa partenaires
      requestBody:
        content:
          application/json:
            schema: {}
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/visa_cards/delete-card-link/{cardId}:
    delete:
      tags:
      - Cartes visa partenaires
      parameters:
      - name: cardId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Delete Card Link
      security:
      - jwt:
        - Admin
  /admin/visa_cards/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - Cartes visa partenaires
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/visa_cards/export:
    get:
      tags:
      - Cartes visa partenaires
      parameters:
      - name: attributed
        in: query
        schema:
          type: integer
          format: int32
      - name: endDate
        in: query
        schema:
          type: string
          default: ""
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: startDate
        in: query
        schema:
          type: string
          default: ""
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Export CSV
      security:
      - jwt:
        - Admin
  /admin/visa_cards/import:
    post:
      tags:
      - Cartes visa partenaires
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BulkVisaCreationRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Import Card
      security:
      - jwt:
        - Admin
  /admin/visa_cards/link-card/{userId}:
    post:
      tags:
      - Cartes visa partenaires
      parameters:
      - name: userId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CardVisaAddRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Link Card To User
      security:
      - jwt:
        - Admin
  /admin/visa_cards/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - Cartes visa partenaires
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/visa_cards/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - Cartes visa partenaires
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/visa_cards/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - Cartes visa partenaires
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/visa_cards/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - Cartes visa partenaires
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/visa_cards/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - Cartes visa partenaires
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /admin/visa_cards/transactions/{cardNumber}:
    get:
      tags:
      - Cartes visa partenaires
      parameters:
      - name: cardNumber
        in: path
        required: true
        schema:
          type: string
      - name: endDate
        in: query
        schema:
          type: string
          format: DD-MMM-YYYY
          examples:
          - 01-JUN-2024
          description: Date de fin des transactions
          default: 01-JUN-2024
      - name: startDate
        in: query
        schema:
          type: string
          format: DD-MMM-YYYY
          examples:
          - 01-JAN-2024
          description: Date de début des transactions
          default: 01-JAN-2024
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Card Transactions
      security:
      - jwt:
        - Admin
  /admin/visa_cards/update-card-phone/{cardId}:
    put:
      tags:
      - Cartes visa partenaires
      parameters:
      - name: cardId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CardVisaPhoneEditionRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Update Card Phone Number
      security:
      - jwt:
        - Admin
  /admin/visa_cards/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - Cartes visa partenaires
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema: {}
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - Cartes visa partenaires
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - Cartes visa partenaires
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /agency/tontine/cancel:
    put:
      summary: Annuler une tontine
      description: Permet à l'administrateur d'annuler une tontine
      tags:
      - "Gestion des tontine [Agent collecteur]"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CloseTontineRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
        - Agent
  /agency/tontine/cancel-bets:
    post:
      summary: Cancel bets.
      description: Permet à l'agent collecteur d'annuler les mises des membres de
        la tontine.
      tags:
      - "Gestion des tontine [Agent collecteur]"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CancelBetPaymentTontineRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
        - Agent
  /agency/tontine/close:
    put:
      summary: Fermer une tontine
      description: Permet à l'administrateur de fermer une tontine
      tags:
      - "Gestion des tontine [Agent collecteur]"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CloseTontineRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
        - Agent
  /agency/tontine/collect-mise:
    post:
      summary: Collecter une mise
      description: Permet à l'administrateur de collecter une mise
      tags:
      - "Gestion des tontine [Agent collecteur]"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CollectTontineBetRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
        - Agent
  /agency/tontine/create:
    post:
      summary: Create one.
      description: Create one entry.
      tags:
      - "Gestion des tontine [Agent collecteur]"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TontineCreationRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /agency/tontine/drop-down:
    get:
      summary: Get elements list simplify
      description: Returns elements list to populate drop-down or select component
      tags:
      - "Gestion des tontine [Agent collecteur]"
      parameters:
      - name: q
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /agency/tontine/export:
    get:
      tags:
      - "Gestion des tontine [Agent collecteur]"
      parameters:
      - name: agencyId
        in: query
        schema:
          type: integer
          format: int64
      - name: all
        in: query
        schema:
          type: integer
          format: int32
      - name: collectorId
        in: query
        schema:
          type: integer
          format: int64
      - name: endDate
        in: query
        schema:
          type: string
          default: ""
      - name: order
        in: query
        schema:
          type: string
          default: ""
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
          default: ""
      - name: servicePointId
        in: query
        schema:
          type: integer
          format: int64
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
          default: ""
      - name: startDate
        in: query
        schema:
          type: string
          default: ""
      - name: status
        in: query
        schema:
          type: string
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Export CSV
      security:
      - jwt:
        - Admin
  /agency/tontine/export-for-collector/{id}:
    get:
      summary: Get export agents collector list
      description: Returns export collector list
      tags:
      - "Gestion des tontine [Agent collecteur]"
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
        - Agent
  /agency/tontine/export-for-user/{id}:
    get:
      summary: Get export agents collector list
      description: Returns export collector list
      tags:
      - "Gestion des tontine [Agent collecteur]"
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
        - Agent
  /agency/tontine/export-mise/{tontineCycleId}:
    get:
      summary: Exporter les mises
      description: Permet d'exporter les mises
      tags:
      - "Gestion des tontine [Agent collecteur]"
      parameters:
      - name: tontineCycleId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
        - Agent
  /agency/tontine/paginate:
    get:
      summary: Get paginate list
      description: Returns elements list
      tags:
      - "Gestion des tontine [Agent collecteur]"
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      - name: agencyId
        in: query
        schema:
          type: integer
          format: int64
      - name: collectorId
        in: query
        schema:
          type: integer
          format: int64
      - name: endDate
        in: query
        schema:
          type: string
          default: ""
      - name: servicePointId
        in: query
        schema:
          type: integer
          format: int64
      - name: startDate
        in: query
        schema:
          type: string
          default: ""
      - name: status
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
        - Agent
  /agency/tontine/paginate-for-collector/{id}:
    get:
      summary: Get paginate agents collector list
      description: Returns agents collector list
      tags:
      - "Gestion des tontine [Agent collecteur]"
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
        - Agent
  /agency/tontine/paginate-for-commissions:
    get:
      summary: Get paginate closed cycle
      description: Returns closed and not payed cycles
      tags:
      - "Gestion des tontine [Agent collecteur]"
      parameters:
      - name: endDate
        in: query
        schema:
          type: string
          default: ""
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      - name: startDate
        in: query
        schema:
          type: string
          default: ""
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
        - Agent
  /agency/tontine/paginate-for-user/{id}:
    get:
      summary: Get paginate agents collector list
      description: Returns agents collector list
      tags:
      - "Gestion des tontine [Agent collecteur]"
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
        - Agent
  /agency/tontine/paginate/trash:
    get:
      summary: 'Get deleted paginate list '
      description: Returns deleted elements list
      tags:
      - "Gestion des tontine [Agent collecteur]"
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /agency/tontine/pay-commissions:
    post:
      summary: Pay commissions.
      description: Permet à l'administrateur de payer les commissions.
      tags:
      - "Gestion des tontine [Agent collecteur]"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CommissionPaymentTontineRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - jwt:
        - Admin
        - Agent
  /agency/tontine/soft/{id}:
    delete:
      summary: Soft delete one by ID.
      description: Put element deleted property to true whose ID matches the one passed
        in parameter
      tags:
      - "Gestion des tontine [Agent collecteur]"
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /agency/tontine/stats:
    get:
      summary: Get entity table stats.
      description: Returns all stats for table
      tags:
      - "Gestion des tontine [Agent collecteur]"
      parameters:
      - name: end_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      - name: period
        in: query
        schema:
          allOf:
          - $ref: "#/components/schemas/StatPeriod"
          - default: ALL
      - name: start_at
        in: query
        schema:
          $ref: "#/components/schemas/Date"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /agency/tontine/toggle/{id}/{status}:
    put:
      summary: Toggle one entry status  by ID.
      description: Toggle element active property whose ID matches the one passed
        in parameter
      tags:
      - "Gestion des tontine [Agent collecteur]"
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: status
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /agency/tontine/{id}:
    put:
      summary: Update one.
      description: Update one entry.
      tags:
      - "Gestion des tontine [Agent collecteur]"
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TontineCreationRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    get:
      summary: Get one by ID.
      description: Returns the element whose ID matches the one passed in parameter
      tags:
      - "Gestion des tontine [Agent collecteur]"
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
    delete:
      summary: Delete one by ID.
      description: Delete the element whose ID matches the one passed in parameter
      tags:
      - "Gestion des tontine [Agent collecteur]"
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
  /commons/card/qr_code/{cardId}:
    get:
      parameters:
      - name: cardId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
      summary: Get Child QR Code
      tags:
      - Common Resource
  /commons/products/find:
    get:
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      - name: supplier
        in: query
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Find Products
      tags:
      - Common Resource
      security:
      - jwt:
        - User
  /commons/resource/{uid}:
    get:
      summary: Permet de récupérer une resource.
      description: Permet de récupérer une resource.
      parameters:
      - name: uid
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      tags:
      - Common Resource
  /commons/shops/find:
    get:
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Find Shops
      tags:
      - Common Resource
      security:
      - jwt:
        - User
  /commons/suppliers/find:
    get:
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Find Suppliers
      tags:
      - Common Resource
      security:
      - jwt:
        - User
  /commons/test:
    get:
      responses:
        "200":
          description: OK
      summary: Test
      tags:
      - Common Resource
  /commons/ticket-pdf/{eventId}/{ticketId}:
    get:
      parameters:
      - name: eventId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: ticketId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Generate Ticket PDF
      tags:
      - Common Resource
      security:
      - jwt:
        - User
        - Admin
  /commons/ticket-qrcode/{eventId}/{ticketId}:
    get:
      parameters:
      - name: eventId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: ticketId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Generate QR Code
      tags:
      - Common Resource
      security:
      - jwt:
        - User
        - Admin
  /external-app/agent-operation/init-withdrawal:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InitWithdrawalOperationRequest"
        required: true
      responses:
        "200":
          description: OK
      summary: Init Withdrawal
      tags:
      - Agent Operation Controller
  /external-app/agent-operation/validate-deposit:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ValidateAgentDepositOperationRequest"
        required: true
      responses:
        "200":
          description: OK
      summary: Validate Deposit
      tags:
      - Agent Operation Controller
  /external-app/bi/agents:
    get:
      summary: Récupérer la liste des agents
      description: Retourne une liste paginée des agents avec possibilité de filtrage
        par date et recherche
      tags:
      - BI APIs
      parameters:
      - description: "Date de fin (format: yyyy-MM-dd'T'HH:mm:ss'Z')"
        example: 2024-12-31T23:59:59Z
        name: date_end
        in: query
        schema:
          type: string
      - description: "Date de début (format: yyyy-MM-dd'T'HH:mm:ss'Z')"
        example: 2024-01-01T00:00:00Z
        name: date_start
        in: query
        schema:
          type: string
      - description: Numéro de page
        example: 1
        name: page
        in: query
        schema:
          type: integer
          format: int32
          default: 1
      - description: "Terme de recherche (nom, contact)"
        example: John
        name: search
        in: query
        schema:
          type: string
          default: ""
      - description: Nombre d'éléments par page
        example: 25
        name: size
        in: query
        schema:
          type: integer
          format: int32
          default: 25
      responses:
        "200":
          description: Liste des agents récupérée avec succès
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /external-app/bi/operations:
    get:
      summary: Récupérer la liste des opérations
      description: Retourne une liste paginée des opérations avec possibilité de filtrage
        par date et recherche
      tags:
      - BI APIs
      parameters:
      - description: "Date de fin (format: yyyy-MM-dd'T'HH:mm:ss'Z')"
        example: 2024-12-31T23:59:59Z
        name: date_end
        in: query
        schema:
          type: string
      - description: "Date de début (format: yyyy-MM-dd'T'HH:mm:ss'Z')"
        example: 2024-01-01T00:00:00Z
        name: date_start
        in: query
        schema:
          type: string
      - description: Numéro de page
        example: 1
        name: page
        in: query
        schema:
          type: integer
          format: int32
          default: 1
      - description: "Terme de recherche (nom, contact)"
        example: John
        name: search
        in: query
        schema:
          type: string
          default: ""
      - description: Nombre d'éléments par page
        example: 25
        name: size
        in: query
        schema:
          type: integer
          format: int32
          default: 25
      responses:
        "200":
          description: Liste des opérations récupérée avec succès
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "500":
          description: Erreur serveur
  /external-app/bi/tontines:
    get:
      summary: Récupérer la liste des tontines
      description: Retourne une liste paginée des tontines avec possibilité de filtrage
        par date et recherche
      tags:
      - BI APIs
      parameters:
      - description: "Date de fin (format: yyyy-MM-dd'T'HH:mm:ss'Z')"
        example: 2024-12-31T23:59:59Z
        name: date_end
        in: query
        schema:
          type: string
      - description: "Date de début (format: yyyy-MM-dd'T'HH:mm:ss'Z')"
        example: 2024-01-01T00:00:00Z
        name: date_start
        in: query
        schema:
          type: string
      - description: Numéro de page
        example: 1
        name: page
        in: query
        schema:
          type: integer
          format: int32
          default: 1
      - description: "Terme de recherche (nom, contact)"
        example: John
        name: search
        in: query
        schema:
          type: string
          default: ""
      - description: Nombre d'éléments par page
        example: 25
        name: size
        in: query
        schema:
          type: integer
          format: int32
          default: 25
      responses:
        "200":
          description: Liste des tontines récupérée avec succès
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /external-app/bi/users:
    get:
      summary: Récupérer la liste des utilisateurs
      description: Retourne une liste paginée des utilisateurs avec possibilité de
        filtrage par date et recherche
      tags:
      - BI APIs
      parameters:
      - description: "Date de fin (format: yyyy-MM-dd'T'HH:mm:ss'Z')"
        example: 2024-12-31T23:59:59Z
        name: date_end
        in: query
        schema:
          type: string
      - description: "Date de début (format: yyyy-MM-dd'T'HH:mm:ss'Z')"
        example: 2024-01-01T00:00:00Z
        name: date_start
        in: query
        schema:
          type: string
      - description: Numéro de page
        example: 1
        name: page
        in: query
        schema:
          type: integer
          format: int32
          default: 1
      - description: "Terme de recherche (nom, contact)"
        example: John
        name: search
        in: query
        schema:
          type: string
          default: ""
      - description: Nombre d'éléments par page
        example: 25
        name: size
        in: query
        schema:
          type: integer
          format: int32
          default: 25
      responses:
        "200":
          description: Liste des utilisateurs récupérée avec succès
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
  /external-app/merchant/coupon/confirme-validation:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ConfirmCouponPaymentRequest"
        required: true
      responses:
        "200":
          description: OK
      summary: Confirm Acception
      tags:
      - Merchant Controller
  /external-app/merchant/coupon/init-auth/{couponId}/{shopId}:
    get:
      parameters:
      - name: couponId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: shopId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
      summary: Request Autorisations
      tags:
      - Merchant Controller
  /external-app/merchant/coupon/search:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CouponUSSDSearchRequest"
        required: true
      responses:
        "200":
          description: OK
      summary: Get Coupon By Code
      tags:
      - Merchant Controller
  /external-app/security/auth:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExternalAppAuthRequest"
        required: true
      responses:
        "200":
          description: OK
      summary: Auth
      tags:
      - Security Controller
  /external-app/tontine/collect/{tontineId}:
    post:
      parameters:
      - name: tontineId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/USSDTontineCollectRequest"
        required: true
      responses:
        "200":
          description: OK
      summary: Collect Tontine
      tags:
      - Tontine Controller
  /external-app/tontine/create:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/USSDTontineCreationRequest"
        required: true
      responses:
        "200":
          description: OK
      summary: Create New Tontine
      tags:
      - Tontine Controller
  /external-app/tontine/own:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/USSDGetOwnTontinesRequest"
        required: true
      responses:
        "200":
          description: OK
      summary: Get Tontine For Own
      tags:
      - Tontine Controller
  /external-app/tontine/{id}/{agent}:
    get:
      parameters:
      - name: agent
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
      summary: Get Tontine
      tags:
      - Tontine Controller
  /external-app/user/activate:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OtpVerifyRequest"
        required: true
      responses:
        "200":
          description: OK
      summary: Verify OTP Code
      tags:
      - User Controller
  /external-app/user/check/{phone}:
    get:
      parameters:
      - name: phone
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Get Resource
      tags:
      - User Controller
  /external-app/user/crg-operation-accounts/{phone}/{member_code}/{otp}:
    get:
      parameters:
      - name: member_code
        in: path
        required: true
        schema:
          type: string
      - name: otp
        in: path
        required: true
        schema:
          type: string
      - name: phone
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Crg Account List
      tags:
      - User Controller
  /external-app/user/init-charging:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InitValidateChargingRequest"
        required: true
      responses:
        "200":
          description: OK
      summary: Init Charging
      tags:
      - User Controller
  /external-app/user/link-crg-member-request/{phone}/{code}:
    get:
      summary: Request to link a CRG member
      parameters:
      - name: code
        in: path
        required: true
        schema:
          type: string
      - name: phone
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - User Controller
  /external-app/user/registration:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AccountCreationRequest"
        required: true
      responses:
        "200":
          description: OK
      summary: Create Account
      tags:
      - User Controller
  /external-app/user/retrieve-beneficiary/{phone}/{beneficiary_phone}:
    get:
      parameters:
      - name: beneficiary_phone
        in: path
        required: true
        schema:
          type: string
      - name: phone
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Retrieve My Beneficiaries
      tags:
      - User Controller
  /external-app/user/validate-add-beneficiary:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ValidateAddBeneficiary"
        required: true
      responses:
        "200":
          description: OK
      summary: Validate Add Beneficiary
      tags:
      - User Controller
  /external-app/user/validate-charging:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ValidateChargingRequest"
        required: true
      responses:
        "200":
          description: OK
      summary: Validate Charging
      tags:
      - User Controller
  /external-app/user/validate-transfer:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ValidateTransferRequest"
        required: true
      responses:
        "200":
          description: OK
      summary: Validate Transfert
      tags:
      - User Controller
  /external-app/user/validate-withdrawal:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ValidateCrgOperation"
        required: true
      responses:
        "200":
          description: OK
      summary: Validate Withdrawal
      tags:
      - User Controller
  /external-app/withdrawal/waiting:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DefaultEmptyRequest"
        required: true
      responses:
        "200":
          description: OK
      summary: Get Waiting Withdrawal
      tags:
      - Withdrawal Controller
  /external-app/withdrawal/waiting/finalize:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FinalizeOperationRequest"
        required: true
      responses:
        "200":
          description: OK
      summary: Finalize Withdrawal
      tags:
      - Withdrawal Controller
  /hello:
    get:
      responses:
        "200":
          description: OK
          content:
            text/plain:
              schema:
                type: string
      summary: Hello
      tags:
      - Greeting Resource
  /hello/mail:
    get:
      responses:
        "204":
          description: No Content
      summary: Send
      tags:
      - Greeting Resource
  /hello/permit-all:
    get:
      responses:
        "200":
          description: OK
          content:
            text/plain:
              schema:
                type: string
      summary: Hello
      tags:
      - Greeting Resource
  /mobile/account/add-mobile-phone:
    post:
      summary: Add mobile operation phone number
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MobilePhoneRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Account Controller
  /mobile/account/avatar:
    post:
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Upload Avatar
      tags:
      - Account Controller
      security:
      - jwt:
        - User
  /mobile/account/change-password:
    put:
      summary: Changement du mot de passe de compte.
      description: Permet au client mobile de changer le mot de passe son compte
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/NewPasswordRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Account Controller
  /mobile/account/configuration:
    get:
      parameters:
      - name: devise-agent
        in: header
        schema:
          type: string
          default: ""
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      summary: Configuration
      tags:
      - Account Controller
  /mobile/account/crg-operation-accounts:
    get:
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Crg Account List
      tags:
      - Account Controller
      security:
      - jwt:
        - User
  /mobile/account/delete-mobile-phone/{id}:
    delete:
      summary: Delete mobile operation phone number
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Account Controller
  /mobile/account/edit-mobile-phone/{id}:
    post:
      summary: Edit mobile operation phone number
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MobilePhoneRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Account Controller
  /mobile/account/enrolment:
    post:
      summary: Creation de compte.
      description: Permet au client mobile de créer son compte
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AccountCreationRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Account Controller
  /mobile/account/link-crg-member-request/{code}:
    get:
      summary: Request to link a CRG member
      parameters:
      - name: code
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      tags:
      - Account Controller
      security:
      - jwt:
        - User
  /mobile/account/link-crg-member/{code}/{otp}:
    post:
      summary: Link a CRG member
      parameters:
      - name: code
        in: path
        required: true
        schema:
          type: string
      - name: otp
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      tags:
      - Account Controller
      security:
      - jwt:
        - User
  /mobile/account/login:
    post:
      summary: Connexion au compte.
      description: Permet au client mobile de se connecter a son compte
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AuthRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Account Controller
  /mobile/account/logout:
    post:
      responses:
        "200":
          description: OK
      summary: Logout
      tags:
      - Account Controller
  /mobile/account/profile:
    get:
      summary: Récupérer le profil.
      description: Permet la récupération du profil client mobile
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      tags:
      - Account Controller
      security:
      - jwt:
        - User
  /mobile/account/replace-id/{id}:
    post:
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Replace Id
      tags:
      - Account Controller
      security:
      - jwt:
        - User
  /mobile/account/request-reset-password:
    put:
      summary: Demander la réinitialiser du mot de passe du compte.
      description: Permet au client mobile de demander la réinitialiser du mot de
        passe de son compte
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ResetPasswordRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Account Controller
  /mobile/account/resend-otp:
    post:
      summary: Re-envoyer le code otp du compte.
      description: Permet Re-envoyer le code otp au client mobile
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OtpRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Account Controller
  /mobile/account/reset-password:
    put:
      summary: Réinitialiser le mot de passe du compte.
      description: Permet au client mobile de réinitialiser le mot de passe de son
        compte
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChangePasswordRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Account Controller
  /mobile/account/retrieve-registered-mobile-phone:
    get:
      summary: Retrieve registred mobile operation phone number
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Account Controller
  /mobile/account/unlink-crg-member:
    delete:
      summary: Unlink a CRG member
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      tags:
      - Account Controller
      security:
      - jwt:
        - User
  /mobile/account/update-firebase-token:
    put:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AddTokenRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Update Firebase Token Request
      tags:
      - Account Controller
      security:
      - jwt:
        - User
  /mobile/account/upload-avatar:
    put:
      summary: Charger une photo de profil.
      description: Permet au client mobile de charger une photo de profil
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UploadAvatarRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Account Controller
  /mobile/account/upload-id:
    post:
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Upload Id
      tags:
      - Account Controller
      security:
      - jwt:
        - User
  /mobile/account/upload-identity:
    put:
      summary: Soumettre pièce d'identité.
      description: Permet au client mobile de soumettre une pièce d'identité pour
        la validation de son compte
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/IdentityRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Account Controller
  /mobile/account/verify-otp:
    post:
      summary: Verifier le code otp du compte.
      description: Permet la vérification du code otp au client mobile
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OtpVerifyRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Account Controller
  /mobile/agent-networking/agents:
    get:
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Agent Networking
      tags:
      - Agent Networking Controller
      security:
      - jwt:
        - User
  /mobile/agent-operation/create-coupon:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CouponRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Create Coupon
      tags:
      - Operation Agent
      security:
      - jwt:
        - User
  /mobile/agent-operation/deposit:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DepositAgentRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Deposit
      tags:
      - Operation Agent
      security:
      - jwt:
        - User
  /mobile/agent-operation/finalize-withdrawal:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AgentFinalizeWithdrawalRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Finalize Withdrawal
      tags:
      - Operation Agent
      security:
      - jwt:
        - User
  /mobile/agent-operation/init-withdrawal:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AgentInitWithdrawalRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Init Withdrawal
      tags:
      - Operation Agent
      security:
      - jwt:
        - User
  /mobile/beneficiary:
    get:
      summary: Retrieve my beneficiaries.
      description: 'Permet au client mobile de recuperer ses bénéficiaires '
      parameters:
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Beneficiary Controller
  /mobile/beneficiary/add:
    post:
      summary: Save my beneficiary.
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BeneficiaryRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Beneficiary Controller
  /mobile/beneficiary/{id}:
    delete:
      summary: Delete my beneficiary.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Beneficiary Controller
  /mobile/card/user-by-qrcode:
    post:
      summary: Retrieve user by scan.
      description: Permet de recuperer une parsonne à partir du scan
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/QrcodeScanRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Card Controller
  /mobile/cards/visa:
    get:
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Card
      tags:
      - Visa Card Controller
      security:
      - jwt:
        - User
  /mobile/cards/visa/add:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CardVisaAddRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Add Card
      tags:
      - Visa Card Controller
      security:
      - jwt:
        - User
  /mobile/cards/visa/change-state/{cardNumber}:
    post:
      parameters:
      - name: cardNumber
        in: path
        required: true
        schema:
          type: string
      - name: state
        in: query
        schema:
          type: string
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Change State
      tags:
      - Visa Card Controller
      security:
      - jwt:
        - User
  /mobile/cards/visa/history:
    get:
      parameters:
      - name: endDate
        in: query
        schema:
          type: string
          format: DD-MMM-YYYY
          examples:
          - 01-JUN-2024
          description: Date de fin des transactions
          default: 01-JUN-2024
      - name: startDate
        in: query
        schema:
          type: string
          format: DD-MMM-YYYY
          examples:
          - 01-JAN-2024
          description: Date de début des transactions
          default: 01-JAN-2024
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Card History
      tags:
      - Visa Card Controller
      security:
      - jwt:
        - User
  /mobile/cards/visa/recharging:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CardVisaRechargingRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Recharging
      tags:
      - Visa Card Controller
      security:
      - jwt:
        - User
  /mobile/cards/visa/transfer-card-2-card:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CardVisaTransferRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Transfer Card 2 Card
      tags:
      - Visa Card Controller
      security:
      - jwt:
        - User
  /mobile/cards/visa/withdrawal:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CardVisaWithdrawalRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Withdrawal
      tags:
      - Visa Card Controller
      security:
      - jwt:
        - User
  /mobile/charging/confirm-cm:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChargingRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Confirm Charging With Credit Mobile
      tags:
      - Charging Controller
      security:
      - jwt:
        - User
  /mobile/charging/init-cm:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InitChargingRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Init Charging With Credit Mobile
      tags:
      - Charging Controller
      security:
      - jwt:
        - User
  /mobile/coupon/confirm-acceptation:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ConfirmCouponPaymentRequest"
        required: true
      responses:
        "200":
          description: OK
      summary: Confirm Acception
      tags:
      - Coupon Controller
  /mobile/coupon/request-autorisation/{couponId}/{shopId}:
    get:
      parameters:
      - name: couponId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: shopId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
      summary: Request Autorisations
      tags:
      - Coupon Controller
  /mobile/coupon/retrieve-coupons-by-agent/{agentId}:
    get:
      parameters:
      - name: agentId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: endDate
        in: query
        schema:
          type: string
          default: ""
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      - name: startDate
        in: query
        schema:
          type: string
          default: ""
      - name: status
        in: query
        schema:
          type: string
          default: ""
      responses:
        "200":
          description: OK
      summary: Retrieve Coupon Accepted By Agent Id
      tags:
      - Coupon Controller
  /mobile/coupon/retrieve-coupons-by-shop/{shopId}:
    get:
      parameters:
      - name: shopId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: endDate
        in: query
        schema:
          type: string
          default: ""
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      - name: startDate
        in: query
        schema:
          type: string
          default: ""
      - name: status
        in: query
        schema:
          type: string
          default: ""
      responses:
        "200":
          description: OK
      summary: Retrieve Coupon Accepted By Shop
      tags:
      - Coupon Controller
  /mobile/coupon/search-coupon:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CouponSearchRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      summary: Search Coupon
      tags:
      - Coupon Controller
  /mobile/events/check-ticket:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CheckingEventTicketBody"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Check Ticket
      tags:
      - Events Controller
      security:
      - jwt:
        - User
  /mobile/events/list:
    get:
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: List Valid Events
      tags:
      - Events Controller
      security:
      - jwt:
        - User
  /mobile/events/my-tickets:
    get:
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: My Tickets
      tags:
      - Events Controller
      security:
      - jwt:
        - User
  /mobile/events/ticket-payment:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TicketPaymentRequestBody"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Ticket Payment
      tags:
      - Events Controller
      security:
      - jwt:
        - User
  /mobile/events/{id}:
    get:
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Event Details
      tags:
      - Events Controller
      security:
      - jwt:
        - User
  /mobile/members/find:
    get:
      parameters:
      - name: order
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Find Members
      tags:
      - Member Controller
      security:
      - jwt:
        - User
  /mobile/notifications/all:
    get:
      summary: My notifications.
      description: Permet au client mobile de recuperer les notifications où il est
        impliqué.
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Notification Controller
  /mobile/notifications/read/{id}:
    put:
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
      summary: Read Notification
      tags:
      - Notification Controller
  /mobile/notifications/receive-all:
    get:
      summary: My notifications received.
      description: Permet au client mobile de recuperer ses notifications reçu.
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Notification Controller
  /mobile/notifications/receive-read:
    get:
      summary: My read notifications received.
      description: Permet au client mobile de recuperer ses notifications reçu non
        lues.
      parameters:
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Notification Controller
  /mobile/notifications/receive-unread:
    get:
      summary: My unread notifications received.
      description: Permet au client mobile de recuperer ses notifications reçu non
        lues.
      parameters:
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Notification Controller
  /mobile/operations/all:
    get:
      summary: Retrieve all operations.
      description: Permet au client mobile de recuperer la liste de ses opérations
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
          default: "1"
      - name: size
        in: query
        schema:
          type: integer
          format: int32
          default: "25"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Operation Controller
  /mobile/operations/calculate-fees:
    post:
      summary: Calculate operation fee
      description: Permet au client mobile de calculer les frais d'une opération
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CalculateOperationFeesRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Operation Controller
  /mobile/operations/confirm-withdrawal-with-pin/{requestId}:
    post:
      parameters:
      - name: requestId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ConfirmWithdrawalRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Confirm Withdrawal With PIN
      tags:
      - Operation Controller
      security:
      - jwt:
        - User
  /mobile/operations/type/{id}:
    get:
      summary: Retrieve available operation type by ID.
      description: Permet au client mobile de recuperer un type d'opération a partir
        de son ID
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Operation Controller
  /mobile/operations/types:
    get:
      summary: Retrieve available operation type.
      description: Permet au client mobile de recuperer les types d'opérations disponible
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Operation Controller
  /mobile/operations/types-methods:
    get:
      summary: Retrieve available operation type methods.
      description: Permet au client mobile de recuperer les methodes de paiements
        disponible d'une opération
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Operation Controller
  /mobile/operations/waiting-operation:
    get:
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Wating Operations
      tags:
      - Operation Controller
      security:
      - jwt:
        - User
  /mobile/operations/{operationId}:
    get:
      parameters:
      - name: operationId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Get Operation
      tags:
      - Operation Controller
      security:
      - jwt:
        - User
  /mobile/school-fees/confirm-pay:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SchoolFeePaymentRequest"
        required: true
      responses:
        "200":
          description: OK
      summary: Confirm Pay
      tags:
      - School Fee Controller
  /mobile/school-fees/retrieve-pending-fee:
    post:
      summary: Search child school fees.
      description: Permet de rechercher des frais de scolarité actif d'un enfant à
        partir du contact de son parent.
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SearchSchoolFeesRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - School Fee Controller
  /mobile/shop/confirm-withdrawal-cm:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ShopWithdrawalCreditMobileRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Confirm Shop Withdrawall With Credit Mobile
      tags:
      - Shop Controller
      security:
      - jwt:
        - User
  /mobile/shop/details-owner/{shop-id}:
    get:
      parameters:
      - name: shop-id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Owner Details
      tags:
      - Shop Controller
      security:
      - jwt:
        - User
  /mobile/shop/paginate-operation/{shop-id}:
    get:
      parameters:
      - name: shop-id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: endDate
        in: query
        schema:
          type: string
          default: ""
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: search
        in: query
        schema:
          type: string
          default: ""
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: startDate
        in: query
        schema:
          type: string
          default: ""
      - name: status
        in: query
        schema:
          type: string
          default: ""
      - name: type
        in: query
        schema:
          type: integer
          format: int64
          default: 0
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Paginate Operations
      tags:
      - Shop Controller
      security:
      - jwt:
        - User
  /mobile/shop/payment:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MerchantPaymentRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Payment
      tags:
      - Shop Controller
      security:
      - jwt:
        - User
  /mobile/shop/request-payment-on-loan:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MerchantPaymentRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Pay On Loan
      tags:
      - Shop Controller
      security:
      - jwt:
        - User
  /mobile/shop/request-withdrawal:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ShopWithdrawalRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Request Withdrawal
      tags:
      - Shop Controller
      security:
      - jwt:
        - User
  /mobile/shop/shop-by-qrcode:
    post:
      summary: Retrieve shop by scan.
      description: Permet de recuperer une boutique à partir du scan
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/QrcodeScanRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Shop Controller
  /mobile/shop/stats-owner/{shop-id}:
    get:
      parameters:
      - name: shop-id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Shop Stats
      tags:
      - Shop Controller
      security:
      - jwt:
        - User
  /mobile/shop/upload-icon/{id}:
    put:
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Upload Group Icon
      tags:
      - Shop Controller
      security:
      - jwt:
        - User
  /mobile/shop/validate-payment-on-loan:
    put:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ValidateLoanPaymentRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Validate Pay On Loan
      tags:
      - Shop Controller
      security:
      - jwt:
        - User
  /mobile/tontines/all:
    get:
      summary: Retrieve all tontines.
      description: Permet a l'utilisateur de récupérer la liste de ses tontines créer
        ou faisant partie des membres.
      parameters:
      - name: code
        in: query
        schema:
          type: string
      - name: memberName
        in: query
        schema:
          type: string
      - name: memberPhone
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: state
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Tontine Controller
  /mobile/tontines/create:
    post:
      summary: Create new tontine.
      description: Permet à l'agent collecteur de créer une nouvelle tontine.
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MobileTontineCreationRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Tontine Controller
  /mobile/tontines/mines:
    get:
      summary: Retrieve my tontines.
      description: Permet a l'utilisateur de récupérer la liste de ses tontines où
        le membre fait partie des membres.
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        schema:
          type: integer
          format: int32
      - name: state
        in: query
        schema:
          type: string
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Tontine Controller
  /mobile/tontines/pay-bets:
    post:
      summary: Pay bets.
      description: Permet à l'agent collecteur de payer les mises des membres de la
        tontine.
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BetPaymentTontineRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Tontine Controller
  /mobile/tontines/{id}:
    get:
      summary: Retrieve tontine by ID.
      description: Permet de récupérer une tontine à partir de son ID.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Tontine Controller
    delete:
      summary: Delete tontine.
      description: Permet de supprimer une tontine.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Tontine Controller
  /mobile/transfers/init:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InitTransferRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Init Transfer
      tags:
      - Transfer Controller
      security:
      - jwt:
        - User
  /mobile/transfers/make/wallet-to-wallet:
    post:
      summary: Make a transfer between two wallet accounts.
      description: Permet au client mobile de faire un transfert entre deux comptes
        wallet.
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LocalTransferRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Transfer Controller
  /mobile/vignette/communes/{idRegions}:
    get:
      parameters:
      - name: idRegions
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: OK
      summary: Fetch Communes
      tags:
      - Vignette Controller
  /mobile/vignette/confirm-pay:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/VignettePaymentRequest"
        required: true
      responses:
        "200":
          description: OK
      summary: Confirm Pay
      tags:
      - Vignette Controller
  /mobile/vignette/regions:
    get:
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      summary: Fetch Regions
      tags:
      - Vignette Controller
  /mobile/vignette/retrieve-autorisations/{category}:
    get:
      parameters:
      - name: category
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: OK
      summary: Car Autorisations
      tags:
      - Vignette Controller
  /mobile/vignette/retrieve-categories:
    get:
      responses:
        "200":
          description: OK
      summary: Car Categories
      tags:
      - Vignette Controller
  /mobile/vignette/vignette-infos:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/VignetteInfoRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      summary: Vignette Infos Autorisations New
      tags:
      - Vignette Controller
  /mobile/withdrawal/confirm-cm:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WithdrawalCreditMobileRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Confirm Withdrawall With Credit Mobile
      tags:
      - Withdrawal Controller
      security:
      - jwt:
        - User
  /mobile/withdrawal/init-cm:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InitChargingRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Init Withdrawall With Credit Mobile
      tags:
      - Withdrawal Controller
      security:
      - jwt:
        - User
  /payment-gateway/payment/check-operation/{operationId}:
    get:
      parameters:
      - name: operationId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              type: integer
              format: int64
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Check Operation
      tags:
      - Payment Controller
      security:
      - jwt:
        - ExternalApp
  /payment-gateway/payment/link-wallet:
    put:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LinkWalletPhoneRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Link Wallet Phone
      tags:
      - Payment Controller
      security:
      - jwt:
        - ExternalApp
  /payment-gateway/payment/link-wallet-confirm:
    put:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LinkWalletConfirmationRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Link Wallet Phone
      tags:
      - Payment Controller
      security:
      - jwt:
        - ExternalApp
  /payment-gateway/payment/transfert-operation:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExternalAppTransferRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Transfert Operation
      tags:
      - Payment Controller
      security:
      - jwt:
        - ExternalApp
  /payment-gateway/secure/auth:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExternalAppAuthRequest"
        required: true
      responses:
        "200":
          description: OK
      summary: Auth
      tags:
      - Auth Controller
  /v2/mobile/transfers/init:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InitTransferRequest"
        required: true
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      summary: Init Transfer
      tags:
      - Transfer V 2 Controller
      security:
      - jwt:
        - User
  /v2/mobile/transfers/make/wallet-to-wallet:
    post:
      summary: Make a transfer between two wallet accounts.
      description: Permet au client mobile de faire un transfert entre deux comptes
        wallet.
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LocalTransferRequest"
        required: true
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      tags:
      - Transfer V 2 Controller
