Gå til innholdet

entities

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

Ansvar: Representerer eiendommen som helhet — tomten med adresse og eierform. Toppnivå-entitet som alle andre tilhører. Bygningsspesifikk informasjon (byggeår, BRA, type) tilhører Building.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
nametextVisningsnavn (f.eks. «Hellebakken 9»)
addresstextGateadresse
postal_codetextPostnummer
citytextPoststed
plot_area_m2decimalTomteareal
ownership_typeenumselveier / sameie / borettslag / aksje
created_byuuidFK til User
created_attimestamptzOpprettelsestidspunkt

Ansvar: Én fysisk bygning på eiendommen. En eiendom kan ha flere bygninger (f.eks. hus, garasje, dukkehus). Holder bygningsspesifikk informasjon som byggeår, areal og type — skilt fra tomtedata i Property.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
nametextVisningsnavn (f.eks. «Hus», «Garasje», «Dukkehus»)
building_typeenummain_house / garage / annex / outbuilding / playhouse / other
build_yearintegerByggeår
renovation_periodsjsonbListe med ombyggingsperioder
bra_i_m2decimalInternt bruksareal
bra_e_m2decimalEksternt bruksareal
bra_total_m2decimalTotalt BRA
descriptiontextValgfri beskrivelse
created_byuuidFK til User
created_attimestamptzOpprettelsestidspunkt

Ansvar: Representerer én etasje i en bygning.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property (for ytelseseffektive queries uten join)
building_iduuidFK til Building
nametextVisningsnavn (f.eks. «1. etasje», «Underetasje»)
levelintegerEtasjenummer (0 = bakkeplan, -1 = underetasje, 1 = 2. etasje)
bra_i_m2decimalInternt bruksareal for etasjen
descriptiontextValgfri beskrivelse
sort_orderintegerRekkefølge for visning

Ansvar: Representerer ett rom i boligen. Kjerneentiteten i SpatialModel.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
floor_iduuidFK til Floor
nametextVisningsnavn (f.eks. «Stue», «Kjøkken»)
room_typeenumstue / kjøkken / soverom / bad / vaskerom / gang / kontor / bod / annet
functiontextBeskrivelse av rommets funksjon
area_m2decimalAreal
ceiling_height_mdecimalTakhøyde
descriptiontextFritekst beskrivelse
conditionenumgod / akseptabel / dårlig / ukjent
priorityenumhøy / medium / lav / ingen
window_countintegerAntall vinduer (valgfritt)
window_orientationtext[]Himmelretninger vinduene vender (nord/syd/øst/vest)
door_countintegerAntall dører (valgfritt)
natural_lightenummye / middels / lite / ukjent
created_byuuidFK til User
created_attimestamptz
updated_attimestamptz

Geometrifelter (window_count, window_orientation, door_count, natural_light) brukes av AI-assistenten for layoutforslag (B17) og romvisualisering (B18). Ikke obligatoriske i MVP.


Ansvar: Representerer uteområder — hage, terrasse, innkjørsel, passasjer.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
nametextVisningsnavn (f.eks. «Hage bak», «Terrasse»)
space_typeenumhage / terrasse / innkjørsel / balkong / passasje / plen / bed / annet
locationtextPlassering relativt til huset (nord/syd/øst/vest)
area_m2decimalAreal (valgfritt)
is_coveredbooleanOverbygget?
materialstextDekke og materialer
has_water_outletbooleanVannuttak tilgjengelig
has_power_outletbooleanStrømuttak tilgjengelig
upgrade_potentialtextBeskrivelse av oppgraderingspotensial
notestextFritekst notater
created_byuuidFK til User

Ansvar: Støtterom og sekundære arealer som krypkjeller, kryploft og vedskjul. Tilhører typisk en spesifikk bygning (f.eks. krypkjeller under huset). Garasje modelleres som en Building, ikke som SupportSpace.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
building_iduuidFK til Building (nullable — tilhører en spesifikk bygning om satt)
nametextVisningsnavn
space_typeenumkrypkjeller / kryploft / vedskjul / avfallsstasjon / annet
area_m2decimalAreal (valgfritt)
conditionenumgod / akseptabel / dårlig / ukjent
access_descriptiontextHvordan man kommer til dette rommet
notestextFritekst notater
created_byuuidFK til User

