import type { Property, CreatePropertyInput, UpdatePropertyInput } from '../domain/property'
import type { AssetType, ResultType } from '../domain/enums'

export interface PropertyFilters {
  assetType?: AssetType
  resultType?: ResultType
  sourceType?: string
  city?: string
  minAreaSqm?: number
  maxRentPerSqm?: number
  organizationId?: string
}

export interface IPropertyProvider {
  getAll(filters?: PropertyFilters): Promise<Property[]>
  getById(id: string): Promise<Property | null>
  create(data: CreatePropertyInput): Promise<Property>
  update(id: string, data: UpdatePropertyInput): Promise<Property>
  remove(id: string): Promise<void>
}
