import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn } from 'typeorm';
export enum TransactionStatus { PENDING = 'pending', COMPLETED = 'completed', FAILED = 'failed', REFUNDED = 'refunded' }
@Entity('transactions')
export class Transaction {
@PrimaryGeneratedColumn('uuid') id: string;
@Column() userId: string;
@Column({ type: 'jsonb' }) items: any[];
@Column({ type: 'decimal', precision: 10, scale: 2 }) subtotal: number;
@Column({ type: 'decimal', precision: 10, scale: 2 }) platformFee: number;
@Column({ type: 'decimal', precision: 10, scale: 2, default: 0 }) giftCardDiscount: number;
@Column({ type: 'decimal', precision: 10, scale: 2 }) totalAmount: number;
@Column({ default: 'USD' }) currency: string;
@Column({ type: 'enum', enum: TransactionStatus, default: TransactionStatus.PENDING }) status: TransactionStatus;
@Column() paymentMethod: string;
@Column({ nullable: true }) gatewaySessionId: string;
@Column({ nullable: true }) gatewayOrderId: string;
@Column({ nullable: true }) userEmail: string;
@CreateDateColumn() createdAt: Date;
@UpdateDateColumn() updatedAt: Date;
}