Ansvar: Teknisk bygningssystem som kategori. Representerer én type infrastruktur i en spesifikk bygning (f.eks. varmesystemet i huset, strøm i garasjen).

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property (for ytelseseffektive queries uten join)
building_iduuidFK til Building
categoryenumheating / ventilation / plumbing / drainage / electrical / envelope / chimney_fireplace / windows_doors / outdoor_utilities
nametextVisningsnavn (f.eks. «Varmepumpe-system»)
descriptiontextBeskrivelse av systemet
estimated_age_yearsintegerEstimert alder
install_yearintegerInstallasjonår (hvis kjent)
locationtextPlassering i boligen
statusenumok / trenger_tilsyn / kritisk / ukjent
source_typeenumtakstrapport / egen_observasjon / fagperson / ukjent
confidenceenumhøy / medium / lav
created_byuuidFK til User

Ansvar: Konkret teknisk utstyr — én fysisk enhet tilhørende et bygningssystem.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
building_system_iduuidFK til BuildingSystem
room_iduuidFK til Room / OutdoorSpace / SupportSpace (polymorfisk)
nametextVisningsnavn
categorytextType utstyr
manufacturertextProdusent
modeltextModellnavn/-nummer
serial_numbertextSerienummer
install_yearintegerInstallasjonår
warranty_expiresdateGarantiutløp
statusenumok / trenger_service / defekt / ukjent
notestextNotater
created_byuuidFK til User

Ansvar: Teknisk avvik, problem eller risiko. Skilles tydelig fra forbedringsønsker.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
titletextKort tittel
categoryenumstructural / moisture / electrical / fire / health / drainage / ventilation / safety / annet
severityenumcritical / high / medium / low
tgenumtg1 / tg2 / tg3 / iu (tilstandsgrader fra takstrapport)
descriptiontextDetaljert beskrivelse
location_ref_typeenumbuilding / room / outdoor_space / support_space / building_system
location_ref_iduuidReferanse til det stedet avviket er
discovered_atdateNår avviket ble oppdaget
source_typeenumtakstrapport / egen_observasjon / fagperson / måling
source_detailtextF.eks. «Takstrapport 2024-10, side 12»
confidenceenumhøy / medium / lav
recommended_actiontextAnbefalt tiltak
statusenumopen / in_progress / resolved / monitored / wont_fix
created_byuuidFK til User

Ansvar: Sikkerhetsforhold i boligen. Særlig relevant for barnesikkerhet.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
categoryenumfall / fire / drowning / poison / entrapment / electrical / structural / annet
location_ref_typeenumbuilding / room / outdoor_space / support_space
location_ref_iduuidReferanse til sted
descriptiontextBeskrivelse av sikkerhetsforholdet
risk_levelenumcritical / high / medium / low
affects_childrenbooleanSærlig relevant for barn?
child_age_relevanttextF.eks. «0–3 år», «3–6 år»
recommended_actiontextAnbefalt tiltak
statusenumopen / in_progress / mitigated / resolved
priorityenumhøy / medium / lav
created_byuuidFK til User

Ansvar: Konkret måling med verdi, enhet og tidspunkt.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
measurement_typeenumradon / moisture / temperature / power_usage / water_usage / humidity / co2 / annet
location_ref_typeenumbuilding / room / outdoor_space / support_space / building_system / property
location_ref_iduuidReferanse til sted
valuedecimalMålt verdi
unittextEnhet (f.eks. «Bq/m³», «%», «°C»)
measured_atdateDato for måling
measured_bytextHvem målte (person eller instrument)
methodtextMålemetode
notestextNotater
created_byuuidFK til User

