import { FindManyOptions } from 'typeorm';
import { ServiceType } from '../entities/service-type.entity';

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

export const SERVICE_TYPES_REPOSITORY = Symbol('SERVICE_TYPES_REPOSITORY');
