import { PaymentEntity } from '../entities/payment.entity';

/**
 * Payment Repository Interface
 */
export interface IPaymentRepository {
  save(payment: PaymentEntity): Promise<PaymentEntity>;
  findById(id: string): Promise<PaymentEntity | null>;
  findPendingByOrderId(orderId: string): Promise<PaymentEntity | null>;
  findByTransactionId(transactionId: string): Promise<PaymentEntity | null>;
  update(payment: PaymentEntity): Promise<PaymentEntity>;
}

export const PAYMENT_REPOSITORY = Symbol('IPaymentRepository');