Ansvar: Ønsket forbedring som ikke er et teknisk avvik. Lever i en backlog. Fungerer også som «prosjekt» ved større tiltak — Tasks knyttes til idéen, og avhengigheter til andre idéer modelleres via ImprovementDependency.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
titletextKort tittel
categoryenuminterior / exterior / garden / technical / comfort / aesthetics / safety / annet
descriptiontextDetaljert beskrivelse og motivasjon
location_ref_typeenumbuilding / room / outdoor_space / support_space / building_system / property
location_ref_iduuidReferanse til sted
motivationtextHvorfor er dette ønsket?
priorityenumhøy / medium / lav / uavklart
estimated_effortenumliten / medium / stor / ukjent
estimated_cost_nokintegerPunktestimat for kostnad (brukes hvis intervall ikke er satt)
cost_min_nokintegerNedre kostnadsestimat (optimistisk scenario)
cost_max_nokintegerØvre kostnadsestimat (pessimistisk scenario)
statusenumidea / considering / planned / in_progress / done / dropped
created_byuuidFK til User

Avhengigheter modelleres i ImprovementDependency (erstatter det tidligere fritekstfeltet dependencies). Se ADR-009 for begrunnelse.


Ansvar: Strukturert avhengighet mellom to forbedringsidéer. Gjør det mulig for AI-assistenten å resonere om rekkefølge, samkjøring og hva som ikke bør gjøres ennå.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
from_idea_iduuidFK til ImprovementIdea (idéen med avhengigheten)
to_idea_iduuidFK til ImprovementIdea (idéen det avhenger av)
dependency_typeenummust_before / should_group / independent
reasontextBegrunnelse (f.eks. «rør i vegg berører begge rom»)
created_byuuidFK til User

dependency_type-verdier:

  • must_beforeto_idea må fullføres før from_idea kan starte
  • should_group — ideelt å gjøre disse samtidig (f.eks. bad + kjøkken pga. rørlegger)
  • independent — ingen reell avhengighet (brukes for å eksplisitt dokumentere at to idéer er uavhengige)

Ansvar: Konkret oppgave som løser et Issue eller implementerer en ImprovementIdea.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
nametextOppgavenavn
task_typeenumrepair / maintenance / inspection / seasonal / project
descriptiontextHva skal gjøres
priorityenumhøy / medium / lav
frequencyenumonce / weekly / monthly / quarterly / annually / as_needed
due_datedateFrist (valgfritt)
estimated_hoursdecimalEstimert tidsbruk
estimated_cost_nokintegerPunktestimat for kostnad (brukes hvis intervall ikke er satt)
cost_min_nokintegerNedre kostnadsestimat (optimistisk scenario)
cost_max_nokintegerØvre kostnadsestimat (pessimistisk scenario)
execution_typeenumdiy / diy_guided / professional / unknown
source_issue_iduuidFK til Issue (hvis oppgaven løser et avvik)
source_improvement_iduuidFK til ImprovementIdea (hvis oppgaven implementerer et ønske)
location_ref_typeenumbuilding / room / outdoor_space / support_space / building_system / property
location_ref_iduuidReferanse
statusenumtodo / in_progress / done / cancelled
completed_atdateFullføringsdato
completed_byuuidFK til User
created_byuuidFK til User

Ansvar: Sesongbasert vedlikeholdsplan med sjekkliste.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
nametextPlannavn (f.eks. «Vårsjekk»)
seasonenumvår / sommer / høst / vinter / helårlig
frequencyenumannually / as_needed
checklistjsonbListe med sjekkpunkter
related_systemsuuid[]Relevante bygningssystemer
related_roomsuuid[]Relevante rom
notestextNotater

Ansvar: En erfaring fra daglig bruk, en sesong eller en hendelse. Ikke en oppgave.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
observed_atdateDato for observasjon
categoryenumdaily_use / seasonal / child_safety / indoor_climate / garden / operations / aesthetics / annet
location_ref_typeenumbuilding / room / outdoor_space / support_space / building_system / property
location_ref_iduuidReferanse til sted
seasonenumvår / sommer / høst / vinter
descriptiontextHva ble observert
consequencetextHvilken konsekvens har dette (hvis kjent)
priorityenumhøy / medium / lav / ingen
statusenumopen / noted / actioned
created_byuuidFK til User

