export interface CouponCreatedEvent {
  couponId: string;
  issuerId: string;
  name: string;
  type: string;
  category: string;
  faceValue: string;
  price: string;
  totalSupply: number;
  timestamp: string;
}

export interface CouponApprovedEvent {
  couponId: string;
  issuerId: string;
  name: string;
  approvedBy?: string;
  timestamp: string;
}

export interface CouponRejectedEvent {
  couponId: string;
  issuerId: string;
  name: string;
  reason: string;
  rejectedBy?: string;
  timestamp: string;
}

export interface CouponSoldEvent {
  couponId: string;
  issuerId: string;
  quantity: number;
  remainingSupply: number;
  timestamp: string;
}

export interface CouponRedeemedEvent {
  couponId: string;
  issuerId: string;
  userId: string;
  storeId?: string;
  timestamp: string;
}

export interface CouponSuspendedEvent {
  couponId: string;
  issuerId: string;
  name: string;
  suspendedBy?: string;
  timestamp: string;
}

export interface CouponExpiredEvent {
  couponId: string;
  issuerId: string;
  name: string;
  timestamp: string;
}
