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  }