Below are the schema diagrams for the Superyacht Technology Platform's database, visualized using Mermaid. Each diagram represents the structure of the main entities as described in the technical documentation.
classDiagram
class User {
+String email
+String password
+String firstName
+String lastName
+String role
+ObjectId company
+String profileImage
+String[] specializations
+ObjectId[] projects
+ObjectId[] savedTechnologies
+Date lastLogin
+Object[] refreshTokens
+Date createdAt
+Date updatedAt
+comparePassword(candidatePassword)
+generateAuthToken()
+generateRefreshToken()
}
classDiagram
class Company {
+String name
+String logo
+String website
+String description
+String type
+String contactEmail
+String contactPhone
+Object address
+ObjectId[] technologies
+ObjectId[] pitchVideos
+ObjectId[] employees
+Number yearFounded
+Object socialMedia
+Date createdAt
+Date updatedAt
}
classDiagram
class Technology {
+String name
+ObjectId supplier
+String category
+String subcategory
+String description
+Object technicalSpecs
+String installationRequirements
+String[] certifications
+String[] images
+String[] manuals
+String[] datasheets
+ObjectId[] videos
+Object pricing
+String[] compatibilities
+Date releaseDate
+String[] tags
+Object[] ratings
+Number averageRating
+Date createdAt
+Date updatedAt
}
classDiagram
class Project {
+String name
+String codeName
+String description
+String client
+ObjectId manager
+ObjectId[] team
+ObjectId shipyard
+Object yachtDetails
+Object[] selectedTechnologies
+Object budget
+Object timeline
+String status
+Object[] documents
+Date createdAt
+Date updatedAt
}
classDiagram
class Video {
+String title
+String description
+String url
+String thumbnailUrl
+String type
+Number duration
+Object uploadedBy
+ObjectId relatedTechnology
+String[] tags
+Number views
+Number likes
+Date uploadDate
+Date updatedAt
}