import type { Match } from '../domain/match'
import type { MatchStrength } from '../domain/enums'

export interface MatchFilters {
  needId?: string
  propertyId?: string
  minScore?: number
  matchStrength?: MatchStrength
  organizationId?: string
}

export interface IMatchProvider {
  getAll(filters?: MatchFilters): Promise<Match[]>
  getById(id: string): Promise<Match | null>
  getByNeed(needId: string): Promise<Match[]>
  getByProperty(propertyId: string): Promise<Match[]>
  approve(id: string, reviewedBy: string): Promise<Match>
}
