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──► Property
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). Et equipment er én konkret enhet (f.eks. varmepumpe) som tilhører et system og er plassert et sted.


Issue ──AFFECTS──► Room
Issue ──AFFECTS──► OutdoorSpace
Issue ──AFFECTS──► SupportSpace
Issue ──AFFECTS──► BuildingSystem
Issue ──AFFECTS──► Equipment
SafetyItem ──AFFECTS──► Room
SafetyItem ──AFFECTS──► OutdoorSpace
SafetyItem ──AFFECTS──► SupportSpace
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──────► BuildingSystem
Task ──INSPECTS──────► Room
Task ──INSPECTS──────► OutdoorSpace
ImprovementIdea ──TARGETS──► Room
ImprovementIdea ──TARGETS──► OutdoorSpace
ImprovementIdea ──TARGETS──► SupportSpace
ImprovementIdea ──TARGETS──► BuildingSystem
ImprovementIdea ──TARGETS──► Property

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 -- 'room' | 'outdoor_space' | 'building_system' | ...
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