import { z } from 'zod';

export const VALUATION_PROPERTY_TYPES = [
  { value: 'APARTMENT', label: 'Căn hộ' },
  { value: 'HOUSE', label: 'Nhà riêng' },
  { value: 'VILLA', label: 'Biệt thự' },
  { value: 'LAND', label: 'Đất nền' },
  { value: 'OFFICE', label: 'Văn phòng' },
  { value: 'SHOPHOUSE', label: 'Shophouse' },
] as const;

export const CITIES = [
  { value: 'Ho Chi Minh', label: 'TP. Hồ Chí Minh' },
  { value: 'Ha Noi', label: 'Hà Nội' },
  { value: 'Da Nang', label: 'Đà Nẵng' },
] as const;

export const FLOOD_RISK_OPTIONS = [
  { value: 'NONE', label: 'Không có' },
  { value: 'LOW', label: 'Thấp' },
  { value: 'MEDIUM', label: 'Trung bình' },
  { value: 'HIGH', label: 'Cao' },
] as const;

export const valuationFormSchema = z.object({
  propertyType: z.string().min(1, 'Vui lòng chọn loại bất động sản'),
  area: z.string().min(1, 'Vui lòng nhập diện tích').refine(
    (val) => !isNaN(Number(val)) && Number(val) > 0,
    'Diện tích phải lớn hơn 0',
  ),
  district: z.string().min(1, 'Vui lòng nhập quận/huyện'),
  city: z.string().min(1, 'Vui lòng chọn tỉnh/thành phố'),
  bedrooms: z.string().optional(),
  bathrooms: z.string().optional(),
  floors: z.string().optional(),
  frontage: z.string().optional(),
  roadWidth: z.string().optional(),
  yearBuilt: z.string().optional(),
  hasLegalPaper: z.boolean().optional(),
  /** New fields for enhanced form */
  projectId: z.string().optional(),
  description: z.string().optional(),
  deepAnalysis: z.boolean().optional(),
  /** AVM v2 fields */
  useV2: z.boolean().optional(),
  distanceToHospitalKm: z.string().optional(),
  distanceToParkKm: z.string().optional(),
  distanceToMallKm: z.string().optional(),
  floodZoneRisk: z.enum(['NONE', 'LOW', 'MEDIUM', 'HIGH']).optional(),
  hasElevator: z.boolean().optional(),
  hasParking: z.boolean().optional(),
  hasPool: z.boolean().optional(),
});

export type ValuationFormData = z.infer<typeof valuationFormSchema>;
