/** * 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 and record the action. */ 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/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/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/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; }; } export type webhooks = Record; export interface components { schemas: { /** * AdminUserResponse * @description Minimal user info for admin dropdowns. */ AdminUserResponse: { /** Id */ id: number; /** Email */ email: string; }; /** * ConstantsResponse * @description Response model for shared constants. */ ConstantsResponse: { /** Permissions */ permissions: string[]; /** Roles */ roles: string[]; /** Invite Statuses */ invite_statuses: 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; }; /** 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; }; /** * 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; }; /** * RegisterWithInvite * @description Request model for registration with invite. */ RegisterWithInvite: { /** * Email * Format: email */ email: string; /** Password */ password: string; /** Invite Identifier */ invite_identifier: string; }; /** * 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; }; /** * 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; 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_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"]; }; }; }; }; 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_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"]; }; }; }; }; }