import { FindManyOptions } from 'typeorm';
import { Rate } from '../entities/rate.entity';

export interface IRatesRepository {
  findById(id: string): Promise<Rate | null>;
  findLiveRates(): Promise<Rate[]>;
  findAll(options?: FindManyOptions<Rate>): Promise<Rate[]>;
  findAndCount(options?: FindManyOptions<Rate>): Promise<[Rate[], number]>;
  create(data: Partial<Rate>): Promise<Rate>;
  update(id: string, data: Partial<Rate>): Promise<Rate | null>;
  softDelete(id: string): Promise<void>;
}

export const RATES_REPOSITORY = Symbol('RATES_REPOSITORY');