Ansvar: Oppsummering av erfaringer fra én sesong.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
seasonenumvår / sommer / høst / vinter
yearintegerÅrstall
summarytextOverordnet oppsummering
key_findingsjsonbListe med viktige funn
possible_actionstextMulige tiltak som bør vurderes
created_byuuidFK til User

Ansvar: Dokumentert beslutning med vurdering og begrunnelse.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
topictextHva beslutningen gjelder
assessmenttextVurdering av alternativene
decisiontextHva som ble besluttet
rationaletextBegrunnelse
decided_atdateDato
created_byuuidFK til User

Ansvar: Foreløpig og reviderbar designretning for ett domene (interiør, eksteriør, hage).

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
domainenuminterior / exterior / garden
statusenumdraft / active / revised / archived
style_wordstext[]Stilord (f.eks. «nordisk», «naturlig», «varmt»)
principlestextDesignprinsipper i fritekst
materialstextForetrukne materialer
colorstextFargepalett
referencestextReferanser (lenker, navn på stiler)
avoidtextHva som skal unngås
updated_attimestamptzSist oppdatert
created_byuuidFK til User

Ansvar: Et konkret interiørobjekt — møbel, lampe, dekor, tekstil, kunst eller plante. Dekker hele livssyklusen fra vurdering til eierskap: status=considering tilsvarer det som i forslag til utvidelse ble kalt «ProductCandidate» — se ADR-008.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
room_iduuidFK til Room (nullable — kan legges inn før rom er bestemt)
categoryenumfurniture / lamp / decor / textile / art / plant / annet
nametextNavn (f.eks. «Sofabord i eik»)
brandtextMerke
modeltextModell
location_in_roomtextPlassering i rommet
style_tagstext[]Stiltagger
materialstext[]Materialer
colorstext[]Farger
dimensions_cmjsonbMål (bredde, høyde, dybde i cm)
functiontextFunksjon
moodtextStemning / estetisk rolle
source_urltextProduktlenke
price_nokintegerPris (valgfritt — brukes ved status=considering for vurdering)
fits_roombooleanPasser i rommet? (manuelt vurdert eller AI-utledet)
matches_designbooleanMatcher designretningen? (manuelt vurdert eller AI-utledet)
statusenumowned / planned / considering / removed
child_safebooleanBarnesikker?
notestextNotater
created_byuuidFK til User

Livssyklus for produktvurdering:

considering → (kjøpt) → owned
→ (avvist) → removed
→ (utsatt) → planned

LightingPlan, LayoutOption, DesignScenario og ShoppingTracker er planlagte post-MVP-entiteter som utvider dette laget. Se domain-model.md for oversikt.


Ansvar: Ønsket rombruk og møbleringsprinsipp for ett rom.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
room_iduuidFK til Room (1:1)
function_zonestextBeskrivelse av funksjonssoner
key_furnituretextViktige møbler og plassering
traffic_flowtextTrafikkflyt og ganglinjer
lighting_needstextBelysningsbehov
storage_needstextOppbevaringsbehov
child_safety_notestextBarnesikkerhetshensyn
plantstextPlanter og plassering
commentstextAndre kommentarer
updated_attimestamptzSist oppdatert
created_byuuidFK til User

Ansvar: Et dokument knyttet til eiendom, rom, utstyr eller avvik. Dokumenter med doc_type=takstrapport eller salgsoppgave kan prosesseres gjennom Ingestion Engine — spor status via ingestion_status.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
nametextDokumentnavn
doc_typeenumtakstrapport / salgsoppgave / manual / kvittering / garanti / fagrapport / tegning / annet
file_urltextURL til fil i MinIO
file_size_bytesintegerFilstørrelse
mime_typetextMIME-type
datedateDokumentdato
sourcetextKilde (hvem utstedte dokumentet)
coverstextHva dokumentet dekker
ingestion_statusenumnot_started / queued / processing / review_pending / completed / failed / skipped
notestextNotater
created_byuuidFK til User

