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 & {}); };