export class House { _id: string; _title: string | null; _url: string | null; _neighborhood: string | null; _area: number | null; _rooms: number | null; _price: number | null; _rawPrice: string | null; _description: string| null; _pic: string | null; _baths: number | null; _level: string | null; _phone: string | null; private constructor() {} public static create( id : string, title : string, url : string, neighborhood: string, area : number | string, rooms : number | string, price : number | string, description : string, pic : string, baths : number | string, level : string, phone : string ) { const house = new House(); house._id = id; house._title = title?.trim() || ""; house._url = url?.trim() || ""; house._neighborhood = neighborhood?.trim() || ""; house._area = area ? parseInt(area.toString()) : 0; house._rooms = rooms ? parseInt(rooms.toString()) : 0; house._price = price ? parseInt(price.toString()?.replace(/\./g,'')) : 0; house._rawPrice = price.toString() || ""; house._description = description?.trim() || ""; house._pic = pic?.trim() || ""; house._baths = baths ? parseInt(baths.toString()) : 0; house._level = level?.trim() || ""; house._phone = phone?.trim() || ""; return house; } // Método para verificar coincidencia exacta en habitaciones, baños y precio matchesExact(other: House): boolean { return this.rooms === other.rooms && this.baths === other.baths && this.price === other.price; } public get id() { return this._id; } public get title() { return this._title; } public get url() { return this._url; } public get neighborhood() { return this._neighborhood; } public get area() { return this._area; } public get rooms() { return this._rooms; } public get price() { return this._price; } public get rawPrice() { return this._rawPrice; } public get description() { return this._description; } public get pic() { return this._pic; } public get baths() { return this._baths; } public get level() { return this._level; } public get phone() { return this._phone; } }