import { FindManyOptions } from 'typeorm'; import { Rate } from '../entities/rate.entity'; export interface IRatesRepository { findById(id: string): Promise; findLiveRates(): Promise; findByPattern(pattern: { rateType: string; rateUnit: string; containerTypeId?: string | null; cargoTypeId?: string | null; tradeDirection?: string | null; }): Promise; findAll(options?: FindManyOptions): Promise; findAndCount(options?: FindManyOptions): Promise<[Rate[], number]>; create(data: Partial): Promise; update(id: string, data: Partial): Promise; softDelete(id: string): Promise; } export const RATES_REPOSITORY = Symbol('RATES_REPOSITORY');