Files
chat-deploy/pkg/common/db/table/chat/livekit.go
kim.dev.6789 b7f8db7d08 复制项目
2026-01-14 22:35:45 +08:00

68 lines
2.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package chat
import (
"context"
"time"
)
// LiveKit 表示一台LiveKit服务器配置
type LiveKit struct {
ID string `bson:"_id" json:"id"` // 服务器唯一标识
Name string `bson:"name" json:"name"` // 服务器名称
URL string `bson:"url" json:"url"` // LiveKit服务器地址
Key string `bson:"key" json:"key"` // API Key
Secret string `bson:"secret" json:"secret"` // API Secret
Region string `bson:"region" json:"region"` // 服务器区域
Status int `bson:"status" json:"status"` // 状态0-禁用1-启用
Priority int `bson:"priority" json:"priority"` // 优先级,数字越小优先级越高
MaxRooms int `bson:"max_rooms" json:"max_rooms"` // 最大房间数
MaxUsers int `bson:"max_users" json:"max_users"` // 最大用户数
Description string `bson:"description" json:"description"` // 描述信息
CreateTime time.Time `bson:"create_time" json:"create_time"` // 创建时间
UpdateTime time.Time `bson:"update_time" json:"update_time"` // 更新时间
}
// TableName 返回表名
func (LiveKit) TableName() string {
return "livekits"
}
// LiveKitInterface 定义LiveKit数据库操作接口
type LiveKitInterface interface {
// Create 创建LiveKit服务器配置
Create(ctx context.Context, livekits ...*LiveKit) error
// Delete 删除LiveKit服务器配置
Delete(ctx context.Context, ids []string) error
// Update 更新LiveKit服务器配置
Update(ctx context.Context, livekit *LiveKit) error
// FindByID 根据ID查找LiveKit配置
FindByID(ctx context.Context, id string) (*LiveKit, error)
// FindByStatus 根据状态查找LiveKit配置列表
FindByStatus(ctx context.Context, status int) ([]*LiveKit, error)
// FindAll 查找所有LiveKit配置
FindAll(ctx context.Context) ([]*LiveKit, error)
// FindAvailable 查找可用的LiveKit服务器按优先级排序
FindAvailable(ctx context.Context) ([]*LiveKit, error)
// FindByRegion 根据区域查找LiveKit配置
FindByRegion(ctx context.Context, region string) ([]*LiveKit, error)
// UpdateStatus 更新服务器状态
UpdateStatus(ctx context.Context, id string, status int) error
// UpdatePriority 更新服务器优先级
UpdatePriority(ctx context.Context, id string, priority int) error
// GetNextAvailable 获取下一个可用的LiveKit服务器负载均衡
GetNextAvailable(ctx context.Context) (*LiveKit, error)
}
// 状态常量
const (
LiveKitStatusDisabled = 0 // 禁用
LiveKitStatusEnabled = 1 // 启用
)
// 默认值
const (
DefaultMaxRooms = 1000 // 默认最大房间数
DefaultMaxUsers = 100 // 默认最大用户数
DefaultPriority = 100 // 默认优先级
)