Files
velox-bot/internal/db/services/levelsettings/service.go
FernandoJVideiraandClaude Sonnet 5.5 132a2cd986 Commands for everything a dashboard can do
- /music skip, pause, resume, stop, repeat, remove, move (DJ role)
- /config view, clear, toggletwitch, streamers, beta-features (server owner)
- /slvl status, remove-reward; /moderation bans, timeouts; /security history
- /beta is now the bot owner's DM-only command: set, off, servers, remove-server, status
- betasettings service and repo methods, with integration tests

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 02:10:05 +01:00

66 lines
2.0 KiB
Go

package levelsettings
import (
"context"
"velox-bot/internal/db/repos/settingsrepo"
)
type Service struct {
settings *settingsrepo.Repo
}
func New(settings *settingsrepo.Repo) *Service {
return &Service{settings: settings}
}
func (s *Service) ToggleLevelSystem(ctx context.Context, guildID int64) (bool, error) {
enabled, err := s.settings.IsLevelSystemEnabled(ctx, guildID)
if err != nil {
return false, err
}
newEnabled := !enabled
if err := s.settings.SetLevelSystemEnabled(ctx, guildID, newEnabled); err != nil {
return false, err
}
return newEnabled, nil
}
func (s *Service) SetLevelSystemEnabled(ctx context.Context, guildID int64, enabled bool) error {
return s.settings.SetLevelSystemEnabled(ctx, guildID, enabled)
}
func (s *Service) SetLevelUpChannel(ctx context.Context, guildID int64, channelID int64) error {
return s.settings.SetLevelUpChannel(ctx, guildID, channelID)
}
func (s *Service) SetLevelUpMessage(ctx context.Context, guildID int64, message string) error {
return s.settings.SetLevelUpMessage(ctx, guildID, message)
}
func (s *Service) GetLevelUpMessage(ctx context.Context, guildID int64) (string, error) {
return s.settings.GetLevelUpMessage(ctx, guildID)
}
func (s *Service) SetRoleRewardForLevel(ctx context.Context, guildID int64, level int, roleID int64) error {
return s.settings.SetRoleRewardForLevel(ctx, guildID, level, roleID)
}
func (s *Service) ListRoleRewards(ctx context.Context, guildID int64, limit int) ([]*settingsrepo.LevelReward, error) {
return s.settings.ListRoleRewards(ctx, guildID, limit)
}
func (s *Service) IsLevelSystemEnabled(ctx context.Context, guildID int64) (bool, error) {
return s.settings.IsLevelSystemEnabled(ctx, guildID)
}
func (s *Service) DeleteRoleRewardForLevel(ctx context.Context, guildID int64, level int) (bool, error) {
return s.settings.DeleteRoleRewardForLevel(ctx, guildID, level)
}
func (s *Service) GetLevelUpChannelID(ctx context.Context, guildID int64) (int64, bool, error) {
return s.settings.GetLevelupChannelID(ctx, guildID)
}