SPB Git forge

spb/toveli

Public
14commits 1branches 0releases
1.1 MBsize
maindefault branch
2 h agolast push
TypeScript 50.6% JavaScript 46.1% SQL 2.1% Shell 0.6% CSS 0.5%
3.5 KB · 44 lines typescript
Raw Blame History
1export type Market = "sale" | "rent";23export interface ListingRow {4  uid: string; property_id: string; source_id: string; connector: string; external_id: string | null; market: Market; url: string | null; status: string | null;5  title: string | null; description: string | null; price: number | null; price_label: string | null;6  address: string | null; unit: string | null; city: string | null; region: string | null; sector: string | null; lat: number | null; lng: number | null;7  category: string; type_label: string | null; bedrooms: number | null; bathrooms: number | null; powder_rooms: number | null;8  area_sqft: number | null; lot_sqft: number | null; year_built: number | null; features: string | null; details: string | null; images: string | null; image_count: number | null;9  agency: string | null; broker: string | null; mls: string | null; availability: string | null; furnished: number | null; pets: string | null;10  first_seen: string | null; last_seen: string | null; updated_at: string | null; quality_score: number | null; dup_of: string | null; provenance: string | null;11}1213export interface ValuationRow {14  listing_uid: string; property_id: string | null; model: string; model_version: string | null; estimate: number | null; low: number | null; high: number | null;15  confidence_pct: number | null; confidence: string | null; method_detail: string | null; ratio: number | null; diff: number | null; verdict: string | null; evaluated_at: string | null;16}1718export interface PropertyRow {19  id: string; key_kind: string; key_value: string; address: string | null; unit: string | null; city: string | null; region: string | null; postal_code: string | null;20  lat: number | null; lng: number | null; category: string | null; bedrooms: number | null; bathrooms: number | null; area_sqft: number | null; lot_sqft: number | null; year_built: number | null;21  role_value: number | null; role_land: number | null; role_building: number | null; role_unit_id: string | null;22  n_listings: number; n_sale: number; n_rent: number; min_price: number | null; max_price: number | null; attr_quality: number | null; dedup_confidence: number | null; updated_at: string | null;23}2425export interface ListingCard {26  uid: string; propertyId: string; market: Market; price: number | null; address: string | null; city: string | null; region: string | null;27  category: string; typeLabel: string | null; bedrooms: number | null; bathrooms: number | null; areaSqft: number | null; lat: number | null; lng: number | null;28  image: string | null; imageCount: number; connector: string; sourceId: string; url: string | null; firstSeen: string | null;29  estimate: number | null; ratio: number | null; verdict: string | null; confidence: string | null;30}3132export interface SearchParams {33  q?: string; market?: Market; city?: string; region?: string; category?: string[]; priceMin?: number; priceMax?: number;34  bedroomsMin?: number; bathroomsMin?: number; areaMin?: number; yearMin?: number; bbox?: [number, number, number, number];35  sort?: "recent" | "price_asc" | "price_desc" | "deal" | "area_desc"; limit?: number; offset?: number; withImages?: boolean;36}3738export interface SearchResult { items: ListingCard[]; total: number; limit: number; offset: number; }3940export interface MarketMetricRow {41  scope: string; scope_value: string; market: Market; category: string; n: number; median_price: number | null; p25_price: number | null; p75_price: number | null;42  median_ppsf: number | null; median_days: number | null; new_30d: number | null; median_ratio: number | null; computed_at: string | null;43}44