UNPKG

jsq-ticket-type

Version:

TypeScript type definitions for ticket system - microservices types with comprehensive settings management

905 lines 22.3 kB
import { UserRole, EventCategory, EventStatus, OrderItemType, PaymentMethod, NotificationType, MerchandiseCategory, EventMediaType, EventArtistRole, ApprovalStatus } from './enums'; export interface CreateUserDto { id: string; username: string; email: string; phone?: string; password: string; role: UserRole; profileData?: CreateUserProfileDto | CreateArtistProfileDto | CreatePromotorProfileDto; } export interface LoginDto { username: string; password: string; } export interface UpdateUserDto { username?: string; email?: string; phone?: string; password?: string; } export interface CreateUserProfileDto { fullName?: string; dateOfBirth?: string; gender?: string; profileImageUrl?: string; address?: string; city?: string; province?: string; postalCode?: string; nik?: string; preferences?: Record<string, any>; } export interface UpdateUserProfileDto { fullName?: string; dateOfBirth?: string; gender?: string; profileImageUrl?: string; address?: string; city?: string; province?: string; postalCode?: string; nik?: string; preferences?: Record<string, any>; } export interface CreatePromotorProfileDto { companyName: string; fullName: string; phoneBusiness?: string; address?: string; city?: string; province?: string; postalCode?: string; bankName?: string; bankAccountNumber?: string; bankAccountName?: string; taxId?: string; businessLicense?: string; verificationDocuments?: any[]; } export interface UpdatePromotorProfileDto { companyName?: string; fullName?: string; phoneBusiness?: string; address?: string; city?: string; province?: string; postalCode?: string; bankName?: string; bankAccountNumber?: string; bankAccountName?: string; taxId?: string; businessLicense?: string; verificationDocuments?: any[]; } export interface CreateArtistProfileDto { stageName: string; fullName: string; bio?: string; genre?: string[]; profileImageUrl?: string; bannerImageUrl?: string; socialMedia?: Record<string, string>; bankName?: string; bankAccountNumber?: string; bankAccountName?: string; verificationDocuments?: any[]; } export interface UpdateArtistProfileDto { stageName?: string; fullName?: string; bio?: string; genre?: string[]; profileImageUrl?: string; bannerImageUrl?: string; socialMedia?: Record<string, string>; bankName?: string; bankAccountNumber?: string; bankAccountName?: string; verificationDocuments?: any[]; } export interface CreateAdminProfileDto { fullName: string; employeeId?: string; department?: string; position?: string; phoneNumber?: string; emergencyContact?: string; permissions?: string[]; } export interface UpdateAdminProfileDto { fullName?: string; employeeId?: string; department?: string; position?: string; phoneNumber?: string; emergencyContact?: string; permissions?: string[]; } export interface CreateEventDto { title: string; description: string; shortDescription?: string; startDate: string; endDate: string; location: string; venueName?: string; venueAddress?: string; venueCapacity?: number; category: EventCategory; promotorId?: string; imageUrl?: string; bannerImageUrl?: string; imageObjectKey?: string; bannerObjectKey?: string; galleryObjectKeys?: string[]; maxCapacity?: number; priceStartFrom?: number; isFeatured?: boolean; isHighlight?: boolean; highlightOrder?: number; minAge?: number; contactInfo?: Record<string, any>; terms?: string; artistIds?: string[]; tags?: string[]; metadata?: Record<string, any>; } export interface UpdateEventDto { title?: string; description?: string; shortDescription?: string; startDate?: string; endDate?: string; location?: string; venueName?: string; venueAddress?: string; venueCapacity?: number; category?: EventCategory; status?: EventStatus; imageUrl?: string; bannerImageUrl?: string; imageObjectKey?: string; bannerObjectKey?: string; galleryObjectKeys?: string[]; maxCapacity?: number; priceStartFrom?: number; isFeatured?: boolean; isHighlight?: boolean; highlightOrder?: number; minAge?: number; contactInfo?: Record<string, any>; terms?: string; artistIds?: string[]; tags?: string[]; metadata?: Record<string, any>; } export interface CreateEventScheduleDto { eventId: string; title: string; description?: string; startTime: string; endTime: string; location?: string; speakers?: string[]; isBreak?: boolean; order: number; } export interface UpdateEventScheduleDto { title?: string; description?: string; startTime?: string; endTime?: string; location?: string; speakers?: string[]; isBreak?: boolean; order?: number; } export interface EventQueryDto { page?: number; limit?: number; search?: string; category?: EventCategory; status?: EventStatus; location?: string; startDate?: string; endDate?: string; organizerId?: string; isFeatured?: boolean; tags?: string[]; sortBy?: string; sortOrder?: 'ASC' | 'DESC'; } export interface CreateEventMediaDto { eventId: string; type: EventMediaType; url: string; title?: string; description?: string; order?: number; metadata?: Record<string, any>; } export interface UpdateEventMediaDto { type?: EventMediaType; url?: string; title?: string; description?: string; order?: number; metadata?: Record<string, any>; } export interface CreateEventArtistDto { eventId: string; artistId?: string; name: string; role: EventArtistRole; bio?: string; imageUrl?: string; socialMedia?: Record<string, string>; order?: number; metadata?: Record<string, any>; } export interface UpdateEventArtistDto { artistId?: string; name?: string; role?: EventArtistRole; bio?: string; imageUrl?: string; socialMedia?: Record<string, string>; order?: number; metadata?: Record<string, any>; } export interface CreateEventReviewDto { eventId: string; userId?: string; rating: number; title?: string; comment?: string; isAnonymous?: boolean; metadata?: Record<string, any>; } export interface UpdateEventReviewDto { rating?: number; title?: string; comment?: string; isAnonymous?: boolean; metadata?: Record<string, any>; } export interface CreateTicketDto { ticketTypeId: string; orderId?: string; userId?: string; customerInfo: { name: string; email: string; phone?: string; }; seatNumber?: string; metadata?: Record<string, any>; } export interface UpdateTicketDto { status?: string; seatNumber?: string; metadata?: Record<string, any>; } export interface TicketQueryDto { page?: number; limit?: number; eventId?: string; userId?: string; status?: string; ticketTypeId?: string; sortBy?: string; sortOrder?: 'ASC' | 'DESC'; } export interface CreateTicketTypeDto { eventId: string; name: string; description?: string; price: number; quantityTotal: number; saleStartDate?: string; saleEndDate?: string; benefits?: string[]; hasSeating?: boolean; metadata?: Record<string, any>; } export interface UpdateTicketTypeDto { name?: string; description?: string; price?: number; quantityTotal?: number; saleStartDate?: string; saleEndDate?: string; benefits?: string[]; hasSeating?: boolean; metadata?: Record<string, any>; } export interface CreateTicketReservationDto { ticketTypeId: string; quantity: number; customerInfo: { name: string; email: string; phone?: string; }; expiresAt?: string; } export interface OrderItemDto { itemType: OrderItemType; itemId: string; itemName: string; itemDescription?: string; unitPrice: number; quantity: number; discountAmount?: number; itemData?: Record<string, any>; } export interface CreateOrderDto { items: OrderItemDto[]; customerInfo: { name: string; email: string; phone?: string; address?: string; }; shippingInfo?: { address: string; city: string; postalCode: string; country: string; method?: string; }; discountCode?: string; notes?: string; metadata?: Record<string, any>; } export interface UpdateOrderDto { status?: string; customerInfo?: { name?: string; email?: string; phone?: string; address?: string; }; shippingInfo?: { address?: string; city?: string; postalCode?: string; country?: string; method?: string; trackingNumber?: string; }; notes?: string; metadata?: Record<string, any>; } export interface ApplyDiscountDto { orderId: string; discountCode: string; } export interface CreatePaymentDto { orderId: string; amount: number; currency?: string; method: PaymentMethod; provider?: string; returnUrl?: string; metadata?: Record<string, any>; } export interface UpdatePaymentDto { status?: string; paidAt?: string; gatewayTransactionId?: string; gatewayResponse?: Record<string, any>; metadata?: Record<string, any>; } export interface CreatePaymentRefundDto { paymentId: string; amount?: number; reason: string; metadata?: Record<string, any>; } export interface CreateNotificationDto { recipientId: string; type: NotificationType; title: string; message: string; data?: Record<string, any>; scheduledAt?: string; metadata?: Record<string, any>; } export interface UpdateNotificationDto { title?: string; message?: string; data?: Record<string, any>; isRead?: boolean; scheduledAt?: string; metadata?: Record<string, any>; } export interface BulkNotificationDto { recipientIds: string[]; type: NotificationType; title: string; message: string; data?: Record<string, any>; scheduledAt?: string; metadata?: Record<string, any>; } export interface CreateMerchandiseDto { name: string; description?: string; shortDescription?: string; category: MerchandiseCategory; subcategory?: string; tags?: string[]; eventId?: string; basePrice: number; salePrice?: number; costPrice?: number; trackInventory?: boolean; totalStock?: number; images?: string[]; weight?: number; dimensions?: { length: number; width: number; height: number; }; metadata?: Record<string, any>; } export interface UpdateMerchandiseDto { name?: string; description?: string; shortDescription?: string; category?: MerchandiseCategory; subcategory?: string; tags?: string[]; basePrice?: number; salePrice?: number; costPrice?: number; trackInventory?: boolean; totalStock?: number; images?: string[]; weight?: number; dimensions?: { length?: number; width?: number; height?: number; }; metadata?: Record<string, any>; } export interface CreateMerchandiseVariantDto { merchandiseId: string; name: string; sku?: string; price?: number; stock: number; attributes: Record<string, string>; images?: string[]; isActive?: boolean; } export interface CreateMerchandiseOrderDto { merchandiseId: string; variantId?: string; quantity: number; customerInfo: { name: string; email: string; phone?: string; address: string; }; shippingMethod?: string; notes?: string; } export interface FileUploadDto { file: File; category?: string; metadata?: Record<string, any>; } export interface MultipleFileUploadDto { files: File[]; category?: string; metadata?: Record<string, any>; } export interface SearchDto { query: string; filters?: Record<string, any>; page?: number; limit?: number; sortBy?: string; sortOrder?: 'ASC' | 'DESC'; } export interface EventFilterDto { category?: EventCategory; status?: EventStatus; location?: string; startDate?: string; endDate?: string; minPrice?: number; maxPrice?: number; organizerId?: string; isFeatured?: boolean; tags?: string[]; } export interface MerchandiseFilterDto { category?: MerchandiseCategory; minPrice?: number; maxPrice?: number; inStock?: boolean; eventId?: string; ownerId?: string; tags?: string[]; } export interface AnalyticsQueryDto { startDate: string; endDate: string; granularity?: 'day' | 'week' | 'month'; filters?: Record<string, any>; } export interface ReportQueryDto { type: 'sales' | 'events' | 'users' | 'tickets'; startDate: string; endDate: string; format?: 'json' | 'csv' | 'pdf'; filters?: Record<string, any>; } export interface ApproveEventDto { eventId: string; approvedBy: string; approvalNotes?: string; metadata?: Record<string, any>; } export interface RejectEventDto { eventId: string; rejectedBy: string; rejectionReason: string; rejectionNotes?: string; metadata?: Record<string, any>; } export interface EventApprovalQueryDto { page?: number; limit?: number; status?: ApprovalStatus; approvedBy?: string; rejectedBy?: string; startDate?: string; endDate?: string; sortBy?: string; sortOrder?: 'ASC' | 'DESC'; } export interface CreateSystemSettingDto { category: string; key: string; value: any; dataType: string; description?: string; isEncrypted?: boolean; requiresRestart?: boolean; isActive?: boolean; environment?: string; validation?: { required?: boolean; min?: number; max?: number; pattern?: string; enum?: string[]; customValidator?: string; }; metadata?: { group?: string; order?: number; tags?: string[]; icon?: string; helpText?: string; warningMessage?: string; }; defaultValue?: string; isReadOnly?: boolean; isSystemGenerated?: boolean; } export interface UpdateSystemSettingDto { value?: any; description?: string; isActive?: boolean; validation?: { required?: boolean; min?: number; max?: number; pattern?: string; enum?: string[]; customValidator?: string; }; metadata?: { group?: string; order?: number; tags?: string[]; icon?: string; helpText?: string; warningMessage?: string; }; changeReason?: string; } export interface BulkUpdateSettingsDto { settings: Array<{ category: string; key: string; value: any; changeReason?: string; }>; source?: string; batchId?: string; } export interface SystemSettingQueryDto { page?: number; limit?: number; category?: string; environment?: string; isActive?: boolean; isEncrypted?: boolean; requiresRestart?: boolean; search?: string; sortBy?: string; sortOrder?: 'ASC' | 'DESC'; } export interface CreateFeatureFlagDto { name: string; displayName: string; description?: string; type?: string; status?: string; scope?: string; isEnabled?: boolean; rolloutPercentage?: number; targetCriteria?: { userIds?: string[]; roles?: string[]; countries?: string[]; cities?: string[]; deviceTypes?: string[]; browserTypes?: string[]; ipRanges?: string[]; userSegments?: string[]; customAttributes?: Record<string, any>; }; environment?: string; startDate?: string; endDate?: string; configuration?: { fallbackValue?: any; dependencies?: string[]; conflictsWith?: string[]; variants?: Array<{ name: string; value: any; percentage: number; }>; }; metadata?: { category?: string; tags?: string[]; owner?: string; jiraTicket?: string; documentation?: string; priority?: 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL'; }; isPermanent?: boolean; } export interface UpdateFeatureFlagDto { displayName?: string; description?: string; status?: string; isEnabled?: boolean; rolloutPercentage?: number; targetCriteria?: { userIds?: string[]; roles?: string[]; countries?: string[]; cities?: string[]; deviceTypes?: string[]; browserTypes?: string[]; ipRanges?: string[]; userSegments?: string[]; customAttributes?: Record<string, any>; }; startDate?: string; endDate?: string; configuration?: { fallbackValue?: any; dependencies?: string[]; conflictsWith?: string[]; variants?: Array<{ name: string; value: any; percentage: number; }>; }; metadata?: { category?: string; tags?: string[]; owner?: string; jiraTicket?: string; documentation?: string; priority?: 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL'; }; isPermanent?: boolean; } export interface FeatureFlagQueryDto { page?: number; limit?: number; status?: string; scope?: string; environment?: string; isEnabled?: boolean; search?: string; category?: string; tags?: string[]; sortBy?: string; sortOrder?: 'ASC' | 'DESC'; } export interface CreateEmailTemplateDto { templateKey: string; name: string; description?: string; type?: string; subject: string; htmlContent: string; textContent?: string; format?: string; variables?: Array<{ name: string; type: 'string' | 'number' | 'boolean' | 'date' | 'array' | 'object'; required: boolean; defaultValue?: any; description?: string; validation?: { pattern?: string; min?: number; max?: number; enum?: string[]; }; }>; sampleData?: Record<string, any>; priority?: string; isDefault?: boolean; isActive?: boolean; fromName?: string; fromEmail?: string; replyTo?: string; categories?: string[]; tags?: string[]; settings?: { trackOpens?: boolean; trackClicks?: boolean; unsubscribeLink?: boolean; customHeaders?: Record<string, string>; attachments?: Array<{ name: string; url: string; contentType: string; }>; }; localization?: Record<string, { subject: string; htmlContent: string; textContent?: string; }>; parentTemplateId?: string; metadata?: { designer?: string; designTool?: string; thumbnailUrl?: string; previewUrl?: string; testData?: Record<string, any>; }; } export interface UpdateEmailTemplateDto { name?: string; description?: string; subject?: string; htmlContent?: string; textContent?: string; format?: string; variables?: Array<{ name: string; type: 'string' | 'number' | 'boolean' | 'date' | 'array' | 'object'; required: boolean; defaultValue?: any; description?: string; validation?: { pattern?: string; min?: number; max?: number; enum?: string[]; }; }>; sampleData?: Record<string, any>; priority?: string; isDefault?: boolean; isActive?: boolean; fromName?: string; fromEmail?: string; replyTo?: string; categories?: string[]; tags?: string[]; settings?: { trackOpens?: boolean; trackClicks?: boolean; unsubscribeLink?: boolean; customHeaders?: Record<string, string>; attachments?: Array<{ name: string; url: string; contentType: string; }>; }; localization?: Record<string, { subject: string; htmlContent: string; textContent?: string; }>; metadata?: { designer?: string; designTool?: string; thumbnailUrl?: string; previewUrl?: string; testData?: Record<string, any>; }; } export interface EmailTemplateQueryDto { page?: number; limit?: number; type?: string; status?: string; isActive?: boolean; categories?: string[]; tags?: string[]; search?: string; sortBy?: string; sortOrder?: 'ASC' | 'DESC'; } export interface SettingsExportDto { categories?: string[]; environment?: string; includeEncrypted?: boolean; format?: 'JSON' | 'YAML' | 'ENV'; } export interface SettingsImportDto { settings: Array<{ category: string; key: string; value: any; dataType?: string; description?: string; isEncrypted?: boolean; requiresRestart?: boolean; environment?: string; }>; overwriteExisting?: boolean; validateOnly?: boolean; source?: string; } export interface CreateSettingsHistoryDto { settingId: string; settingKey: string; settingCategory: string; oldValue: any; newValue: any; changeType: string; source: string; changeReason?: string; changedBy: string; ipAddress?: string; metadata?: Record<string, any>; } export interface SettingsHistoryQueryDto { page?: number; limit?: number; changeType?: string; source?: string; settingCategory?: string; settingKey?: string; changedBy?: string; startDate?: string; endDate?: string; sortOrder?: 'ASC' | 'DESC'; } //# sourceMappingURL=dtos.d.ts.map