36 lines
837 B
Go
36 lines
837 B
Go
package repository
|
|
|
|
import (
|
|
"esproject"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type Project interface {
|
|
CreateProject(owner int64, name string, tags []string) (*esproject.Project, error)
|
|
SaveProject(user *esproject.Project) (int64, error)
|
|
GetProject(id int64) (*esproject.Project, error)
|
|
GetProjects(start, limit int) []int64
|
|
DeleteProject(id int64) error
|
|
GetProjectsCount() int64
|
|
}
|
|
|
|
type ProjectInvite interface {
|
|
CreateInvite(project int64, user int64) (*esproject.ProjectInvite, error)
|
|
GetInvite(id int64) (*esproject.ProjectInvite, error)
|
|
FindInvites(query, param string) ([]esproject.ProjectInvite, error)
|
|
DeleteInvite(id int64) error
|
|
}
|
|
|
|
type Repository struct {
|
|
Project
|
|
ProjectInvite
|
|
}
|
|
|
|
func NewRepository(db *gorm.DB) *Repository {
|
|
return &Repository{
|
|
Project: NewProjectSchema(db),
|
|
ProjectInvite: NewInviteSchema(db),
|
|
}
|
|
}
|