@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