Skip to main content

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 Lead has one Assessment
  • a Lead has one or more Recommendations over time
  • a Lead may have one or more LeadAssignments
  • a Lead may have one or more FollowUps
  • an Installer belongs to one or more Regions
  • a Region contains many postcodes

Use this file to prevent page design and backend design from drifting apart.