Architecture notes

A plain-language record of the decisions later phases must preserve.

Record hierarchy

COMPANY
 └── PEOPLE (profiles + roles)
      └── JOB / SURVEY
           └── REPORT (built from one template version)
                └── SECTIONS / SUBSECTIONS
                     ├── SITE EVIDENCE (notes, measurements, photographs)
                     ├── AI INSTRUCTIONS (section layer)
                     └── GENERATED CONTENT (versioned drafts)
                          └── PUBLISHED SNAPSHOT (immutable)

AI context layers

Architecture only — no AI generation exists yet.

PLATFORM RULES
 → REPORT TYPE INSTRUCTIONS
  → COMPANY WRITING INSTRUCTIONS
   → JOB REPORT BRIEF
    → SECTION INSTRUCTIONS
     → SITE EVIDENCE + IMAGES
      → AI DRAFT
       → SURVEYOR REVIEW / EDIT
        → APPROVED CONTENT

Decisions to preserve

Companies and people are distinct records

The company holds branding, addresses, registration and regulatory details. Each person has a personal profile with their own qualifications, memberships and signature. Roles live in a separate record again, so the account owner can change without touching either.

Every business record carries its company

Jobs, reports, sections, evidence, photographs, generated content, audit entries and published reports all store the company they belong to, and database rules check it on every read and write. Front-end filtering is never relied on for separation.

Report structure lives in versioned templates

A template has versions; a version has sections, subsections and fields with an open list of field types. Ratings, statuses, terminology, image requirements and output rules are all template settings. Nothing assumes a 1/2/3 condition rating or a residential property.

A report is bound to the template version it was created from

Publishing a new template version never changes an existing report. Reports and published snapshots both keep a permanent link to their template version.

Evidence and generated content are different things

Site notes, measurements and photographs are stored as evidence. AI drafts are stored separately with their own version history, edit state and approval state. Editing a draft never alters the surveyor's original record.

Photographs keep their original file

Each image record has separate places for the original high-resolution file, a display version and a thumbnail, plus caption, ordering and an include-in-report flag. Originals are never replaced by optimised copies.

AI context layers stay separate

Platform, report type, company, job and section instructions are separate records rather than one merged prompt, so each can be owned and edited by the right person later.

Built for later offline working

Records use stable identifiers, carry a client-side reference for queued creation, and have a saving state so later phases can add local caching, queued uploads and conflict handling without a rebuild.

Billing is anticipated, not implemented

Each company has a subscription record with status, interval, seat count and optional contracted prices. No price is set anywhere in the product.