import { FindManyOptions } from 'typeorm';
import { PriorityRule } from '../entities/priority-rule.entity';

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

export const PRIORITY_RULES_REPOSITORY = Symbol('PRIORITY_RULES_REPOSITORY');
