import { type ListingStatus, type TransactionType, type PropertyType } from '@prisma/client';
import { type ListingSortBy, type ListingSortOrder } from '../../../domain/repositories/listing.repository';

export class SearchListingsQuery {
  constructor(
    public readonly status?: ListingStatus,
    public readonly transactionType?: TransactionType,
    public readonly propertyType?: PropertyType,
    public readonly city?: string,
    public readonly district?: string,
    public readonly minPrice?: bigint,
    public readonly maxPrice?: bigint,
    public readonly minArea?: number,
    public readonly maxArea?: number,
    public readonly bedrooms?: number,
    public readonly page: number = 1,
    public readonly limit: number = 20,
    public readonly sortBy?: ListingSortBy,
    public readonly newSince?: Date,
    public readonly order?: ListingSortOrder,
  ) {}
}
