✨ Create service and first version of models
This commit is contained in:
parent
6bca1f453e
commit
ce0f5bafa0
21
logic/service.go
Normal file
21
logic/service.go
Normal file
@ -0,0 +1,21 @@
|
||||
package logic
|
||||
|
||||
import "git.dragon-labs.de/alphyron/group_helper/models"
|
||||
|
||||
type GroupHelperService interface {
|
||||
CreateGroup(*models.Group) (*models.Group, error)
|
||||
UpdateGroup(*models.Group) (*models.Group, error)
|
||||
|
||||
GetGroupByID(int64) (*models.Group, error)
|
||||
GetGroupDatabaseSize(int64) (int, error)
|
||||
|
||||
CreateUser(*models.User) (*models.User, error)
|
||||
GetUserByID(int64) *models.User
|
||||
|
||||
UserJoinGroup(*models.User, *models.Group) (bool, error)
|
||||
UserLeaveGroup(*models.User, *models.Group) (bool, error)
|
||||
IsUserInGroup(*models.User, *models.Group) (bool, error)
|
||||
|
||||
ListGroups() ([]*models.Group, error)
|
||||
ListUsers() ([]*models.User, error)
|
||||
}
|
35
models/group.go
Normal file
35
models/group.go
Normal file
@ -0,0 +1,35 @@
|
||||
package models
|
||||
|
||||
type Group struct {
|
||||
ID uint `gorm:"primary_key"`
|
||||
GroupID int64
|
||||
Size int
|
||||
UserJoinMessage string `gorm:"column:msg_user_join;type:text"`
|
||||
UserVerifiedMessage string `gorm:"column:msg_user_verified;type:text"`
|
||||
UserLeaveMessage string `gorm:"column:msg_user_leave;type:text"`
|
||||
UserKickMessage string `gorm:"column:msg_user_kick;type:text"`
|
||||
ForbidWriting bool `gorm:"column:forbid_writing"`
|
||||
OnlineCheck int `gorm:"column:kick_cooldown"`
|
||||
}
|
||||
|
||||
func (group *Group) FillDefaultValues() {
|
||||
if len(group.UserKickMessage) == 0 {
|
||||
group.UserKickMessage = "[{{user.firstname}} {{user.lastname}}](tg://user?id={{user.id}}) did not verify!\n They are going to leave us."
|
||||
}
|
||||
|
||||
if len(group.UserJoinMessage) == 0 {
|
||||
group.UserJoinMessage = "[{{user.firstname}} {{user.lastname}}](tg://user?id={{user.id}}) joined us. Hello and Welcome! Please verify that you are not a bot."
|
||||
}
|
||||
|
||||
if len(group.UserLeaveMessage) == 0 {
|
||||
group.UserLeaveMessage = "[{{user.firstname}} {{user.lastname}}](tg://user?id={{user.id}}) left us."
|
||||
}
|
||||
|
||||
if len(group.UserVerifiedMessage) == 0 {
|
||||
group.UserVerifiedMessage = "[{{user.firstname}} {{user.lastname}}](tg://user?id={{user.id}}) is now permitted to stay in the chat!"
|
||||
}
|
||||
|
||||
if group.OnlineCheck == 0 {
|
||||
group.OnlineCheck = 5
|
||||
}
|
||||
}
|
7
models/user.go
Normal file
7
models/user.go
Normal file
@ -0,0 +1,7 @@
|
||||
package models
|
||||
|
||||
type User struct {
|
||||
ID uint `gorm:"primary_key" json:"id"`
|
||||
UserID int64 `json:"user_id"`
|
||||
Groups []*Group `json:"groups" gorm:"many2many:GroupUser;"`
|
||||
}
|
Loading…
Reference in New Issue
Block a user