From 7f3401e759c5ac61a292ba657228a2d9a62991a8 Mon Sep 17 00:00:00 2001 From: Felipe Cardoso Date: Sat, 15 Mar 2025 19:56:38 +0100 Subject: [PATCH] Refactor: Update auto-generated schemas for API changes Replaced and updated multiple schema definitions to align with new API structures. Includes renaming, adding new enums, refining object properties, and reorganizing schemas for clarity. Ensures better compatibility and adherence to the updated API specifications. --- frontend/src/client/schemas.gen.ts | 4122 ++++++++++++++++------------ frontend/src/client/sdk.gen.ts | 1712 ++++++++---- frontend/src/client/types.gen.ts | 2642 +++++++++++------- 3 files changed, 5278 insertions(+), 3198 deletions(-) diff --git a/frontend/src/client/schemas.gen.ts b/frontend/src/client/schemas.gen.ts index fc9c6e4..255b182 100644 --- a/frontend/src/client/schemas.gen.ts +++ b/frontend/src/client/schemas.gen.ts @@ -1,28 +1,26 @@ // This file is auto-generated by @hey-api/openapi-ts -export const Body_change_passwordSchema = { - properties: { - current_password: { - type: "string", - title: "Current Password", - }, - new_password: { - type: "string", - title: "New Password", - }, - }, - type: "object", - required: ["current_password", "new_password"], - title: "Body_change_password", +export const AgeClassSchema = { + type: "string", + enum: ["kid", "teen", "young", "middle_age", "elder"], + title: "AgeClass", } as const; -export const Body_login_oauthSchema = { +export const BackgroundTypeSchema = { + type: "string", + enum: ["white", "soft_gray", "creamy", "white_creamy", "raw_concrete"], + title: "BackgroundType", + description: `Enumeration of all possible background types. +The value is a lowercase string with underscores for spaces.`, +} as const; + +export const Body_login_login_access_tokenSchema = { properties: { grant_type: { anyOf: [ { type: "string", - pattern: "^password$", + pattern: "password", }, { type: "null", @@ -68,446 +66,34 @@ export const Body_login_oauthSchema = { }, type: "object", required: ["username", "password"], - title: "Body_login_oauth", + title: "Body_login-login_access_token", } as const; -export const Body_upload_fileSchema = { - properties: { - file: { - type: "string", - format: "binary", - title: "File", - }, - }, - type: "object", - required: ["file"], - title: "Body_upload_file", +export const FramingTypeSchema = { + type: "string", + enum: [ + "front_half_body", + "front_half_body_lower", + "front_full_body", + "back_half_body", + "back_half_body_lower", + "back_full_body", + "side_half_body", + "side_half_body_lower", + "side_full_body", + ], + title: "FramingType", + description: `Enumeration of all possible framing types for the subject. +The value is a lowercase string with underscores for spaces.`, } as const; -export const EventCreateSchema = { +export const GenerationCreateSchema = { properties: { - title: { - type: "string", - maxLength: 200, - minLength: 1, - title: "Title", - }, - description: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Description", - }, - location_name: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Location Name", - }, - location_address: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Location Address", - }, - location_url: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Location Url", - }, - event_date: { - type: "string", - format: "date-time", - title: "Event Date", - }, - event_start_time: { - anyOf: [ - { - type: "string", - format: "time", - }, - { - type: "null", - }, - ], - title: "Event Start Time", - }, - event_end_time: { - anyOf: [ - { - type: "string", - format: "time", - }, - { - type: "null", - }, - ], - title: "Event End Time", - }, - timezone: { - type: "string", - title: "Timezone", - }, - rsvp_deadline: { - anyOf: [ - { - type: "string", - format: "date-time", - }, - { - type: "null", - }, - ], - title: "Rsvp Deadline", - }, - is_public: { - type: "boolean", - title: "Is Public", - default: false, - }, - access_code: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Access Code", - }, - theme_id: { - anyOf: [ - { - type: "string", - format: "uuid", - }, - { - type: "null", - }, - ], - title: "Theme Id", - }, - custom_theme_settings: { - anyOf: [ - { - type: "object", - }, - { - type: "null", - }, - ], - title: "Custom Theme Settings", - }, - additional_info: { - anyOf: [ - { - type: "object", - }, - { - type: "null", - }, - ], - title: "Additional Info", - }, - is_active: { - type: "boolean", - title: "Is Active", - default: true, - }, - rsvp_enabled: { - type: "boolean", - title: "Rsvp Enabled", - default: true, - }, - gift_registry_enabled: { - type: "boolean", - title: "Gift Registry Enabled", - default: true, - }, - updates_enabled: { - type: "boolean", - title: "Updates Enabled", - default: true, - }, - max_guests_per_invitation: { - anyOf: [ - { - type: "integer", - minimum: 1, - }, - { - type: "null", - }, - ], - title: "Max Guests Per Invitation", - }, - contact_email: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Contact Email", - }, - contact_phone: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Contact Phone", - }, - slug: { - type: "string", - minLength: 1, - pattern: "^[a-z0-9-]+$", - title: "Slug", - }, - }, - type: "object", - required: ["title", "event_date", "timezone", "slug"], - title: "EventCreate", -} as const; - -export const EventResponseSchema = { - properties: { - title: { - type: "string", - maxLength: 200, - minLength: 1, - title: "Title", - }, - description: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Description", - }, - location_name: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Location Name", - }, - location_address: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Location Address", - }, - location_url: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Location Url", - }, - event_date: { - type: "string", - format: "date-time", - title: "Event Date", - }, - event_start_time: { - anyOf: [ - { - type: "string", - format: "time", - }, - { - type: "null", - }, - ], - title: "Event Start Time", - }, - event_end_time: { - anyOf: [ - { - type: "string", - format: "time", - }, - { - type: "null", - }, - ], - title: "Event End Time", - }, - timezone: { - type: "string", - title: "Timezone", - }, - rsvp_deadline: { - anyOf: [ - { - type: "string", - format: "date-time", - }, - { - type: "null", - }, - ], - title: "Rsvp Deadline", - }, - is_public: { - type: "boolean", - title: "Is Public", - default: false, - }, - access_code: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Access Code", - }, - theme_id: { - anyOf: [ - { - type: "string", - format: "uuid", - }, - { - type: "null", - }, - ], - title: "Theme Id", - }, - custom_theme_settings: { - anyOf: [ - { - type: "object", - }, - { - type: "null", - }, - ], - title: "Custom Theme Settings", - }, - additional_info: { - anyOf: [ - { - type: "object", - }, - { - type: "null", - }, - ], - title: "Additional Info", - }, - is_active: { - type: "boolean", - title: "Is Active", - default: true, - }, - rsvp_enabled: { - type: "boolean", - title: "Rsvp Enabled", - default: true, - }, - gift_registry_enabled: { - type: "boolean", - title: "Gift Registry Enabled", - default: true, - }, - updates_enabled: { - type: "boolean", - title: "Updates Enabled", - default: true, - }, - max_guests_per_invitation: { - anyOf: [ - { - type: "integer", - minimum: 1, - }, - { - type: "null", - }, - ], - title: "Max Guests Per Invitation", - }, - contact_email: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Contact Email", - }, - contact_phone: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Contact Phone", - }, id: { type: "string", format: "uuid", title: "Id", }, - created_by: { - type: "string", - format: "uuid", - title: "Created By", - }, created_at: { type: "string", format: "date-time", @@ -518,980 +104,604 @@ export const EventResponseSchema = { format: "date-time", title: "Updated At", }, - slug: { + batch_size: { + type: "integer", + title: "Batch Size", + }, + positive_prompt: { type: "string", - title: "Slug", + title: "Positive Prompt", + }, + negative_prompt: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Negative Prompt", + }, + subject_id: { + anyOf: [ + { + type: "string", + format: "uuid", + }, + { + type: "null", + }, + ], + title: "Subject Id", + }, + subject_slug: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Subject Slug", + }, + product_id: { + anyOf: [ + { + type: "string", + format: "uuid", + }, + { + type: "null", + }, + ], + title: "Product Id", + }, + product_slug: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Product Slug", + }, + product_image: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Product Image", + }, + product_lora_weight: { + type: "number", + title: "Product Lora Weight", + default: 0.9, + }, + subject_lora_weight: { + type: "number", + title: "Subject Lora Weight", + default: 1, + }, + product2_id: { + anyOf: [ + { + type: "string", + format: "uuid", + }, + { + type: "null", + }, + ], + title: "Product2 Id", + }, + product2_slug: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Product2 Slug", + }, + product2_image: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Product2 Image", + }, + product2_lora_weight: { + type: "number", + title: "Product2 Lora Weight", + default: 0.8, + }, + width: { + type: "integer", + title: "Width", + }, + height: { + type: "integer", + title: "Height", + }, + steps: { + type: "integer", + title: "Steps", + default: 20, + }, + seed: { + anyOf: [ + { + type: "integer", + }, + { + type: "null", + }, + ], + title: "Seed", + }, + refine: { + type: "boolean", + title: "Refine", + default: false, + }, + scale_factor: { + anyOf: [ + { + type: "number", + }, + { + type: "null", + }, + ], + title: "Scale Factor", + }, + lighting: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Lighting", + }, + framing: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Framing", + }, + perspective: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Perspective", + }, + background: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Background", + }, + tone: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Tone", + }, + pose: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Pose", + }, + style: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Style", + }, + extra_prompt: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Extra Prompt", + }, + generated_prompt: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Generated Prompt", + }, + shot_type: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Shot Type", + }, + }, + type: "object", + required: ["batch_size", "positive_prompt", "width", "height"], + title: "GenerationCreate", +} as const; + +export const GenerationPublicSchema = { + properties: { + id: { + type: "string", + format: "uuid", + title: "Id", + }, + created_at: { + type: "string", + format: "date-time", + title: "Created At", + }, + updated_at: { + type: "string", + format: "date-time", + title: "Updated At", + }, + batch_size: { + type: "integer", + title: "Batch Size", + }, + positive_prompt: { + type: "string", + title: "Positive Prompt", + }, + negative_prompt: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Negative Prompt", + }, + subject_id: { + type: "string", + format: "uuid", + title: "Subject Id", + }, + product_id: { + type: "string", + format: "uuid", + title: "Product Id", + }, + subject_image_url: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Subject Image Url", + }, + product_image_url: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Product Image Url", + }, + product_lora_weight: { + type: "number", + title: "Product Lora Weight", + default: 1, + }, + subject_lora_weight: { + type: "number", + title: "Subject Lora Weight", + default: 1, + }, + product2_id: { + anyOf: [ + { + type: "string", + format: "uuid", + }, + { + type: "null", + }, + ], + title: "Product2 Id", + }, + product2_image_url: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Product2 Image Url", + }, + product2_lora_weight: { + type: "number", + title: "Product2 Lora Weight", + default: 1, + }, + width: { + type: "integer", + title: "Width", + }, + height: { + type: "integer", + title: "Height", + }, + steps: { + type: "integer", + title: "Steps", + }, + seed: { + type: "integer", + title: "Seed", + }, + refine: { + type: "boolean", + title: "Refine", + }, + scale_factor: { + anyOf: [ + { + type: "number", + }, + { + type: "null", + }, + ], + title: "Scale Factor", + }, + lighting: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Lighting", + }, + framing: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Framing", + }, + perspective: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Perspective", + }, + background: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Background", + }, + tone: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Tone", + }, + pose: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Pose", + }, + style: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Style", + }, + generated_prompt: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Generated Prompt", + }, + extra_prompt: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Extra Prompt", + }, + predictions: { + items: { + $ref: "#/components/schemas/Prediction", + }, + type: "array", + title: "Predictions", + }, + owner_id: { + type: "string", + format: "uuid", + title: "Owner Id", + }, + shot_type: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Shot Type", }, }, type: "object", required: [ - "title", - "event_date", - "timezone", "id", - "created_by", "created_at", "updated_at", - "slug", + "batch_size", + "positive_prompt", + "subject_id", + "product_id", + "width", + "height", + "steps", + "seed", + "refine", + "predictions", + "owner_id", ], - title: "EventResponse", + title: "GenerationPublic", } as const; -export const EventThemeCreateSchema = { +export const GenerationStatusSchema = { properties: { - name: { - type: "string", - minLength: 1, - title: "Name", - }, - description: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Description", - }, - preview_image_url: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Preview Image Url", - }, - background_image_url: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Background Image Url", - }, - foreground_image_url: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Foreground Image Url", - }, - color_palette: { - additionalProperties: { - type: "string", - }, - type: "object", - minProperties: 1, - title: "Color Palette", - }, - asset_image_urls: { - anyOf: [ - { - additionalProperties: { - type: "string", - }, - type: "object", - }, - { - type: "null", - }, - ], - title: "Asset Image Urls", - }, - fonts: { - additionalProperties: { - type: "string", - }, - type: "object", - minProperties: 1, - title: "Fonts", - }, - is_active: { - type: "boolean", - title: "Is Active", - default: true, - }, - }, - type: "object", - required: ["name", "color_palette", "fonts"], - title: "EventThemeCreate", -} as const; - -export const EventThemeResponseSchema = { - properties: { - name: { - type: "string", - minLength: 1, - title: "Name", - }, - description: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Description", - }, - preview_image_url: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Preview Image Url", - }, - background_image_url: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Background Image Url", - }, - foreground_image_url: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Foreground Image Url", - }, - color_palette: { - additionalProperties: { - type: "string", - }, - type: "object", - minProperties: 1, - title: "Color Palette", - }, - asset_image_urls: { - anyOf: [ - { - additionalProperties: { - type: "string", - }, - type: "object", - }, - { - type: "null", - }, - ], - title: "Asset Image Urls", - }, - fonts: { - additionalProperties: { - type: "string", - }, - type: "object", - minProperties: 1, - title: "Fonts", - }, - is_active: { - type: "boolean", - title: "Is Active", - default: true, - }, - id: { - type: "string", - format: "uuid", - title: "Id", - }, - }, - type: "object", - required: ["name", "color_palette", "fonts", "id"], - title: "EventThemeResponse", -} as const; - -export const EventThemeUpdateSchema = { - properties: { - name: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Name", - }, - description: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Description", - }, - preview_image_url: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Preview Image Url", - }, - background_image_url: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Background Image Url", - }, - foreground_image_url: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Foreground Image Url", - }, - color_palette: { - anyOf: [ - { - additionalProperties: { - type: "string", - }, - type: "object", - }, - { - type: "null", - }, - ], - title: "Color Palette", - }, - asset_image_urls: { - anyOf: [ - { - additionalProperties: { - type: "string", - }, - type: "object", - }, - { - type: "null", - }, - ], - title: "Asset Image Urls", - }, - fonts: { - anyOf: [ - { - additionalProperties: { - type: "string", - }, - type: "object", - }, - { - type: "null", - }, - ], - title: "Fonts", - }, - is_active: { - type: "boolean", - title: "Is Active", - default: true, - }, - }, - type: "object", - title: "EventThemeUpdate", -} as const; - -export const EventUpdateSchema = { - properties: { - title: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Title", - }, - description: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Description", - }, - location_name: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Location Name", - }, - location_address: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Location Address", - }, - location_url: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Location Url", - }, - event_date: { - anyOf: [ - { - type: "string", - format: "date-time", - }, - { - type: "null", - }, - ], - title: "Event Date", - }, - event_start_time: { - anyOf: [ - { - type: "string", - format: "time", - }, - { - type: "null", - }, - ], - title: "Event Start Time", - }, - event_end_time: { - anyOf: [ - { - type: "string", - format: "time", - }, - { - type: "null", - }, - ], - title: "Event End Time", - }, - timezone: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Timezone", - }, - rsvp_deadline: { - anyOf: [ - { - type: "string", - format: "date-time", - }, - { - type: "null", - }, - ], - title: "Rsvp Deadline", - }, - is_public: { - type: "boolean", - title: "Is Public", - default: false, - }, - access_code: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Access Code", - }, - theme_id: { - anyOf: [ - { - type: "string", - format: "uuid", - }, - { - type: "null", - }, - ], - title: "Theme Id", - }, - custom_theme_settings: { - anyOf: [ - { - type: "object", - }, - { - type: "null", - }, - ], - title: "Custom Theme Settings", - }, - additional_info: { - anyOf: [ - { - type: "object", - }, - { - type: "null", - }, - ], - title: "Additional Info", - }, - is_active: { - type: "boolean", - title: "Is Active", - default: true, - }, - rsvp_enabled: { - type: "boolean", - title: "Rsvp Enabled", - default: true, - }, - gift_registry_enabled: { - type: "boolean", - title: "Gift Registry Enabled", - default: true, - }, - updates_enabled: { - type: "boolean", - title: "Updates Enabled", - default: true, - }, - max_guests_per_invitation: { - anyOf: [ - { - type: "integer", - minimum: 1, - }, - { - type: "null", - }, - ], - title: "Max Guests Per Invitation", - }, - contact_email: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Contact Email", - }, - contact_phone: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Contact Phone", - }, - slug: { - anyOf: [ - { - type: "string", - minLength: 1, - pattern: "^[a-z0-9-]+$", - }, - { - type: "null", - }, - ], - title: "Slug", - }, - }, - type: "object", - title: "EventUpdate", -} as const; - -export const GuestCreateSchema = { - properties: { - event_id: { - type: "string", - format: "uuid", - title: "Event Id", - }, - invited_by: { - type: "string", - format: "uuid", - title: "Invited By", - }, - user_id: { - anyOf: [ - { - type: "string", - format: "uuid", - }, - { - type: "null", - }, - ], - title: "User Id", - }, - full_name: { - type: "string", - title: "Full Name", - }, - email: { - anyOf: [ - { - type: "string", - format: "email", - }, - { - type: "null", - }, - ], - title: "Email", - }, - phone: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Phone", - }, - max_additional_guests: { - anyOf: [ - { - type: "integer", - }, - { - type: "null", - }, - ], - title: "Max Additional Guests", - default: 0, - }, - dietary_restrictions: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Dietary Restrictions", - }, - notes: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Notes", - }, - custom_fields: { - anyOf: [ - { - type: "object", - }, - { - type: "null", - }, - ], - title: "Custom Fields", - }, - can_bring_guests: { - anyOf: [ - { - type: "boolean", - }, - { - type: "null", - }, - ], - title: "Can Bring Guests", - default: false, - }, - invitation_code: { - type: "string", - title: "Invitation Code", - }, - }, - type: "object", - required: ["event_id", "invited_by", "full_name", "invitation_code"], - title: "GuestCreate", -} as const; - -export const GuestReadSchema = { - properties: { - event_id: { - type: "string", - format: "uuid", - title: "Event Id", - }, - invited_by: { - type: "string", - format: "uuid", - title: "Invited By", - }, - user_id: { - anyOf: [ - { - type: "string", - format: "uuid", - }, - { - type: "null", - }, - ], - title: "User Id", - }, - full_name: { - type: "string", - title: "Full Name", - }, - email: { - anyOf: [ - { - type: "string", - format: "email", - }, - { - type: "null", - }, - ], - title: "Email", - }, - phone: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Phone", - }, - max_additional_guests: { - anyOf: [ - { - type: "integer", - }, - { - type: "null", - }, - ], - title: "Max Additional Guests", - default: 0, - }, - dietary_restrictions: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Dietary Restrictions", - }, - notes: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Notes", - }, - custom_fields: { - anyOf: [ - { - type: "object", - }, - { - type: "null", - }, - ], - title: "Custom Fields", - }, - can_bring_guests: { - anyOf: [ - { - type: "boolean", - }, - { - type: "null", - }, - ], - title: "Can Bring Guests", - default: false, - }, id: { type: "string", format: "uuid", title: "Id", }, status: { - $ref: "#/components/schemas/GuestStatus", + type: "string", + title: "Status", }, - invitation_sent_at: { - anyOf: [ - { - type: "string", - format: "date-time", - }, - { - type: "null", - }, - ], - title: "Invitation Sent At", - }, - response_date: { - anyOf: [ - { - type: "string", - format: "date-time", - }, - { - type: "null", - }, - ], - title: "Response Date", - }, - actual_additional_guests: { + total: { type: "integer", - title: "Actual Additional Guests", + title: "Total", }, - is_blocked: { - type: "boolean", - title: "Is Blocked", + completed: { + type: "integer", + title: "Completed", + }, + error: { + type: "integer", + title: "Error", + }, + latest_prediction_status: { + anyOf: [ + { + $ref: "#/components/schemas/PredictionStatus", + }, + { + type: "null", + }, + ], }, }, type: "object", - required: [ - "event_id", - "invited_by", - "full_name", - "id", - "status", - "actual_additional_guests", - "is_blocked", - ], - title: "GuestRead", -} as const; - -export const GuestStatusSchema = { - type: "string", - enum: [ - "invited", - "pending", - "confirmed", - "declined", - "waitlisted", - "cancelled", - ], - title: "GuestStatus", -} as const; - -export const GuestUpdateSchema = { - properties: { - full_name: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Full Name", - }, - email: { - anyOf: [ - { - type: "string", - format: "email", - }, - { - type: "null", - }, - ], - title: "Email", - }, - phone: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Phone", - }, - status: { - anyOf: [ - { - $ref: "#/components/schemas/GuestStatus", - }, - { - type: "null", - }, - ], - }, - max_additional_guests: { - anyOf: [ - { - type: "integer", - }, - { - type: "null", - }, - ], - title: "Max Additional Guests", - }, - actual_additional_guests: { - anyOf: [ - { - type: "integer", - }, - { - type: "null", - }, - ], - title: "Actual Additional Guests", - }, - dietary_restrictions: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Dietary Restrictions", - }, - notes: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Notes", - }, - custom_fields: { - anyOf: [ - { - type: "object", - }, - { - type: "null", - }, - ], - title: "Custom Fields", - }, - is_blocked: { - anyOf: [ - { - type: "boolean", - }, - { - type: "null", - }, - ], - title: "Is Blocked", - }, - can_bring_guests: { - anyOf: [ - { - type: "boolean", - }, - { - type: "null", - }, - ], - title: "Can Bring Guests", - }, - }, - type: "object", - title: "GuestUpdate", + required: ["id", "status", "total", "completed", "error"], + title: "GenerationStatus", } as const; export const HTTPValidationErrorSchema = { @@ -1508,145 +718,64 @@ export const HTTPValidationErrorSchema = { title: "HTTPValidationError", } as const; -export const LoginRequestSchema = { +export const MessageSchema = { properties: { - email: { + message: { type: "string", - format: "email", - title: "Email", - }, - password: { - type: "string", - title: "Password", + title: "Message", }, }, type: "object", - required: ["email", "password"], - title: "LoginRequest", + required: ["message"], + title: "Message", } as const; -export const PaginatedResponse_EventResponse_Schema = { +export const NewPasswordSchema = { properties: { - total: { - type: "integer", - title: "Total", + token: { + type: "string", + title: "Token", }, - items: { - items: { - $ref: "#/components/schemas/EventResponse", - }, - type: "array", - title: "Items", - }, - page: { - type: "integer", - title: "Page", - }, - size: { - type: "integer", - title: "Size", + new_password: { + type: "string", + maxLength: 40, + minLength: 8, + title: "New Password", }, }, type: "object", - required: ["total", "items", "page", "size"], - title: "PaginatedResponse[EventResponse]", + required: ["token", "new_password"], + title: "NewPassword", } as const; -export const PresignedUrlRequestSchema = { - properties: { - filename: { - type: "string", - title: "Filename", - description: "Original filename of the image", - }, - content_type: { - type: "string", - title: "Content Type", - description: "Content type of the file (e.g., image/jpeg)", - }, - folder: { - type: "string", - title: "Folder", - description: "Folder to store the file in", - default: "images", - }, - }, - type: "object", - required: ["filename", "content_type"], - title: "PresignedUrlRequest", - description: "Request model for generating presigned URLs.", +export const PaymentStatusSchema = { + type: "string", + enum: [ + "PENDING", + "PAID", + "PARTIALLY_PAID", + "FAILED", + "REFUNDED", + "PARTIALLY_REFUNDED", + ], + title: "PaymentStatus", + description: `Tracks the payment state of a subscription + +PENDING: Initial state when subscription is created but not paid +PAID: Payment successfully received +PARTIALLY_PAID: Some payment received but full amount not covered +FAILED: Payment attempt failed +REFUNDED: Full payment refunded +PARTIALLY_REFUNDED: Partial refund issued`, } as const; -export const PresignedUrlResponseSchema = { +export const PredictionSchema = { properties: { - upload_url: { - type: "string", - title: "Upload Url", - description: "URL to upload the file to", - }, - file_url: { - type: "string", - title: "File Url", - description: "URL where the file will be accessible after upload", - }, - expires_in: { - type: "integer", - title: "Expires In", - description: "Time in seconds until the upload URL expires", - }, - }, - type: "object", - required: ["upload_url", "file_url", "expires_in"], - title: "PresignedUrlResponse", - description: "Response model for presigned URL generation.", -} as const; - -export const RSVPSchemaSchema = { - properties: { - status: { - $ref: "#/components/schemas/RSVPStatus", - }, - number_of_guests: { - type: "integer", - minimum: 1, - title: "Number Of Guests", - default: 1, - }, - response_message: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Response Message", - }, - dietary_requirements: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Dietary Requirements", - }, - additional_info: { - title: "Additional Info", - }, id: { type: "string", format: "uuid", title: "Id", }, - response_date: { - type: "string", - format: "date-time", - title: "Response Date", - }, created_at: { type: "string", format: "date-time", @@ -1657,24 +786,15 @@ export const RSVPSchemaSchema = { format: "date-time", title: "Updated At", }, - }, - type: "object", - required: ["status", "id", "response_date", "created_at", "updated_at"], - title: "RSVPSchema", -} as const; - -export const RSVPSchemaCreateSchema = { - properties: { status: { - $ref: "#/components/schemas/RSVPStatus", + $ref: "#/components/schemas/PredictionStatus", + default: "pending", }, - number_of_guests: { + seed: { type: "integer", - minimum: 1, - title: "Number Of Guests", - default: 1, + title: "Seed", }, - response_message: { + result_image_url: { anyOf: [ { type: "string", @@ -1683,9 +803,9 @@ export const RSVPSchemaCreateSchema = { type: "null", }, ], - title: "Response Message", + title: "Result Image Url", }, - dietary_requirements: { + refined_image_url: { anyOf: [ { type: "string", @@ -1694,105 +814,1590 @@ export const RSVPSchemaCreateSchema = { type: "null", }, ], - title: "Dietary Requirements", + title: "Refined Image Url", }, - additional_info: { - title: "Additional Info", + prompt_id: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Prompt Id", }, - event_id: { + generation_id: { type: "string", format: "uuid", - title: "Event Id", + title: "Generation Id", }, - guest_id: { - type: "string", - format: "uuid", - title: "Guest Id", + favourite: { + type: "boolean", + title: "Favourite", + default: false, + }, + shot_type: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Shot Type", }, }, type: "object", - required: ["status", "event_id", "guest_id"], - title: "RSVPSchemaCreate", + required: ["seed", "generation_id"], + title: "Prediction", } as const; -export const RSVPSchemaUpdateSchema = { - properties: { - status: { - anyOf: [ - { - $ref: "#/components/schemas/RSVPStatus", - }, - { - type: "null", - }, - ], - }, - number_of_guests: { - anyOf: [ - { - type: "integer", - minimum: 1, - }, - { - type: "null", - }, - ], - title: "Number Of Guests", - }, - response_message: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Response Message", - }, - dietary_requirements: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Dietary Requirements", - }, - additional_info: { - anyOf: [ - { - type: "object", - }, - { - type: "null", - }, - ], - title: "Additional Info", - }, - }, - type: "object", - title: "RSVPSchemaUpdate", -} as const; - -export const RSVPStatusSchema = { +export const PredictionStatusSchema = { type: "string", - enum: ["attending", "not_attending", "maybe"], - title: "RSVPStatus", + enum: [ + "pending", + "captioning", + "generating", + "intermediate", + "tryon-generating", + "refining", + "completed", + "error", + ], + title: "PredictionStatus", } as const; -export const RefreshTokenRequestSchema = { +export const PredictionsPublicSchema = { properties: { - refresh_token: { - type: "string", - title: "Refresh Token", + data: { + items: { + $ref: "#/components/schemas/Prediction", + }, + type: "array", + title: "Data", + }, + count: { + type: "integer", + title: "Count", }, }, type: "object", - required: ["refresh_token"], - title: "RefreshTokenRequest", + required: ["data", "count"], + title: "PredictionsPublic", +} as const; + +export const ProductSchema = { + properties: { + id: { + type: "string", + format: "uuid", + title: "Id", + }, + created_at: { + type: "string", + format: "date-time", + title: "Created At", + }, + updated_at: { + type: "string", + format: "date-time", + title: "Updated At", + }, + sku: { + type: "string", + title: "Sku", + }, + name: { + type: "string", + maxLength: 255, + title: "Name", + }, + slug: { + type: "string", + maxLength: 255, + title: "Slug", + }, + local_model_path: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Local Model Path", + }, + lora_trigger: { + anyOf: [ + { + type: "string", + maxLength: 128, + }, + { + type: "null", + }, + ], + title: "Lora Trigger", + }, + brand: { + anyOf: [ + { + type: "string", + maxLength: 1000, + }, + { + type: "null", + }, + ], + title: "Brand", + }, + description: { + anyOf: [ + { + type: "string", + maxLength: 1000, + }, + { + type: "null", + }, + ], + title: "Description", + }, + type: { + $ref: "#/components/schemas/ProductType", + }, + category: { + $ref: "#/components/schemas/ProductCategory", + }, + fitting: { + anyOf: [ + { + $ref: "#/components/schemas/ProductFitting", + }, + { + type: "null", + }, + ], + }, + cover_image_url: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Cover Image Url", + }, + materials: { + anyOf: [ + { + type: "string", + maxLength: 1000, + }, + { + type: "null", + }, + ], + title: "Materials", + }, + public: { + type: "boolean", + title: "Public", + default: false, + }, + enabled: { + type: "boolean", + title: "Enabled", + default: true, + }, + archived: { + type: "boolean", + title: "Archived", + default: false, + }, + demo: { + type: "boolean", + title: "Demo", + default: false, + }, + owner_id: { + type: "string", + format: "uuid", + title: "Owner Id", + }, + lora_status: { + type: "string", + maxLength: 20, + title: "Lora Status", + default: "none", + }, + current_training_id: { + anyOf: [ + { + type: "string", + format: "uuid", + }, + { + type: "null", + }, + ], + title: "Current Training Id", + description: "ID of the current/last training task", + }, + training_progress: { + type: "number", + title: "Training Progress", + description: "Current training progress percentage", + default: 0, + }, + training_error: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Training Error", + description: "Last training error message if any", + }, + data_image_urls: { + items: { + type: "string", + }, + type: "array", + title: "Data Image Urls", + }, + selected_shots: { + additionalProperties: { + type: "object", + }, + type: "object", + title: "Selected Shots", + description: "Dictionary of selected shots with their predictions", + }, + }, + type: "object", + required: ["sku", "name", "slug", "type", "category", "owner_id"], + title: "Product", +} as const; + +export const ProductCategorySchema = { + type: "string", + enum: ["UPPER_BODY", "LOWER_BODY", "DRESSES"], + title: "ProductCategory", +} as const; + +export const ProductCreateSchema = { + properties: { + sku: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Sku", + }, + name: { + type: "string", + maxLength: 255, + title: "Name", + }, + brand: { + anyOf: [ + { + type: "string", + maxLength: 1000, + }, + { + type: "null", + }, + ], + title: "Brand", + }, + description: { + anyOf: [ + { + type: "string", + maxLength: 1000, + }, + { + type: "null", + }, + ], + title: "Description", + }, + type: { + $ref: "#/components/schemas/ProductType", + }, + local_model_path: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Local Model Path", + }, + lora_trigger: { + anyOf: [ + { + type: "string", + maxLength: 128, + }, + { + type: "null", + }, + ], + title: "Lora Trigger", + }, + category: { + $ref: "#/components/schemas/ProductCategory", + }, + fitting: { + anyOf: [ + { + $ref: "#/components/schemas/ProductFitting", + }, + { + type: "null", + }, + ], + }, + cover_image: { + type: "string", + title: "Cover Image", + description: "URL or base64 string for cover image", + }, + materials: { + anyOf: [ + { + type: "string", + maxLength: 1000, + }, + { + type: "null", + }, + ], + title: "Materials", + }, + public: { + type: "boolean", + title: "Public", + default: false, + }, + data_images: { + anyOf: [ + { + items: { + type: "string", + }, + type: "array", + }, + { + type: "null", + }, + ], + title: "Data Images", + description: "List of image URLs or base64 strings", + }, + train: { + type: "boolean", + title: "Train", + description: "Whether to start training after creation", + default: true, + }, + }, + type: "object", + required: ["name", "type", "category", "cover_image"], + title: "ProductCreate", + example: { + category: "UPPER_BODY", + cover_image: "https://example.com/image.jpg", + materials: "100% Cotton", + name: "Black T-Shirt", + public: false, + type: "GARMENT", + }, +} as const; + +export const ProductFittingSchema = { + type: "string", + enum: ["regular", "slim", "loose", "oversize"], + title: "ProductFitting", +} as const; + +export const ProductPublicSchema = { + properties: { + id: { + type: "string", + format: "uuid", + title: "Id", + }, + created_at: { + type: "string", + format: "date-time", + title: "Created At", + }, + updated_at: { + type: "string", + format: "date-time", + title: "Updated At", + }, + sku: { + type: "string", + title: "Sku", + }, + name: { + type: "string", + title: "Name", + }, + slug: { + type: "string", + title: "Slug", + }, + brand: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Brand", + }, + description: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Description", + }, + type: { + $ref: "#/components/schemas/ProductType", + }, + category: { + $ref: "#/components/schemas/ProductCategory", + }, + fitting: { + anyOf: [ + { + $ref: "#/components/schemas/ProductFitting", + }, + { + type: "null", + }, + ], + }, + cover_image_url: { + type: "string", + title: "Cover Image Url", + }, + materials: { + type: "string", + title: "Materials", + }, + public: { + type: "boolean", + title: "Public", + }, + enabled: { + type: "boolean", + title: "Enabled", + }, + archived: { + type: "boolean", + title: "Archived", + }, + demo: { + type: "boolean", + title: "Demo", + }, + owner_id: { + type: "string", + format: "uuid", + title: "Owner Id", + }, + lora_status: { + type: "string", + title: "Lora Status", + }, + lora_trigger: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Lora Trigger", + }, + data_image_urls: { + items: { + type: "string", + }, + type: "array", + title: "Data Image Urls", + }, + current_training_id: { + anyOf: [ + { + type: "string", + format: "uuid", + }, + { + type: "null", + }, + ], + title: "Current Training Id", + }, + training_progress: { + type: "number", + title: "Training Progress", + default: 0, + }, + training_error: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Training Error", + }, + selected_shots: { + type: "object", + title: "Selected Shots", + default: {}, + }, + }, + type: "object", + required: [ + "id", + "created_at", + "sku", + "name", + "slug", + "brand", + "description", + "type", + "category", + "fitting", + "cover_image_url", + "materials", + "public", + "enabled", + "archived", + "demo", + "owner_id", + "lora_status", + "lora_trigger", + "data_image_urls", + ], + title: "ProductPublic", +} as const; + +export const ProductTypeSchema = { + type: "string", + enum: ["garment", "bag", "other"], + title: "ProductType", +} as const; + +export const ProductUpdateSchema = { + properties: { + name: { + anyOf: [ + { + type: "string", + maxLength: 255, + }, + { + type: "null", + }, + ], + title: "Name", + }, + sku: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Sku", + }, + brand: { + anyOf: [ + { + type: "string", + maxLength: 1000, + }, + { + type: "null", + }, + ], + title: "Brand", + }, + description: { + anyOf: [ + { + type: "string", + maxLength: 1000, + }, + { + type: "null", + }, + ], + title: "Description", + }, + type: { + anyOf: [ + { + $ref: "#/components/schemas/ProductType", + }, + { + type: "null", + }, + ], + }, + category: { + anyOf: [ + { + $ref: "#/components/schemas/ProductCategory", + }, + { + type: "null", + }, + ], + }, + fitting: { + anyOf: [ + { + $ref: "#/components/schemas/ProductFitting", + }, + { + type: "null", + }, + ], + }, + cover_image: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Cover Image", + description: "URL or base64 string for cover image", + }, + materials: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Materials", + }, + public: { + anyOf: [ + { + type: "boolean", + }, + { + type: "null", + }, + ], + title: "Public", + }, + data_images: { + anyOf: [ + { + items: { + type: "string", + }, + type: "array", + }, + { + type: "null", + }, + ], + title: "Data Images", + description: "List of image URLs or base64 strings to update", + }, + }, + type: "object", + title: "ProductUpdate", + example: { + brand: "New Brand", + category: "UPPER_BODY", + name: "Updated Black T-Shirt", + public: true, + }, +} as const; + +export const ProductsPublicSchema = { + properties: { + id: { + type: "string", + format: "uuid", + title: "Id", + }, + created_at: { + type: "string", + format: "date-time", + title: "Created At", + }, + updated_at: { + type: "string", + format: "date-time", + title: "Updated At", + }, + data: { + items: { + $ref: "#/components/schemas/ProductPublic", + }, + type: "array", + title: "Data", + }, + count: { + type: "integer", + title: "Count", + }, + }, + type: "object", + required: ["data", "count"], + title: "ProductsPublic", +} as const; + +export const PromptBuildRequestSchema = { + properties: { + subject_id: { + anyOf: [ + { + type: "string", + format: "uuid", + }, + { + type: "null", + }, + ], + title: "Subject Id", + }, + product_id: { + anyOf: [ + { + type: "string", + format: "uuid", + }, + { + type: "null", + }, + ], + title: "Product Id", + }, + framing: { + anyOf: [ + { + $ref: "#/components/schemas/FramingType", + }, + { + type: "null", + }, + ], + default: "front_half_body", + }, + background: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Background", + }, + style: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Style", + default: "ecommerce", + }, + }, + type: "object", + title: "PromptBuildRequest", +} as const; + +export const PromptResponseSchema = { + properties: { + prompt: { + type: "string", + title: "Prompt", + }, + parameters: { + type: "object", + title: "Parameters", + }, + }, + type: "object", + required: ["prompt", "parameters"], + title: "PromptResponse", +} as const; + +export const PromptSectionSchema = { + type: "string", + enum: ["subject", "product", "background", "framing"], + title: "PromptSection", +} as const; + +export const PromptSectionRequestSchema = { + properties: { + section: { + $ref: "#/components/schemas/PromptSection", + }, + id: { + anyOf: [ + { + type: "string", + format: "uuid", + }, + { + type: "null", + }, + ], + title: "Id", + description: "Mandatory for subject and product sections", + }, + selector: { + anyOf: [ + { + $ref: "#/components/schemas/FramingType", + }, + { + $ref: "#/components/schemas/BackgroundType", + }, + { + type: "null", + }, + ], + title: "Selector", + description: "Mandatory for framing and background sections", + }, + }, + type: "object", + required: ["section"], + title: "PromptSectionRequest", +} as const; + +export const PromptSectionResponseSchema = { + properties: { + section: { + $ref: "#/components/schemas/PromptSection", + }, + id: { + anyOf: [ + { + type: "string", + format: "uuid", + }, + { + type: "null", + }, + ], + title: "Id", + }, + selector: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Selector", + }, + result: { + type: "string", + title: "Result", + }, + }, + type: "object", + required: ["section", "result"], + title: "PromptSectionResponse", +} as const; + +export const SelectedShotRequestSchema = { + properties: { + id: { + type: "string", + format: "uuid", + title: "Id", + }, + created_at: { + type: "string", + format: "date-time", + title: "Created At", + }, + updated_at: { + type: "string", + format: "date-time", + title: "Updated At", + }, + product_id: { + type: "string", + format: "uuid", + title: "Product Id", + description: "ID of the product", + }, + shot_type: { + type: "string", + title: "Shot Type", + description: "Type of shot (e.g. 'full-body', 'half-body-front')", + }, + prediction_id: { + anyOf: [ + { + type: "string", + format: "uuid", + }, + { + type: "null", + }, + ], + title: "Prediction Id", + description: + "ID of the prediction to set as favorite. If None, any existing favorite will be removed.", + }, + }, + type: "object", + required: ["product_id", "shot_type"], + title: "SelectedShotRequest", +} as const; + +export const ServiceTypeSchema = { + type: "string", + enum: ["SELF_SERVICE", "AGENCY"], + title: "ServiceType", + description: "Defines the type of service subscription", +} as const; + +export const SubjectCreateSchema = { + properties: { + name: { + type: "string", + title: "Name", + }, + description: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Description", + }, + local_model_path: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Local Model Path", + }, + lora_trigger: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Lora Trigger", + }, + lora_status: { + type: "string", + title: "Lora Status", + default: "none", + }, + cover_image: { + type: "string", + title: "Cover Image", + }, + data_images: { + anyOf: [ + { + items: { + type: "string", + }, + type: "array", + }, + { + type: "null", + }, + ], + title: "Data Images", + }, + age_class: { + $ref: "#/components/schemas/AgeClass", + }, + positive_prompt: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Positive Prompt", + }, + negative_prompt: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Negative Prompt", + }, + ethnicity: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Ethnicity", + }, + public: { + type: "boolean", + title: "Public", + default: false, + }, + subject_type: { + $ref: "#/components/schemas/SubjectType", + default: "AI", + }, + }, + type: "object", + required: ["name", "cover_image", "age_class"], + title: "SubjectCreate", +} as const; + +export const SubjectPublicSchema = { + properties: { + id: { + type: "string", + format: "uuid", + title: "Id", + }, + created_at: { + type: "string", + format: "date-time", + title: "Created At", + }, + updated_at: { + type: "string", + format: "date-time", + title: "Updated At", + }, + name: { + type: "string", + title: "Name", + }, + slug: { + type: "string", + title: "Slug", + }, + description: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Description", + }, + age_class: { + $ref: "#/components/schemas/AgeClass", + }, + subject_type: { + $ref: "#/components/schemas/SubjectType", + }, + positive_prompt: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Positive Prompt", + }, + negative_prompt: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Negative Prompt", + }, + ethnicity: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Ethnicity", + }, + public: { + type: "boolean", + title: "Public", + }, + enabled: { + type: "boolean", + title: "Enabled", + }, + lora_status: { + type: "string", + title: "Lora Status", + }, + lora_trigger: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Lora Trigger", + }, + cover_image_url: { + type: "string", + title: "Cover Image Url", + }, + data_image_urls: { + items: { + type: "string", + }, + type: "array", + title: "Data Image Urls", + }, + owner_id: { + type: "string", + format: "uuid", + title: "Owner Id", + }, + }, + type: "object", + required: [ + "id", + "created_at", + "name", + "slug", + "description", + "age_class", + "subject_type", + "ethnicity", + "public", + "enabled", + "lora_status", + "lora_trigger", + "cover_image_url", + "data_image_urls", + "owner_id", + ], + title: "SubjectPublic", +} as const; + +export const SubjectTypeSchema = { + type: "string", + enum: ["AI", "REAL"], + title: "SubjectType", +} as const; + +export const SubjectUpdateSchema = { + properties: { + name: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Name", + }, + description: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Description", + }, + cover_image: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Cover Image", + }, + data_images: { + anyOf: [ + { + items: { + type: "string", + }, + type: "array", + }, + { + type: "null", + }, + ], + title: "Data Images", + }, + age_class: { + anyOf: [ + { + $ref: "#/components/schemas/AgeClass", + }, + { + type: "null", + }, + ], + }, + positive_prompt: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Positive Prompt", + }, + negative_prompt: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Negative Prompt", + }, + ethnicity: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Ethnicity", + }, + public: { + anyOf: [ + { + type: "boolean", + }, + { + type: "null", + }, + ], + title: "Public", + }, + }, + type: "object", + title: "SubjectUpdate", +} as const; + +export const SubjectsPublicSchema = { + properties: { + id: { + type: "string", + format: "uuid", + title: "Id", + }, + created_at: { + type: "string", + format: "date-time", + title: "Created At", + }, + updated_at: { + type: "string", + format: "date-time", + title: "Updated At", + }, + data: { + items: { + $ref: "#/components/schemas/SubjectPublic", + }, + type: "array", + title: "Data", + }, + count: { + type: "integer", + title: "Count", + }, + }, + type: "object", + required: ["data", "count"], + title: "SubjectsPublic", +} as const; + +export const SubscriptionCreateSchema = { + properties: { + service_type: { + $ref: "#/components/schemas/ServiceType", + }, + tier: { + $ref: "#/components/schemas/SubscriptionTier", + }, + payment_id: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Payment Id", + }, + }, + type: "object", + required: ["service_type", "tier"], + title: "SubscriptionCreate", +} as const; + +export const SubscriptionPublicSchema = { + properties: { + id: { + type: "string", + format: "uuid", + title: "Id", + }, + created_at: { + type: "string", + format: "date-time", + title: "Created At", + }, + updated_at: { + type: "string", + format: "date-time", + title: "Updated At", + }, + user_id: { + type: "string", + format: "uuid", + title: "User Id", + }, + service_type: { + $ref: "#/components/schemas/ServiceType", + }, + tier: { + $ref: "#/components/schemas/SubscriptionTier", + }, + start_date: { + type: "string", + format: "date-time", + title: "Start Date", + }, + end_date: { + type: "string", + format: "date-time", + title: "End Date", + }, + grace_period_end: { + type: "string", + format: "date-time", + title: "Grace Period End", + }, + credits_total: { + type: "integer", + title: "Credits Total", + }, + credits_used: { + type: "integer", + title: "Credits Used", + }, + credits_remaining: { + type: "integer", + title: "Credits Remaining", + }, + is_active: { + type: "boolean", + title: "Is Active", + }, + payment_status: { + $ref: "#/components/schemas/PaymentStatus", + }, + base_price: { + type: "number", + title: "Base Price", + }, + actual_price: { + type: "number", + title: "Actual Price", + }, + currency: { + type: "string", + title: "Currency", + }, + }, + type: "object", + required: [ + "id", + "user_id", + "service_type", + "tier", + "start_date", + "end_date", + "grace_period_end", + "credits_total", + "credits_used", + "credits_remaining", + "is_active", + "payment_status", + "base_price", + "actual_price", + "currency", + ], + title: "SubscriptionPublic", +} as const; + +export const SubscriptionTierSchema = { + type: "string", + enum: ["START", "SCALE", "ENTERPRISE"], + title: "SubscriptionTier", + description: "Defines the subscription tier level", +} as const; + +export const SubscriptionUpdateSchema = { + properties: { + service_type: { + anyOf: [ + { + $ref: "#/components/schemas/ServiceType", + }, + { + type: "null", + }, + ], + }, + tier: { + anyOf: [ + { + $ref: "#/components/schemas/SubscriptionTier", + }, + { + type: "null", + }, + ], + }, + }, + type: "object", + title: "SubscriptionUpdate", +} as const; + +export const SubscriptionsPublicSchema = { + properties: { + id: { + type: "string", + format: "uuid", + title: "Id", + }, + created_at: { + type: "string", + format: "date-time", + title: "Created At", + }, + updated_at: { + type: "string", + format: "date-time", + title: "Updated At", + }, + data: { + items: { + $ref: "#/components/schemas/SubscriptionPublic", + }, + type: "array", + title: "Data", + }, + count: { + type: "integer", + title: "Count", + }, + }, + type: "object", + required: ["data", "count"], + title: "SubscriptionsPublic", } as const; export const TokenSchema = { @@ -1801,17 +2406,6 @@ export const TokenSchema = { type: "string", title: "Access Token", }, - refresh_token: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Refresh Token", - }, token_type: { type: "string", title: "Token Type", @@ -1823,6 +2417,26 @@ export const TokenSchema = { title: "Token", } as const; +export const UpdatePasswordSchema = { + properties: { + current_password: { + type: "string", + maxLength: 40, + minLength: 8, + title: "Current Password", + }, + new_password: { + type: "string", + maxLength: 40, + minLength: 8, + title: "New Password", + }, + }, + type: "object", + required: ["current_password", "new_password"], + title: "UpdatePassword", +} as const; + export const UserCreateSchema = { properties: { email: { @@ -1830,59 +2444,62 @@ export const UserCreateSchema = { format: "email", title: "Email", }, - first_name: { - type: "string", - title: "First Name", - }, - last_name: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Last Name", - }, - phone_number: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Phone Number", - }, password: { type: "string", + maxLength: 40, + minLength: 8, title: "Password", }, + full_name: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Full Name", + }, is_superuser: { type: "boolean", title: "Is Superuser", default: false, }, + is_active: { + type: "boolean", + title: "Is Active", + default: true, + }, }, type: "object", - required: ["email", "first_name", "password"], + required: ["email", "password"], title: "UserCreate", } as const; -export const UserResponseSchema = { +export const UserPublicSchema = { properties: { + id: { + type: "string", + format: "uuid", + title: "Id", + }, + created_at: { + type: "string", + format: "date-time", + title: "Created At", + }, + updated_at: { + type: "string", + format: "date-time", + title: "Updated At", + }, email: { type: "string", format: "email", title: "Email", }, - first_name: { - type: "string", - title: "First Name", - }, - last_name: { + full_name: { anyOf: [ { type: "string", @@ -1891,23 +2508,7 @@ export const UserResponseSchema = { type: "null", }, ], - title: "Last Name", - }, - phone_number: { - anyOf: [ - { - type: "string", - }, - { - type: "null", - }, - ], - title: "Phone Number", - }, - id: { - type: "string", - format: "uuid", - title: "Id", + title: "Full Name", }, is_active: { type: "boolean", @@ -1916,6 +2517,20 @@ export const UserResponseSchema = { is_superuser: { type: "boolean", title: "Is Superuser", + default: false, + }, + }, + type: "object", + required: ["id", "email", "full_name", "is_active"], + title: "UserPublic", +} as const; + +export const UserRegisterSchema = { + properties: { + id: { + type: "string", + format: "uuid", + title: "Id", }, created_at: { type: "string", @@ -1923,28 +2538,169 @@ export const UserResponseSchema = { title: "Created At", }, updated_at: { + type: "string", + format: "date-time", + title: "Updated At", + }, + email: { + type: "string", + maxLength: 255, + format: "email", + title: "Email", + }, + password: { + type: "string", + maxLength: 40, + minLength: 8, + title: "Password", + }, + full_name: { anyOf: [ { type: "string", - format: "date-time", + maxLength: 255, }, { type: "null", }, ], - title: "Updated At", + title: "Full Name", }, }, type: "object", - required: [ - "email", - "first_name", - "id", - "is_active", - "is_superuser", - "created_at", - ], - title: "UserResponse", + required: ["email", "password"], + title: "UserRegister", +} as const; + +export const UserUpdateSchema = { + properties: { + email: { + anyOf: [ + { + type: "string", + format: "email", + }, + { + type: "null", + }, + ], + title: "Email", + }, + full_name: { + anyOf: [ + { + type: "string", + }, + { + type: "null", + }, + ], + title: "Full Name", + }, + password: { + anyOf: [ + { + type: "string", + maxLength: 40, + minLength: 8, + }, + { + type: "null", + }, + ], + title: "Password", + }, + is_superuser: { + anyOf: [ + { + type: "boolean", + }, + { + type: "null", + }, + ], + title: "Is Superuser", + }, + is_active: { + anyOf: [ + { + type: "boolean", + }, + { + type: "null", + }, + ], + title: "Is Active", + }, + }, + type: "object", + title: "UserUpdate", +} as const; + +export const UserUpdateMeSchema = { + properties: { + full_name: { + anyOf: [ + { + type: "string", + maxLength: 255, + }, + { + type: "null", + }, + ], + title: "Full Name", + }, + email: { + anyOf: [ + { + type: "string", + maxLength: 255, + format: "email", + }, + { + type: "null", + }, + ], + title: "Email", + }, + }, + type: "object", + title: "UserUpdateMe", +} as const; + +export const UsersPublicSchema = { + properties: { + id: { + type: "string", + format: "uuid", + title: "Id", + }, + created_at: { + type: "string", + format: "date-time", + title: "Created At", + }, + updated_at: { + type: "string", + format: "date-time", + title: "Updated At", + }, + data: { + items: { + $ref: "#/components/schemas/UserPublic", + }, + type: "array", + title: "Data", + }, + count: { + type: "integer", + title: "Count", + }, + }, + type: "object", + required: ["data", "count"], + title: "UsersPublic", } as const; export const ValidationErrorSchema = { diff --git a/frontend/src/client/sdk.gen.ts b/frontend/src/client/sdk.gen.ts index a78a7b9..522ba88 100644 --- a/frontend/src/client/sdk.gen.ts +++ b/frontend/src/client/sdk.gen.ts @@ -5,106 +5,153 @@ import { type TDataShape, type Client, urlSearchParamsBodySerializer, - formDataBodySerializer, } from "@hey-api/client-axios"; import type { - RootGetData, - RootGetResponse, - RegisterData, - RegisterResponse, - RegisterError, - LoginData, - LoginResponse, - LoginError, - LoginOauthData, - LoginOauthResponse, - LoginOauthError, - RefreshTokenData, - RefreshTokenResponse, - RefreshTokenError, - ChangePasswordData, - ChangePasswordError, - GetCurrentUserInfoData, - GetCurrentUserInfoResponse, - ListEventThemesData, - ListEventThemesResponse, - ListEventThemesError, - CreateEventThemeData, - CreateEventThemeResponse, - CreateEventThemeError, - DeleteEventThemeData, - DeleteEventThemeError, - GetEventThemeData, - GetEventThemeResponse, - GetEventThemeError, - UpdateEventThemeData, - UpdateEventThemeResponse, - UpdateEventThemeError, - GetGuestsData, - GetGuestsResponse, - GetGuestsError, - CreateGuestData, - CreateGuestResponse, - CreateGuestError, - DeleteGuestData, - DeleteGuestResponse, - DeleteGuestError, - GetGuestData, - GetGuestResponse, - GetGuestError, - UpdateGuestData, - UpdateGuestResponse, - UpdateGuestError, - SetGuestStatusApiV1EventsGuestsGuestIdStatusPatchData, - SetGuestStatusApiV1EventsGuestsGuestIdStatusPatchResponse, - SetGuestStatusApiV1EventsGuestsGuestIdStatusPatchError, - GetRsvpsData, - GetRsvpsResponse, - GetRsvpsError, - CreateRsvpData, - CreateRsvpResponse, - CreateRsvpError, - DeleteRsvpData, - DeleteRsvpResponse, - DeleteRsvpError, - GetRsvpData, - GetRsvpResponse, - GetRsvpError, - UpdateRsvpData, - UpdateRsvpResponse, - UpdateRsvpError, - UpdateRsvpStatusData, - UpdateRsvpStatusResponse, - UpdateRsvpStatusError, - CreateEventData, - CreateEventResponse, - CreateEventError, - GetUserEventsData, - GetUserEventsResponse, - GetUserEventsError, - GetUpcomingEventsData, - GetUpcomingEventsResponse, - GetUpcomingEventsError, - GetPublicEventsData, - GetPublicEventsResponse, - GetPublicEventsError, - DeleteEventData, - DeleteEventResponse, - DeleteEventError, - GetEventData, - GetEventResponse, - GetEventError, - UpdateEventData, - UpdateEventResponse, - UpdateEventError, - GetEventBySlugData, - GetEventBySlugResponse, - GetEventBySlugError, - GeneratePresignedUrlData, - GeneratePresignedUrlResponse, - GeneratePresignedUrlError, - UploadFileData, - UploadFileError, + LoginLoginAccessTokenData, + LoginLoginAccessTokenResponse, + LoginLoginAccessTokenError, + LoginTestTokenData, + LoginTestTokenResponse, + LoginRecoverPasswordData, + LoginRecoverPasswordResponse, + LoginRecoverPasswordError, + LoginResetPasswordData, + LoginResetPasswordResponse, + LoginResetPasswordError, + LoginRecoverPasswordHtmlContentData, + LoginRecoverPasswordHtmlContentResponse, + LoginRecoverPasswordHtmlContentError, + UsersReadUsersData, + UsersReadUsersResponse, + UsersReadUsersError, + UsersCreateUserData, + UsersCreateUserResponse, + UsersCreateUserError, + UsersDeleteUserMeData, + UsersDeleteUserMeResponse, + UsersReadUserMeData, + UsersReadUserMeResponse, + UsersUpdateUserMeData, + UsersUpdateUserMeResponse, + UsersUpdateUserMeError, + UsersUpdatePasswordMeData, + UsersUpdatePasswordMeResponse, + UsersUpdatePasswordMeError, + UsersRegisterUserData, + UsersRegisterUserResponse, + UsersRegisterUserError, + UsersDeleteUserData, + UsersDeleteUserResponse, + UsersDeleteUserError, + UsersReadUserByIdData, + UsersReadUserByIdResponse, + UsersReadUserByIdError, + UsersUpdateUserData, + UsersUpdateUserResponse, + UsersUpdateUserError, + UtilsTestEmailData, + UtilsTestEmailResponse, + UtilsTestEmailError, + UtilsHealthCheckData, + UtilsHealthCheckResponse, + UtilsSystemHealthCheckData, + UtilsSystemHealthCheckResponse, + UtilsDbHealthData, + ProductsReadProductsData, + ProductsReadProductsResponse, + ProductsReadProductsError, + ProductsCreateProductData, + ProductsCreateProductResponse, + ProductsCreateProductError, + ProductsDeleteProductData, + ProductsDeleteProductResponse, + ProductsDeleteProductError, + ProductsReadProductData, + ProductsReadProductResponse, + ProductsReadProductError, + ProductsUpdateProductData, + ProductsUpdateProductResponse, + ProductsUpdateProductError, + ProductsReadProductGenerationsData, + ProductsReadProductGenerationsResponse, + ProductsReadProductGenerationsError, + ProductsRetrainProductData, + ProductsRetrainProductResponse, + ProductsRetrainProductError, + ProductsUpdateProductArchiveStatusData, + ProductsUpdateProductArchiveStatusResponse, + ProductsUpdateProductArchiveStatusError, + ProductsSetSelectedShotData, + ProductsSetSelectedShotResponse, + ProductsSetSelectedShotError, + SubjectsReadSubjectsData, + SubjectsReadSubjectsResponse, + SubjectsReadSubjectsError, + SubjectsCreateSubjectData, + SubjectsCreateSubjectResponse, + SubjectsCreateSubjectError, + SubjectsDeleteSubjectData, + SubjectsDeleteSubjectResponse, + SubjectsDeleteSubjectError, + SubjectsReadSubjectData, + SubjectsReadSubjectResponse, + SubjectsReadSubjectError, + SubjectsUpdateSubjectData, + SubjectsUpdateSubjectResponse, + SubjectsUpdateSubjectError, + GenerationsReadGenerationsData, + GenerationsReadGenerationsResponse, + GenerationsReadGenerationsError, + GenerationsCreateGenerationData, + GenerationsCreateGenerationResponse, + GenerationsCreateGenerationError, + GenerationsDeleteGenerationData, + GenerationsDeleteGenerationResponse, + GenerationsDeleteGenerationError, + GenerationsReadGenerationData, + GenerationsReadGenerationResponse, + GenerationsReadGenerationError, + GenerationsGetGenerationStatusData, + GenerationsGetGenerationStatusResponse, + GenerationsGetGenerationStatusError, + TrainingTrainingWebhookData, + TrainingTrainingWebhookError, + TrainingGetTrainingStatusData, + TrainingGetTrainingStatusResponse, + TrainingGetTrainingStatusError, + PromptsBuildPromptData, + PromptsBuildPromptResponse, + PromptsBuildPromptError, + PromptsBuildPromptSectionData, + PromptsBuildPromptSectionResponse, + PromptsBuildPromptSectionError, + PredictionsReadPredictionData, + PredictionsReadPredictionResponse, + PredictionsReadPredictionError, + PredictionsReadPredictionsData, + PredictionsReadPredictionsResponse, + PredictionsReadPredictionsError, + PredictionsRefinePredictionData, + PredictionsRefinePredictionResponse, + PredictionsRefinePredictionError, + PredictionsUpdatePredictionFavouriteStatusData, + PredictionsUpdatePredictionFavouriteStatusResponse, + PredictionsUpdatePredictionFavouriteStatusError, + SubscriptionsCreateUserSubscriptionData, + SubscriptionsCreateUserSubscriptionResponse, + SubscriptionsCreateUserSubscriptionError, + SubscriptionsReadSubscriptionData, + SubscriptionsReadSubscriptionResponse, + SubscriptionsReadSubscriptionError, + SubscriptionsUpdateSubscriptionData, + SubscriptionsUpdateSubscriptionResponse, + SubscriptionsUpdateSubscriptionError, + SubscriptionsRenewSubscriptionData, + SubscriptionsRenewSubscriptionResponse, + SubscriptionsRenewSubscriptionError, + SubscriptionsReadSubscriptionsData, + SubscriptionsReadSubscriptionsResponse, + SubscriptionsReadSubscriptionsError, } from "./types.gen"; import { client as _heyApiClient } from "./client.gen"; @@ -126,87 +173,19 @@ export type Options< }; /** - * Root + * Login Access Token + * OAuth2 compatible token login, get an access token for future requests */ -export const rootGet = ( - options?: Options, -) => { - return (options?.client ?? _heyApiClient).get< - RootGetResponse, - unknown, - ThrowOnError - >({ - responseType: "text", - url: "/", - ...options, - }); -}; - -/** - * Register User - * Register a new user. - * - * Returns: - * The created user information. - */ -export const register = ( - options: Options, +export const loginLoginAccessToken = ( + options: Options, ) => { return (options.client ?? _heyApiClient).post< - RegisterResponse, - RegisterError, - ThrowOnError - >({ - url: "/api/v1/auth/register", - ...options, - headers: { - "Content-Type": "application/json", - ...options?.headers, - }, - }); -}; - -/** - * Login - * Login with username and password. - * - * Returns: - * Access and refresh tokens. - */ -export const login = ( - options: Options, -) => { - return (options.client ?? _heyApiClient).post< - LoginResponse, - LoginError, - ThrowOnError - >({ - url: "/api/v1/auth/login", - ...options, - headers: { - "Content-Type": "application/json", - ...options?.headers, - }, - }); -}; - -/** - * Login Oauth - * OAuth2-compatible login endpoint, used by the OpenAPI UI. - * - * Returns: - * Access and refresh tokens. - */ -export const loginOauth = ( - options: Options, -) => { - return (options.client ?? _heyApiClient).post< - LoginOauthResponse, - LoginOauthError, + LoginLoginAccessTokenResponse, + LoginLoginAccessTokenError, ThrowOnError >({ ...urlSearchParamsBodySerializer, - url: "/api/v1/auth/login/oauth", + url: "/api/v1/login/access-token", ...options, headers: { "Content-Type": "application/x-www-form-urlencoded", @@ -216,41 +195,15 @@ export const loginOauth = ( }; /** - * Refresh Token - * Refresh access token using a refresh token. - * - * Returns: - * New access and refresh tokens. + * Test Token + * Test access token */ -export const refreshToken = ( - options: Options, +export const loginTestToken = ( + options?: Options, ) => { - return (options.client ?? _heyApiClient).post< - RefreshTokenResponse, - RefreshTokenError, - ThrowOnError - >({ - url: "/api/v1/auth/refresh", - ...options, - headers: { - "Content-Type": "application/json", - ...options?.headers, - }, - }); -}; - -/** - * Change Password - * Change current user's password. - * - * Requires authentication. - */ -export const changePassword = ( - options: Options, -) => { - return (options.client ?? _heyApiClient).post< + return (options?.client ?? _heyApiClient).post< + LoginTestTokenResponse, unknown, - ChangePasswordError, ThrowOnError >({ security: [ @@ -259,7 +212,41 @@ export const changePassword = ( type: "http", }, ], - url: "/api/v1/auth/change-password", + url: "/api/v1/login/test-token", + ...options, + }); +}; + +/** + * Recover Password + * Password Recovery + */ +export const loginRecoverPassword = ( + options: Options, +) => { + return (options.client ?? _heyApiClient).post< + LoginRecoverPasswordResponse, + LoginRecoverPasswordError, + ThrowOnError + >({ + url: "/api/v1/password-recovery/{email}", + ...options, + }); +}; + +/** + * Reset Password + * Reset password + */ +export const loginResetPassword = ( + options: Options, +) => { + return (options.client ?? _heyApiClient).post< + LoginResetPasswordResponse, + LoginResetPasswordError, + ThrowOnError + >({ + url: "/api/v1/reset-password/", ...options, headers: { "Content-Type": "application/json", @@ -269,17 +256,41 @@ export const changePassword = ( }; /** - * Get Current User Info - * Get current user information. - * - * Requires authentication. + * Recover Password Html Content + * HTML Content for Password Recovery */ -export const getCurrentUserInfo = ( - options?: Options, +export const loginRecoverPasswordHtmlContent = < + ThrowOnError extends boolean = false, +>( + options: Options, +) => { + return (options.client ?? _heyApiClient).post< + LoginRecoverPasswordHtmlContentResponse, + LoginRecoverPasswordHtmlContentError, + ThrowOnError + >({ + responseType: "text", + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/password-recovery-html-content/{email}", + ...options, + }); +}; + +/** + * Read Users + * Retrieve users. + */ +export const usersReadUsers = ( + options?: Options, ) => { return (options?.client ?? _heyApiClient).get< - GetCurrentUserInfoResponse, - unknown, + UsersReadUsersResponse, + UsersReadUsersError, ThrowOnError >({ security: [ @@ -288,37 +299,21 @@ export const getCurrentUserInfo = ( type: "http", }, ], - url: "/api/v1/auth/me", + url: "/api/v1/users/", ...options, }); }; /** - * List Themes - * List event themes. + * Create User + * Create new user. */ -export const listEventThemes = ( - options?: Options, -) => { - return (options?.client ?? _heyApiClient).get< - ListEventThemesResponse, - ListEventThemesError, - ThrowOnError - >({ - url: "/api/v1/event_themes/", - ...options, - }); -}; - -/** - * Create Theme - */ -export const createEventTheme = ( - options: Options, +export const usersCreateUser = ( + options: Options, ) => { return (options.client ?? _heyApiClient).post< - CreateEventThemeResponse, - CreateEventThemeError, + UsersCreateUserResponse, + UsersCreateUserError, ThrowOnError >({ security: [ @@ -327,7 +322,7 @@ export const createEventTheme = ( type: "http", }, ], - url: "/api/v1/event_themes/", + url: "/api/v1/users/", ...options, headers: { "Content-Type": "application/json", @@ -337,15 +332,15 @@ export const createEventTheme = ( }; /** - * Delete Theme - * Delete specific theme by ID. + * Delete User Me + * Delete own user. */ -export const deleteEventTheme = ( - options: Options, +export const usersDeleteUserMe = ( + options?: Options, ) => { - return (options.client ?? _heyApiClient).delete< + return (options?.client ?? _heyApiClient).delete< + UsersDeleteUserMeResponse, unknown, - DeleteEventThemeError, ThrowOnError >({ security: [ @@ -354,37 +349,44 @@ export const deleteEventTheme = ( type: "http", }, ], - url: "/api/v1/event_themes/{theme_id}", + url: "/api/v1/users/me", ...options, }); }; /** - * Get Theme - * Get specific theme by ID. + * Read User Me + * Get current user. */ -export const getEventTheme = ( - options: Options, +export const usersReadUserMe = ( + options?: Options, ) => { - return (options.client ?? _heyApiClient).get< - GetEventThemeResponse, - GetEventThemeError, + return (options?.client ?? _heyApiClient).get< + UsersReadUserMeResponse, + unknown, ThrowOnError >({ - url: "/api/v1/event_themes/{theme_id}", + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/users/me", ...options, }); }; /** - * Update Theme + * Update User Me + * Update own user. */ -export const updateEventTheme = ( - options: Options, +export const usersUpdateUserMe = ( + options: Options, ) => { return (options.client ?? _heyApiClient).patch< - UpdateEventThemeResponse, - UpdateEventThemeError, + UsersUpdateUserMeResponse, + UsersUpdateUserMeError, ThrowOnError >({ security: [ @@ -393,7 +395,7 @@ export const updateEventTheme = ( type: "http", }, ], - url: "/api/v1/event_themes/{theme_id}", + url: "/api/v1/users/me", ...options, headers: { "Content-Type": "application/json", @@ -403,33 +405,45 @@ export const updateEventTheme = ( }; /** - * Read Guests + * Update Password Me + * Update own password. */ -export const getGuests = ( - options?: Options, +export const usersUpdatePasswordMe = ( + options: Options, ) => { - return (options?.client ?? _heyApiClient).get< - GetGuestsResponse, - GetGuestsError, + return (options.client ?? _heyApiClient).patch< + UsersUpdatePasswordMeResponse, + UsersUpdatePasswordMeError, ThrowOnError >({ - url: "/api/v1/events/guests/", + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/users/me/password", ...options, + headers: { + "Content-Type": "application/json", + ...options?.headers, + }, }); }; /** - * Create Guest + * Register User + * Create new user without the need to be logged in. */ -export const createGuest = ( - options: Options, +export const usersRegisterUser = ( + options: Options, ) => { return (options.client ?? _heyApiClient).post< - CreateGuestResponse, - CreateGuestError, + UsersRegisterUserResponse, + UsersRegisterUserError, ThrowOnError >({ - url: "/api/v1/events/guests/", + url: "/api/v1/users/signup", ...options, headers: { "Content-Type": "application/json", @@ -439,49 +453,70 @@ export const createGuest = ( }; /** - * Delete Guest + * Delete User + * Delete a user. */ -export const deleteGuest = ( - options: Options, +export const usersDeleteUser = ( + options: Options, ) => { return (options.client ?? _heyApiClient).delete< - DeleteGuestResponse, - DeleteGuestError, + UsersDeleteUserResponse, + UsersDeleteUserError, ThrowOnError >({ - url: "/api/v1/events/guests/{guest_id}", + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/users/{user_id}", ...options, }); }; /** - * Read Guest + * Read User By Id + * Get a specific user by id. */ -export const getGuest = ( - options: Options, +export const usersReadUserById = ( + options: Options, ) => { return (options.client ?? _heyApiClient).get< - GetGuestResponse, - GetGuestError, + UsersReadUserByIdResponse, + UsersReadUserByIdError, ThrowOnError >({ - url: "/api/v1/events/guests/{guest_id}", + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/users/{user_id}", ...options, }); }; /** - * Update Guest + * Update User + * Update a user. */ -export const updateGuest = ( - options: Options, +export const usersUpdateUser = ( + options: Options, ) => { - return (options.client ?? _heyApiClient).put< - UpdateGuestResponse, - UpdateGuestError, + return (options.client ?? _heyApiClient).patch< + UsersUpdateUserResponse, + UsersUpdateUserError, ThrowOnError >({ - url: "/api/v1/events/guests/{guest_id}", + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/users/{user_id}", ...options, headers: { "Content-Type": "application/json", @@ -491,54 +526,784 @@ export const updateGuest = ( }; /** - * Set Guest Status + * Test Email + * Test emails. */ -export const setGuestStatusApiV1EventsGuestsGuestIdStatusPatch = < +export const utilsTestEmail = ( + options: Options, +) => { + return (options.client ?? _heyApiClient).post< + UtilsTestEmailResponse, + UtilsTestEmailError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/utils/test-email/", + ...options, + }); +}; + +/** + * Health Check + */ +export const utilsHealthCheck = ( + options?: Options, +) => { + return (options?.client ?? _heyApiClient).get< + UtilsHealthCheckResponse, + unknown, + ThrowOnError + >({ + url: "/api/v1/utils/health-check/", + ...options, + }); +}; + +/** + * System Health Check + * Comprehensive system health check that verifies all service connections. + * Ensures a response is always returned, even if some services fail to respond. + */ +export const utilsSystemHealthCheck = ( + options?: Options, +) => { + return (options?.client ?? _heyApiClient).get< + UtilsSystemHealthCheckResponse, + unknown, + ThrowOnError + >({ + url: "/api/v1/utils/system-health-check", + ...options, + }); +}; + +/** + * Db Health + */ +export const utilsDbHealth = ( + options?: Options, +) => { + return (options?.client ?? _heyApiClient).get( + { + url: "/api/v1/utils/db-check/", + ...options, + }, + ); +}; + +/** + * Read Products + * Retrieve products. + * Optionally filter by archive status, enabled status, and brand (case-insensitive). + */ +export const productsReadProducts = ( + options?: Options, +) => { + return (options?.client ?? _heyApiClient).get< + ProductsReadProductsResponse, + ProductsReadProductsError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/products/", + ...options, + }); +}; + +/** + * Create Product + * Create new product + */ +export const productsCreateProduct = ( + options: Options, +) => { + return (options.client ?? _heyApiClient).post< + ProductsCreateProductResponse, + ProductsCreateProductError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/products/", + ...options, + headers: { + "Content-Type": "application/json", + ...options?.headers, + }, + }); +}; + +/** + * Delete Product + * Delete a product. + */ +export const productsDeleteProduct = ( + options: Options, +) => { + return (options.client ?? _heyApiClient).delete< + ProductsDeleteProductResponse, + ProductsDeleteProductError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/products/{id}", + ...options, + }); +}; + +/** + * Read Product + * Get product by ID. + */ +export const productsReadProduct = ( + options: Options, +) => { + return (options.client ?? _heyApiClient).get< + ProductsReadProductResponse, + ProductsReadProductError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/products/{id}", + ...options, + }); +}; + +/** + * Update Product + * Update a product. + */ +export const productsUpdateProduct = ( + options: Options, +) => { + return (options.client ?? _heyApiClient).put< + ProductsUpdateProductResponse, + ProductsUpdateProductError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/products/{id}", + ...options, + headers: { + "Content-Type": "application/json", + ...options?.headers, + }, + }); +}; + +/** + * Read Product Generations + * Retrieve generations owned by the current user, ordered by creation date descending. + */ +export const productsReadProductGenerations = < + ThrowOnError extends boolean = false, +>( + options: Options, +) => { + return (options.client ?? _heyApiClient).get< + ProductsReadProductGenerationsResponse, + ProductsReadProductGenerationsError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/products/{product_id}/generations", + ...options, + }); +}; + +/** + * Retrain Product + * Get product by ID. + */ +export const productsRetrainProduct = ( + options: Options, +) => { + return (options.client ?? _heyApiClient).post< + ProductsRetrainProductResponse, + ProductsRetrainProductError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/products{id}/retrain", + ...options, + }); +}; + +/** + * Update Product Archive Status + * Update the archive status of a product. + */ +export const productsUpdateProductArchiveStatus = < + ThrowOnError extends boolean = false, +>( + options: Options, +) => { + return (options.client ?? _heyApiClient).patch< + ProductsUpdateProductArchiveStatusResponse, + ProductsUpdateProductArchiveStatusError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/products/{id}/archived", + ...options, + }); +}; + +/** + * Set Selected Shot + * Set a prediction as the selected shot for a specific shot type for a product. + * If prediction_id is None, any existing selected shot will be removed. + */ +export const productsSetSelectedShot = ( + options: Options, +) => { + return (options.client ?? _heyApiClient).post< + ProductsSetSelectedShotResponse, + ProductsSetSelectedShotError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/products/selected_shot/{product_id}", + ...options, + headers: { + "Content-Type": "application/json", + ...options?.headers, + }, + }); +}; + +/** + * Read Subjects + * Retrieve subjects. + */ +export const subjectsReadSubjects = ( + options?: Options, +) => { + return (options?.client ?? _heyApiClient).get< + SubjectsReadSubjectsResponse, + SubjectsReadSubjectsError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/subjects/", + ...options, + }); +}; + +/** + * Create Subject + * Create new subject. + */ +export const subjectsCreateSubject = ( + options: Options, +) => { + return (options.client ?? _heyApiClient).post< + SubjectsCreateSubjectResponse, + SubjectsCreateSubjectError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/subjects/", + ...options, + headers: { + "Content-Type": "application/json", + ...options?.headers, + }, + }); +}; + +/** + * Delete Subject + * Delete a subject. + */ +export const subjectsDeleteSubject = ( + options: Options, +) => { + return (options.client ?? _heyApiClient).delete< + SubjectsDeleteSubjectResponse, + SubjectsDeleteSubjectError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/subjects/{id}", + ...options, + }); +}; + +/** + * Read Subject + * Get subject by ID. + */ +export const subjectsReadSubject = ( + options: Options, +) => { + return (options.client ?? _heyApiClient).get< + SubjectsReadSubjectResponse, + SubjectsReadSubjectError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/subjects/{id}", + ...options, + }); +}; + +/** + * Update Subject + * Update a subject. + */ +export const subjectsUpdateSubject = ( + options: Options, +) => { + return (options.client ?? _heyApiClient).put< + SubjectsUpdateSubjectResponse, + SubjectsUpdateSubjectError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/subjects/{id}", + ...options, + headers: { + "Content-Type": "application/json", + ...options?.headers, + }, + }); +}; + +/** + * Read Generations + * Retrieve generations owned by the current user, ordered by creation date descending. + */ +export const generationsReadGenerations = < + ThrowOnError extends boolean = false, +>( + options?: Options, +) => { + return (options?.client ?? _heyApiClient).get< + GenerationsReadGenerationsResponse, + GenerationsReadGenerationsError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/generations/", + ...options, + }); +}; + +/** + * Create Generation + * Create new generation. + */ +export const generationsCreateGeneration = < + ThrowOnError extends boolean = false, +>( + options: Options, +) => { + return (options.client ?? _heyApiClient).post< + GenerationsCreateGenerationResponse, + GenerationsCreateGenerationError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/generations/", + ...options, + headers: { + "Content-Type": "application/json", + ...options?.headers, + }, + }); +}; + +/** + * Delete Generation + * Delete a generation. + */ +export const generationsDeleteGeneration = < + ThrowOnError extends boolean = false, +>( + options: Options, +) => { + return (options.client ?? _heyApiClient).delete< + GenerationsDeleteGenerationResponse, + GenerationsDeleteGenerationError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/generations/{id}", + ...options, + }); +}; + +/** + * Read Generation + * Get generation by ID. + */ +export const generationsReadGeneration = ( + options: Options, +) => { + return (options.client ?? _heyApiClient).get< + GenerationsReadGenerationResponse, + GenerationsReadGenerationError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/generations/{id}", + ...options, + }); +}; + +/** + * Get Generation Status + * Get the status of a generation. + */ +export const generationsGetGenerationStatus = < + ThrowOnError extends boolean = false, +>( + options: Options, +) => { + return (options.client ?? _heyApiClient).get< + GenerationsGetGenerationStatusResponse, + GenerationsGetGenerationStatusError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/generations/{id}/status", + ...options, + }); +}; + +/** + * Training Webhook + */ +export const trainingTrainingWebhook = ( + options: Options, +) => { + return (options.client ?? _heyApiClient).post< + unknown, + TrainingTrainingWebhookError, + ThrowOnError + >({ + url: "/api/v1/training/webhook", + ...options, + headers: { + "Content-Type": "application/json", + ...options?.headers, + }, + }); +}; + +/** + * Get Training Status + * Endpoint to get the training task status by ID. + */ +export const trainingGetTrainingStatus = ( + options: Options, +) => { + return (options.client ?? _heyApiClient).get< + TrainingGetTrainingStatusResponse, + TrainingGetTrainingStatusError, + ThrowOnError + >({ + url: "/api/v1/training/{task_id}/status", + ...options, + }); +}; + +/** + * Build Prompt + * Build a prompt based on provided parameters. + * This endpoint allows dynamic prompt construction before actual generation. + * Even with no parameters, it will return a basic working prompt. + */ +export const promptsBuildPrompt = ( + options: Options, +) => { + return (options.client ?? _heyApiClient).post< + PromptsBuildPromptResponse, + PromptsBuildPromptError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/prompts/build", + ...options, + headers: { + "Content-Type": "application/json", + ...options?.headers, + }, + }); +}; + +/** + * Build Prompt Section + * Build a specific section of the prompt based on provided parameters. + * This endpoint allows for granular prompt section construction. + * + * Returns: + * PromptSectionResponse: Contains the generated prompt section and input parameters + * + * Raises: + * HTTPException: + * - 400 if the request is invalid (missing required fields) + * - 404 if requested subject/product is not found + */ +export const promptsBuildPromptSection = ( + options: Options, +) => { + return (options.client ?? _heyApiClient).post< + PromptsBuildPromptSectionResponse, + PromptsBuildPromptSectionError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/prompts/build-section", + ...options, + headers: { + "Content-Type": "application/json", + ...options?.headers, + }, + }); +}; + +/** + * Read Prediction + */ +export const predictionsReadPrediction = ( + options: Options, +) => { + return (options.client ?? _heyApiClient).get< + PredictionsReadPredictionResponse, + PredictionsReadPredictionError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/predictions/{id}", + ...options, + }); +}; + +/** + * Read Predictions + */ +export const predictionsReadPredictions = < + ThrowOnError extends boolean = false, +>( + options?: Options, +) => { + return (options?.client ?? _heyApiClient).get< + PredictionsReadPredictionsResponse, + PredictionsReadPredictionsError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/predictions/", + ...options, + }); +}; + +/** + * Refine Prediction + */ +export const predictionsRefinePrediction = < + ThrowOnError extends boolean = false, +>( + options: Options, +) => { + return (options.client ?? _heyApiClient).get< + PredictionsRefinePredictionResponse, + PredictionsRefinePredictionError, + ThrowOnError + >({ + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/predictions/refine/{id}", + ...options, + }); +}; + +/** + * Update Prediction Favourite Status + * Update the favourite status of a prediction. + * + * Args: + * session: Database session dependency + * current_user: Current authenticated user + * id: UUID of the prediction to update + * favourite: New favourite status (true/false) + * + * Returns: + * Updated Prediction object + * + * Raises: + * HTTPException: 404 if prediction not found or 403 if user not authorized + */ +export const predictionsUpdatePredictionFavouriteStatus = < ThrowOnError extends boolean = false, >( options: Options< - SetGuestStatusApiV1EventsGuestsGuestIdStatusPatchData, + PredictionsUpdatePredictionFavouriteStatusData, ThrowOnError >, ) => { return (options.client ?? _heyApiClient).patch< - SetGuestStatusApiV1EventsGuestsGuestIdStatusPatchResponse, - SetGuestStatusApiV1EventsGuestsGuestIdStatusPatchError, + PredictionsUpdatePredictionFavouriteStatusResponse, + PredictionsUpdatePredictionFavouriteStatusError, ThrowOnError >({ - url: "/api/v1/events/guests/{guest_id}/status", + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/predictions/{id}/favourite", ...options, }); }; /** - * Read Rsvps + * Create User Subscription + * Create a subscription for a user (superuser only). */ -export const getRsvps = ( - options?: Options, -) => { - return (options?.client ?? _heyApiClient).get< - GetRsvpsResponse, - GetRsvpsError, - ThrowOnError - >({ - url: "/api/v1/events/rsvps/", - ...options, - }); -}; - -/** - * Create Rsvp - */ -export const createRsvp = ( - options: Options, +export const subscriptionsCreateUserSubscription = < + ThrowOnError extends boolean = false, +>( + options: Options, ) => { return (options.client ?? _heyApiClient).post< - CreateRsvpResponse, - CreateRsvpError, + SubscriptionsCreateUserSubscriptionResponse, + SubscriptionsCreateUserSubscriptionError, ThrowOnError >({ - url: "/api/v1/events/rsvps/", + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/subscriptions/{user_id}", ...options, headers: { "Content-Type": "application/json", @@ -548,49 +1313,53 @@ export const createRsvp = ( }; /** - * Delete Rsvp + * Read Subscription + * Get a specific subscription. + * Superuser can access any subscription, users can only access their own. */ -export const deleteRsvp = ( - options: Options, -) => { - return (options.client ?? _heyApiClient).delete< - DeleteRsvpResponse, - DeleteRsvpError, - ThrowOnError - >({ - url: "/api/v1/events/rsvps/{rsvp_id}", - ...options, - }); -}; - -/** - * Read Rsvp - */ -export const getRsvp = ( - options: Options, +export const subscriptionsReadSubscription = < + ThrowOnError extends boolean = false, +>( + options: Options, ) => { return (options.client ?? _heyApiClient).get< - GetRsvpResponse, - GetRsvpError, + SubscriptionsReadSubscriptionResponse, + SubscriptionsReadSubscriptionError, ThrowOnError >({ - url: "/api/v1/events/rsvps/{rsvp_id}", + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/subscriptions/{subscription_id}", ...options, }); }; /** - * Update Rsvp + * Update Subscription + * Update a subscription (superuser only). + * Handles upgrades/downgrades. */ -export const updateRsvp = ( - options: Options, +export const subscriptionsUpdateSubscription = < + ThrowOnError extends boolean = false, +>( + options: Options, ) => { return (options.client ?? _heyApiClient).put< - UpdateRsvpResponse, - UpdateRsvpError, + SubscriptionsUpdateSubscriptionResponse, + SubscriptionsUpdateSubscriptionError, ThrowOnError >({ - url: "/api/v1/events/rsvps/{rsvp_id}", + security: [ + { + scheme: "bearer", + type: "http", + }, + ], + url: "/api/v1/subscriptions/{subscription_id}", ...options, headers: { "Content-Type": "application/json", @@ -600,35 +1369,17 @@ export const updateRsvp = ( }; /** - * Update Rsvp Status + * Renew Subscription + * Renew a subscription (superuser only). */ -export const updateRsvpStatus = ( - options: Options, -) => { - return (options.client ?? _heyApiClient).patch< - UpdateRsvpStatusResponse, - UpdateRsvpStatusError, - ThrowOnError - >({ - url: "/api/v1/events/rsvps/{rsvp_id}/status", - ...options, - headers: { - "Content-Type": "application/json", - ...options?.headers, - }, - }); -}; - -/** - * Create Event - * Create a new event. - */ -export const createEvent = ( - options: Options, +export const subscriptionsRenewSubscription = < + ThrowOnError extends boolean = false, +>( + options: Options, ) => { return (options.client ?? _heyApiClient).post< - CreateEventResponse, - CreateEventError, + SubscriptionsRenewSubscriptionResponse, + SubscriptionsRenewSubscriptionError, ThrowOnError >({ security: [ @@ -637,25 +1388,25 @@ export const createEvent = ( type: "http", }, ], - url: "/api/v1/events/", + url: "/api/v1/subscriptions/{subscription_id}/renew", ...options, - headers: { - "Content-Type": "application/json", - ...options?.headers, - }, }); }; /** - * Get User Events - * Get all events created by the current user with pagination. + * Read Subscriptions + * Get subscriptions. + * Regular users can only see their subscriptions. + * Superusers can see all subscriptions. */ -export const getUserEvents = ( - options?: Options, +export const subscriptionsReadSubscriptions = < + ThrowOnError extends boolean = false, +>( + options?: Options, ) => { return (options?.client ?? _heyApiClient).get< - GetUserEventsResponse, - GetUserEventsError, + SubscriptionsReadSubscriptionsResponse, + SubscriptionsReadSubscriptionsError, ThrowOnError >({ security: [ @@ -664,198 +1415,7 @@ export const getUserEvents = ( type: "http", }, ], - url: "/api/v1/events/me", + url: "/api/v1/subscriptions/", ...options, }); }; - -/** - * Get Upcoming Events - * Get upcoming public events with pagination. - */ -export const getUpcomingEvents = ( - options?: Options, -) => { - return (options?.client ?? _heyApiClient).get< - GetUpcomingEventsResponse, - GetUpcomingEventsError, - ThrowOnError - >({ - security: [ - { - scheme: "bearer", - type: "http", - }, - ], - url: "/api/v1/events/upcoming", - ...options, - }); -}; - -/** - * Get Public Events - * Get all public events with pagination. - */ -export const getPublicEvents = ( - options?: Options, -) => { - return (options?.client ?? _heyApiClient).get< - GetPublicEventsResponse, - GetPublicEventsError, - ThrowOnError - >({ - url: "/api/v1/events/public", - ...options, - }); -}; - -/** - * Delete Event - * Delete event (soft delete by default). - */ -export const deleteEvent = ( - options: Options, -) => { - return (options.client ?? _heyApiClient).delete< - DeleteEventResponse, - DeleteEventError, - ThrowOnError - >({ - security: [ - { - scheme: "bearer", - type: "http", - }, - ], - url: "/api/v1/events/{event_id}", - ...options, - }); -}; - -/** - * Get Event - * Get event by ID. - */ -export const getEvent = ( - options: Options, -) => { - return (options.client ?? _heyApiClient).get< - GetEventResponse, - GetEventError, - ThrowOnError - >({ - security: [ - { - scheme: "bearer", - type: "http", - }, - ], - url: "/api/v1/events/{event_id}", - ...options, - }); -}; - -/** - * Update Event - * Update event. - */ -export const updateEvent = ( - options: Options, -) => { - return (options.client ?? _heyApiClient).put< - UpdateEventResponse, - UpdateEventError, - ThrowOnError - >({ - security: [ - { - scheme: "bearer", - type: "http", - }, - ], - url: "/api/v1/events/{event_id}", - ...options, - headers: { - "Content-Type": "application/json", - ...options?.headers, - }, - }); -}; - -/** - * Get Event By Slug - * Get event by slug. - */ -export const getEventBySlug = ( - options: Options, -) => { - return (options.client ?? _heyApiClient).get< - GetEventBySlugResponse, - GetEventBySlugError, - ThrowOnError - >({ - security: [ - { - scheme: "bearer", - type: "http", - }, - ], - url: "/api/v1/events/by-slug/{slug}", - ...options, - }); -}; - -/** - * Generate Presigned Url - * Generate a presigned URL for uploading a file. - * - * This endpoint creates a secure token that allows direct upload to the storage system. - * After successful upload, the file will be accessible at the returned file_url. - */ -export const generatePresignedUrl = ( - options: Options, -) => { - return (options.client ?? _heyApiClient).post< - GeneratePresignedUrlResponse, - GeneratePresignedUrlError, - ThrowOnError - >({ - security: [ - { - scheme: "bearer", - type: "http", - }, - ], - url: "/api/v1/uploads/presigned-url", - ...options, - headers: { - "Content-Type": "application/json", - ...options?.headers, - }, - }); -}; - -/** - * Upload File - * Upload a file using a presigned URL token. - * - * This endpoint handles the actual file upload after a presigned URL is generated. - * The token validates the upload permissions and destination. - */ -export const uploadFile = ( - options: Options, -) => { - return (options.client ?? _heyApiClient).post< - unknown, - UploadFileError, - ThrowOnError - >({ - ...formDataBodySerializer, - url: "/api/v1/uploads/{token}", - ...options, - headers: { - "Content-Type": null, - ...options?.headers, - }, - }); -}; diff --git a/frontend/src/client/types.gen.ts b/frontend/src/client/types.gen.ts index 1b37e0a..d02fe6c 100644 --- a/frontend/src/client/types.gen.ts +++ b/frontend/src/client/types.gen.ts @@ -1,11 +1,39 @@ // This file is auto-generated by @hey-api/openapi-ts -export type BodyChangePassword = { - current_password: string; - new_password: string; -}; +export type AgeClass = "kid" | "teen" | "young" | "middle_age" | "elder"; -export type BodyLoginOauth = { +export const AgeClass = { + KID: "kid", + TEEN: "teen", + YOUNG: "young", + MIDDLE_AGE: "middle_age", + ELDER: "elder", +} as const; + +/** + * Enumeration of all possible background types. + * The value is a lowercase string with underscores for spaces. + */ +export type BackgroundType = + | "white" + | "soft_gray" + | "creamy" + | "white_creamy" + | "raw_concrete"; + +/** + * Enumeration of all possible background types. + * The value is a lowercase string with underscores for spaces. + */ +export const BackgroundType = { + WHITE: "white", + SOFT_GRAY: "soft_gray", + CREAMY: "creamy", + WHITE_CREAMY: "white_creamy", + RAW_CONCRETE: "raw_concrete", +} as const; + +export type BodyLoginLoginAccessToken = { grant_type?: string | null; username: string; password: string; @@ -14,352 +42,609 @@ export type BodyLoginOauth = { client_secret?: string | null; }; -export type BodyUploadFile = { - file: Blob | File; -}; +/** + * Enumeration of all possible framing types for the subject. + * The value is a lowercase string with underscores for spaces. + */ +export type FramingType = + | "front_half_body" + | "front_half_body_lower" + | "front_full_body" + | "back_half_body" + | "back_half_body_lower" + | "back_full_body" + | "side_half_body" + | "side_half_body_lower" + | "side_full_body"; -export type EventCreate = { - title: string; - description?: string | null; - location_name?: string | null; - location_address?: string | null; - location_url?: string | null; - event_date: string; - event_start_time?: string | null; - event_end_time?: string | null; - timezone: string; - rsvp_deadline?: string | null; - is_public?: boolean; - access_code?: string | null; - theme_id?: string | null; - custom_theme_settings?: { - [key: string]: unknown; - } | null; - additional_info?: { - [key: string]: unknown; - } | null; - is_active?: boolean; - rsvp_enabled?: boolean; - gift_registry_enabled?: boolean; - updates_enabled?: boolean; - max_guests_per_invitation?: number | null; - contact_email?: string | null; - contact_phone?: string | null; - slug: string; -}; - -export type EventResponse = { - title: string; - description?: string | null; - location_name?: string | null; - location_address?: string | null; - location_url?: string | null; - event_date: string; - event_start_time?: string | null; - event_end_time?: string | null; - timezone: string; - rsvp_deadline?: string | null; - is_public?: boolean; - access_code?: string | null; - theme_id?: string | null; - custom_theme_settings?: { - [key: string]: unknown; - } | null; - additional_info?: { - [key: string]: unknown; - } | null; - is_active?: boolean; - rsvp_enabled?: boolean; - gift_registry_enabled?: boolean; - updates_enabled?: boolean; - max_guests_per_invitation?: number | null; - contact_email?: string | null; - contact_phone?: string | null; - id: string; - created_by: string; - created_at: string; - updated_at: string; - slug: string; -}; - -export type EventThemeCreate = { - name: string; - description?: string | null; - preview_image_url?: string | null; - background_image_url?: string | null; - foreground_image_url?: string | null; - color_palette: { - [key: string]: string; - }; - asset_image_urls?: { - [key: string]: string; - } | null; - fonts: { - [key: string]: string; - }; - is_active?: boolean; -}; - -export type EventThemeResponse = { - name: string; - description?: string | null; - preview_image_url?: string | null; - background_image_url?: string | null; - foreground_image_url?: string | null; - color_palette: { - [key: string]: string; - }; - asset_image_urls?: { - [key: string]: string; - } | null; - fonts: { - [key: string]: string; - }; - is_active?: boolean; - id: string; -}; - -export type EventThemeUpdate = { - name?: string | null; - description?: string | null; - preview_image_url?: string | null; - background_image_url?: string | null; - foreground_image_url?: string | null; - color_palette?: { - [key: string]: string; - } | null; - asset_image_urls?: { - [key: string]: string; - } | null; - fonts?: { - [key: string]: string; - } | null; - is_active?: boolean; -}; - -export type EventUpdate = { - title?: string | null; - description?: string | null; - location_name?: string | null; - location_address?: string | null; - location_url?: string | null; - event_date?: string | null; - event_start_time?: string | null; - event_end_time?: string | null; - timezone?: string | null; - rsvp_deadline?: string | null; - is_public?: boolean; - access_code?: string | null; - theme_id?: string | null; - custom_theme_settings?: { - [key: string]: unknown; - } | null; - additional_info?: { - [key: string]: unknown; - } | null; - is_active?: boolean; - rsvp_enabled?: boolean; - gift_registry_enabled?: boolean; - updates_enabled?: boolean; - max_guests_per_invitation?: number | null; - contact_email?: string | null; - contact_phone?: string | null; - slug?: string | null; -}; - -export type GuestCreate = { - event_id: string; - invited_by: string; - user_id?: string | null; - full_name: string; - email?: string | null; - phone?: string | null; - max_additional_guests?: number | null; - dietary_restrictions?: string | null; - notes?: string | null; - custom_fields?: { - [key: string]: unknown; - } | null; - can_bring_guests?: boolean | null; - invitation_code: string; -}; - -export type GuestRead = { - event_id: string; - invited_by: string; - user_id?: string | null; - full_name: string; - email?: string | null; - phone?: string | null; - max_additional_guests?: number | null; - dietary_restrictions?: string | null; - notes?: string | null; - custom_fields?: { - [key: string]: unknown; - } | null; - can_bring_guests?: boolean | null; - id: string; - status: GuestStatus; - invitation_sent_at?: string | null; - response_date?: string | null; - actual_additional_guests: number; - is_blocked: boolean; -}; - -export type GuestStatus = - | "invited" - | "pending" - | "confirmed" - | "declined" - | "waitlisted" - | "cancelled"; - -export const GuestStatus = { - INVITED: "invited", - PENDING: "pending", - CONFIRMED: "confirmed", - DECLINED: "declined", - WAITLISTED: "waitlisted", - CANCELLED: "cancelled", +/** + * Enumeration of all possible framing types for the subject. + * The value is a lowercase string with underscores for spaces. + */ +export const FramingType = { + FRONT_HALF_BODY: "front_half_body", + FRONT_HALF_BODY_LOWER: "front_half_body_lower", + FRONT_FULL_BODY: "front_full_body", + BACK_HALF_BODY: "back_half_body", + BACK_HALF_BODY_LOWER: "back_half_body_lower", + BACK_FULL_BODY: "back_full_body", + SIDE_HALF_BODY: "side_half_body", + SIDE_HALF_BODY_LOWER: "side_half_body_lower", + SIDE_FULL_BODY: "side_full_body", } as const; -export type GuestUpdate = { - full_name?: string | null; - email?: string | null; - phone?: string | null; - status?: GuestStatus | null; - max_additional_guests?: number | null; - actual_additional_guests?: number | null; - dietary_restrictions?: string | null; - notes?: string | null; - custom_fields?: { - [key: string]: unknown; - } | null; - is_blocked?: boolean | null; - can_bring_guests?: boolean | null; +export type GenerationCreate = { + id?: string; + created_at?: string; + updated_at?: string; + batch_size: number; + positive_prompt: string; + negative_prompt?: string | null; + subject_id?: string | null; + subject_slug?: string | null; + product_id?: string | null; + product_slug?: string | null; + product_image?: string | null; + product_lora_weight?: number; + subject_lora_weight?: number; + product2_id?: string | null; + product2_slug?: string | null; + product2_image?: string | null; + product2_lora_weight?: number; + width: number; + height: number; + steps?: number; + seed?: number | null; + refine?: boolean; + scale_factor?: number | null; + lighting?: string | null; + framing?: string | null; + perspective?: string | null; + background?: string | null; + tone?: string | null; + pose?: string | null; + style?: string | null; + extra_prompt?: string | null; + generated_prompt?: string | null; + shot_type?: string | null; +}; + +export type GenerationPublic = { + id: string; + created_at: string; + updated_at: string; + batch_size: number; + positive_prompt: string; + negative_prompt?: string | null; + subject_id: string; + product_id: string; + subject_image_url?: string | null; + product_image_url?: string | null; + product_lora_weight?: number; + subject_lora_weight?: number; + product2_id?: string | null; + product2_image_url?: string | null; + product2_lora_weight?: number; + width: number; + height: number; + steps: number; + seed: number; + refine: boolean; + scale_factor?: number | null; + lighting?: string | null; + framing?: string | null; + perspective?: string | null; + background?: string | null; + tone?: string | null; + pose?: string | null; + style?: string | null; + generated_prompt?: string | null; + extra_prompt?: string | null; + predictions: Array; + owner_id: string; + shot_type?: string | null; +}; + +export type GenerationStatus = { + id: string; + status: string; + total: number; + completed: number; + error: number; + latest_prediction_status?: PredictionStatus | null; }; export type HttpValidationError = { detail?: Array; }; -export type LoginRequest = { - email: string; - password: string; +export type Message = { + message: string; }; -export type PaginatedResponseEventResponse = { - total: number; - items: Array; - page: number; - size: number; +export type NewPassword = { + token: string; + new_password: string; }; /** - * Request model for generating presigned URLs. + * Tracks the payment state of a subscription + * + * PENDING: Initial state when subscription is created but not paid + * PAID: Payment successfully received + * PARTIALLY_PAID: Some payment received but full amount not covered + * FAILED: Payment attempt failed + * REFUNDED: Full payment refunded + * PARTIALLY_REFUNDED: Partial refund issued */ -export type PresignedUrlRequest = { - /** - * Original filename of the image - */ - filename: string; - /** - * Content type of the file (e.g., image/jpeg) - */ - content_type: string; - /** - * Folder to store the file in - */ - folder?: string; -}; +export type PaymentStatus = + | "PENDING" + | "PAID" + | "PARTIALLY_PAID" + | "FAILED" + | "REFUNDED" + | "PARTIALLY_REFUNDED"; /** - * Response model for presigned URL generation. + * Tracks the payment state of a subscription + * + * PENDING: Initial state when subscription is created but not paid + * PAID: Payment successfully received + * PARTIALLY_PAID: Some payment received but full amount not covered + * FAILED: Payment attempt failed + * REFUNDED: Full payment refunded + * PARTIALLY_REFUNDED: Partial refund issued */ -export type PresignedUrlResponse = { - /** - * URL to upload the file to - */ - upload_url: string; - /** - * URL where the file will be accessible after upload - */ - file_url: string; - /** - * Time in seconds until the upload URL expires - */ - expires_in: number; -}; - -export type RsvpSchema = { - status: RsvpStatus; - number_of_guests?: number; - response_message?: string | null; - dietary_requirements?: string | null; - additional_info?: unknown; - id: string; - response_date: string; - created_at: string; - updated_at: string; -}; - -export type RsvpSchemaCreate = { - status: RsvpStatus; - number_of_guests?: number; - response_message?: string | null; - dietary_requirements?: string | null; - additional_info?: unknown; - event_id: string; - guest_id: string; -}; - -export type RsvpSchemaUpdate = { - status?: RsvpStatus | null; - number_of_guests?: number | null; - response_message?: string | null; - dietary_requirements?: string | null; - additional_info?: { - [key: string]: unknown; - } | null; -}; - -export type RsvpStatus = "attending" | "not_attending" | "maybe"; - -export const RsvpStatus = { - ATTENDING: "attending", - NOT_ATTENDING: "not_attending", - MAYBE: "maybe", +export const PaymentStatus = { + PENDING: "PENDING", + PAID: "PAID", + PARTIALLY_PAID: "PARTIALLY_PAID", + FAILED: "FAILED", + REFUNDED: "REFUNDED", + PARTIALLY_REFUNDED: "PARTIALLY_REFUNDED", } as const; -export type RefreshTokenRequest = { - refresh_token: string; +export type Prediction = { + id?: string; + created_at?: string; + updated_at?: string; + status?: PredictionStatus; + seed: number; + result_image_url?: string | null; + refined_image_url?: string | null; + prompt_id?: string | null; + generation_id: string; + favourite?: boolean; + shot_type?: string | null; +}; + +export type PredictionStatus = + | "pending" + | "captioning" + | "generating" + | "intermediate" + | "tryon-generating" + | "refining" + | "completed" + | "error"; + +export const PredictionStatus = { + PENDING: "pending", + CAPTIONING: "captioning", + GENERATING: "generating", + INTERMEDIATE: "intermediate", + TRYON_GENERATING: "tryon-generating", + REFINING: "refining", + COMPLETED: "completed", + ERROR: "error", +} as const; + +export type PredictionsPublic = { + data: Array; + count: number; +}; + +export type Product = { + id?: string; + created_at?: string; + updated_at?: string; + sku: string; + name: string; + slug: string; + local_model_path?: string | null; + lora_trigger?: string | null; + brand?: string | null; + description?: string | null; + type: ProductType; + category: ProductCategory; + fitting?: ProductFitting | null; + cover_image_url?: string | null; + materials?: string | null; + public?: boolean; + enabled?: boolean; + archived?: boolean; + demo?: boolean; + owner_id: string; + lora_status?: string; + /** + * ID of the current/last training task + */ + current_training_id?: string | null; + /** + * Current training progress percentage + */ + training_progress?: number; + /** + * Last training error message if any + */ + training_error?: string | null; + data_image_urls?: Array; + /** + * Dictionary of selected shots with their predictions + */ + selected_shots?: { + [key: string]: { + [key: string]: unknown; + }; + }; +}; + +export type ProductCategory = "UPPER_BODY" | "LOWER_BODY" | "DRESSES"; + +export const ProductCategory = { + UPPER_BODY: "UPPER_BODY", + LOWER_BODY: "LOWER_BODY", + DRESSES: "DRESSES", +} as const; + +export type ProductCreate = { + sku?: string | null; + name: string; + brand?: string | null; + description?: string | null; + type: ProductType; + local_model_path?: string | null; + lora_trigger?: string | null; + category: ProductCategory; + fitting?: ProductFitting | null; + /** + * URL or base64 string for cover image + */ + cover_image: string; + materials?: string | null; + public?: boolean; + /** + * List of image URLs or base64 strings + */ + data_images?: Array | null; + /** + * Whether to start training after creation + */ + train?: boolean; +}; + +export type ProductFitting = "regular" | "slim" | "loose" | "oversize"; + +export const ProductFitting = { + REGULAR: "regular", + SLIM: "slim", + LOOSE: "loose", + OVERSIZE: "oversize", +} as const; + +export type ProductPublic = { + id: string; + created_at: string; + updated_at?: string; + sku: string; + name: string; + slug: string; + brand: string | null; + description: string | null; + type: ProductType; + category: ProductCategory; + fitting: ProductFitting | null; + cover_image_url: string; + materials: string; + public: boolean; + enabled: boolean; + archived: boolean; + demo: boolean; + owner_id: string; + lora_status: string; + lora_trigger: string | null; + data_image_urls: Array; + current_training_id?: string | null; + training_progress?: number; + training_error?: string | null; + selected_shots?: { + [key: string]: unknown; + }; +}; + +export type ProductType = "garment" | "bag" | "other"; + +export const ProductType = { + GARMENT: "garment", + BAG: "bag", + OTHER: "other", +} as const; + +export type ProductUpdate = { + name?: string | null; + sku?: string | null; + brand?: string | null; + description?: string | null; + type?: ProductType | null; + category?: ProductCategory | null; + fitting?: ProductFitting | null; + /** + * URL or base64 string for cover image + */ + cover_image?: string | null; + materials?: string | null; + public?: boolean | null; + /** + * List of image URLs or base64 strings to update + */ + data_images?: Array | null; +}; + +export type ProductsPublic = { + id?: string; + created_at?: string; + updated_at?: string; + data: Array; + count: number; +}; + +export type PromptBuildRequest = { + subject_id?: string | null; + product_id?: string | null; + framing?: FramingType | null; + background?: string | null; + style?: string | null; +}; + +export type PromptResponse = { + prompt: string; + parameters: { + [key: string]: unknown; + }; +}; + +export type PromptSection = "subject" | "product" | "background" | "framing"; + +export const PromptSection = { + SUBJECT: "subject", + PRODUCT: "product", + BACKGROUND: "background", + FRAMING: "framing", +} as const; + +export type PromptSectionRequest = { + section: PromptSection; + /** + * Mandatory for subject and product sections + */ + id?: string | null; + /** + * Mandatory for framing and background sections + */ + selector?: FramingType | BackgroundType | null; +}; + +export type PromptSectionResponse = { + section: PromptSection; + id?: string | null; + selector?: string | null; + result: string; +}; + +export type SelectedShotRequest = { + id?: string; + created_at?: string; + updated_at?: string; + /** + * ID of the product + */ + product_id: string; + /** + * Type of shot (e.g. 'full-body', 'half-body-front') + */ + shot_type: string; + /** + * ID of the prediction to set as favorite. If None, any existing favorite will be removed. + */ + prediction_id?: string | null; +}; + +/** + * Defines the type of service subscription + */ +export type ServiceType = "SELF_SERVICE" | "AGENCY"; + +/** + * Defines the type of service subscription + */ +export const ServiceType = { + SELF_SERVICE: "SELF_SERVICE", + AGENCY: "AGENCY", +} as const; + +export type SubjectCreate = { + name: string; + description?: string | null; + local_model_path?: string | null; + lora_trigger?: string | null; + lora_status?: string; + cover_image: string; + data_images?: Array | null; + age_class: AgeClass; + positive_prompt?: string | null; + negative_prompt?: string | null; + ethnicity?: string | null; + public?: boolean; + subject_type?: SubjectType; +}; + +export type SubjectPublic = { + id: string; + created_at: string; + updated_at?: string; + name: string; + slug: string; + description: string | null; + age_class: AgeClass; + subject_type: SubjectType; + positive_prompt?: string | null; + negative_prompt?: string | null; + ethnicity: string | null; + public: boolean; + enabled: boolean; + lora_status: string; + lora_trigger: string | null; + cover_image_url: string; + data_image_urls: Array; + owner_id: string; +}; + +export type SubjectType = "AI" | "REAL"; + +export const SubjectType = { + AI: "AI", + REAL: "REAL", +} as const; + +export type SubjectUpdate = { + name?: string | null; + description?: string | null; + cover_image?: string | null; + data_images?: Array | null; + age_class?: AgeClass | null; + positive_prompt?: string | null; + negative_prompt?: string | null; + ethnicity?: string | null; + public?: boolean | null; +}; + +export type SubjectsPublic = { + id?: string; + created_at?: string; + updated_at?: string; + data: Array; + count: number; +}; + +export type SubscriptionCreate = { + service_type: ServiceType; + tier: SubscriptionTier; + payment_id?: string | null; +}; + +export type SubscriptionPublic = { + id: string; + created_at?: string; + updated_at?: string; + user_id: string; + service_type: ServiceType; + tier: SubscriptionTier; + start_date: string; + end_date: string; + grace_period_end: string; + credits_total: number; + credits_used: number; + credits_remaining: number; + is_active: boolean; + payment_status: PaymentStatus; + base_price: number; + actual_price: number; + currency: string; +}; + +/** + * Defines the subscription tier level + */ +export type SubscriptionTier = "START" | "SCALE" | "ENTERPRISE"; + +/** + * Defines the subscription tier level + */ +export const SubscriptionTier = { + START: "START", + SCALE: "SCALE", + ENTERPRISE: "ENTERPRISE", +} as const; + +export type SubscriptionUpdate = { + service_type?: ServiceType | null; + tier?: SubscriptionTier | null; +}; + +export type SubscriptionsPublic = { + id?: string; + created_at?: string; + updated_at?: string; + data: Array; + count: number; }; export type Token = { access_token: string; - refresh_token?: string | null; token_type?: string; }; +export type UpdatePassword = { + current_password: string; + new_password: string; +}; + export type UserCreate = { email: string; - first_name: string; - last_name?: string | null; - phone_number?: string | null; password: string; + full_name?: string | null; + is_superuser?: boolean; + is_active?: boolean; +}; + +export type UserPublic = { + id: string; + created_at?: string; + updated_at?: string; + email: string; + full_name: string | null; + is_active: boolean; is_superuser?: boolean; }; -export type UserResponse = { +export type UserRegister = { + id?: string; + created_at?: string; + updated_at?: string; email: string; - first_name: string; - last_name?: string | null; - phone_number?: string | null; - id: string; - is_active: boolean; - is_superuser: boolean; - created_at: string; - updated_at?: string | null; + password: string; + full_name?: string | null; +}; + +export type UserUpdate = { + email?: string | null; + full_name?: string | null; + password?: string | null; + is_superuser?: boolean | null; + is_active?: boolean | null; +}; + +export type UserUpdateMe = { + full_name?: string | null; + email?: string | null; +}; + +export type UsersPublic = { + id?: string; + created_at?: string; + updated_at?: string; + data: Array; + count: number; }; export type ValidationError = { @@ -368,929 +653,1408 @@ export type ValidationError = { type: string; }; -export type RootGetData = { +export type LoginLoginAccessTokenData = { + body: BodyLoginLoginAccessToken; + path?: never; + query?: never; + url: "/api/v1/login/access-token"; +}; + +export type LoginLoginAccessTokenErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type LoginLoginAccessTokenError = + LoginLoginAccessTokenErrors[keyof LoginLoginAccessTokenErrors]; + +export type LoginLoginAccessTokenResponses = { + /** + * Successful Response + */ + 200: Token; +}; + +export type LoginLoginAccessTokenResponse = + LoginLoginAccessTokenResponses[keyof LoginLoginAccessTokenResponses]; + +export type LoginTestTokenData = { body?: never; path?: never; query?: never; - url: "/"; + url: "/api/v1/login/test-token"; }; -export type RootGetResponses = { +export type LoginTestTokenResponses = { + /** + * Successful Response + */ + 200: UserPublic; +}; + +export type LoginTestTokenResponse = + LoginTestTokenResponses[keyof LoginTestTokenResponses]; + +export type LoginRecoverPasswordData = { + body?: never; + path: { + email: string; + }; + query?: never; + url: "/api/v1/password-recovery/{email}"; +}; + +export type LoginRecoverPasswordErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type LoginRecoverPasswordError = + LoginRecoverPasswordErrors[keyof LoginRecoverPasswordErrors]; + +export type LoginRecoverPasswordResponses = { + /** + * Successful Response + */ + 200: Message; +}; + +export type LoginRecoverPasswordResponse = + LoginRecoverPasswordResponses[keyof LoginRecoverPasswordResponses]; + +export type LoginResetPasswordData = { + body: NewPassword; + path?: never; + query?: never; + url: "/api/v1/reset-password/"; +}; + +export type LoginResetPasswordErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type LoginResetPasswordError = + LoginResetPasswordErrors[keyof LoginResetPasswordErrors]; + +export type LoginResetPasswordResponses = { + /** + * Successful Response + */ + 200: Message; +}; + +export type LoginResetPasswordResponse = + LoginResetPasswordResponses[keyof LoginResetPasswordResponses]; + +export type LoginRecoverPasswordHtmlContentData = { + body?: never; + path: { + email: string; + }; + query?: never; + url: "/api/v1/password-recovery-html-content/{email}"; +}; + +export type LoginRecoverPasswordHtmlContentErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type LoginRecoverPasswordHtmlContentError = + LoginRecoverPasswordHtmlContentErrors[keyof LoginRecoverPasswordHtmlContentErrors]; + +export type LoginRecoverPasswordHtmlContentResponses = { /** * Successful Response */ 200: string; }; -export type RootGetResponse = RootGetResponses[keyof RootGetResponses]; +export type LoginRecoverPasswordHtmlContentResponse = + LoginRecoverPasswordHtmlContentResponses[keyof LoginRecoverPasswordHtmlContentResponses]; -export type RegisterData = { +export type UsersReadUsersData = { + body?: never; + path?: never; + query?: { + skip?: number; + limit?: number; + }; + url: "/api/v1/users/"; +}; + +export type UsersReadUsersErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type UsersReadUsersError = + UsersReadUsersErrors[keyof UsersReadUsersErrors]; + +export type UsersReadUsersResponses = { + /** + * Successful Response + */ + 200: UsersPublic; +}; + +export type UsersReadUsersResponse = + UsersReadUsersResponses[keyof UsersReadUsersResponses]; + +export type UsersCreateUserData = { body: UserCreate; path?: never; query?: never; - url: "/api/v1/auth/register"; + url: "/api/v1/users/"; }; -export type RegisterErrors = { +export type UsersCreateUserErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type RegisterError = RegisterErrors[keyof RegisterErrors]; +export type UsersCreateUserError = + UsersCreateUserErrors[keyof UsersCreateUserErrors]; -export type RegisterResponses = { +export type UsersCreateUserResponses = { /** * Successful Response */ - 201: UserResponse; + 200: UserPublic; }; -export type RegisterResponse = RegisterResponses[keyof RegisterResponses]; +export type UsersCreateUserResponse = + UsersCreateUserResponses[keyof UsersCreateUserResponses]; -export type LoginData = { - body: LoginRequest; +export type UsersDeleteUserMeData = { + body?: never; path?: never; query?: never; - url: "/api/v1/auth/login"; + url: "/api/v1/users/me"; }; -export type LoginErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type LoginError = LoginErrors[keyof LoginErrors]; - -export type LoginResponses = { +export type UsersDeleteUserMeResponses = { /** * Successful Response */ - 200: Token; + 200: Message; }; -export type LoginResponse = LoginResponses[keyof LoginResponses]; +export type UsersDeleteUserMeResponse = + UsersDeleteUserMeResponses[keyof UsersDeleteUserMeResponses]; -export type LoginOauthData = { - body: BodyLoginOauth; +export type UsersReadUserMeData = { + body?: never; path?: never; query?: never; - url: "/api/v1/auth/login/oauth"; + url: "/api/v1/users/me"; }; -export type LoginOauthErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type LoginOauthError = LoginOauthErrors[keyof LoginOauthErrors]; - -export type LoginOauthResponses = { +export type UsersReadUserMeResponses = { /** * Successful Response */ - 200: Token; + 200: UserPublic; }; -export type LoginOauthResponse = LoginOauthResponses[keyof LoginOauthResponses]; +export type UsersReadUserMeResponse = + UsersReadUserMeResponses[keyof UsersReadUserMeResponses]; -export type RefreshTokenData = { - body: RefreshTokenRequest; +export type UsersUpdateUserMeData = { + body: UserUpdateMe; path?: never; query?: never; - url: "/api/v1/auth/refresh"; + url: "/api/v1/users/me"; }; -export type RefreshTokenErrors = { +export type UsersUpdateUserMeErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type RefreshTokenError = RefreshTokenErrors[keyof RefreshTokenErrors]; +export type UsersUpdateUserMeError = + UsersUpdateUserMeErrors[keyof UsersUpdateUserMeErrors]; -export type RefreshTokenResponses = { +export type UsersUpdateUserMeResponses = { /** * Successful Response */ - 200: Token; + 200: UserPublic; }; -export type RefreshTokenResponse = - RefreshTokenResponses[keyof RefreshTokenResponses]; +export type UsersUpdateUserMeResponse = + UsersUpdateUserMeResponses[keyof UsersUpdateUserMeResponses]; -export type ChangePasswordData = { - body: BodyChangePassword; +export type UsersUpdatePasswordMeData = { + body: UpdatePassword; path?: never; query?: never; - url: "/api/v1/auth/change-password"; + url: "/api/v1/users/me/password"; }; -export type ChangePasswordErrors = { +export type UsersUpdatePasswordMeErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type ChangePasswordError = - ChangePasswordErrors[keyof ChangePasswordErrors]; +export type UsersUpdatePasswordMeError = + UsersUpdatePasswordMeErrors[keyof UsersUpdatePasswordMeErrors]; -export type ChangePasswordResponses = { +export type UsersUpdatePasswordMeResponses = { + /** + * Successful Response + */ + 200: Message; +}; + +export type UsersUpdatePasswordMeResponse = + UsersUpdatePasswordMeResponses[keyof UsersUpdatePasswordMeResponses]; + +export type UsersRegisterUserData = { + body: UserRegister; + path?: never; + query?: never; + url: "/api/v1/users/signup"; +}; + +export type UsersRegisterUserErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type UsersRegisterUserError = + UsersRegisterUserErrors[keyof UsersRegisterUserErrors]; + +export type UsersRegisterUserResponses = { + /** + * Successful Response + */ + 200: UserPublic; +}; + +export type UsersRegisterUserResponse = + UsersRegisterUserResponses[keyof UsersRegisterUserResponses]; + +export type UsersDeleteUserData = { + body?: never; + path: { + user_id: string; + }; + query?: never; + url: "/api/v1/users/{user_id}"; +}; + +export type UsersDeleteUserErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type UsersDeleteUserError = + UsersDeleteUserErrors[keyof UsersDeleteUserErrors]; + +export type UsersDeleteUserResponses = { + /** + * Successful Response + */ + 200: Message; +}; + +export type UsersDeleteUserResponse = + UsersDeleteUserResponses[keyof UsersDeleteUserResponses]; + +export type UsersReadUserByIdData = { + body?: never; + path: { + user_id: string; + }; + query?: never; + url: "/api/v1/users/{user_id}"; +}; + +export type UsersReadUserByIdErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type UsersReadUserByIdError = + UsersReadUserByIdErrors[keyof UsersReadUserByIdErrors]; + +export type UsersReadUserByIdResponses = { + /** + * Successful Response + */ + 200: UserPublic; +}; + +export type UsersReadUserByIdResponse = + UsersReadUserByIdResponses[keyof UsersReadUserByIdResponses]; + +export type UsersUpdateUserData = { + body: UserUpdate; + path: { + user_id: string; + }; + query?: never; + url: "/api/v1/users/{user_id}"; +}; + +export type UsersUpdateUserErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type UsersUpdateUserError = + UsersUpdateUserErrors[keyof UsersUpdateUserErrors]; + +export type UsersUpdateUserResponses = { + /** + * Successful Response + */ + 200: UserPublic; +}; + +export type UsersUpdateUserResponse = + UsersUpdateUserResponses[keyof UsersUpdateUserResponses]; + +export type UtilsTestEmailData = { + body?: never; + path?: never; + query: { + email_to: string; + }; + url: "/api/v1/utils/test-email/"; +}; + +export type UtilsTestEmailErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type UtilsTestEmailError = + UtilsTestEmailErrors[keyof UtilsTestEmailErrors]; + +export type UtilsTestEmailResponses = { + /** + * Successful Response + */ + 201: Message; +}; + +export type UtilsTestEmailResponse = + UtilsTestEmailResponses[keyof UtilsTestEmailResponses]; + +export type UtilsHealthCheckData = { + body?: never; + path?: never; + query?: never; + url: "/api/v1/utils/health-check/"; +}; + +export type UtilsHealthCheckResponses = { + /** + * Successful Response + */ + 200: boolean; +}; + +export type UtilsHealthCheckResponse = + UtilsHealthCheckResponses[keyof UtilsHealthCheckResponses]; + +export type UtilsSystemHealthCheckData = { + body?: never; + path?: never; + query?: never; + url: "/api/v1/utils/system-health-check"; +}; + +export type UtilsSystemHealthCheckResponses = { + /** + * Successful Response + */ + 200: { + [key: string]: unknown; + }; +}; + +export type UtilsSystemHealthCheckResponse = + UtilsSystemHealthCheckResponses[keyof UtilsSystemHealthCheckResponses]; + +export type UtilsDbHealthData = { + body?: never; + path?: never; + query?: never; + url: "/api/v1/utils/db-check/"; +}; + +export type UtilsDbHealthResponses = { /** * Successful Response */ 200: unknown; }; -export type GetCurrentUserInfoData = { +export type ProductsReadProductsData = { body?: never; path?: never; - query?: never; - url: "/api/v1/auth/me"; + query?: { + archived?: boolean | null; + enabled?: boolean; + brand?: string | null; + skip?: number; + limit?: number; + }; + url: "/api/v1/products/"; }; -export type GetCurrentUserInfoResponses = { +export type ProductsReadProductsErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type ProductsReadProductsError = + ProductsReadProductsErrors[keyof ProductsReadProductsErrors]; + +export type ProductsReadProductsResponses = { /** * Successful Response */ - 200: UserResponse; + 200: ProductsPublic; }; -export type GetCurrentUserInfoResponse = - GetCurrentUserInfoResponses[keyof GetCurrentUserInfoResponses]; +export type ProductsReadProductsResponse = + ProductsReadProductsResponses[keyof ProductsReadProductsResponses]; -export type ListEventThemesData = { - body?: never; +export type ProductsCreateProductData = { + body: ProductCreate; path?: never; + query?: never; + url: "/api/v1/products/"; +}; + +export type ProductsCreateProductErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type ProductsCreateProductError = + ProductsCreateProductErrors[keyof ProductsCreateProductErrors]; + +export type ProductsCreateProductResponses = { + /** + * Successful Response + */ + 200: ProductPublic; +}; + +export type ProductsCreateProductResponse = + ProductsCreateProductResponses[keyof ProductsCreateProductResponses]; + +export type ProductsDeleteProductData = { + body?: never; + path: { + id: string; + }; + query?: never; + url: "/api/v1/products/{id}"; +}; + +export type ProductsDeleteProductErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type ProductsDeleteProductError = + ProductsDeleteProductErrors[keyof ProductsDeleteProductErrors]; + +export type ProductsDeleteProductResponses = { + /** + * Successful Response + */ + 200: Message; +}; + +export type ProductsDeleteProductResponse = + ProductsDeleteProductResponses[keyof ProductsDeleteProductResponses]; + +export type ProductsReadProductData = { + body?: never; + path: { + id: string; + }; + query?: never; + url: "/api/v1/products/{id}"; +}; + +export type ProductsReadProductErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type ProductsReadProductError = + ProductsReadProductErrors[keyof ProductsReadProductErrors]; + +export type ProductsReadProductResponses = { + /** + * Successful Response + */ + 200: ProductPublic; +}; + +export type ProductsReadProductResponse = + ProductsReadProductResponses[keyof ProductsReadProductResponses]; + +export type ProductsUpdateProductData = { + body: ProductUpdate; + path: { + id: string; + }; + query?: never; + url: "/api/v1/products/{id}"; +}; + +export type ProductsUpdateProductErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type ProductsUpdateProductError = + ProductsUpdateProductErrors[keyof ProductsUpdateProductErrors]; + +export type ProductsUpdateProductResponses = { + /** + * Successful Response + */ + 200: ProductPublic; +}; + +export type ProductsUpdateProductResponse = + ProductsUpdateProductResponses[keyof ProductsUpdateProductResponses]; + +export type ProductsReadProductGenerationsData = { + body?: never; + path: { + product_id: string; + }; query?: { skip?: number; limit?: number; }; - url: "/api/v1/event_themes/"; + url: "/api/v1/products/{product_id}/generations"; }; -export type ListEventThemesErrors = { +export type ProductsReadProductGenerationsErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type ListEventThemesError = - ListEventThemesErrors[keyof ListEventThemesErrors]; +export type ProductsReadProductGenerationsError = + ProductsReadProductGenerationsErrors[keyof ProductsReadProductGenerationsErrors]; -export type ListEventThemesResponses = { +export type ProductsReadProductGenerationsResponses = { /** * Successful Response */ - 200: Array; + 200: Array; }; -export type ListEventThemesResponse = - ListEventThemesResponses[keyof ListEventThemesResponses]; +export type ProductsReadProductGenerationsResponse = + ProductsReadProductGenerationsResponses[keyof ProductsReadProductGenerationsResponses]; -export type CreateEventThemeData = { - body: EventThemeCreate; - path?: never; - query?: never; - url: "/api/v1/event_themes/"; -}; - -export type CreateEventThemeErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type CreateEventThemeError = - CreateEventThemeErrors[keyof CreateEventThemeErrors]; - -export type CreateEventThemeResponses = { - /** - * Successful Response - */ - 200: EventThemeResponse; -}; - -export type CreateEventThemeResponse = - CreateEventThemeResponses[keyof CreateEventThemeResponses]; - -export type DeleteEventThemeData = { +export type ProductsRetrainProductData = { body?: never; path: { - theme_id: string; + id: string; }; - query?: { - /** - * Perform hard delete instead of soft delete - */ - hard_delete?: boolean; - }; - url: "/api/v1/event_themes/{theme_id}"; + query?: never; + url: "/api/v1/products{id}/retrain"; }; -export type DeleteEventThemeErrors = { +export type ProductsRetrainProductErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type DeleteEventThemeError = - DeleteEventThemeErrors[keyof DeleteEventThemeErrors]; +export type ProductsRetrainProductError = + ProductsRetrainProductErrors[keyof ProductsRetrainProductErrors]; -export type DeleteEventThemeResponses = { +export type ProductsRetrainProductResponses = { /** * Successful Response */ - 200: unknown; + 200: ProductPublic; }; -export type GetEventThemeData = { +export type ProductsRetrainProductResponse = + ProductsRetrainProductResponses[keyof ProductsRetrainProductResponses]; + +export type ProductsUpdateProductArchiveStatusData = { body?: never; path: { - theme_id: string; - }; - query?: never; - url: "/api/v1/event_themes/{theme_id}"; -}; - -export type GetEventThemeErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type GetEventThemeError = GetEventThemeErrors[keyof GetEventThemeErrors]; - -export type GetEventThemeResponses = { - /** - * Successful Response - */ - 200: EventThemeResponse; -}; - -export type GetEventThemeResponse = - GetEventThemeResponses[keyof GetEventThemeResponses]; - -export type UpdateEventThemeData = { - body: EventThemeUpdate; - path: { - theme_id: string; - }; - query?: never; - url: "/api/v1/event_themes/{theme_id}"; -}; - -export type UpdateEventThemeErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type UpdateEventThemeError = - UpdateEventThemeErrors[keyof UpdateEventThemeErrors]; - -export type UpdateEventThemeResponses = { - /** - * Successful Response - */ - 200: EventThemeResponse; -}; - -export type UpdateEventThemeResponse = - UpdateEventThemeResponses[keyof UpdateEventThemeResponses]; - -export type GetGuestsData = { - body?: never; - path?: never; - query?: { - skip?: number; - limit?: number; - }; - url: "/api/v1/events/guests/"; -}; - -export type GetGuestsErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type GetGuestsError = GetGuestsErrors[keyof GetGuestsErrors]; - -export type GetGuestsResponses = { - /** - * Successful Response - */ - 200: Array; -}; - -export type GetGuestsResponse = GetGuestsResponses[keyof GetGuestsResponses]; - -export type CreateGuestData = { - body: GuestCreate; - path?: never; - query?: never; - url: "/api/v1/events/guests/"; -}; - -export type CreateGuestErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type CreateGuestError = CreateGuestErrors[keyof CreateGuestErrors]; - -export type CreateGuestResponses = { - /** - * Successful Response - */ - 200: GuestRead; -}; - -export type CreateGuestResponse = - CreateGuestResponses[keyof CreateGuestResponses]; - -export type DeleteGuestData = { - body?: never; - path: { - guest_id: string; - }; - query?: never; - url: "/api/v1/events/guests/{guest_id}"; -}; - -export type DeleteGuestErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type DeleteGuestError = DeleteGuestErrors[keyof DeleteGuestErrors]; - -export type DeleteGuestResponses = { - /** - * Successful Response - */ - 200: GuestRead; -}; - -export type DeleteGuestResponse = - DeleteGuestResponses[keyof DeleteGuestResponses]; - -export type GetGuestData = { - body?: never; - path: { - guest_id: string; - }; - query?: never; - url: "/api/v1/events/guests/{guest_id}"; -}; - -export type GetGuestErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type GetGuestError = GetGuestErrors[keyof GetGuestErrors]; - -export type GetGuestResponses = { - /** - * Successful Response - */ - 200: GuestRead; -}; - -export type GetGuestResponse = GetGuestResponses[keyof GetGuestResponses]; - -export type UpdateGuestData = { - body: GuestUpdate; - path: { - guest_id: string; - }; - query?: never; - url: "/api/v1/events/guests/{guest_id}"; -}; - -export type UpdateGuestErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type UpdateGuestError = UpdateGuestErrors[keyof UpdateGuestErrors]; - -export type UpdateGuestResponses = { - /** - * Successful Response - */ - 200: GuestRead; -}; - -export type UpdateGuestResponse = - UpdateGuestResponses[keyof UpdateGuestResponses]; - -export type SetGuestStatusApiV1EventsGuestsGuestIdStatusPatchData = { - body?: never; - path: { - guest_id: string; + id: string; }; query: { - status: GuestStatus; + archived: boolean; }; - url: "/api/v1/events/guests/{guest_id}/status"; + url: "/api/v1/products/{id}/archived"; }; -export type SetGuestStatusApiV1EventsGuestsGuestIdStatusPatchErrors = { +export type ProductsUpdateProductArchiveStatusErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type SetGuestStatusApiV1EventsGuestsGuestIdStatusPatchError = - SetGuestStatusApiV1EventsGuestsGuestIdStatusPatchErrors[keyof SetGuestStatusApiV1EventsGuestsGuestIdStatusPatchErrors]; +export type ProductsUpdateProductArchiveStatusError = + ProductsUpdateProductArchiveStatusErrors[keyof ProductsUpdateProductArchiveStatusErrors]; -export type SetGuestStatusApiV1EventsGuestsGuestIdStatusPatchResponses = { +export type ProductsUpdateProductArchiveStatusResponses = { /** * Successful Response */ - 200: GuestRead; + 200: ProductPublic; }; -export type SetGuestStatusApiV1EventsGuestsGuestIdStatusPatchResponse = - SetGuestStatusApiV1EventsGuestsGuestIdStatusPatchResponses[keyof SetGuestStatusApiV1EventsGuestsGuestIdStatusPatchResponses]; +export type ProductsUpdateProductArchiveStatusResponse = + ProductsUpdateProductArchiveStatusResponses[keyof ProductsUpdateProductArchiveStatusResponses]; -export type GetRsvpsData = { +export type ProductsSetSelectedShotData = { + body: SelectedShotRequest; + path: { + product_id: string; + }; + query?: never; + url: "/api/v1/products/selected_shot/{product_id}"; +}; + +export type ProductsSetSelectedShotErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type ProductsSetSelectedShotError = + ProductsSetSelectedShotErrors[keyof ProductsSetSelectedShotErrors]; + +export type ProductsSetSelectedShotResponses = { + /** + * Successful Response + */ + 200: Product; +}; + +export type ProductsSetSelectedShotResponse = + ProductsSetSelectedShotResponses[keyof ProductsSetSelectedShotResponses]; + +export type SubjectsReadSubjectsData = { body?: never; path?: never; query?: { skip?: number; limit?: number; }; - url: "/api/v1/events/rsvps/"; + url: "/api/v1/subjects/"; }; -export type GetRsvpsErrors = { +export type SubjectsReadSubjectsErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type GetRsvpsError = GetRsvpsErrors[keyof GetRsvpsErrors]; +export type SubjectsReadSubjectsError = + SubjectsReadSubjectsErrors[keyof SubjectsReadSubjectsErrors]; -export type GetRsvpsResponses = { +export type SubjectsReadSubjectsResponses = { /** * Successful Response */ - 200: Array; + 200: SubjectsPublic; }; -export type GetRsvpsResponse = GetRsvpsResponses[keyof GetRsvpsResponses]; +export type SubjectsReadSubjectsResponse = + SubjectsReadSubjectsResponses[keyof SubjectsReadSubjectsResponses]; -export type CreateRsvpData = { - body: RsvpSchemaCreate; +export type SubjectsCreateSubjectData = { + body: SubjectCreate; path?: never; query?: never; - url: "/api/v1/events/rsvps/"; + url: "/api/v1/subjects/"; }; -export type CreateRsvpErrors = { +export type SubjectsCreateSubjectErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type CreateRsvpError = CreateRsvpErrors[keyof CreateRsvpErrors]; +export type SubjectsCreateSubjectError = + SubjectsCreateSubjectErrors[keyof SubjectsCreateSubjectErrors]; -export type CreateRsvpResponses = { +export type SubjectsCreateSubjectResponses = { /** * Successful Response */ - 200: RsvpSchema; + 200: SubjectPublic; }; -export type CreateRsvpResponse = CreateRsvpResponses[keyof CreateRsvpResponses]; +export type SubjectsCreateSubjectResponse = + SubjectsCreateSubjectResponses[keyof SubjectsCreateSubjectResponses]; -export type DeleteRsvpData = { +export type SubjectsDeleteSubjectData = { body?: never; path: { - rsvp_id: string; + id: string; }; query?: never; - url: "/api/v1/events/rsvps/{rsvp_id}"; + url: "/api/v1/subjects/{id}"; }; -export type DeleteRsvpErrors = { +export type SubjectsDeleteSubjectErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type DeleteRsvpError = DeleteRsvpErrors[keyof DeleteRsvpErrors]; +export type SubjectsDeleteSubjectError = + SubjectsDeleteSubjectErrors[keyof SubjectsDeleteSubjectErrors]; -export type DeleteRsvpResponses = { +export type SubjectsDeleteSubjectResponses = { /** * Successful Response */ - 200: RsvpSchema; + 200: Message; }; -export type DeleteRsvpResponse = DeleteRsvpResponses[keyof DeleteRsvpResponses]; +export type SubjectsDeleteSubjectResponse = + SubjectsDeleteSubjectResponses[keyof SubjectsDeleteSubjectResponses]; -export type GetRsvpData = { +export type SubjectsReadSubjectData = { body?: never; path: { - rsvp_id: string; + id: string; }; query?: never; - url: "/api/v1/events/rsvps/{rsvp_id}"; + url: "/api/v1/subjects/{id}"; }; -export type GetRsvpErrors = { +export type SubjectsReadSubjectErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type GetRsvpError = GetRsvpErrors[keyof GetRsvpErrors]; +export type SubjectsReadSubjectError = + SubjectsReadSubjectErrors[keyof SubjectsReadSubjectErrors]; -export type GetRsvpResponses = { +export type SubjectsReadSubjectResponses = { /** * Successful Response */ - 200: RsvpSchema; + 200: SubjectPublic; }; -export type GetRsvpResponse = GetRsvpResponses[keyof GetRsvpResponses]; +export type SubjectsReadSubjectResponse = + SubjectsReadSubjectResponses[keyof SubjectsReadSubjectResponses]; -export type UpdateRsvpData = { - body: RsvpSchemaUpdate; +export type SubjectsUpdateSubjectData = { + body: SubjectUpdate; path: { - rsvp_id: string; + id: string; }; query?: never; - url: "/api/v1/events/rsvps/{rsvp_id}"; + url: "/api/v1/subjects/{id}"; }; -export type UpdateRsvpErrors = { +export type SubjectsUpdateSubjectErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type UpdateRsvpError = UpdateRsvpErrors[keyof UpdateRsvpErrors]; +export type SubjectsUpdateSubjectError = + SubjectsUpdateSubjectErrors[keyof SubjectsUpdateSubjectErrors]; -export type UpdateRsvpResponses = { +export type SubjectsUpdateSubjectResponses = { /** * Successful Response */ - 200: RsvpSchema; + 200: SubjectPublic; }; -export type UpdateRsvpResponse = UpdateRsvpResponses[keyof UpdateRsvpResponses]; +export type SubjectsUpdateSubjectResponse = + SubjectsUpdateSubjectResponses[keyof SubjectsUpdateSubjectResponses]; -export type UpdateRsvpStatusData = { - body: RsvpSchemaUpdate; - path: { - rsvp_id: string; - }; - query?: never; - url: "/api/v1/events/rsvps/{rsvp_id}/status"; -}; - -export type UpdateRsvpStatusErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type UpdateRsvpStatusError = - UpdateRsvpStatusErrors[keyof UpdateRsvpStatusErrors]; - -export type UpdateRsvpStatusResponses = { - /** - * Successful Response - */ - 200: RsvpSchema; -}; - -export type UpdateRsvpStatusResponse = - UpdateRsvpStatusResponses[keyof UpdateRsvpStatusResponses]; - -export type CreateEventData = { - body: EventCreate; - path?: never; - query?: never; - url: "/api/v1/events/"; -}; - -export type CreateEventErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type CreateEventError = CreateEventErrors[keyof CreateEventErrors]; - -export type CreateEventResponses = { - /** - * Successful Response - */ - 201: EventResponse; -}; - -export type CreateEventResponse = - CreateEventResponses[keyof CreateEventResponses]; - -export type GetUserEventsData = { - body?: never; - path?: never; - query?: { - skip?: number; - limit?: number; - include_inactive?: boolean; - }; - url: "/api/v1/events/me"; -}; - -export type GetUserEventsErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type GetUserEventsError = GetUserEventsErrors[keyof GetUserEventsErrors]; - -export type GetUserEventsResponses = { - /** - * Successful Response - */ - 200: PaginatedResponseEventResponse; -}; - -export type GetUserEventsResponse = - GetUserEventsResponses[keyof GetUserEventsResponses]; - -export type GetUpcomingEventsData = { +export type GenerationsReadGenerationsData = { body?: never; path?: never; query?: { skip?: number; limit?: number; }; - url: "/api/v1/events/upcoming"; + url: "/api/v1/generations/"; }; -export type GetUpcomingEventsErrors = { +export type GenerationsReadGenerationsErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type GetUpcomingEventsError = - GetUpcomingEventsErrors[keyof GetUpcomingEventsErrors]; +export type GenerationsReadGenerationsError = + GenerationsReadGenerationsErrors[keyof GenerationsReadGenerationsErrors]; -export type GetUpcomingEventsResponses = { +export type GenerationsReadGenerationsResponses = { /** * Successful Response */ - 200: PaginatedResponseEventResponse; + 200: Array; }; -export type GetUpcomingEventsResponse = - GetUpcomingEventsResponses[keyof GetUpcomingEventsResponses]; +export type GenerationsReadGenerationsResponse = + GenerationsReadGenerationsResponses[keyof GenerationsReadGenerationsResponses]; -export type GetPublicEventsData = { - body?: never; - path?: never; - query?: { - skip?: number; - limit?: number; - }; - url: "/api/v1/events/public"; -}; - -export type GetPublicEventsErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type GetPublicEventsError = - GetPublicEventsErrors[keyof GetPublicEventsErrors]; - -export type GetPublicEventsResponses = { - /** - * Successful Response - */ - 200: PaginatedResponseEventResponse; -}; - -export type GetPublicEventsResponse = - GetPublicEventsResponses[keyof GetPublicEventsResponses]; - -export type DeleteEventData = { - body?: never; - path: { - event_id: string; - }; - query?: { - /** - * Perform hard delete instead of soft delete - */ - hard_delete?: boolean; - }; - url: "/api/v1/events/{event_id}"; -}; - -export type DeleteEventErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type DeleteEventError = DeleteEventErrors[keyof DeleteEventErrors]; - -export type DeleteEventResponses = { - /** - * Successful Response - */ - 204: void; -}; - -export type DeleteEventResponse = - DeleteEventResponses[keyof DeleteEventResponses]; - -export type GetEventData = { - body?: never; - path: { - event_id: string; - }; - query?: { - access_code?: string | null; - }; - url: "/api/v1/events/{event_id}"; -}; - -export type GetEventErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type GetEventError = GetEventErrors[keyof GetEventErrors]; - -export type GetEventResponses = { - /** - * Successful Response - */ - 200: EventResponse; -}; - -export type GetEventResponse = GetEventResponses[keyof GetEventResponses]; - -export type UpdateEventData = { - body: EventUpdate; - path: { - event_id: string; - }; - query?: never; - url: "/api/v1/events/{event_id}"; -}; - -export type UpdateEventErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type UpdateEventError = UpdateEventErrors[keyof UpdateEventErrors]; - -export type UpdateEventResponses = { - /** - * Successful Response - */ - 200: EventResponse; -}; - -export type UpdateEventResponse = - UpdateEventResponses[keyof UpdateEventResponses]; - -export type GetEventBySlugData = { - body?: never; - path: { - slug: string; - }; - query?: { - access_code?: string | null; - }; - url: "/api/v1/events/by-slug/{slug}"; -}; - -export type GetEventBySlugErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type GetEventBySlugError = - GetEventBySlugErrors[keyof GetEventBySlugErrors]; - -export type GetEventBySlugResponses = { - /** - * Successful Response - */ - 200: EventResponse; -}; - -export type GetEventBySlugResponse = - GetEventBySlugResponses[keyof GetEventBySlugResponses]; - -export type GeneratePresignedUrlData = { - body: PresignedUrlRequest; +export type GenerationsCreateGenerationData = { + body: GenerationCreate; path?: never; query?: never; - url: "/api/v1/uploads/presigned-url"; + url: "/api/v1/generations/"; }; -export type GeneratePresignedUrlErrors = { +export type GenerationsCreateGenerationErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type GeneratePresignedUrlError = - GeneratePresignedUrlErrors[keyof GeneratePresignedUrlErrors]; +export type GenerationsCreateGenerationError = + GenerationsCreateGenerationErrors[keyof GenerationsCreateGenerationErrors]; -export type GeneratePresignedUrlResponses = { +export type GenerationsCreateGenerationResponses = { /** * Successful Response */ - 200: PresignedUrlResponse; + 200: GenerationPublic; }; -export type GeneratePresignedUrlResponse = - GeneratePresignedUrlResponses[keyof GeneratePresignedUrlResponses]; +export type GenerationsCreateGenerationResponse = + GenerationsCreateGenerationResponses[keyof GenerationsCreateGenerationResponses]; -export type UploadFileData = { - body: BodyUploadFile; +export type GenerationsDeleteGenerationData = { + body?: never; path: { - token: string; + id: string; }; query?: never; - url: "/api/v1/uploads/{token}"; + url: "/api/v1/generations/{id}"; }; -export type UploadFileErrors = { +export type GenerationsDeleteGenerationErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type UploadFileError = UploadFileErrors[keyof UploadFileErrors]; +export type GenerationsDeleteGenerationError = + GenerationsDeleteGenerationErrors[keyof GenerationsDeleteGenerationErrors]; -export type UploadFileResponses = { +export type GenerationsDeleteGenerationResponses = { + /** + * Successful Response + */ + 200: Message; +}; + +export type GenerationsDeleteGenerationResponse = + GenerationsDeleteGenerationResponses[keyof GenerationsDeleteGenerationResponses]; + +export type GenerationsReadGenerationData = { + body?: never; + path: { + id: string; + }; + query?: never; + url: "/api/v1/generations/{id}"; +}; + +export type GenerationsReadGenerationErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GenerationsReadGenerationError = + GenerationsReadGenerationErrors[keyof GenerationsReadGenerationErrors]; + +export type GenerationsReadGenerationResponses = { + /** + * Successful Response + */ + 200: GenerationPublic; +}; + +export type GenerationsReadGenerationResponse = + GenerationsReadGenerationResponses[keyof GenerationsReadGenerationResponses]; + +export type GenerationsGetGenerationStatusData = { + body?: never; + path: { + id: string; + }; + query?: never; + url: "/api/v1/generations/{id}/status"; +}; + +export type GenerationsGetGenerationStatusErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GenerationsGetGenerationStatusError = + GenerationsGetGenerationStatusErrors[keyof GenerationsGetGenerationStatusErrors]; + +export type GenerationsGetGenerationStatusResponses = { + /** + * Successful Response + */ + 200: GenerationStatus; +}; + +export type GenerationsGetGenerationStatusResponse = + GenerationsGetGenerationStatusResponses[keyof GenerationsGetGenerationStatusResponses]; + +export type TrainingTrainingWebhookData = { + body: { + [key: string]: unknown; + }; + path?: never; + query?: never; + url: "/api/v1/training/webhook"; +}; + +export type TrainingTrainingWebhookErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type TrainingTrainingWebhookError = + TrainingTrainingWebhookErrors[keyof TrainingTrainingWebhookErrors]; + +export type TrainingTrainingWebhookResponses = { /** * Successful Response */ 200: unknown; }; +export type TrainingGetTrainingStatusData = { + body?: never; + path: { + task_id: string; + }; + query?: never; + url: "/api/v1/training/{task_id}/status"; +}; + +export type TrainingGetTrainingStatusErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type TrainingGetTrainingStatusError = + TrainingGetTrainingStatusErrors[keyof TrainingGetTrainingStatusErrors]; + +export type TrainingGetTrainingStatusResponses = { + /** + * Successful Response + */ + 200: { + [key: string]: unknown; + }; +}; + +export type TrainingGetTrainingStatusResponse = + TrainingGetTrainingStatusResponses[keyof TrainingGetTrainingStatusResponses]; + +export type PromptsBuildPromptData = { + body: PromptBuildRequest; + path?: never; + query?: never; + url: "/api/v1/prompts/build"; +}; + +export type PromptsBuildPromptErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type PromptsBuildPromptError = + PromptsBuildPromptErrors[keyof PromptsBuildPromptErrors]; + +export type PromptsBuildPromptResponses = { + /** + * Successful Response + */ + 200: PromptResponse; +}; + +export type PromptsBuildPromptResponse = + PromptsBuildPromptResponses[keyof PromptsBuildPromptResponses]; + +export type PromptsBuildPromptSectionData = { + body: PromptSectionRequest; + path?: never; + query?: never; + url: "/api/v1/prompts/build-section"; +}; + +export type PromptsBuildPromptSectionErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type PromptsBuildPromptSectionError = + PromptsBuildPromptSectionErrors[keyof PromptsBuildPromptSectionErrors]; + +export type PromptsBuildPromptSectionResponses = { + /** + * Successful Response + */ + 200: PromptSectionResponse; +}; + +export type PromptsBuildPromptSectionResponse = + PromptsBuildPromptSectionResponses[keyof PromptsBuildPromptSectionResponses]; + +export type PredictionsReadPredictionData = { + body?: never; + path: { + id: string; + }; + query?: never; + url: "/api/v1/predictions/{id}"; +}; + +export type PredictionsReadPredictionErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type PredictionsReadPredictionError = + PredictionsReadPredictionErrors[keyof PredictionsReadPredictionErrors]; + +export type PredictionsReadPredictionResponses = { + /** + * Successful Response + */ + 200: Prediction; +}; + +export type PredictionsReadPredictionResponse = + PredictionsReadPredictionResponses[keyof PredictionsReadPredictionResponses]; + +export type PredictionsReadPredictionsData = { + body?: never; + path?: never; + query?: { + favourite?: boolean | null; + skip?: number; + limit?: number; + }; + url: "/api/v1/predictions/"; +}; + +export type PredictionsReadPredictionsErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type PredictionsReadPredictionsError = + PredictionsReadPredictionsErrors[keyof PredictionsReadPredictionsErrors]; + +export type PredictionsReadPredictionsResponses = { + /** + * Successful Response + */ + 200: PredictionsPublic; +}; + +export type PredictionsReadPredictionsResponse = + PredictionsReadPredictionsResponses[keyof PredictionsReadPredictionsResponses]; + +export type PredictionsRefinePredictionData = { + body?: never; + path: { + id: string; + }; + query?: never; + url: "/api/v1/predictions/refine/{id}"; +}; + +export type PredictionsRefinePredictionErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type PredictionsRefinePredictionError = + PredictionsRefinePredictionErrors[keyof PredictionsRefinePredictionErrors]; + +export type PredictionsRefinePredictionResponses = { + /** + * Successful Response + */ + 200: Prediction; +}; + +export type PredictionsRefinePredictionResponse = + PredictionsRefinePredictionResponses[keyof PredictionsRefinePredictionResponses]; + +export type PredictionsUpdatePredictionFavouriteStatusData = { + body?: never; + path: { + id: string; + }; + query: { + favourite: boolean; + }; + url: "/api/v1/predictions/{id}/favourite"; +}; + +export type PredictionsUpdatePredictionFavouriteStatusErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type PredictionsUpdatePredictionFavouriteStatusError = + PredictionsUpdatePredictionFavouriteStatusErrors[keyof PredictionsUpdatePredictionFavouriteStatusErrors]; + +export type PredictionsUpdatePredictionFavouriteStatusResponses = { + /** + * Successful Response + */ + 200: Prediction; +}; + +export type PredictionsUpdatePredictionFavouriteStatusResponse = + PredictionsUpdatePredictionFavouriteStatusResponses[keyof PredictionsUpdatePredictionFavouriteStatusResponses]; + +export type SubscriptionsCreateUserSubscriptionData = { + body: SubscriptionCreate; + path: { + user_id: string; + }; + query?: never; + url: "/api/v1/subscriptions/{user_id}"; +}; + +export type SubscriptionsCreateUserSubscriptionErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type SubscriptionsCreateUserSubscriptionError = + SubscriptionsCreateUserSubscriptionErrors[keyof SubscriptionsCreateUserSubscriptionErrors]; + +export type SubscriptionsCreateUserSubscriptionResponses = { + /** + * Successful Response + */ + 200: SubscriptionPublic; +}; + +export type SubscriptionsCreateUserSubscriptionResponse = + SubscriptionsCreateUserSubscriptionResponses[keyof SubscriptionsCreateUserSubscriptionResponses]; + +export type SubscriptionsReadSubscriptionData = { + body?: never; + path: { + subscription_id: string; + }; + query?: never; + url: "/api/v1/subscriptions/{subscription_id}"; +}; + +export type SubscriptionsReadSubscriptionErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type SubscriptionsReadSubscriptionError = + SubscriptionsReadSubscriptionErrors[keyof SubscriptionsReadSubscriptionErrors]; + +export type SubscriptionsReadSubscriptionResponses = { + /** + * Successful Response + */ + 200: SubscriptionPublic; +}; + +export type SubscriptionsReadSubscriptionResponse = + SubscriptionsReadSubscriptionResponses[keyof SubscriptionsReadSubscriptionResponses]; + +export type SubscriptionsUpdateSubscriptionData = { + body: SubscriptionUpdate; + path: { + subscription_id: string; + }; + query?: never; + url: "/api/v1/subscriptions/{subscription_id}"; +}; + +export type SubscriptionsUpdateSubscriptionErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type SubscriptionsUpdateSubscriptionError = + SubscriptionsUpdateSubscriptionErrors[keyof SubscriptionsUpdateSubscriptionErrors]; + +export type SubscriptionsUpdateSubscriptionResponses = { + /** + * Successful Response + */ + 200: SubscriptionPublic; +}; + +export type SubscriptionsUpdateSubscriptionResponse = + SubscriptionsUpdateSubscriptionResponses[keyof SubscriptionsUpdateSubscriptionResponses]; + +export type SubscriptionsRenewSubscriptionData = { + body?: never; + path: { + subscription_id: string; + }; + query?: { + payment_id?: string | null; + }; + url: "/api/v1/subscriptions/{subscription_id}/renew"; +}; + +export type SubscriptionsRenewSubscriptionErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type SubscriptionsRenewSubscriptionError = + SubscriptionsRenewSubscriptionErrors[keyof SubscriptionsRenewSubscriptionErrors]; + +export type SubscriptionsRenewSubscriptionResponses = { + /** + * Successful Response + */ + 200: SubscriptionPublic; +}; + +export type SubscriptionsRenewSubscriptionResponse = + SubscriptionsRenewSubscriptionResponses[keyof SubscriptionsRenewSubscriptionResponses]; + +export type SubscriptionsReadSubscriptionsData = { + body?: never; + path?: never; + query?: { + skip?: number; + limit?: number; + }; + url: "/api/v1/subscriptions/"; +}; + +export type SubscriptionsReadSubscriptionsErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type SubscriptionsReadSubscriptionsError = + SubscriptionsReadSubscriptionsErrors[keyof SubscriptionsReadSubscriptionsErrors]; + +export type SubscriptionsReadSubscriptionsResponses = { + /** + * Successful Response + */ + 200: SubscriptionsPublic; +}; + +export type SubscriptionsReadSubscriptionsResponse = + SubscriptionsReadSubscriptionsResponses[keyof SubscriptionsReadSubscriptionsResponses]; + export type ClientOptions = { baseURL: "http://localhost:8000" | (string & {}); };