Files
BossChat/internal/repositories/dashboard_repository.go
T
Aibo117 0f40930a41 refactor: rebrand from cs-agent to BossChat
- Rename Go module: cs-agent → bosschat
- Rename all import paths across 200+ Go files
- Rename SDK: cs-ai-agent-sdk → bosschat-sdk
- Rename message protocol: cs-agent:* → bosschat:*
- Rename JS globals: CSAgentConfig → BossChatConfig
- Rename CSS classes: cs-agent-* → bosschat-*
- Update Makefile APP_NAME and ARCHIVE_NAME
- Update logo assets
- Fix display name: BoosChat → BossChat
2026-05-26 13:17:07 +08:00

109 lines
2.7 KiB
Go

package repositories
import (
"bosschat/internal/models"
"bosschat/internal/pkg/enums"
"time"
"gorm.io/gorm"
)
var DashboardRepository = newDashboardRepository()
func newDashboardRepository() *dashboardRepository {
return &dashboardRepository{}
}
type dashboardRepository struct {
}
func (r *dashboardRepository) CountConversations(db *gorm.DB, query func(tx *gorm.DB) *gorm.DB) int64 {
var count int64
tx := db.Model(&models.Conversation{})
if query != nil {
tx = query(tx)
}
tx.Count(&count)
return count
}
func (r *dashboardRepository) ListConversations(db *gorm.DB, query func(tx *gorm.DB) *gorm.DB) []models.Conversation {
var list []models.Conversation
tx := db.Model(&models.Conversation{})
if query != nil {
tx = query(tx)
}
tx.Find(&list)
return list
}
func (r *dashboardRepository) ListEnabledAgentProfiles(db *gorm.DB) []models.AgentProfile {
var list []models.AgentProfile
db.Model(&models.AgentProfile{}).Where("status = ?", enums.StatusOk).Find(&list)
return list
}
func (r *dashboardRepository) ListEnabledAgentTeams(db *gorm.DB) []models.AgentTeam {
var list []models.AgentTeam
db.Model(&models.AgentTeam{}).Where("status = ?", enums.StatusOk).Order("id asc").Find(&list)
return list
}
func (r *dashboardRepository) ListActiveTeamSchedules(db *gorm.DB, startAt, endAt time.Time) []models.AgentTeamSchedule {
var list []models.AgentTeamSchedule
db.Model(&models.AgentTeamSchedule{}).
Where("status = ? AND start_at <= ? AND end_at >= ?", enums.StatusOk, endAt, startAt).
Find(&list)
return list
}
func (r *dashboardRepository) CountAIAgents(db *gorm.DB, query func(tx *gorm.DB) *gorm.DB) int64 {
var count int64
tx := db.Model(&models.AIAgent{})
if query != nil {
tx = query(tx)
}
tx.Count(&count)
return count
}
func (r *dashboardRepository) ListAIAgents(db *gorm.DB, query func(tx *gorm.DB) *gorm.DB) []models.AIAgent {
var list []models.AIAgent
tx := db.Model(&models.AIAgent{})
if query != nil {
tx = query(tx)
}
tx.Find(&list)
return list
}
func (r *dashboardRepository) CountChannels(db *gorm.DB, query func(tx *gorm.DB) *gorm.DB) int64 {
var count int64
tx := db.Model(&models.Channel{})
if query != nil {
tx = query(tx)
}
tx.Count(&count)
return count
}
func (r *dashboardRepository) CountKnowledgeRetrieveLogs(db *gorm.DB, query func(tx *gorm.DB) *gorm.DB) int64 {
var count int64
tx := db.Model(&models.KnowledgeRetrieveLog{})
if query != nil {
tx = query(tx)
}
tx.Count(&count)
return count
}
func (r *dashboardRepository) CountSkillRunLogs(db *gorm.DB, query func(tx *gorm.DB) *gorm.DB) int64 {
var count int64
tx := db.Model(&models.SkillRunLog{})
if query != nil {
tx = query(tx)
}
tx.Count(&count)
return count
}