import { StorageType } from "../../Base/entities/image.entity"; import { IEventModelAttributes } from "../entity/event.entity"; export interface IEventsRequest { } export interface IEventsGetByCityRequest { city: string; filter?: "all" | "minPrice" | "date"; } export interface IEventsGetByCategoryRequest { categoryId: string; filter?: "all" | "minPrice" | "date"; city?: string; } export interface IEventDetailRequest { city?: string; slug: string; } export interface IEventsGetByVenueRequest { venue: string; } export interface IEventsGetByPerformerRequest { performer: string; } export interface IEventUpsertRequest extends Omit { } export interface IEventCreateRequest { information: { title: string; slug: string; abstract?: string; seo: { title?: string; description?: string; keywords?: string[]; }; media: { images: { url: string; storage: StorageType; }[]; thumbnail: { url: string; storage: StorageType; }; }; suggested?: string; mustKnow?: string; }; roles: { additional_info: { accessibility: string; food_and_drinks: string; parking: string; }; prohibited_items: string[]; entry_requirements: string; age_restriction: string; }; sessions?: { venue: string; city?: string; date: Date; organizer?: string; tickets?: { price: number; capacity: number; seatGroup?: string; }[]; closeSellDate?: Date; isSoldOut?: boolean; lastSoldDate?: Date; hasSeat?: boolean; }[]; performer?: string[]; eventCategory: string; status?: "approved" | "pending"; } export interface IEventDeleteRequest { id: string; } export interface IEventRequest { id: string; } export interface IEventsSearchQueryRequest { query: string; }