Ansvar: Representerer én kjøring av AI-ekstraksjon mot et dokument. Sporer tilstand i ingestion-pipelinen og kobler dokumentet til uttrukne fakta.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
document_iduuidFK til Document
statusenumqueued / processing / review_pending / completed / failed
started_attimestamptzStarttidspunkt
completed_attimestamptzFullføringsstidspunkt (null hvis ikke ferdig)
facts_totalintegerAntall fakta hentet ut
facts_approvedintegerAntall fakta godkjent av bruker
facts_rejectedintegerAntall fakta forkastet
error_messagetextFeilmelding hvis status=failed
created_byuuidFK til User som startet jobben

Ansvar: Ett enkelt faktum hentet ut av AI fra et dokument. Koblet til en ExtractionJob og venter på brukergjennomgang (godkjenn / endre / forkast) før det persisteres som en faktisk entitet i systemet.

Inneholder ReviewItem-funksjonalitet direkte — ingen separat entitet nødvendig.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
job_iduuidFK til ExtractionJob
entity_typeenumproperty / floor / room / outdoor_space / building_system / equipment / issue / safety_item
field_pathtextHvilket felt gjelder dette (f.eks. rooms[0].area_m2, property.build_year)
suggested_valuejsonbHva AI ekstraherte (kan være tekst, tall, objekt)
user_corrected_valuejsonbHva bruker endret til (null hvis ikke endret)
source_pageintegerSidenummer i kildedokumentet
source_texttextTekstutdraget som faktumet er hentet fra
confidencedecimalAI-konfidensgrad 0.0–1.0
user_actionenumpending / approved / edited / rejected
reviewed_attimestamptzNår bruker tok stilling (null hvis pending)
reviewed_byuuidFK til User

Livssyklus:

pending → approved → [persisteres som entitet]
→ edited → [user_corrected_value brukes] → [persisteres]
→ rejected → [forkastes, lagres for audit]

Se ADR-010 for begrunnelse for sammenslåing av ExtractedFact og ReviewItem.


Ansvar: Et bilde knyttet til rom, avvik, utstyr eller uteområde.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
location_ref_typeenumroom / outdoor_space / issue / equipment / interior_asset
location_ref_iduuidReferanse
file_urltextURL til bilde i MinIO
thumbnail_urltextURL til thumbnail
taken_atdateDato bildet ble tatt
descriptiontextHva bildet viser
tagstext[]Tagger
created_byuuidFK til User

Ansvar: Produktlenke som informerer en kjøpsbeslutning.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
nametextProduktnavn
suppliertextLeverandør
urltextProduktlenke
categorytextProduktkategori
price_nokintegerPris (valgfritt)
related_to_typeenuminterior_asset / improvement_idea / task / room
related_to_iduuidReferanse
style_roletextHvilken stilrolle produktet spiller
notestextNotater
created_byuuidFK til User

Ansvar: Manual for konkret utstyr.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property
equipment_iduuidFK til Equipment
manufacturertextProdusent
file_urltextURL til manual i MinIO
languagetextSpråk
maintenance_relevancetextHva i manualen er relevant for vedlikehold
notestextNotater
created_byuuidFK til User

Ansvar: Semantisk vektor-representasjon av én entitet eller et felt-cluster fra boligdatabasen. Brukes av AI-assistentens hybrid-søk (pgvector cosine + PostgreSQL full-tekst, se ADR-016 og ADR-017).

Én rad per entitet per chunk-strategi. Chunk-teksten er en menneskelig lesbar oppsummering av entiteten (f.eks. «Observasjon i kjøkken 2025-11-03: kondensvann under vask, mulig tetning rundt sluk»). Dette gjør det mulig å debugge hva modellen faktisk søker over.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property (for BOLA-sjekk i søk)
entity_typetextHvilken entitet dette er (observation / issue / improvement_idea / task / interior_asset / maintenance_plan / etc.)
entity_iduuidFK til den faktiske entiteten (polymorf referanse)
chunk_texttextMenneskelig lesbar tekst som ble embeddet (for debug og re-indeksering)
embeddingvector(1536)Vektor-representasjon fra gemini-embedding-001 (MRL-trim til 1536 dims)
model_idtextEmbedding-modell-ID — pinnet versjon (f.eks. gemini-embedding-001)
created_attimestamptzOpprettelsestidspunkt
updated_attimestamptzSist oppdatert (re-embedding ved endring av entitet)

