import { IEventModelAttributes } from "./event.entity"; import { IOrganizerModelAttributes } from "./organizer.entity"; import { ISessionModelAttributes } from "./session.entity"; export interface IInvoiceModelAttributes { _id: string; organizer: string | IOrganizerModelAttributes; event: string | IEventModelAttributes; eventName: string; session: string | ISessionModelAttributes; amount: number; organizerCommission: number; tax: number; taxAmount: number; totalAmount: number; paymentAmount: number; currency: string; status: 'pending' | 'billing' | 'payment' | 'canceled' | "approval"; paymentStatus: 'pending' | 'completed' | 'failed'; invoiceNumber: string; description?: string; ticketCount: number; paymentDetails?: { method?: string; transactionId?: string; paidAt?: Date; }; issuedAt?: Date; dueDate?: Date; createdAt: Date; updatedAt: Date; }