Files
go-socket/structs.go
T

55 lines
1.5 KiB
Go

package main
import (
"go-socket/Enums/ConnectionState"
"time"
"github.com/coder/websocket"
"github.com/google/uuid"
)
type User struct {
Name string
Pronouns string
PasswordHash string
CreatedAt time.Time
WsConn *websocket.Conn
Id uint32
Groups map[uint32]struct{}
Connections map[uuid.UUID]*Connection
Color [3]uint8
}
type Connection struct {
Id uuid.UUID `json:"id"`
CreatedAt time.Time `json:"createdAt"`
MessagesBuf [MaxDirectMsgCache]*Message `json:"-"`
RequestorId uint32 `json:"requestorId"`
RecipientId uint32 `json:"recipientId"`
State ConnectionState.ConnectionState `json:"state"`
}
type Message struct {
Id uuid.UUID `json:"id"`
Content string `json:"content"`
CreatedAt time.Time `json:"createdAt"`
Sender uint32 `json:"sender"`
IsGroupMessage bool `json:"isGroupMessage"`
}
type Group struct {
Name string `json:"name"`
CreatedAt time.Time `json:"createdAt"`
Id uint32 `json:"-"`
CreatorId uint32 `json:"creatorId"`
OwnerId uint32 `json:"ownerId"`
Users map[uint32]struct{} `json:"-"`
Color [3]uint8 `json:"color"`
EnableUserColors bool `json:"enableUserColors"`
}
type LoginReturn struct {
Token string `json:"token"`
UserId uint32 `json:"userId"`
}