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 CONTENTDecisions 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.