import { KycSubmission } from '../entities/kyc-submission.entity';

export interface IKycRepository {
  create(data: Partial<KycSubmission>): Promise<KycSubmission>;
  findById(id: string): Promise<KycSubmission | null>;
  findByUserId(userId: string): Promise<KycSubmission[]>;
  findLatestByUserId(userId: string): Promise<KycSubmission | null>;
  findPending(page: number, limit: number): Promise<[KycSubmission[], number]>;
  updateStatus(id: string, status: string, reviewedBy: string, rejectReason?: string): Promise<void>;
  save(submission: KycSubmission): Promise<KycSubmission>;
}

export const KYC_REPOSITORY = Symbol('IKycRepository');
