// Auteur : Simon-Pierre Boucher — contact@spboucher.ai /** Entrées par défaut de la méthode du coût — module PUR (client + serveur + tests). */ import { DEFAULT_PARAMS } from "./taxonomy"; import type { BuildingSpec, CostInput } from "./types"; export function defaultBuilding(): BuildingSpec { return { type: "detached", quality: "standard", grossFloorAreaSqft: 1800, footprintSqft: null, stories: 2, yearBuilt: null, basement: "unfinished", basementFinishedPct: 0, garage: { type: "none", spaces: 0, areaSqft: null }, structure: "wood_frame", foundation: "poured_concrete", siding: { vinyl: 1 }, roof: "asphalt_shingle", roofGeometry: "gable", roofPitch: 6, windows: "pvc", windowCount: null, heating: "electric_baseboard", hasAirConditioning: false, hasAirExchanger: true, kitchens: 1, kitchenQuality: "standard", bathrooms: 1, powderRooms: 0, bathroomQuality: "standard", bedrooms: null, flooring: {}, deckSqft: 0, drivewaySqft: 0, driveway: "none", fenceLinFt: 0, landscapingSqft: 0, pool: "none", units: 1, }; } export function defaultInput(): CostInput { return { mode: "construction", propertyId: null, listingUid: null, address: null, municipality: null, lat: null, lng: null, locationCode: null, building: defaultBuilding(), quantityOverrides: {}, excludedAssemblies: [], params: JSON.parse(JSON.stringify(DEFAULT_PARAMS)), depreciation: { method: "age_life", effectiveAge: null, economicLife: 60, effectiveAgeSource: "derived", componentConditions: {}, functional: [], externalValueLoss: 0, externalNote: "" }, land: { value: null, source: "none", rollYear: null, method: "" }, attributeSources: {}, roll: null, priceDate: null, }; }