export interface ITransactionProfileImage {
  id: number;
  fileName: string;
  uniqueName: string;
  filePath: string;
  cdnUrl: string;
}

export interface ITransactionAuthor {
  id: number;
  name: string;
  onlineStatus: number;
  profileImage: ITransactionProfileImage | null;
}

export interface ITransactionPlanData {
  name: string;
  amount: number;
  planId: number;
  priceId: number;
  currency: string;
  duration: number;
  autoRenew: number;
  frequency: string;
}

export interface ITransaction {
  id: number;
  subscriptionId: number | null;
  externalOrderId: string | null;
  externalPaymentId: string | null;
  userId: number;
  amount: number;
  currency: string;
  status: number;
  paidAt: string | null;
  planData: ITransactionPlanData | null;
  gateway: string;
  createdAt: string;
  updatedAt: string;
  author: ITransactionAuthor | null;
}

export type TransactionType = "subscription" | "gift-card";

export interface ITransactionListRequest {
  page: number;
  perPage?: number;
  transactionType?: TransactionType;
  userId?: string | number;
}

export interface ITransactionListResponse {
  page: number;
  perPage: number;
  totalRecords: number;
  totalPages: number;
  data: ITransaction[];
}
