github.com/oinume/lekcije@v0.0.0-20231017100347-5b4c5eb6ab24/backend/domain/repository/lesson.go (about) 1 package repository 2 3 //go:generate moq -out=lesson.moq.go . LessonFetcher 4 5 import ( 6 "context" 7 "time" 8 9 "github.com/oinume/lekcije/backend/model2" 10 ) 11 12 type Lesson interface { 13 Create(ctx context.Context, lesson *model2.Lesson, reload bool) error 14 FindAllByTeacherIDsDatetimeBetween( 15 ctx context.Context, teacherID uint, fromDate, toDate time.Time, 16 ) ([]*model2.Lesson, error) 17 FindAllByTeacherIDAndDatetimeAsMap( 18 ctx context.Context, teacherID uint, lessonsArgs []*model2.Lesson, 19 ) (map[string]*model2.Lesson, error) 20 FindByID(ctx context.Context, id uint64) (*model2.Lesson, error) 21 FindOrCreate(ctx context.Context, lesson *model2.Lesson, reload bool) (*model2.Lesson, error) 22 GetNewAvailableLessons(ctx context.Context, oldLessons, newLessons []*model2.Lesson) []*model2.Lesson 23 UpdateStatus(ctx context.Context, id uint64, newStatus string) (int64, error) 24 } 25 26 type LessonFetcher interface { 27 Close() 28 Fetch(ctx context.Context, teacherID uint) (*model2.Teacher, []*model2.Lesson, error) 29 }