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  }