arbret/frontend/app/generated/api.ts

1898 lines
53 KiB
TypeScript

/**
* This file was auto-generated by openapi-typescript.
* Do not make direct changes to the file.
*/
export interface paths {
"/api/auth/register": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Register
* @description Register a new user using an invite code.
*/
post: operations["register_api_auth_register_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/auth/login": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Login
* @description Authenticate a user and return their info with an auth cookie.
*/
post: operations["login_api_auth_login_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/auth/logout": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Logout
* @description Log out the current user by clearing their auth cookie.
*/
post: operations["logout_api_auth_logout_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/auth/me": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get Me
* @description Get the current authenticated user's info.
*/
get: operations["get_me_api_auth_me_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/sum": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Calculate Sum
* @description Calculate the sum of two numbers and record it.
*/
post: operations["calculate_sum_api_sum_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/counter": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get Counter
* @description Get the current counter value.
*/
get: operations["get_counter_api_counter_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/counter/increment": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Increment Counter
* @description Increment the counter, record the action, and enqueue a random number job.
*/
post: operations["increment_counter_api_counter_increment_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/audit/counter": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get Counter Records
* @description Get paginated counter action records.
*/
get: operations["get_counter_records_api_audit_counter_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/audit/sum": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get Sum Records
* @description Get paginated sum action records.
*/
get: operations["get_sum_records_api_audit_sum_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/audit/random-jobs": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get Random Job Outcomes
* @description Get all random number job outcomes, newest first.
*/
get: operations["get_random_job_outcomes_api_audit_random_jobs_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/audit/price-history": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get Price History
* @description Get the 20 most recent price history records.
*/
get: operations["get_price_history_api_audit_price_history_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/audit/price-history/fetch": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Fetch Price Now
* @description Manually trigger a price fetch from Bitfinex.
*/
post: operations["fetch_price_now_api_audit_price_history_fetch_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/profile": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get Profile
* @description Get the current user's profile (contact details and godfather).
*/
get: operations["get_profile_api_profile_get"];
/**
* Update Profile
* @description Update the current user's profile (contact details).
*/
put: operations["update_profile_api_profile_put"];
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/admin/availability": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get Availability
* @description Get availability slots for a date range.
*/
get: operations["get_availability_api_admin_availability_get"];
/**
* Set Availability
* @description Set availability for a specific date. Replaces any existing availability.
*/
put: operations["set_availability_api_admin_availability_put"];
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/admin/availability/copy": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Copy Availability
* @description Copy availability from one day to multiple target days.
*/
post: operations["copy_availability_api_admin_availability_copy_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/meta/constants": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get Constants
* @description Get shared constants for frontend/backend synchronization.
*/
get: operations["get_constants_api_meta_constants_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/invites/{identifier}/check": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Check Invite
* @description Check if an invite is valid and can be used for signup.
*/
get: operations["check_invite_api_invites__identifier__check_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/invites": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get My Invites
* @description Get all invites owned by the current user.
*/
get: operations["get_my_invites_api_invites_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/admin/users": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List Users For Admin
* @description List all users for admin dropdowns (invite creation, etc.).
*/
get: operations["list_users_for_admin_api_admin_users_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/admin/invites": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List All Invites
* @description List all invites with optional filtering and pagination.
*/
get: operations["list_all_invites_api_admin_invites_get"];
put?: never;
/**
* Create Invite
* @description Create a new invite for a specified godfather user.
*/
post: operations["create_invite_api_admin_invites_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/admin/invites/{invite_id}/revoke": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Revoke Invite
* @description Revoke an invite. Only READY invites can be revoked.
*/
post: operations["revoke_invite_api_admin_invites__invite_id__revoke_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/booking/slots": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get Available Slots
* @description Get available booking slots for a specific date.
*/
get: operations["get_available_slots_api_booking_slots_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/booking": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Create Booking
* @description Book an appointment slot.
*/
post: operations["create_booking_api_booking_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/appointments": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get My Appointments
* @description Get the current user's appointments, sorted by date (upcoming first).
*/
get: operations["get_my_appointments_api_appointments_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/appointments/{appointment_id}/cancel": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Cancel My Appointment
* @description Cancel one of the current user's appointments.
*/
post: operations["cancel_my_appointment_api_appointments__appointment_id__cancel_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/admin/appointments": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get All Appointments
* @description Get all appointments (admin only), sorted by date descending with pagination.
*/
get: operations["get_all_appointments_api_admin_appointments_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/admin/appointments/{appointment_id}/cancel": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Admin Cancel Appointment
* @description Cancel any appointment (admin only).
*/
post: operations["admin_cancel_appointment_api_admin_appointments__appointment_id__cancel_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
}
export type webhooks = Record<string, never>;
export interface components {
schemas: {
/**
* AdminUserResponse
* @description Minimal user info for admin dropdowns.
*/
AdminUserResponse: {
/** Id */
id: number;
/** Email */
email: string;
};
/**
* AppointmentResponse
* @description Response model for an appointment.
*/
AppointmentResponse: {
/** Id */
id: number;
/** User Id */
user_id: number;
/** User Email */
user_email: string;
/**
* Slot Start
* Format: date-time
*/
slot_start: string;
/**
* Slot End
* Format: date-time
*/
slot_end: string;
/** Note */
note: string | null;
/** Status */
status: string;
/**
* Created At
* Format: date-time
*/
created_at: string;
/** Cancelled At */
cancelled_at: string | null;
};
/**
* AvailabilityDay
* @description Availability for a single day.
*/
AvailabilityDay: {
/**
* Date
* Format: date
*/
date: string;
/** Slots */
slots: components["schemas"]["TimeSlot"][];
};
/**
* AvailabilityResponse
* @description Response model for availability query.
*/
AvailabilityResponse: {
/** Days */
days: components["schemas"]["AvailabilityDay"][];
};
/**
* AvailableSlotsResponse
* @description Response for available slots on a given date.
*/
AvailableSlotsResponse: {
/**
* Date
* Format: date
*/
date: string;
/** Slots */
slots: components["schemas"]["BookableSlot"][];
};
/**
* BookableSlot
* @description A bookable 15-minute slot.
*/
BookableSlot: {
/**
* Start Time
* Format: date-time
*/
start_time: string;
/**
* End Time
* Format: date-time
*/
end_time: string;
};
/**
* BookingRequest
* @description Request to book an appointment.
*/
BookingRequest: {
/**
* Slot Start
* Format: date-time
*/
slot_start: string;
/** Note */
note?: string | null;
};
/**
* ConstantsResponse
* @description Response model for shared constants.
*
* Note: Using actual enum types ensures OpenAPI schema includes enum values,
* allowing frontend type generation to produce matching TypeScript enums.
*/
ConstantsResponse: {
/** Permissions */
permissions: components["schemas"]["Permission"][];
/** Roles */
roles: string[];
/** Invite Statuses */
invite_statuses: components["schemas"]["InviteStatus"][];
};
/**
* CopyAvailabilityRequest
* @description Request to copy availability from one day to others.
*/
CopyAvailabilityRequest: {
/**
* Source Date
* Format: date
*/
source_date: string;
/** Target Dates */
target_dates: string[];
};
/**
* CounterRecordResponse
* @description Response model for a counter audit record.
*/
CounterRecordResponse: {
/** Id */
id: number;
/** User Email */
user_email: string;
/** Value Before */
value_before: number;
/** Value After */
value_after: number;
/**
* Created At
* Format: date-time
*/
created_at: string;
};
/** HTTPValidationError */
HTTPValidationError: {
/** Detail */
detail?: components["schemas"]["ValidationError"][];
};
/**
* InviteCheckResponse
* @description Response for invite check endpoint.
*/
InviteCheckResponse: {
/** Valid */
valid: boolean;
/** Status */
status?: string | null;
/** Error */
error?: string | null;
};
/**
* InviteCreate
* @description Request model for creating an invite.
*/
InviteCreate: {
/** Godfather Id */
godfather_id: number;
};
/**
* InviteResponse
* @description Response model for invite data (admin view).
*/
InviteResponse: {
/** Id */
id: number;
/** Identifier */
identifier: string;
/** Godfather Id */
godfather_id: number;
/** Godfather Email */
godfather_email: string;
/** Status */
status: string;
/** Used By Id */
used_by_id: number | null;
/** Used By Email */
used_by_email: string | null;
/**
* Created At
* Format: date-time
*/
created_at: string;
/** Spent At */
spent_at: string | null;
/** Revoked At */
revoked_at: string | null;
};
/**
* InviteStatus
* @description Status of an invite.
* @enum {string}
*/
InviteStatus: "ready" | "spent" | "revoked";
/** PaginatedResponse[AppointmentResponse] */
PaginatedResponse_AppointmentResponse_: {
/** Records */
records: components["schemas"]["AppointmentResponse"][];
/** Total */
total: number;
/** Page */
page: number;
/** Per Page */
per_page: number;
/** Total Pages */
total_pages: number;
};
/** PaginatedResponse[CounterRecordResponse] */
PaginatedResponse_CounterRecordResponse_: {
/** Records */
records: components["schemas"]["CounterRecordResponse"][];
/** Total */
total: number;
/** Page */
page: number;
/** Per Page */
per_page: number;
/** Total Pages */
total_pages: number;
};
/** PaginatedResponse[InviteResponse] */
PaginatedResponse_InviteResponse_: {
/** Records */
records: components["schemas"]["InviteResponse"][];
/** Total */
total: number;
/** Page */
page: number;
/** Per Page */
per_page: number;
/** Total Pages */
total_pages: number;
};
/** PaginatedResponse[SumRecordResponse] */
PaginatedResponse_SumRecordResponse_: {
/** Records */
records: components["schemas"]["SumRecordResponse"][];
/** Total */
total: number;
/** Page */
page: number;
/** Per Page */
per_page: number;
/** Total Pages */
total_pages: number;
};
/**
* Permission
* @description All available permissions in the system.
* @enum {string}
*/
Permission: "view_counter" | "increment_counter" | "use_sum" | "view_audit" | "manage_own_profile" | "manage_invites" | "view_own_invites" | "book_appointment" | "view_own_appointments" | "cancel_own_appointment" | "manage_availability" | "view_all_appointments" | "cancel_any_appointment";
/**
* PriceHistoryResponse
* @description Response model for a price history record.
*/
PriceHistoryResponse: {
/** Id */
id: number;
/** Source */
source: string;
/** Pair */
pair: string;
/** Price */
price: number;
/**
* Timestamp
* Format: date-time
*/
timestamp: string;
/**
* Created At
* Format: date-time
*/
created_at: string;
};
/**
* ProfileResponse
* @description Response model for profile data.
*/
ProfileResponse: {
/** Contact Email */
contact_email: string | null;
/** Telegram */
telegram: string | null;
/** Signal */
signal: string | null;
/** Nostr Npub */
nostr_npub: string | null;
/** Godfather Email */
godfather_email?: string | null;
};
/**
* ProfileUpdate
* @description Request model for updating profile.
*/
ProfileUpdate: {
/** Contact Email */
contact_email?: string | null;
/** Telegram */
telegram?: string | null;
/** Signal */
signal?: string | null;
/** Nostr Npub */
nostr_npub?: string | null;
};
/**
* RandomNumberOutcomeResponse
* @description Response model for a random number job outcome.
*/
RandomNumberOutcomeResponse: {
/** Id */
id: number;
/** Job Id */
job_id: number;
/** Triggered By User Id */
triggered_by_user_id: number;
/** Triggered By Email */
triggered_by_email: string;
/** Value */
value: number;
/** Duration Ms */
duration_ms: number;
/** Status */
status: string;
/**
* Created At
* Format: date-time
*/
created_at: string;
};
/**
* RegisterWithInvite
* @description Request model for registration with invite.
*/
RegisterWithInvite: {
/**
* Email
* Format: email
*/
email: string;
/** Password */
password: string;
/** Invite Identifier */
invite_identifier: string;
};
/**
* SetAvailabilityRequest
* @description Request to set availability for a specific date.
*/
SetAvailabilityRequest: {
/**
* Date
* Format: date
*/
date: string;
/** Slots */
slots: components["schemas"]["TimeSlot"][];
};
/**
* SumRecordResponse
* @description Response model for a sum audit record.
*/
SumRecordResponse: {
/** Id */
id: number;
/** User Email */
user_email: string;
/** A */
a: number;
/** B */
b: number;
/** Result */
result: number;
/**
* Created At
* Format: date-time
*/
created_at: string;
};
/**
* SumRequest
* @description Request model for sum calculation.
*/
SumRequest: {
/** A */
a: number;
/** B */
b: number;
};
/**
* SumResponse
* @description Response model for sum calculation.
*/
SumResponse: {
/** A */
a: number;
/** B */
b: number;
/** Result */
result: number;
};
/**
* TimeSlot
* @description A single time slot (start and end time).
*/
TimeSlot: {
/**
* Start Time
* Format: time
*/
start_time: string;
/**
* End Time
* Format: time
*/
end_time: string;
};
/**
* UserCredentials
* @description Base model for user email/password.
*/
UserCredentials: {
/**
* Email
* Format: email
*/
email: string;
/** Password */
password: string;
};
/**
* UserInviteResponse
* @description Response model for a user's invite (simpler than admin view).
*/
UserInviteResponse: {
/** Id */
id: number;
/** Identifier */
identifier: string;
/** Status */
status: string;
/** Used By Email */
used_by_email: string | null;
/**
* Created At
* Format: date-time
*/
created_at: string;
/** Spent At */
spent_at: string | null;
};
/**
* UserResponse
* @description Response model for authenticated user info.
*/
UserResponse: {
/** Id */
id: number;
/** Email */
email: string;
/** Roles */
roles: string[];
/** Permissions */
permissions: string[];
};
/** ValidationError */
ValidationError: {
/** Location */
loc: (string | number)[];
/** Message */
msg: string;
/** Error Type */
type: string;
};
};
responses: never;
parameters: never;
requestBodies: never;
headers: never;
pathItems: never;
}
export type $defs = Record<string, never>;
export interface operations {
register_api_auth_register_post: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["RegisterWithInvite"];
};
};
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["UserResponse"];
};
};
/** @description Validation Error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
login_api_auth_login_post: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["UserCredentials"];
};
};
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["UserResponse"];
};
};
/** @description Validation Error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
logout_api_auth_logout_post: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
[key: string]: boolean;
};
};
};
};
};
get_me_api_auth_me_get: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["UserResponse"];
};
};
};
};
calculate_sum_api_sum_post: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["SumRequest"];
};
};
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["SumResponse"];
};
};
/** @description Validation Error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
get_counter_api_counter_get: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
[key: string]: number;
};
};
};
};
};
increment_counter_api_counter_increment_post: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
[key: string]: number;
};
};
};
};
};
get_counter_records_api_audit_counter_get: {
parameters: {
query?: {
page?: number;
per_page?: number;
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PaginatedResponse_CounterRecordResponse_"];
};
};
/** @description Validation Error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
get_sum_records_api_audit_sum_get: {
parameters: {
query?: {
page?: number;
per_page?: number;
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PaginatedResponse_SumRecordResponse_"];
};
};
/** @description Validation Error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
get_random_job_outcomes_api_audit_random_jobs_get: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["RandomNumberOutcomeResponse"][];
};
};
};
};
get_price_history_api_audit_price_history_get: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PriceHistoryResponse"][];
};
};
};
};
fetch_price_now_api_audit_price_history_fetch_post: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PriceHistoryResponse"];
};
};
};
};
get_profile_api_profile_get: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ProfileResponse"];
};
};
};
};
update_profile_api_profile_put: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["ProfileUpdate"];
};
};
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ProfileResponse"];
};
};
/** @description Validation Error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
get_availability_api_admin_availability_get: {
parameters: {
query: {
/** @description Start date (inclusive) */
from: string;
/** @description End date (inclusive) */
to: string;
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AvailabilityResponse"];
};
};
/** @description Validation Error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
set_availability_api_admin_availability_put: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["SetAvailabilityRequest"];
};
};
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AvailabilityDay"];
};
};
/** @description Validation Error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
copy_availability_api_admin_availability_copy_post: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["CopyAvailabilityRequest"];
};
};
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AvailabilityResponse"];
};
};
/** @description Validation Error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
get_constants_api_meta_constants_get: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ConstantsResponse"];
};
};
};
};
check_invite_api_invites__identifier__check_get: {
parameters: {
query?: never;
header?: never;
path: {
identifier: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["InviteCheckResponse"];
};
};
/** @description Validation Error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
get_my_invites_api_invites_get: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["UserInviteResponse"][];
};
};
};
};
list_users_for_admin_api_admin_users_get: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AdminUserResponse"][];
};
};
};
};
list_all_invites_api_admin_invites_get: {
parameters: {
query?: {
page?: number;
per_page?: number;
/** @description Filter by status: ready, spent, revoked */
status?: string | null;
/** @description Filter by godfather user ID */
godfather_id?: number | null;
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PaginatedResponse_InviteResponse_"];
};
};
/** @description Validation Error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
create_invite_api_admin_invites_post: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["InviteCreate"];
};
};
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["InviteResponse"];
};
};
/** @description Validation Error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
revoke_invite_api_admin_invites__invite_id__revoke_post: {
parameters: {
query?: never;
header?: never;
path: {
invite_id: number;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["InviteResponse"];
};
};
/** @description Validation Error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
get_available_slots_api_booking_slots_get: {
parameters: {
query: {
/** @description Date to get slots for */
date: string;
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AvailableSlotsResponse"];
};
};
/** @description Validation Error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
create_booking_api_booking_post: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["BookingRequest"];
};
};
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AppointmentResponse"];
};
};
/** @description Validation Error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
get_my_appointments_api_appointments_get: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AppointmentResponse"][];
};
};
};
};
cancel_my_appointment_api_appointments__appointment_id__cancel_post: {
parameters: {
query?: never;
header?: never;
path: {
appointment_id: number;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AppointmentResponse"];
};
};
/** @description Validation Error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
get_all_appointments_api_admin_appointments_get: {
parameters: {
query?: {
page?: number;
per_page?: number;
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PaginatedResponse_AppointmentResponse_"];
};
};
/** @description Validation Error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
admin_cancel_appointment_api_admin_appointments__appointment_id__cancel_post: {
parameters: {
query?: never;
header?: never;
path: {
appointment_id: number;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AppointmentResponse"];
};
};
/** @description Validation Error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
}