Domain Entities
These are the core entities the product should be designed around.
This is not a final schema. It is the planning model for pages, features, and backend boundaries.
Lead
Represents the customer and the operational record of their journey.
Owning Convex module:
leads
Locked lifecycle reference:
docs/product/lead-lifecycle.md
Suggested fields:
- identity and contact details
- location
- source
- selected path
- status
- contact preferences
- timestamps
Assessment
Represents the guided intake answers.
Owning Convex module:
leads
Locked contract reference:
docs/product/assessment-input-contract.md
Suggested fields:
- location answers
- home profile answers
- energy usage answers
- goals
- submission metadata
Recommendation
Represents what IED told the user.
Owning Convex module:
leads
Locked contract reference:
docs/product/recommendation-output-contract.md
Suggested fields:
- suggested system size
- battery recommendation
- savings range
- price range
- reasoning summary
- logic version
- confidence/suitability indicators
Installer
Represents a vetted partner.
Owning Convex module:
installers
Locked contract reference:
docs/product/installer-tier-status-rules.md
Suggested fields:
- company profile
- contacts
- service areas
- services offered
- tier
- availability notes
- active status
- quality score
- internal notes
Region
Represents a service region.
Owning Convex module:
regions
Locked contract reference:
docs/product/region-postcode-ownership-rules.md
Suggested fields:
- region name
- state
- postcodes
- primary installer
- backup installers
- routing defaults
- active status
Lead Assignment
Represents routing between a lead and installer(s).
Owning Convex module:
routing
Locked contract reference:
docs/product/routing-assignment-states.md
Suggested fields:
- lead id
- installer id
- region id
- selected path
- assignment timestamps
- assignment type
- assigned date
- status
- notes
Follow-Up
Represents post-install quality and satisfaction tracking.
Owning Convex module:
followUps
Locked contract reference:
docs/product/follow-up-status-model.md
Suggested fields:
- lead
- installer
- install date
- follow-up due date
- follow-up status
- satisfaction outcome
- issues
- notes
- completion date
Activity Log
Represents operational timeline events.
Suggested fields:
- lead or related entity reference
- action type
- actor
- timestamp
- note content
- status change details
Content
Represents managed educational or marketing content if/when CMS-like behavior is added.
Suggested content buckets:
- solar basics pages
- pricing guide content
- homepage copy blocks
- service area content
- FAQ content
Entity Relationship Direction
Recommended high-level relationships:
- a
Leadhas oneAssessment - a
Leadhas one or moreRecommendationsover time - a
Leadmay have one or moreLeadAssignments - a
Leadmay have one or moreFollowUps - an
Installerbelongs to one or moreRegions - a
Regioncontains many postcodes
Use this file to prevent page design and backend design from drifting apart.