You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
989 B
43 lines
989 B
package geeksbot
|
|
|
|
import (
|
|
"database/sql"
|
|
"time"
|
|
)
|
|
|
|
type Request struct {
|
|
ID int64
|
|
Author User
|
|
Channel Channel
|
|
Guild Guild
|
|
Content string
|
|
RequestedAt time.Time
|
|
Completed bool
|
|
CompletedAt sql.NullTime
|
|
CompletedBy *User
|
|
Message Message
|
|
CompletedMessage sql.NullString
|
|
}
|
|
|
|
type Comment struct {
|
|
ID int64
|
|
Author User
|
|
Request Request
|
|
CommentAt time.Time
|
|
Content string
|
|
}
|
|
|
|
type RequestService interface {
|
|
Request(id int64) (Request, error)
|
|
UserRequests(u User, completed bool) ([]Request, error)
|
|
GuildRequests(g Guild, completed bool) ([]Request, error)
|
|
CreateRequest(r Request) (Request, error)
|
|
UpdateRequest(r Request) (Request, error)
|
|
DeleteRequest(r Request) error
|
|
Comment(id int64) (Comment, error)
|
|
RequestComments(r Request) ([]Comment, error)
|
|
RequestCommentCount(r Request) (int, error)
|
|
CreateComment(c Comment) (Comment, error)
|
|
DeleteComment(c Comment) error
|
|
}
|