- Neue Tabelle 'telegram_bots' (bot_id, name, bot_token, webhook_secret, is_public)
- Automatische Migration bestehender Session-Telegram-Configs in telegram_bots
- Sessions verweisen via telegram_bot_id auf Bot (mehrere Sessions pro Bot möglich)
- Webhook-URL: /api/telegram/webhook/{botId} statt {sessionId}
- Eigene Telegram-Bot-Page (wie Agent/Cronjob/Session) statt Modal
- Bot-Page: Name, Token, Secret, Webhook-Verwaltung (registrieren/status/entfernen), Löschen
- Dashboard: Telegram Bots Section mit Cards (Name, maskierter Token, Session-Count)
- Session-Page: Bot-Picker (wie Agent-Picker) statt Token-Input, Chat-ID readonly + Unlink-Button
- Public-Flag: Bot kann von anderen Usern in ihren Sessions ausgewählt werden
- Vereinfacht: 1 Session = max. 1 Telegram Chat, allowed_chat_ids entfällt
- /start zeigt Chat-ID an, /unlink entfernt (Unlink nur über Web-UI)
- Nachrichten-Routing: Bot + Chat-ID → Session Lookup
47 lines
1.5 KiB
C#
47 lines
1.5 KiB
C#
namespace Gott.Models;
|
|
|
|
public class SessionRecord
|
|
{
|
|
public long Id { get; set; }
|
|
public string SessionId { get; set; }
|
|
public string Name { get; set; }
|
|
public string Description { get; set; }
|
|
public string Image { get; set; }
|
|
public string ImageSmall { get; set; } // 256px Thumbnail für Listen
|
|
public string AgentId { get; set; }
|
|
public string Workspace { get; set; }
|
|
public string Context { get; set; }
|
|
public string CustomCommands { get; set; }
|
|
public string UserId { get; set; }
|
|
public bool IsDeleted { get; set; }
|
|
public string TelegramBotId { get; set; }
|
|
public string TelegramChatId { get; set; }
|
|
public double AvatarScale { get; set; } = 1.0;
|
|
public double AvatarOffsetX { get; set; }
|
|
public double AvatarOffsetY { get; set; }
|
|
public string ReviewAgentId { get; set; }
|
|
public int MaxReviewIterations { get; set; } = 3;
|
|
public string FinalizerAgentId { get; set; }
|
|
public string PreparerAgentId { get; set; }
|
|
public string CreatedAt { get; set; }
|
|
public string UpdatedAt { get; set; }
|
|
}
|
|
|
|
public class SessionWithStats
|
|
{
|
|
public SessionRecord Session { get; set; }
|
|
public int MessageCount { get; set; }
|
|
public int ArchiveMessageCount { get; set; }
|
|
public int TotalMessageCount { get; set; }
|
|
public bool TelegramConfigured { get; set; }
|
|
public bool TelegramLinked { get; set; }
|
|
}
|
|
|
|
public class GitStatusSummary
|
|
{
|
|
public int Add { get; set; }
|
|
public int Edit { get; set; }
|
|
public int Delete { get; set; }
|
|
public int Outgoing { get; set; }
|
|
}
|