76 lines
1.3 KiB
Plaintext
76 lines
1.3 KiB
Plaintext
@startuml MetaCourse
|
|
|
|
skinparam classBackgroundColor #ADD8E6
|
|
skinparam classBorderColor #336699
|
|
skinparam classHeaderBackgroundColor #4A90D9
|
|
skinparam classHeaderFontColor #FFFFFF
|
|
skinparam ArrowColor #336699
|
|
skinparam linetype ortho
|
|
|
|
class User {
|
|
-id : Guid
|
|
-name : string
|
|
-email : string
|
|
-passwordHash : string
|
|
-createdAt : DateTime
|
|
}
|
|
|
|
class Course {
|
|
-id : Guid
|
|
-title : string
|
|
-description : string
|
|
-status : string
|
|
-createdAt : DateTime
|
|
-updatedAt : DateTime
|
|
}
|
|
|
|
class Topic {
|
|
-id : Guid
|
|
-title : string
|
|
-description : string
|
|
-position : int
|
|
}
|
|
|
|
class Resource {
|
|
-id : Guid
|
|
-type : string
|
|
-title : string
|
|
-content : string
|
|
-createdAt : DateTime
|
|
}
|
|
|
|
class UserCourse {
|
|
-enrolledAt : DateTime
|
|
-completedAt : DateTime
|
|
}
|
|
|
|
class TopicResource {
|
|
-position : int
|
|
}
|
|
|
|
class UserTopicProgress {
|
|
-completed : bool
|
|
-completedAt : DateTime
|
|
}
|
|
|
|
class UserResourceProgress {
|
|
-completed : bool
|
|
-completedAt : DateTime
|
|
}
|
|
|
|
User "1" --> "0..*" Course : crée
|
|
User "0..*" -- "0..*" Course : inscription
|
|
(User, Course) .. UserCourse
|
|
|
|
Course "1" *-- "0..*" Topic
|
|
Topic "0..*" -- "0..*" Resource
|
|
(Topic, Resource) .. TopicResource
|
|
|
|
User "0..*" -- "0..*" Topic
|
|
(User, Topic) .. UserTopicProgress
|
|
|
|
User "0..*" -- "0..*" Resource
|
|
(User, Resource) .. UserResourceProgress
|
|
|
|
@enduml
|