questionnaire.go 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package validators
  2. // 问题库
  3. type QuestionnaireSubject struct {
  4. ID int64 `json:"id" form:"id" binding:"omitempty"`
  5. SN string `json:"sn" form:"sn" binding:"required_if=ID 0,omitempty,alphanum,min=1,max=255"`
  6. Type int `json:"type" form:"type" binding:"required,number"`
  7. Title string `json:"title" form:"title" binding:"required,min=1,max=255"`
  8. Validator string `json:"validator" form:"validator" binding:"omitempty"`
  9. Remark string `json:"remark" form:"remark" binding:"omitempty,min=1,max=255"`
  10. Mark string `json:"mark" form:"mark" binding:"omitempty,min=1,max=255"`
  11. CreatedAt string `json:"createdAt" form:"-" binding:"-"`
  12. }
  13. // 问题模板
  14. type QuestionnaireTemplate struct {
  15. ID int64 `json:"id" form:"id" binding:"omitempty,number"`
  16. SN string `json:"sn" form:"sn" binding:"required_if=ID 0,omitempty,alphanum,min=1,max=255"`
  17. Title string `json:"title" form:"title" binding:"required,min=1,max=255"`
  18. Peg string `json:"peg" form:"peg" binding:"omitempty"`
  19. SubjectTotal int `json:"subjectTotal" form:"-" binding:"-"` // 关联的题目数
  20. SubjectIds []string `json:"subjectIds" form:"-" binding:"-"`
  21. Subjects []*QuestionnaireSubject `json:"subjects" form:"-"` // 关联的题目列表
  22. CreatedAt string `json:"createdAt" form:"-" binding:"-"`
  23. }
  24. // 问题模板关联的问题库
  25. type QuestionnaireTemplateSubject struct {
  26. ID int64 `json:"id" form:"-" binding:"-"`
  27. Sort int64 `json:"sort" form:"-" binding:"-"`
  28. QuestionnaireSubject *QuestionnaireSubject `json:"questionnaireSubject" form:"-" binding:"-"`
  29. }
  30. // 问卷
  31. type QuestionnaireSurvey struct {
  32. ID int64 `json:"id" form:"id" binding:"omitempty,number"`
  33. Title string `json:"title" form:"title" binding:"required,min=1,max=255"`
  34. SN string `json:"sn" form:"sn" binding:"required_if=ID 0,omitempty,alphanum,min=1,max=255"`
  35. CanSkipIntro int `json:"canSkipIntro" form:"canSkipIntro" binding:"required,number,oneof=1 2"`
  36. CanSkipResult int `json:"canSkipResult" form:"canSkipResult" binding:"required,number,oneof=1 2"`
  37. GuestAvatar string `json:"guestAvatar" form:"guestAvatar" binding:"omitempty"`
  38. CustomerAvatar string `json:"customerAvatar" form:"customerAvatar" binding:"omitempty"`
  39. GreetingText string `json:"greetingText" form:"greetingText" binding:"omitempty"`
  40. FinishedText string `json:"finishedText" form:"finishedText" binding:"omitempty"`
  41. Intro string `json:"intro" form:"intro" binding:"omitempty"`
  42. Status int `json:"status" form:"status" binding:"omitempty,number,oneof=1 2"`
  43. Returns int `json:"returns" form:"-" binding:"-"`
  44. Dsl string `json:"dsl" form:"dsl" binding:"omitempty"`
  45. Type int `json:"type" form:"type" binding:"omitempty,number,oneof=1"`
  46. Peg string `json:"peg" form:"peg" binding:"omitempty"`
  47. Remark string `json:"remark" form:"remark" binding:"omitempty"`
  48. Subjects []*SurveyQuestionnaireSubject `json:"subjects" form:"-" binding:"-"`
  49. CreatedAt string `json:"createdAt" form:"-" binding:"-"`
  50. UpdatedAt string `json:"updatedAt" form:"-" binding:"-"`
  51. }
  52. // 问题模板关联的问题库
  53. type SurveyQuestionnaireSubject struct {
  54. ID int64 `json:"id" form:"-" binding:"-"`
  55. Sort int64 `json:"sort" form:"-" binding:"-"`
  56. IsRequired bool `json:"isRequired" form:"-" binding:"-"`
  57. QuestionnaireSubject *QuestionnaireSubject `json:"questionnaireSubject" form:"-" binding:"-"`
  58. }