import type { Shortlist, CreateShortlistInput, UpdateShortlistInput, ShortlistItemInput } from '../domain/shortlist'
import type { ShortlistStatus } from '../domain/enums'

export interface ShortlistFilters {
  needId?: string
  status?: ShortlistStatus
  createdBy?: string
  organizationId?: string
}

export interface IShortlistProvider {
  getAll(filters?: ShortlistFilters): Promise<Shortlist[]>
  getById(id: string): Promise<Shortlist | null>
  create(data: CreateShortlistInput): Promise<Shortlist>
  update(id: string, data: UpdateShortlistInput): Promise<Shortlist>
  addItem(id: string, item: ShortlistItemInput): Promise<Shortlist>
  removeItem(id: string, resultId: string): Promise<Shortlist>
  remove(id: string): Promise<void>
}
