golang-server-template/internal/data/models.go
2024-07-08 17:36:56 +08:00

40 lines
764 B
Go

package data
import (
"database/sql"
"errors"
)
var (
ErrRecordNotFound = errors.New("record not found")
ErrEditConflict = errors.New("edit conflict")
)
type Models struct {
Movies interface {
Insert(movie *Movie) error
Get(id int64) (*Movie, error)
Update(movie *Movie) error
Delete(id int64) error
GetAll(title string, genres []string, filters Filters) ([]*Movie, Metadata, error)
}
Users UserModel
Tokens TokenModel
Permissions PermissonModel
}
func NewModels(db *sql.DB) Models {
return Models{
Movies: MovieModel{DB: db},
Users: UserModel{DB: db},
Tokens: TokenModel{DB: db},
Permissions: PermissonModel{DB: db},
}
}
func NewMockModels() Models {
return Models{
Movies: MockMovieModel{},
}
}