✨ 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