import { type PropertyType } from '@prisma/client';

export const PRICE_VALIDATOR = Symbol('PRICE_VALIDATOR');

export interface PriceValidationParams {
  priceVND: bigint;
  areaM2: number;
  propertyType: PropertyType;
  district: string;
}

export interface PriceValidationResult {
  isValid: boolean;
  isSuspicious: boolean;
  reason?: string;
  pricePerM2: number;
  minPricePerM2: number;
  maxPricePerM2: number;
}

export interface IPriceValidator {
  /** Validate price range for a property type in a given district */
  validate(params: PriceValidationParams): Promise<PriceValidationResult>;
}
