Gå til innholdet

relations

Dette dokumentet er auto-synket fra kildefilene i boligassistent-repoet. Endringer her vil overskrives ved neste sync. Rediger kildefilen direkte.

BuildingSystem ──BELONGS_TO──► Building
Equipment ──BELONGS_TO──► BuildingSystem
Equipment ──LOCATED_IN──► Room
Equipment ──LOCATED_IN──► OutdoorSpace (alternativ)
Equipment ──LOCATED_IN──► SupportSpace (alternativ)

Et bygningssystem er en kategori (f.eks. varmesystem) knyttet til én spesifikk bygning. Et equipment er én konkret enhet (f.eks. varmepumpe) som tilhører et system og er plassert et sted.


Issue ──AFFECTS──► Building
Issue ──AFFECTS──► Room
Issue ──AFFECTS──► OutdoorSpace
Issue ──AFFECTS──► SupportSpace
Issue ──AFFECTS──► BuildingSystem
Issue ──AFFECTS──► Equipment
SafetyItem ──AFFECTS──► Building
SafetyItem ──AFFECTS──► Room
SafetyItem ──AFFECTS──► OutdoorSpace
SafetyItem ──AFFECTS──► SupportSpace
Measurement ──RELATES_TO──► Building
Measurement ──RELATES_TO──► Room
Measurement ──RELATES_TO──► OutdoorSpace
Measurement ──RELATES_TO──► SupportSpace
Measurement ──RELATES_TO──► BuildingSystem
Measurement ──RELATES_TO──► Property

Task ──RESOLVES──────► Issue
Task ──IMPLEMENTS────► ImprovementIdea
Task ──INSPECTS──────► Building
Task ──INSPECTS──────► BuildingSystem
Task ──INSPECTS──────► Room
Task ──INSPECTS──────► OutdoorSpace
ImprovementIdea ──TARGETS──► Building
ImprovementIdea ──TARGETS──► Room
ImprovementIdea ──TARGETS──► OutdoorSpace
ImprovementIdea ──TARGETS──► SupportSpace
ImprovementIdea ──TARGETS──► BuildingSystem
ImprovementIdea ──TARGETS──► Property

Observation ──RELATES_TO──► Building
Observation ──RELATES_TO──► Room
Observation ──RELATES_TO──► OutdoorSpace
Observation ──RELATES_TO──► SupportSpace
Observation ──RELATES_TO──► BuildingSystem
Observation ──RELATES_TO──► InteriorAsset
Observation ──RELATES_TO──► Property

DesignDirection ──GUIDES──► ImprovementIdea
DesignDirection ──GUIDES──► InteriorAsset
InteriorAsset ──LOCATED_IN──► Room
InteriorAsset ──SUPPORTS────► LayoutIntent
LayoutIntent ──APPLIES_TO──► Room

Document ──DESCRIBES──► Property
Document ──DESCRIBES──► Room
Document ──DESCRIBES──► Equipment
Document ──DESCRIBES──► Issue
Document ──DESCRIBES──► BuildingSystem
Document ──DESCRIBES──► Task
Photo ──SHOWS──► Room
Photo ──SHOWS──► OutdoorSpace
Photo ──SHOWS──► Issue
Photo ──SHOWS──► Equipment
Photo ──SHOWS──► InteriorAsset
Photo ──SHOWS──► SupportSpace
ProductReference ──INFORMS──► InteriorAsset
ProductReference ──INFORMS──► ImprovementIdea
ProductReference ──INFORMS──► Task
Manual ──BELONGS_TO──► Equipment

Siden modellen er relasjonell (ikke en grafdatabase), implementeres relasjoner som:

LayoutIntent.room_id — én LayoutIntent per rom.

Fremmednøkkel i barnentitet: Room.floor_id, Equipment.building_system_id.

Ikke brukt direkte — relasjoner modelleres heller som polymorfiske referanser.

Der én entitet kan peke til flere typer (f.eks. Issue kan affektere Room, OutdoorSpace, BuildingSystem), brukes to felter:

location_ref_type TEXT -- 'building' | 'room' | 'outdoor_space' | 'support_space' | 'building_system' | 'property' | ...
location_ref_id UUID -- ID til den aktuelle entiteten

Dette er en bevisst avveining mot strenge fremmednøkler for å holde modellen fleksibel. Se docs/architecture/decision-log.md for begrunnelse.


Disse relasjonene er spesielt viktige for å bygge riktig kontekst til AI-assistenten:

SpørsmålRelasjonssti
«Hva er status i stuen?»Room → Issues, Observations, InteriorAssets, LayoutIntent
«Hvilke oppgaver haster?»Issue(severity=critical) → Task(status=todo)
«Hva passer i dette rommet?»Room → DesignDirection, LayoutIntent, InteriorAssets
«Hva sier manualen om varmepumpen?»Equipment → Manual (file innhold via RAG)
«Hvilke forbedringsidéer har vi for hagen?»OutdoorSpace → ImprovementIdea