export type PaymentStatus = 'requires_payment' | 'succeeded' | 'failed' | 'refunded' | 'chargeback';

export interface PaymentEvent {
  providerEventId: string;
  providerPaymentId: string | null;
  orderId: string | null;
  amountCents: number;
  currency: 'EUR';
  status: Exclude<PaymentStatus, 'requires_payment'>;
  type: 'PaymentSucceeded' | 'PaymentFailed' | 'PaymentRefunded' | 'ChargebackCreated';
  raw: Record<string, unknown>;
}

export interface PaymentIntent {
  id: string;
  reference: string;
  status: 'requires_payment' | 'cancelled' | 'succeeded';
}

export interface PaymentTransaction {
  id: string;
  provider: string;
  providerEventId: string;
  providerPaymentId: string | null;
  orderId: string | null;
  amountCents: number;
  currency: 'EUR';
  status: PaymentStatus;
  createdAt: Date;
}
