openapi: 3.0.3 info: title: 'SmartGate Estate Management App API Documentation' description: 'Estate Management API' version: 1.0.0 servers: - url: 'https://admin.smartgate.africa' tags: - name: Endpoints description: '' paths: /api/v1/estate-list: get: summary: '' operationId: getApiV1EstateList description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/estate-list could not be found.' properties: message: type: string example: 'The route api/v1/estate-list could not be found.' tags: - Endpoints security: [] /api/v1/resident/signin: post: summary: 'Resident and Security: authenticate resident andsecurity user.' operationId: residentAndSecurityAuthenticateResidentAndsecurityUser description: '' parameters: [] responses: { } tags: - Endpoints security: [] /api/v1/resident/login: post: summary: 'Resident: authenticate resident user.' operationId: residentAuthenticateResidentUser description: '' parameters: [] responses: { } tags: - Endpoints security: [] /api/v1/resident/profile: get: summary: 'Resident: resident profile.' operationId: residentResidentProfile description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/resident/profile could not be found.' properties: message: type: string example: 'The route api/v1/resident/profile could not be found.' tags: - Endpoints security: [] /api/v1/resident/add-estate: post: summary: '' operationId: postApiV1ResidentAddEstate description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: estate_id: type: string description: 'The id of an existing record in the estates table.' example: consequatur nullable: false required: - estate_id security: [] /api/v1/resident/update-profile: post: summary: 'Resident: Update Profile' operationId: residentUpdateProfile description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: false content: multipart/form-data: schema: type: object properties: estate_id: type: string description: '' example: null nullable: false firstname: type: string description: '' example: null nullable: false lastname: type: string description: '' example: null nullable: false othername: type: string description: '' example: null nullable: false phone_number: type: string description: '' example: null nullable: false address: type: string description: '' example: null nullable: false house_no: type: string description: '' example: null nullable: false email: type: string description: 'Must be a valid email address.' example: qkunze@example.com nullable: false image: type: string format: binary description: 'Must be a file. Must be an image. Must not be greater than 2048 kilobytes.' nullable: false security: [] /api/v1/resident/generate-access-code: post: summary: 'Resident: Generate access code.' operationId: residentGenerateAccessCode description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: visitor: type: string description: '' example: consequatur nullable: false no_of_visitors: type: number description: '' example: 11613.31890586 nullable: false estate_id: type: string description: 'The id of an existing record in the estates table.' example: consequatur nullable: false access_type: type: string description: '' example: one-time nullable: false enum: - one-time - event - extended check_in: type: string description: 'Must be a valid date in the format Y-m-d H:i:s.' example: '2025-11-19 00:39:48' nullable: false check_out: type: string description: 'Must be a valid date in the format Y-m-d H:i:s. Must be a date after check_in.' example: '2106-12-18' nullable: false required: - visitor - no_of_visitors - estate_id - access_type - check_in - check_out security: [] /api/v1/resident/generate-access-code-for-artisan: post: summary: 'Resident: Generate access code for artisan.' operationId: residentGenerateAccessCodeForArtisan description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: estate_id: type: string description: 'The id of an existing record in the estates table.' example: consequatur nullable: false check_in: type: string description: 'Must be a valid date in the format Y-m-d H:i:s.' example: '2025-11-19 00:39:48' nullable: false check_out: type: string description: 'Must be a valid date in the format Y-m-d H:i:s. Must be a date after check_in.' example: '2106-12-18' nullable: false job_id: type: string description: 'The id of an existing record in the artisan_job_histories table.' example: consequatur nullable: false no_of_visitors: type: number description: '' example: 11613.31890586 nullable: false required: - estate_id - check_in - check_out - job_id security: [] /api/v1/resident/get-access-code: get: summary: 'All: verify access code.' operationId: allVerifyAccessCode description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/resident/get-access-code could not be found.' properties: message: type: string example: 'The route api/v1/resident/get-access-code could not be found.' tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: access_code: type: string description: '' example: consequatur nullable: false estate_id: type: string description: '' example: consequatur nullable: false required: - access_code - estate_id security: [] /api/v1/resident/all-access-codes: get: summary: 'Resident: get access codes by residents.' operationId: residentGetAccessCodesByResidents description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/resident/all-access-codes could not be found.' properties: message: type: string example: 'The route api/v1/resident/all-access-codes could not be found.' tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: estate_id: type: string description: '' example: consequatur nullable: false status: type: string description: '' example: expired nullable: false enum: - active - expired required: - estate_id - status security: [] /api/v1/resident/emergency-contact: get: summary: 'Emergency contact:list contact' operationId: emergencyContactlistContact description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/resident/emergency-contact could not be found.' properties: message: type: string example: 'The route api/v1/resident/emergency-contact could not be found.' tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: estate_id: type: string description: '' example: consequatur nullable: false required: - estate_id security: [] '/api/v1/resident/update-access-code/{id}': put: summary: 'Resident: update access code detail.' operationId: residentUpdateAccessCodeDetail description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: false content: application/json: schema: type: object properties: visitor_name: type: string description: '' example: consequatur nullable: false comment: type: string description: '' example: consequatur nullable: false no_of_visitors: type: number description: '' example: 11613.31890586 nullable: false estate_id: type: number description: '' example: 11613.31890586 nullable: false status: type: string description: '' example: checked-in nullable: false enum: - pending - block-entry - block-exit - checked-in - checked-out - over-stayed - expired type: type: string description: '' example: extended nullable: false enum: - one-time - event - extended set_check_in: type: string description: 'Must be a valid date in the format Y-m-d H:i:s.' example: '2025-11-19 00:39:48' nullable: false set_check_out: type: string description: 'Must be a valid date in the format Y-m-d H:i:s. Must be a date after check_in.' example: '2096-05-21' nullable: false security: [] parameters: - in: path name: id description: 'The ID of the update access code.' example: consequatur required: true schema: type: string /api/v1/resident/delete-access-code: delete: summary: 'All: verify access code.' operationId: allVerifyAccessCode description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: access_code: type: string description: '' example: consequatur nullable: false estate_id: type: string description: '' example: consequatur nullable: false required: - access_code - estate_id security: [] /api/v1/resident/request-job: post: summary: 'Resident: Hire an artisan, send a job request (idempotent).' operationId: residentHireAnArtisanSendAJobRequestidempotent description: "This method is idempotent based on a unique combination of:\n- resident_id\n- artisan_id\n- estate_id\n- job_id (job_category_id)\n- description\n- preferred_time\n\nIf a job request with the same parameters already exists and is still pending,\nit will not create a duplicate." parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: multipart/form-data: schema: type: object properties: estate_id: type: integer description: 'The id of an existing record in the estates table.' example: 17 nullable: false description: type: string description: '' example: 'Dolores dolorum amet iste laborum eius est dolor.' nullable: false job_category_id: type: string description: '' example: consequatur nullable: false preferred_time: type: string description: 'Must be a valid date in the format Y-m-d H:i:s.' example: '2025-11-19 00:39:48' nullable: false images: type: array description: 'Must be a file. Must not be greater than 5048 kilobytes.' items: type: string format: binary artisan_id: type: integer description: 'The id of an existing record in the estate_artisans table.' example: 17 nullable: false required: - estate_id - description - job_category_id - preferred_time - artisan_id security: [] '/api/v1/resident/change-status/{jobId}': post: summary: '' operationId: postApiV1ResidentChangeStatusJobId description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: job_id: type: integer description: 'The id of an existing record in the artisan_job_histories table.' example: 17 nullable: false status: type: string description: '' example: rejected nullable: false enum: - accepted - rejected - completed required: - job_id - status security: [] parameters: - in: path name: jobId description: '' example: consequatur required: true schema: type: string /api/v1/resident/rate-job: post: summary: 'Resident: Rate an artisan work.' operationId: residentRateAnArtisanWork description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: rate: type: number description: 'Must be at least 1. Must not be greater than 5.' example: 5 nullable: false job_id: type: integer description: 'The id of an existing record in the artisan_job_histories table.' example: 17 nullable: false comment: type: string description: '' example: consequatur nullable: true required: - rate - job_id security: [] '/api/v1/resident/billing/payment-cycle/{estate_id}': get: summary: '' operationId: getApiV1ResidentBillingPaymentCycleEstate_id description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/resident/billing/payment-cycle/consequatur could not be found.' properties: message: type: string example: 'The route api/v1/resident/billing/payment-cycle/consequatur could not be found.' tags: - Endpoints security: [] parameters: - in: path name: estate_id description: 'The ID of the estate.' example: consequatur required: true schema: type: string '/api/v1/resident/billing/dues-owed/{estate_id}': get: summary: '' operationId: getApiV1ResidentBillingDuesOwedEstate_id description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/resident/billing/dues-owed/consequatur could not be found.' properties: message: type: string example: 'The route api/v1/resident/billing/dues-owed/consequatur could not be found.' tags: - Endpoints security: [] parameters: - in: path name: estate_id description: 'The ID of the estate.' example: consequatur required: true schema: type: string '/api/v1/resident/billing/dues-pending/{estate_id}': get: summary: '' operationId: getApiV1ResidentBillingDuesPendingEstate_id description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/resident/billing/dues-pending/consequatur could not be found.' properties: message: type: string example: 'The route api/v1/resident/billing/dues-pending/consequatur could not be found.' tags: - Endpoints security: [] parameters: - in: path name: estate_id description: 'The ID of the estate.' example: consequatur required: true schema: type: string '/api/v1/resident/billing/payment-stats/{estate_id}': get: summary: '' operationId: getApiV1ResidentBillingPaymentStatsEstate_id description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/resident/billing/payment-stats/consequatur could not be found.' properties: message: type: string example: 'The route api/v1/resident/billing/payment-stats/consequatur could not be found.' tags: - Endpoints security: [] parameters: - in: path name: estate_id description: 'The ID of the estate.' example: consequatur required: true schema: type: string '/api/v1/resident/billing/get-payment-cycles/{estate_id}': get: summary: '' operationId: getApiV1ResidentBillingGetPaymentCyclesEstate_id description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/resident/billing/get-payment-cycles/consequatur could not be found.' properties: message: type: string example: 'The route api/v1/resident/billing/get-payment-cycles/consequatur could not be found.' tags: - Endpoints security: [] parameters: - in: path name: estate_id description: 'The ID of the estate.' example: consequatur required: true schema: type: string /api/v1/resident/billing/active: get: summary: 'Return active cycle + coverage + blocking + next unpaid + history' operationId: returnActiveCycle+Coverage+Blocking+NextUnpaid+History description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/resident/billing/active could not be found.' properties: message: type: string example: 'The route api/v1/resident/billing/active could not be found.' tags: - Endpoints security: [] /api/v1/resident/billing/quote: post: summary: 'Quote: months -> amount + the exact FIFO obligations to be covered' operationId: quoteMonthsAmount+TheExactFIFOObligationsToBeCovered description: '' parameters: [] responses: { } tags: - Endpoints security: [] /api/v1/resident/billing/pay/init: post: summary: '' operationId: postApiV1ResidentBillingPayInit description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: months: type: integer description: 'Must be at least 1.' example: 73 nullable: false required: - months security: [] /api/v1/resident/billing/payments: get: summary: 'Payment history (paginated)' operationId: paymentHistorypaginated description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/resident/billing/payments could not be found.' properties: message: type: string example: 'The route api/v1/resident/billing/payments could not be found.' tags: - Endpoints security: [] /api/v1/resident/billing/payments/monthly-dues: get: summary: '' operationId: getApiV1ResidentBillingPaymentsMonthlyDues description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/resident/billing/payments/monthly-dues could not be found.' properties: message: type: string example: 'The route api/v1/resident/billing/payments/monthly-dues could not be found.' tags: - Endpoints security: [] /api/v1/resident/billing/payments/paystack/callback: get: summary: '' operationId: getApiV1ResidentBillingPaymentsPaystackCallback description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/resident/billing/payments/paystack/callback could not be found.' properties: message: type: string example: 'The route api/v1/resident/billing/payments/paystack/callback could not be found.' tags: - Endpoints security: [] '/api/v1/resident/billing/payments/details/{ref}': get: summary: '' operationId: getApiV1ResidentBillingPaymentsDetailsRef description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/resident/billing/payments/details/consequatur could not be found.' properties: message: type: string example: 'The route api/v1/resident/billing/payments/details/consequatur could not be found.' tags: - Endpoints security: [] parameters: - in: path name: ref description: '' example: consequatur required: true schema: type: string '/api/v1/resident/billing/payments/download/receipt/{ref}': get: summary: '' operationId: getApiV1ResidentBillingPaymentsDownloadReceiptRef description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/resident/billing/payments/download/receipt/consequatur could not be found.' properties: message: type: string example: 'The route api/v1/resident/billing/payments/download/receipt/consequatur could not be found.' tags: - Endpoints security: [] parameters: - in: path name: ref description: '' example: consequatur required: true schema: type: string /api/v1/security/verify-access-code: get: summary: 'All: verify access code.' operationId: allVerifyAccessCode description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/security/verify-access-code could not be found.' properties: message: type: string example: 'The route api/v1/security/verify-access-code could not be found.' tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: access_code: type: string description: '' example: consequatur nullable: false estate_id: type: string description: '' example: consequatur nullable: false required: - access_code - estate_id security: [] /api/v1/security/authenticate-access-code: post: summary: 'Security: Authenticate access code.' operationId: securityAuthenticateAccessCode description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: access_code: type: string description: '' example: consequatur nullable: false estate_id: type: string description: '' example: consequatur nullable: false no_of_visitors_allowed: type: number description: '' example: 11613.31890586 nullable: true required: - access_code - estate_id security: [] /api/v1/security/checout-visitor: post: summary: 'Security: Checkout access Code.' operationId: securityCheckoutAccessCode description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: access_code: type: string description: '' example: consequatur nullable: false no_of_visitors_out: type: string description: '' example: null nullable: true required: - access_code security: [] /api/v1/approve-artisan: post: summary: 'Admin: Admin approve an Artisan.' operationId: adminAdminApproveAnArtisan description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: artisan_id: type: string description: '' example: consequatur nullable: false required: - artisan_id security: [] /api/v1/artisan/signin: post: summary: 'Artisan: Sign in a artisan user by verifying their email and returning associated estate.' operationId: artisanSignInAArtisanUserByVerifyingTheirEmailAndReturningAssociatedEstate description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: email: type: string description: 'Must be a valid email address.' example: qkunze@example.com nullable: false required: - email security: [] /api/v1/artisan/login: post: summary: 'Artisan: authenticate artisan user.' operationId: artisanAuthenticateArtisanUser description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: email: type: string description: 'Must be a valid email address.' example: qkunze@example.com nullable: false password: type: string description: '' example: consequatur nullable: false required: - email - password security: [] /api/v1/artisan/verify-artisan-email: post: summary: 'Check if an email already exists as an artisan.' operationId: checkIfAnEmailAlreadyExistsAsAnArtisan description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: email: type: string description: 'Must be a valid email address.' example: qkunze@example.com nullable: false required: - email security: [] /api/v1/artisan/validate-registration: post: summary: '' operationId: postApiV1ArtisanValidateRegistration description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: title: type: string description: '' example: consequatur nullable: false name: type: string description: '' example: consequatur nullable: false phone_number: type: string description: '' example: consequatur nullable: false email: type: string description: 'Must be a valid email address.' example: carolyne.luettgen@example.org nullable: false state_id: type: string description: '' example: consequatur nullable: false address: type: string description: '' example: consequatur nullable: false category_ids: type: object description: '' example: [] nullable: false properties: { } required: - title - name - phone_number - email - state_id - address - category_ids security: [] /api/v1/artisan/register: post: summary: 'Artisan: Register an Artisan.' operationId: artisanRegisterAnArtisan description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: multipart/form-data: schema: type: object properties: title: type: string description: '' example: consequatur nullable: false name: type: string description: '' example: consequatur nullable: false phone_number: type: string description: '' example: consequatur nullable: false email: type: string description: 'Must be a valid email address.' example: carolyne.luettgen@example.org nullable: false state_id: type: string description: '' example: consequatur nullable: false address: type: string description: '' example: consequatur nullable: false category_ids: type: object description: '' example: [] nullable: false properties: { } estates: type: array description: 'The id of an existing record in the estates table.' example: - 17 items: type: integer image: type: string format: binary description: 'Must be an image. Must not be greater than 2048 kilobytes.' nullable: true required: - title - name - phone_number - email - state_id - address - category_ids security: [] /api/v1/artisan/list: get: summary: 'Artisan: Get list of artisans' operationId: artisanGetListOfArtisans description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/artisan/list could not be found.' properties: message: type: string example: 'The route api/v1/artisan/list could not be found.' tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: estate_id: type: integer description: '' example: 17 nullable: false status: type: string description: '' example: estate-verified nullable: false enum: - approved - estate-verified - smartgate-verified search_value: type: string description: '' example: consequatur nullable: true category: type: string description: '' example: consequatur nullable: true required: - estate_id - status security: [] '/api/v1/artisan/getArtisanById/{artisan_id}': get: summary: 'Artisan: Get artisan By Id' operationId: artisanGetArtisanById description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/artisan/getArtisanById/consequatur could not be found.' properties: message: type: string example: 'The route api/v1/artisan/getArtisanById/consequatur could not be found.' tags: - Endpoints security: [] parameters: - in: path name: artisan_id description: 'The ID of the artisan.' example: consequatur required: true schema: type: string /api/v1/artisan/category: get: summary: 'Artisan Job categories.' operationId: artisanJobCategories description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/artisan/category could not be found.' properties: message: type: string example: 'The route api/v1/artisan/category could not be found.' tags: - Endpoints security: [] /api/v1/artisan/list-by-category: get: summary: 'Artisan: Get list of artisans by category and by estate' operationId: artisanGetListOfArtisansByCategoryAndByEstate description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/artisan/list-by-category could not be found.' properties: message: type: string example: 'The route api/v1/artisan/list-by-category could not be found.' tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: estate_id: type: string description: '' example: consequatur nullable: false status: type: string description: '' example: consequatur nullable: false job_id: type: string description: '' example: consequatur nullable: false required: - estate_id - status - job_id security: [] /api/v1/artisan/artisan-projects: post: summary: 'Artisan Project: Create a new artisan project' operationId: artisanProjectCreateANewArtisanProject description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: multipart/form-data: schema: type: object properties: description: type: string description: '' example: 'Dolores dolorum amet iste laborum eius est dolor.' nullable: false attachment: type: string format: binary description: 'Must be a file.' nullable: true artisan_id: type: integer description: 'The id of an existing record in the estate_artisans table.' example: 17 nullable: false required: - description - artisan_id security: [] /api/v1/artisan/artisan-projects/artisan-projects: post: summary: 'Artisan Project: Create a new artisan project' operationId: artisanProjectCreateANewArtisanProject description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: multipart/form-data: schema: type: object properties: description: type: string description: '' example: 'Dolores dolorum amet iste laborum eius est dolor.' nullable: false attachment: type: string format: binary description: 'Must be a file.' nullable: true artisan_id: type: integer description: 'The id of an existing record in the estate_artisans table.' example: 17 nullable: false required: - description - artisan_id security: [] get: summary: 'Artisan Project: Get all artisan projects' operationId: artisanProjectGetAllArtisanProjects description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/artisan/artisan-projects/artisan-projects could not be found.' properties: message: type: string example: 'The route api/v1/artisan/artisan-projects/artisan-projects could not be found.' tags: - Endpoints security: [] '/api/v1/artisan/artisan-projects/artisan-projects/{id}': put: summary: 'Artisan Project: Update an artisan project' operationId: artisanProjectUpdateAnArtisanProject description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: false content: multipart/form-data: schema: type: object properties: description: type: string description: '' example: 'Dolores dolorum amet iste laborum eius est dolor.' nullable: false attachment: type: string format: binary description: 'Must be a file.' nullable: true artisan_id: type: integer description: 'The id of an existing record in the artisans table.' example: 17 nullable: false security: [] delete: summary: 'Artisan Project: Delete an artisan project' operationId: artisanProjectDeleteAnArtisanProject description: '' parameters: [] responses: { } tags: - Endpoints security: [] parameters: - in: path name: id description: 'The ID of the artisan project.' example: consequatur required: true schema: type: string '/api/v1/artisan/artisan-projects/artisan-projects/by-artisan/{artisan_id}': get: summary: 'Artisan Project: Get all projects by artisan ID' operationId: artisanProjectGetAllProjectsByArtisanID description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/artisan/artisan-projects/artisan-projects/by-artisan/consequatur could not be found.' properties: message: type: string example: 'The route api/v1/artisan/artisan-projects/artisan-projects/by-artisan/consequatur could not be found.' tags: - Endpoints security: [] parameters: - in: path name: artisan_id description: 'The ID of the artisan.' example: consequatur required: true schema: type: string /api/v1/artisan/artisan-jobs: get: summary: '' operationId: getApiV1ArtisanArtisanJobs description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/artisan/artisan-jobs could not be found.' properties: message: type: string example: 'The route api/v1/artisan/artisan-jobs could not be found.' tags: - Endpoints security: [] '/api/v1/artisan/artisan-jobs/details/{jobId}': get: summary: '' operationId: getApiV1ArtisanArtisanJobsDetailsJobId description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/artisan/artisan-jobs/details/consequatur could not be found.' properties: message: type: string example: 'The route api/v1/artisan/artisan-jobs/details/consequatur could not be found.' tags: - Endpoints security: [] parameters: - in: path name: jobId description: '' example: consequatur required: true schema: type: string '/api/v1/artisan/artisan-jobs/change-status/{jobId}': post: summary: '' operationId: postApiV1ArtisanArtisanJobsChangeStatusJobId description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: job_id: type: integer description: 'The id of an existing record in the artisan_job_histories table.' example: 17 nullable: false status: type: string description: '' example: accepted nullable: false enum: - accepted - rejected - completed required: - job_id - status security: [] parameters: - in: path name: jobId description: '' example: consequatur required: true schema: type: string /api/v1/artisan/artisan-reviews: get: summary: '' operationId: getApiV1ArtisanArtisanReviews description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/artisan/artisan-reviews could not be found.' properties: message: type: string example: 'The route api/v1/artisan/artisan-reviews could not be found.' tags: - Endpoints security: [] /api/v1/artisan/profile: get: summary: 'Artisan: get Artisan Profile' operationId: artisanGetArtisanProfile description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/artisan/profile could not be found.' properties: message: type: string example: 'The route api/v1/artisan/profile could not be found.' tags: - Endpoints security: [] /api/v1/artisan/update-profile: post: summary: 'Update Artisan Profile.' operationId: updateArtisanProfile description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: false content: multipart/form-data: schema: type: object properties: title: type: string description: '' example: consequatur nullable: false name: type: string description: '' example: consequatur nullable: false email: type: string description: '' example: null nullable: false phone_number: type: string description: '' example: null nullable: false state_id: type: integer description: '' example: 17 nullable: false location_id: type: integer description: '' example: 17 nullable: false address: type: string description: '' example: consequatur nullable: false password: type: string description: 'Must be at least 6 characters.' example: '[2UZ5ij-e/dl4' nullable: false image: type: string format: binary description: 'Must be a file. Must be an image. Must not be greater than 2048 kilobytes.' nullable: false estate_id: type: object description: 'The id of an existing record in the estates table.' example: null nullable: true properties: { } job_id: type: object description: '' example: null nullable: true properties: { } security: [] /api/v1/artisan/update-availability: put: summary: '' operationId: putApiV1ArtisanUpdateAvailability description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: availability: type: string description: '' example: available nullable: false enum: - available - not-available required: - availability security: [] /api/v1/artisan/request-verification: post: summary: 'Artisan: Request Resident Admin verification.' operationId: artisanRequestResidentAdminVerification description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: estate_id: type: string description: '' example: consequatur nullable: false required: - estate_id security: [] /api/v1/artisan/job-approval: post: summary: 'Artisan: Accept or Reject Job.' operationId: artisanAcceptOrRejectJob description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: job_id: type: string description: '' example: consequatur nullable: false status: type: string description: '' example: accept nullable: false enum: - accept - decline comment: type: string description: '' example: null nullable: true required: - job_id - status security: [] '/api/v1/artisan/get-access-code-by-id/{id}': get: summary: 'Get access code detail by ID.' operationId: getAccessCodeDetailByID description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/artisan/get-access-code-by-id/consequatur could not be found.' properties: message: type: string example: 'The route api/v1/artisan/get-access-code-by-id/consequatur could not be found.' tags: - Endpoints security: [] parameters: - in: path name: id description: 'The ID of the get access code by id.' example: consequatur required: true schema: type: string /api/v1/item-categories: get: summary: 'Item Category: List all item categories' operationId: itemCategoryListAllItemCategories description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/item-categories could not be found.' properties: message: type: string example: 'The route api/v1/item-categories could not be found.' tags: - Endpoints security: [] post: summary: 'Item Category: Create a new item category' operationId: itemCategoryCreateANewItemCategory description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: description: type: string description: 'Must not be greater than 255 characters.' example: 'Dolores dolorum amet iste laborum eius est dolor.' nullable: false required: - description security: [] '/api/v1/item-categories/{id}': get: summary: 'Item Category: Get a single item category by ID' operationId: itemCategoryGetASingleItemCategoryByID description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/item-categories/consequatur could not be found.' properties: message: type: string example: 'The route api/v1/item-categories/consequatur could not be found.' tags: - Endpoints security: [] put: summary: 'Item Category: Update an item category' operationId: itemCategoryUpdateAnItemCategory description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: false content: application/json: schema: type: object properties: description: type: string description: 'Must not be greater than 255 characters.' example: 'Dolores dolorum amet iste laborum eius est dolor.' nullable: false security: [] delete: summary: 'Item Category: Delete an item category' operationId: itemCategoryDeleteAnItemCategory description: '' parameters: [] responses: { } tags: - Endpoints security: [] parameters: - in: path name: id description: 'The ID of the item category.' example: consequatur required: true schema: type: string /api/v1/declutter/list: get: summary: 'Declutter: Get list of declutters by estate, status and category' operationId: declutterGetListOfDecluttersByEstateStatusAndCategory description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/declutter/list could not be found.' properties: message: type: string example: 'The route api/v1/declutter/list could not be found.' tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: estate_id: type: number description: '' example: 11613.31890586 nullable: false search_value: type: string description: '' example: consequatur nullable: true status: type: string description: '' example: available nullable: false enum: - all - draft - available - sold category_id: type: array description: 'expects array of category IDs.' example: - 11613.31890586 items: type: number required: - estate_id - status security: [] /api/v1/declutter/my-list: get: summary: 'Declutter: Get individual list for user resident' operationId: declutterGetIndividualListForUserResident description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/declutter/my-list could not be found.' properties: message: type: string example: 'The route api/v1/declutter/my-list could not be found.' tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: status: type: string description: '' example: sold nullable: false enum: - all - draft - available - sold category_id: type: string description: '' example: consequatur nullable: true search_value: type: string description: 'e.g. "1,2,3".' example: consequatur nullable: true required: - status security: [] /api/v1/declutter/get-by-id: get: summary: 'Declutter: Get declutter by id' operationId: declutterGetDeclutterById description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/declutter/get-by-id could not be found.' properties: message: type: string example: 'The route api/v1/declutter/get-by-id could not be found.' tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: id: type: string description: '' example: consequatur nullable: false required: - id security: [] /api/v1/declutter/create: post: summary: 'Declutter: Create Item' operationId: declutterCreateItem description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: multipart/form-data: schema: type: object properties: name: type: string description: '' example: consequatur nullable: false category_id: type: string description: '' example: consequatur nullable: false status: type: string description: 'comma-separated or array.' example: null nullable: true estate_id: type: string description: 'The id of an existing record in the estates table.' example: consequatur nullable: false description: type: string description: '' example: consequatur nullable: false condition: type: string description: '' example: Very-Good nullable: false enum: - Good - Very-Good - Excellent - Brand-New currency: type: string description: '' example: consequatur nullable: false price: type: number description: '' example: 11613.31890586 nullable: false pictures: type: array description: 'Must be a file. Must not be greater than 5048 kilobytes.' items: type: string format: binary required: - name - category_id - estate_id - description - condition - currency - price security: [] '/api/v1/declutter/update/{id}': put: summary: 'Declutter: Update Item, publish, mark as sold etc' operationId: declutterUpdateItemPublishMarkAsSoldEtc description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: false content: multipart/form-data: schema: type: object properties: name: type: string description: '' example: null nullable: false category_id: type: string description: '' example: null nullable: false estate_id: type: string description: '' example: null nullable: false description: type: string description: '' example: null nullable: false condition: type: string description: '' example: Good nullable: false enum: - Good - Very-Good - Excellent - Brand-New currency: type: string description: '' example: null nullable: false price: type: number description: '' example: 11613.31890586 nullable: false pictures: type: array description: 'Must be a file. Must not be greater than 10048 kilobytes.' items: type: string format: binary security: [] parameters: - in: path name: id description: 'The ID of the update.' example: consequatur required: true schema: type: string /api/v1/declutter/delete: delete: summary: 'Declutter: Delete Item' operationId: declutterDeleteItem description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: id: type: string description: '' example: consequatur nullable: false required: - id security: [] /api/v1/job/job-request-list: get: summary: 'Resident: Job request lists.' operationId: residentJobRequestLists description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/job/job-request-list could not be found.' properties: message: type: string example: 'The route api/v1/job/job-request-list could not be found.' tags: - Endpoints security: [] '/api/v1/job/get-job-by-id/{id}': get: summary: 'Job: Get Job By ID.' operationId: jobGetJobByID description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/job/get-job-by-id/consequatur could not be found.' properties: message: type: string example: 'The route api/v1/job/get-job-by-id/consequatur could not be found.' tags: - Endpoints security: [] parameters: - in: path name: id description: 'The ID of the get job by id.' example: consequatur required: true schema: type: string '/api/v1/job/mark-job-completed/{id}': post: summary: '' operationId: postApiV1JobMarkJobCompletedId description: '' parameters: [] responses: { } tags: - Endpoints security: [] parameters: - in: path name: id description: 'The ID of the mark job completed.' example: consequatur required: true schema: type: string /api/v1/job/artisan-ra-approval: post: summary: 'Resident Admin: approve an Artisan.' operationId: residentAdminApproveAnArtisan description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: id: type: string description: '' example: consequatur nullable: false comment: type: string description: '' example: null nullable: true approval_type: type: string description: '' example: null nullable: true required: - id security: [] /api/v1/job/jobs: get: summary: 'Artisan Jobs.' operationId: artisanJobs description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/job/jobs could not be found.' properties: message: type: string example: 'The route api/v1/job/jobs could not be found.' tags: - Endpoints security: [] /api/v1/job/categories: get: summary: 'Artisan Job categories.' operationId: artisanJobCategories description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/job/categories could not be found.' properties: message: type: string example: 'The route api/v1/job/categories could not be found.' tags: - Endpoints security: [] /api/v1/job/upsert-job: post: summary: 'Admin -> Artisan: Create or Update artisan Job.' operationId: adminArtisanCreateOrUpdateArtisanJob description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: description: type: string description: '' example: consequatur nullable: false category_id: type: integer description: 'The id of an existing record in the job_categories table.' example: 17 nullable: false required: - description security: [] /api/v1/job/upsert-job-category: post: summary: 'Admin -> Artisan: Create or Update artisan Job category.' operationId: adminArtisanCreateOrUpdateArtisanJobCategory description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: description: type: string description: '' example: consequatur nullable: false required: - description security: [] /api/v1/job/delete-job: delete: summary: 'Admin -> Artisan: delete job.' operationId: adminArtisanDeleteJob description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: job_id: type: string description: '' example: consequatur nullable: false required: - job_id security: [] /api/v1/job/delete-job-category: delete: summary: 'Admin -> Artisan: delete job category.' operationId: adminArtisanDeleteJobCategory description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: category_id: type: string description: '' example: consequatur nullable: false required: - category_id security: [] /api/v1/notice-boards: post: summary: 'Notice Board: Create a new notice' operationId: noticeBoardCreateANewNotice description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: information: type: string description: '' example: consequatur nullable: false title: type: string description: '' example: consequatur nullable: false estate_id: type: integer description: 'The id of an existing record in the estates table.' example: 17 nullable: false status: type: string description: '' example: important nullable: false enum: - active - important - inactive required: - information - title - estate_id - status security: [] '/api/v1/notice-boards/{id}': put: summary: 'Notice Board: Update a notice' operationId: noticeBoardUpdateANotice description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: title: type: string description: '' example: consequatur nullable: false information: type: string description: '' example: consequatur nullable: false status: type: string description: "'estate_id' => 'required|integer|exists:estates,id',." example: consequatur nullable: false required: - title - information - status security: [] delete: summary: 'Notice Board: Delete a notice' operationId: noticeBoardDeleteANotice description: '' parameters: [] responses: { } tags: - Endpoints security: [] parameters: - in: path name: id description: 'The ID of the notice board.' example: consequatur required: true schema: type: string /api/v1/notice-boards/list: get: summary: 'Notice Board: Get list of all notices' operationId: noticeBoardGetListOfAllNotices description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/notice-boards/list could not be found.' properties: message: type: string example: 'The route api/v1/notice-boards/list could not be found.' tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: estate_id: type: number description: 'The id of an existing record in the estates table.' example: 11613.31890586 nullable: false status: type: string description: '' example: inactive nullable: false enum: - all - active - important - inactive required: - estate_id - status security: [] /api/v1/activity-log: get: summary: '' operationId: getApiV1ActivityLog description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/activity-log could not be found.' properties: message: type: string example: 'The route api/v1/activity-log could not be found.' tags: - Endpoints requestBody: required: false content: application/json: schema: type: object properties: estate_id: type: number description: 'The id of an existing record in the estates table.' example: 11613.31890586 nullable: false security: [] /api/v1/key-spot-categories: post: summary: 'Key Spot: Create a new key spot category' operationId: keySpotCreateANewKeySpotCategory description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: description: type: string description: 'Must not be greater than 255 characters.' example: 'Dolores dolorum amet iste laborum eius est dolor.' nullable: false required: - description security: [] get: summary: 'Key Spot: Get list of all key spot categories' operationId: keySpotGetListOfAllKeySpotCategories description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/key-spot-categories could not be found.' properties: message: type: string example: 'The route api/v1/key-spot-categories could not be found.' tags: - Endpoints security: [] '/api/v1/key-spot-categories/{id}': put: summary: 'Key Spot: Update a key spot category' operationId: keySpotUpdateAKeySpotCategory description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: description: type: string description: 'Must not be greater than 255 characters.' example: 'Dolores dolorum amet iste laborum eius est dolor.' nullable: false required: - description security: [] delete: summary: 'Key Spot: Delete a key spot category' operationId: keySpotDeleteAKeySpotCategory description: '' parameters: [] responses: { } tags: - Endpoints security: [] parameters: - in: path name: id description: 'The ID of the key spot category.' example: consequatur required: true schema: type: string /api/v1/key-spots: post: summary: 'Key Spot: Create a new key spot' operationId: keySpotCreateANewKeySpot description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: multipart/form-data: schema: type: object properties: name: type: string description: '' example: consequatur nullable: false address: type: string description: '' example: consequatur nullable: false description: type: string description: '' example: 'Dolores dolorum amet iste laborum eius est dolor.' nullable: false opening_hours: type: string description: '' example: consequatur nullable: false estate_id: type: integer description: 'The id of an existing record in the estates table.' example: 17 nullable: false latitude: type: string description: '' example: consequatur nullable: true longitude: type: string description: '' example: consequatur nullable: true images: type: array description: 'Must be a file. Must not be greater than 5048 kilobytes.' items: type: string format: binary category_id: type: integer description: 'The id of an existing record in the key_spot_categories table.' example: 17 nullable: false required: - name - address - description - opening_hours - estate_id - category_id security: [] get: summary: 'Key Spot: Get list of all key spots' operationId: keySpotGetListOfAllKeySpots description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/key-spots could not be found.' properties: message: type: string example: 'The route api/v1/key-spots could not be found.' tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: estate_id: type: integer description: 'The id of an existing record in the estates table.' example: 17 nullable: false search_value: type: string description: '' example: consequatur nullable: true category_id: type: string description: '' example: null nullable: true required: - estate_id security: [] '/api/v1/key-spots/{id}': put: summary: 'Key Spot: Update a key spot' operationId: keySpotUpdateAKeySpot description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: multipart/form-data: schema: type: object properties: id: type: integer description: 'The id of an existing record in the key_spots table.' example: 17 nullable: false name: type: string description: '' example: consequatur nullable: false address: type: string description: '' example: consequatur nullable: false description: type: string description: '' example: 'Dolores dolorum amet iste laborum eius est dolor.' nullable: false opening_hours: type: string description: '' example: consequatur nullable: false estate_id: type: integer description: 'The id of an existing record in the estates table.' example: 17 nullable: false latitude: type: string description: '' example: consequatur nullable: true longitude: type: string description: '' example: consequatur nullable: true images: type: array description: 'Must be a file. Must not be greater than 5048 kilobytes.' items: type: string format: binary category_id: type: integer description: 'The id of an existing record in the key_spot_categories table.' example: 17 nullable: false required: - id - name - address - description - opening_hours - estate_id - category_id security: [] delete: summary: 'Key Spot: Delete a key spot' operationId: keySpotDeleteAKeySpot description: '' parameters: [] responses: { } tags: - Endpoints security: [] parameters: - in: path name: id description: 'The ID of the key spot.' example: consequatur required: true schema: type: string /api/v1/estate-alerts/create: post: summary: 'Resident Alert: Create a new resident alert' operationId: residentAlertCreateANewResidentAlert description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: multipart/form-data: schema: type: object properties: description: type: string description: '' example: 'Dolores dolorum amet iste laborum eius est dolor.' nullable: false type: type: integer description: 'The id of an existing record in the resident_alert_types table.' example: 17 nullable: false directed_to: type: string description: '' example: security nullable: false enum: - security - estate_admin rank: type: string description: 'estate_admin, security.' example: consequatur nullable: false attachment: type: array description: 'Must be a file.' items: type: string format: binary estate_id: type: integer description: 'The id of an existing record in the estates table.' example: 17 nullable: false required: - description - type - directed_to - rank - estate_id security: [] '/api/v1/estate-alerts/{id}': put: summary: 'Resident Alert: Update a resident alert' operationId: residentAlertUpdateAResidentAlert description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: false content: multipart/form-data: schema: type: object properties: message: type: string description: '' example: consequatur nullable: false attachment: type: string format: binary description: 'Must be a file.' nullable: true type: type: number description: 'Now accepting files. The id of an existing record in the resident_alert_types table.' example: 11613.31890586 nullable: false status: type: string description: '' example: broadcasted nullable: false enum: - pending - resolved - broadcasted resolution_note: type: string description: '' example: null nullable: false estate_id: type: number description: 'The id of an existing record in the estates table.' example: 11613.31890586 nullable: false security: [] delete: summary: 'Resident Alert: Delete a resident alert' operationId: residentAlertDeleteAResidentAlert description: '' parameters: [] responses: { } tags: - Endpoints security: [] parameters: - in: path name: id description: 'The ID of the estate alert.' example: consequatur required: true schema: type: string '/api/v1/estate-alerts/view-detail/{id}': get: summary: 'Resident Alert: View Resident Alert By Id' operationId: residentAlertViewResidentAlertById description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/estate-alerts/view-detail/consequatur could not be found.' properties: message: type: string example: 'The route api/v1/estate-alerts/view-detail/consequatur could not be found.' tags: - Endpoints security: [] parameters: - in: path name: id description: 'The ID of the view detail.' example: consequatur required: true schema: type: string /api/v1/estate-alerts: get: summary: '' operationId: getApiV1EstateAlerts description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/estate-alerts could not be found.' properties: message: type: string example: 'The route api/v1/estate-alerts could not be found.' tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: estate_id: type: number description: 'The id of an existing record in the estates table.' example: 11613.31890586 nullable: false required: - estate_id security: [] /api/v1/estate-alerts/by-status: get: summary: '' operationId: getApiV1EstateAlertsByStatus description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/estate-alerts/by-status could not be found.' properties: message: type: string example: 'The route api/v1/estate-alerts/by-status could not be found.' tags: - Endpoints security: [] /api/v1/resident-alert-types: post: summary: 'Resident Alert: Create a new resident alert type' operationId: residentAlertCreateANewResidentAlertType description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: description: type: string description: '' example: 'Dolores dolorum amet iste laborum eius est dolor.' nullable: false required: - description security: [] get: summary: 'Resident Alert type: Get all alert type' operationId: residentAlertTypeGetAllAlertType description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/resident-alert-types could not be found.' properties: message: type: string example: 'The route api/v1/resident-alert-types could not be found.' tags: - Endpoints security: [] '/api/v1/resident-alert-types/{id}': put: summary: 'Resident Alert: Update a resident alert type' operationId: residentAlertUpdateAResidentAlertType description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: false content: application/json: schema: type: object properties: description: type: string description: '' example: null nullable: false security: [] delete: summary: 'Resident Alert: Delete a resident alert type' operationId: residentAlertDeleteAResidentAlertType description: '' parameters: [] responses: { } tags: - Endpoints security: [] parameters: - in: path name: id description: 'The ID of the resident alert type.' example: consequatur required: true schema: type: string /api/v1/get_lga: get: summary: 'Estate: Get LGA by state' operationId: estateGetLGAByState description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/get_lga could not be found.' properties: message: type: string example: 'The route api/v1/get_lga could not be found.' tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: id: type: string description: '' example: consequatur nullable: false required: - id security: [] /api/v1/get-states: get: summary: 'Estate: Get All the state' operationId: estateGetAllTheState description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/get-states could not be found.' properties: message: type: string example: 'The route api/v1/get-states could not be found.' tags: - Endpoints security: [] /api/v1/get-countries: get: summary: 'Estate: Get All the countries' operationId: estateGetAllTheCountries description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/get-countries could not be found.' properties: message: type: string example: 'The route api/v1/get-countries could not be found.' tags: - Endpoints security: [] /api/v1/logout: post: summary: 'logout user.' operationId: logoutUser description: '' parameters: [] responses: { } tags: - Endpoints security: [] /api/v1/client-requests/create: post: summary: 'Client Request: Store Client Request' operationId: clientRequestStoreClientRequest description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: estate_name: type: string description: '' example: consequatur nullable: false estate_location: type: string description: '' example: consequatur nullable: false estate_size: type: integer description: '' example: 17 nullable: false estate_type: type: string description: '' example: Mixed nullable: false enum: - Residential - Commercial - Mixed contact_person_name: type: string description: '' example: consequatur nullable: false contact_person_phonenumber: type: string description: 'Must not be greater than 15 characters.' example: mqeopfuudtdsu nullable: false contact_person_email: type: string description: 'Must be a valid email address.' example: schultz.robyn@example.com nullable: false required: - estate_name - estate_location - estate_size - estate_type - contact_person_name - contact_person_phonenumber - contact_person_email security: [] /api/v1/client-requests: get: summary: '' operationId: getApiV1ClientRequests description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/client-requests could not be found.' properties: message: type: string example: 'The route api/v1/client-requests could not be found.' tags: - Endpoints security: [] '/api/v1/client-requests/{id}': get: summary: '' operationId: getApiV1ClientRequestsId description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/client-requests/consequatur could not be found.' properties: message: type: string example: 'The route api/v1/client-requests/consequatur could not be found.' tags: - Endpoints security: [] put: summary: '' operationId: putApiV1ClientRequestsId description: '' parameters: [] responses: { } tags: - Endpoints security: [] delete: summary: '' operationId: deleteApiV1ClientRequestsId description: '' parameters: [] responses: { } tags: - Endpoints security: [] parameters: - in: path name: id description: 'The ID of the client request.' example: consequatur required: true schema: type: string /api/v1/contact-us/create: post: summary: 'Client Request: Store Client Request' operationId: clientRequestStoreClientRequest description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: full_name: type: string description: '' example: consequatur nullable: false email: type: string description: 'Must be a valid email address.' example: carolyne.luettgen@example.org nullable: false subject: type: string description: '' example: consequatur nullable: false message: type: string description: '' example: consequatur nullable: false required: - full_name - email - subject - message security: [] /api/v1/contact-us: get: summary: '' operationId: getApiV1ContactUs description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/contact-us could not be found.' properties: message: type: string example: 'The route api/v1/contact-us could not be found.' tags: - Endpoints security: [] '/api/v1/contact-us/{id}': get: summary: '' operationId: getApiV1ContactUsId description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/contact-us/consequatur could not be found.' properties: message: type: string example: 'The route api/v1/contact-us/consequatur could not be found.' tags: - Endpoints security: [] put: summary: '' operationId: putApiV1ContactUsId description: '' parameters: [] responses: { } tags: - Endpoints security: [] delete: summary: '' operationId: deleteApiV1ContactUsId description: '' parameters: [] responses: { } tags: - Endpoints security: [] parameters: - in: path name: id description: 'The ID of the contact u.' example: consequatur required: true schema: type: string /api/v1/size/list: get: summary: 'Estate size: List all Estate size' operationId: estateSizeListAllEstateSize description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/v1/size/list could not be found.' properties: message: type: string example: 'The route api/v1/size/list could not be found.' tags: - Endpoints security: [] /api/v1/auth/send-reset-code: post: summary: 'Send Reset Code' operationId: sendResetCode description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: email: type: string description: 'Must be a valid email address. The email of an existing record in the users table.' example: qkunze@example.com nullable: false required: - email security: [] /api/v1/auth/verify-reset-code: post: summary: 'Verify Reset Code' operationId: verifyResetCode description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: email: type: string description: 'Must be a valid email address.' example: qkunze@example.com nullable: false code: type: string description: 'Must be 6 digits.' example: '810798' nullable: false required: - email - code security: [] /api/v1/auth/reset-password: post: summary: 'Reset Reset User Password' operationId: resetResetUserPassword description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: email: type: string description: 'Must be a valid email address.' example: qkunze@example.com nullable: false code: type: string description: 'Must be 6 digits.' example: '810798' nullable: false password: type: string description: 'Must be at least 6 characters.' example: '[2UZ5ij-e/dl4' nullable: false required: - email - code - password security: []