Add domain types

development
DustyP 5 years ago
parent 9436a4385f
commit 2d60384002

@ -0,0 +1,17 @@
package geeksbot
type Channel struct {
ID string
Guild Guild
Admin bool
Default bool
NewPatron bool
}
type ChannelService interface {
Channel(id string) (*Channel, error)
CreateChannel(c *Channel) (*Channel, error)
DeleteChannel(c *Channel) error
GuildChannels(g *Guild) ([]*Channel, error)
UpdateChannel(c *Channel) (*Channel, error)
}

@ -0,0 +1,25 @@
package geeksbot
type Guild struct {
ID string
NewPatronMessage string
Prefixes []string
}
type Role struct {
ID string
RoleType int
Guild Guild
}
type GuildService interface {
Guild(id string) (*Guild, error)
CreateGuild(g *Guild) (*Guild, error)
DeleteGuild(g *Guild) error
UpdateGuild(g *Guild) (*Guild, error)
GuildRoles(g *Guild) ([]*Role, error)
CreateRole(r *Role) (*Role, error)
Role(id string) (*Role, error)
UpdateRole(r *Role) (*Role, error)
DeleteRole(r *Role) error
}

@ -0,0 +1,23 @@
package geeksbot
import "github.com/bwmarrin/discordgo"
type Message struct {
ID string
CreatedAt int64
ModifiedAd int64
Content string
PreviousContent []string
Channel *Channel
Author *User
Embed *discordgo.MessageEmbed
PreviousEmbeds []*discordgo.MessageEmbed
}
type MessageService interface {
Message(id string) (*Message, error)
CreateMessage(m *Message) (*Message, error)
DeleteMessage(m *Message) error
ChannelMessages(c *Channel) ([]*Message, error)
UpdateMessage(m *Message) (*Message, error)
}

@ -0,0 +1,29 @@
package geeksbot
type PatreonCreator struct {
ID int
Creator string
Link string
}
type PatreonTier struct {
ID int
Name string
Description string
Creator *PatreonCreator
Role *Role
NextTier *PatreonTier
}
type PatreonService interface {
PatreonCreatorByID(id int) (*PatreonCreator, error)
PatreonCreatorByName(name string) (*PatreonCreator, error)
CreatePatreonCreator(c *PatreonCreator) (*PatreonCreator, error)
UpdatePatreonCreator(c *PatreonCreator) (*PatreonCreator, error)
DeletePatreonCreator(c *PatreonCreator) error
PatreonTierByID(id int) (*PatreonTier, error)
PatreonTierByName(name string) (*PatreonTier, error)
CreatePatreonTier(t *PatreonTier) (*PatreonTier, error)
UpdatePatreonTier(t *PatreonTier) (*PatreonTier, error)
DeletePatreonTier(t *PatreonTier) error
}

@ -0,0 +1,37 @@
package geeksbot
import "time"
type Request struct {
ID int64
Author *User
Channel *Channel
Content string
RequestedAt time.Time
CompletedAt time.Time
CompletedBy *User
Message *Message
CompletedMessage string
}
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
}

@ -0,0 +1,23 @@
package geeksbot
type Server struct {
ID int
Name string
IPAddr string
Port int
Password string
AlertsChannel *Channel
Guild *Guild
InfoChannel *Channel
InfoMessage *Message
SettingsMessage *Message
}
type ServerService interface {
ServerByID(id int) (*Server, error)
ServerByName(name string) (*Server, error)
CreateServer(s *Server) (*Server, error)
DeleteServer(s *Server) error
UpdateServer(s *Server) (*Server, error)
GuildServers(g *Guild) ([]*Server, error)
}

@ -0,0 +1,18 @@
package geeksbot
import "database/sql"
type User struct {
ID string
SteamID sql.NullString
IsActive bool
IsStaff bool
IsAdmin bool
}
type UserService interface {
User(id string) (*User, error)
CreateUser(u *User) (*User, error)
DeleteUser(u *User) error
UpdateUser(u *User) (*User, error)
}
Loading…
Cancel
Save