import type { Inquiry, InquiryStatus, InquiryMessage } from '../domain/inquiry'

export interface InquiryFilters {
  status?: InquiryStatus
  propertyId?: string
  organizationId?: string
}

export interface IInquiryProvider {
  getAll(filters?: InquiryFilters): Promise<Inquiry[]>
  getById(id: string): Promise<Inquiry | null>
  updateStatus(id: string, status: InquiryStatus): Promise<Inquiry>
  markThreadAsRead(id: string): Promise<Inquiry>
  getUnreadCount(): Promise<number>
  addMessage(
    inquiryId: string,
    msg: Omit<InquiryMessage, 'id' | 'inquiryId' | 'createdAt'>,
  ): Promise<Inquiry>
}
