import { FindManyOptions } from 'typeorm';
import { ContainerType } from '../entities/container-type.entity';

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

export const CONTAINER_TYPES_REPOSITORY = Symbol('CONTAINER_TYPES_REPOSITORY');