Unik constraint: (entity_type, entity_id) — én embedding per entitet.

Indeks: HNSW på embedding-kolonnen (m=16, ef_construction=64), se ADR-016.

Livssyklus: Opprettes/oppdateres via pg-boss-worker trigget av CRUD-hendelser. embed:all-script ved Fase 5-oppstart indekserer eksisterende data.

BOLA: Søk filtrerer alltid på property_id — bruker kan aldri søke over andres data.


Ansvar: Nøkkelfakta fra AI-chat-sesjoner som skal huskes på tvers av sesjoner. AI-modellen ekstraherer opptil 10 minner etter avsluttet sesjon. Ved neste sesjon injiseres aktive minner i system-prompten (se ADR-020).

Minner er per bruker — to brukere på samme eiendom har separate minner.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
user_iduuidFK til User (minner er per bruker, ikke per eiendom)
property_iduuidFK til Property (kontekst — hvilken eiendom samtalen gjaldt)
keytextKort nøkkel for minnet (f.eks. «badet_status», «allergi»)
valuetextVerdien av minnet (f.eks. «under planlegging», «fuktprodukter fjernes»)
source_turnintegerHvilken samtaletur minnet ble ekstrahert fra (for audit)
is_activebooleanOm minnet fortsatt er relevant (kan deaktiveres av bruker)
created_attimestamptzTidspunkt for ekstraksjon

Maksimalt 10 minner per sesjon — modellen velger de viktigste.

Injeksjon: Alle aktive minner (is_active = true) for user_id injiseres i system-prompt som [HUKOMMELSE FRA TIDLIGERE SESJONER]-blokk ved oppstart av ny sesjon.

Ingen automatisk utløp: Minner akkumuleres over tid. Bruker kan manuelt deaktivere via innstillinger (post-MVP).


Ansvar: Produktfeedback fra bruker — kategorisert og strukturert backlog-input for videre produktutvikling. Lagres kun etter eksplisitt brukerbekreftelse via ProposalCard (se ADR-010). Claude Code leser tabellen direkte under faseplanlegging via pnpm feedback:list.

UserFeedback er meta-data om produktet, ikke boligdata. Inngår ikke i hybrid-søk (ContentEmbedding) og vises ikke i boligens dashboards.

FeltTypeBeskrivelse
iduuidPrimærnøkkel
property_iduuidFK til Property (for BOLA-sjekk — feedback gis i kontekst av én eiendom)
messagetextBrukerens originale feedback-tekst
summarytextAI-generert kort sammendrag (maks 200 tegn)
categoryenumux / feature-gap / feil / brukeradferd / unødvendig
image_urltextValgfri MinIO-URL til skjermbilde sendt i chat (Spec 042)
statusenumny / adressert (settes av Claude Code via pnpm feedback:done <id>)
created_attimestamptzOpprettelsestidspunkt

Kategoribeskrivelser:

  • ux — interaksjonsproblemer, navigasjonsfriksjon, layout
  • feature-gap — manglende eller ufullstendig funksjonalitet
  • feil — noe som ikke fungerer som forventet
  • brukeradferd — observasjon om hvordan bruker faktisk bruker produktet
  • unødvendig — feature eller element som bør fjernes eller forenkles

Livssyklus: Opprettes via POST /chat/proposals/confirm type=feedback når bruker bekrefter forslag fra AI. Oppdateres til status=adressert via CLI-script etter at endringen er tatt inn i en fase eller spec.

BOLA: property_id fra autentisert kontekst — bruker kan aldri lage feedback i annens eiendomskontekst.