Domain Model - RoamView-Technologies/RoamView GitHub Wiki
classDiagram
direction TB
class Organization {
name
}
class User {
email
role
}
class Site {
name
address
}
class Robot {
serialNumber
status
}
class Session {
mode
status
startedAt
endedAt
}
class Mesh {
<<3D Map>>
visibility
version
objectStorageKey
}
class Annotation {
label
severity
position
}
class Measurement {
type
valueMeters
}
class InspectionReport {
title
generatedAt
}
class ScheduledInspection {
runAt
status
}
class InspectionJob {
status
}
Organization "1" --> "*" User : employs
Organization "1" --> "*" Site : owns
Organization "1" --> "*" Robot : owns
User "1" --> "0..*" Session : operates
Site "1" --> "*" Session : hosts
Site "1" --> "0..1" Robot : assigned
Robot "1" --> "*" Session : performs
Session "1" --> "0..1" Mesh : produces
Mesh "0..1" --> "0..1" Mesh : previousVersion
Mesh "1" --> "*" Annotation : has
Mesh "1" --> "*" Measurement : has
User "1" --> "*" Annotation : authors
User "1" --> "*" Measurement : authors
Session "1" --> "0..1" InspectionReport : generates
Site "1" --> "*" ScheduledInspection : schedules
Robot "1" --> "*" ScheduledInspection : target
ScheduledInspection "1" --> "0..1" InspectionJob : creates
InspectionJob "1" --> "0..1" Session : resultsIn
Organization — Tenant that owns users, sites, and robots.
User — Signs in to RoamView. Role is User or On-Site Admin.
Site — Physical location. At most one robot is assigned to a site.
Robot — On-site unit. Runs an autonomous inspection or a live walkthrough.
Session — One walkthrough. Mode is autonomous or live walkthrough. Status moves from recording through processing to ready.
Mesh — 3D map from a session. Public or private. previousVersion links maps for compare-mesh-version. File bytes are in object storage; this entity holds the key.
Annotation / Measurement — Pins and distances on a generated mesh.
Inspection report — Summary of a session. PDF is in object storage.
Scheduled inspection / Inspection job — On-site admin books a run; that creates a job; the robot is notified; a completed job becomes a session.