type User { id: ID! @id email: String! @unique name: String! password: String! createdAt: DateTime! @createdAt comments: [Comment]! ratings: [Rating]! permissions: [Permission]! @scalarList(strategy: RELATION) interests: [String]! @scalarList(strategy: RELATION) } enum Permission { ADMIN INSTRUCTOR USER } type Training { id: ID! @id title: String! type: TrainingType! content: [Block]! createdAt: DateTime! @createdAt trainingDate: DateTime! participants: [User]! ratings: [Rating]! published: Boolean! } type TrainingType { id: ID! @id name: String! description: String! } type Block { id: ID! @id sequence: Int! title: String! duration: Int! variation: String format: Format tracks: [Track]! excersises: [Excersise]! } type Format { id: ID! @id name: String! description: String! } type Track { id: ID! @id title: String! artist: String! duration: Int! link: String! } type Excersise { id: ID! @id name: String! description: String! video: String! targets: [String]! @scalarList(strategy: RELATION) } type Rating { id: ID! @id user: User! value: Int! comment: String! createdAt: DateTime! @createdAt } type Comment { id: ID! @id text: String! author: User! createdAt: DateTime! @createdAt }