github.com/oinume/lekcije@v0.0.0-20231017100347-5b4c5eb6ab24/backend/internal/modeltest/modeltest.go (about) 1 package modeltest 2 3 import ( 4 "fmt" 5 "time" 6 7 "github.com/oinume/lekcije/backend/model" 8 "github.com/oinume/lekcije/backend/model2" 9 "github.com/oinume/lekcije/backend/randoms" 10 ) 11 12 var jst = time.FixedZone("Asia/Tokyo", 9*60*60) 13 14 func NewFollowingTeacher(setters ...func(ft *model2.FollowingTeacher)) *model2.FollowingTeacher { 15 followingTeacher := &model2.FollowingTeacher{} 16 for _, setter := range setters { 17 setter(followingTeacher) 18 } 19 if followingTeacher.UserID == 0 { 20 followingTeacher.UserID = uint(randoms.MustNewInt64(10000000)) 21 } 22 if followingTeacher.TeacherID == 0 { 23 followingTeacher.TeacherID = uint(randoms.MustNewInt64(10000000)) 24 } 25 return followingTeacher 26 } 27 28 func NewLesson(setters ...func(l *model2.Lesson)) *model2.Lesson { 29 lesson := &model2.Lesson{} 30 for _, setter := range setters { 31 setter(lesson) 32 } 33 if lesson.TeacherID == 0 { 34 lesson.TeacherID = uint(randoms.MustNewInt64(10000000)) 35 } 36 if lesson.Datetime.IsZero() { 37 dt := time.Now().Add(4 * time.Hour) 38 lesson.Datetime = time.Date(dt.Year(), dt.Month(), dt.Day(), dt.Hour(), 0, 0, 0, jst) 39 } 40 if lesson.Status == "" { 41 lesson.Status = "available" 42 } 43 return lesson 44 } 45 46 func NewNotificationTimeSpan(setters ...func(nts *model2.NotificationTimeSpan)) *model2.NotificationTimeSpan { 47 timeSpan := &model2.NotificationTimeSpan{} 48 for _, setter := range setters { 49 setter(timeSpan) 50 } 51 if timeSpan.UserID == 0 { 52 timeSpan.UserID = uint(randoms.MustNewInt64(10000000)) 53 } 54 if timeSpan.Number == 0 { 55 timeSpan.Number = uint8(randoms.MustNewInt64(255)) 56 } 57 if timeSpan.FromTime == "" { 58 timeSpan.FromTime = "" 59 } 60 if timeSpan.ToTime == "" { 61 timeSpan.ToTime = "" 62 } 63 return timeSpan 64 } 65 66 func NewTeacher(setters ...func(t *model2.Teacher)) *model2.Teacher { 67 teacher := &model2.Teacher{ 68 Birthday: time.Date(2001, 1, 1, 0, 0, 0, 0, time.UTC), 69 LastLessonAt: time.Now().UTC().Add(-1 * 24 * time.Hour), 70 } 71 for _, setter := range setters { 72 setter(teacher) 73 } 74 if teacher.ID == 0 { 75 teacher.ID = uint(randoms.MustNewInt64(100000)) 76 } 77 if teacher.Name == "" { 78 teacher.Name = "teacher " + randoms.MustNewString(8) 79 } 80 if teacher.Gender == "" { 81 teacher.Gender = "female" 82 } 83 //if teacher.Birthday.IsZero() { 84 // teacher.Birthday = time.Date(2001, 1, 1, 0, 0, 0, 0, time.UTC) 85 //} 86 //if teacher.LastLessonAt.IsZero() { 87 // teacher.LastLessonAt = time.Now().UTC().Add(72 * time.Hour) 88 //} 89 return teacher 90 } 91 92 func NewUser(setters ...func(u *model2.User)) *model2.User { 93 user := &model2.User{ 94 EmailVerified: 1, 95 } 96 for _, setter := range setters { 97 setter(user) 98 } 99 if user.Name == "" { 100 user.Name = "lekcije taro " + randoms.MustNewString(8) 101 } 102 if user.Email == "" { 103 user.Email = fmt.Sprintf("lekcije-%s@example.com", randoms.MustNewString(8)) 104 } 105 if user.PlanID == 0 { 106 user.PlanID = uint8(model.DefaultMPlanID) 107 } 108 return user 109 } 110 111 func NewUserAPIToken(setters ...func(uat *model2.UserAPIToken)) *model2.UserAPIToken { 112 userAPIToken := &model2.UserAPIToken{} 113 for _, setter := range setters { 114 setter(userAPIToken) 115 } 116 if userAPIToken.Token == "" { 117 userAPIToken.Token = randoms.MustNewString(32) 118 } 119 if userAPIToken.UserID == 0 { 120 userAPIToken.UserID = uint(randoms.MustNewInt64(10000000)) 121 } 122 return userAPIToken 123 } 124 125 func NewUserGoogle(setters ...func(ug *model2.UserGoogle)) *model2.UserGoogle { 126 userGoogle := &model2.UserGoogle{} 127 for _, setter := range setters { 128 setter(userGoogle) 129 } 130 if userGoogle.GoogleID == "" { 131 userGoogle.GoogleID = randoms.MustNewString(32) 132 } 133 return userGoogle 134 }