39 lines
712 B
Go
39 lines
712 B
Go
package svc
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"juwan-backend/app/chat/rpc/pb"
|
|
)
|
|
|
|
type ChatStore struct {
|
|
Mu sync.RWMutex
|
|
|
|
nextSessionID int64
|
|
nextMessageID int64
|
|
|
|
Sessions map[int64]*pb.ChatSessions
|
|
Messages map[int64]*pb.ChatMessages
|
|
SessionMessages map[int64][]int64
|
|
}
|
|
|
|
func NewChatStore() *ChatStore {
|
|
return &ChatStore{
|
|
nextSessionID: 1000,
|
|
nextMessageID: 1000,
|
|
Sessions: make(map[int64]*pb.ChatSessions),
|
|
Messages: make(map[int64]*pb.ChatMessages),
|
|
SessionMessages: make(map[int64][]int64),
|
|
}
|
|
}
|
|
|
|
func (s *ChatStore) NextSession() int64 {
|
|
s.nextSessionID++
|
|
return s.nextSessionID
|
|
}
|
|
|
|
func (s *ChatStore) NextMessage() int64 {
|
|
s.nextMessageID++
|
|
return s.nextMessageID
|
|
}
|