You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.4 KiB

  1. package main
  2. import (
  3. "git.wegmueller.it/fruitsteps/framework/models"
  4. )
  5. type Tile struct {
  6. Name string
  7. Text string //TODO Markdown Type
  8. Courses []Tile
  9. Pictures []string //TODO Image Processing Library
  10. Videos []string //TODO Video Processing Library
  11. Author models.User //TODO User authentication Library
  12. Status int
  13. Asessment Asessment
  14. }
  15. const (
  16. TileNew = iota
  17. TileReview = iota
  18. TilePublic = iota
  19. TileArchived = iota
  20. )
  21. //When a User is Done with a Tile he submits his work (Project) for Asessment
  22. type Asessment struct {
  23. Asessor string //TODO Link to user that does the asessment
  24. Feedback []byte //TODO Markdown
  25. Status int //TODO Enumerator of Asessment Status
  26. Understanding map[string]int
  27. OpenQuestions []string
  28. }
  29. const (
  30. AsessmentOpen = iota
  31. AsessmentProgress = iota
  32. AsessmentWaitingForFeedback = iota
  33. AsessmentDone = iota
  34. )
  35. //When a User work on a Tile a Project is Created to save notes and keep track of the Status
  36. type Project struct {
  37. Status int
  38. Colaborators []string //TODO Link to user Entity
  39. Tile Tile
  40. Notes []byte //TODO Etherpad integration or other Notetaking Format
  41. Links []string //TODO Only allow links
  42. }
  43. const (
  44. ProjectWorking = iota
  45. ProjectInReview = iota
  46. ProjectFinished = iota
  47. )
  48. type Document struct {
  49. Tile Tile
  50. Status int //TODO Enumerator
  51. Visibility int //TODO Enumerator private/public
  52. Content []byte
  53. //TODO Access Restrictions to content
  54. }