diff --git a/LittleShop/Services/BotService.cs b/LittleShop/Services/BotService.cs index a9b15ad..92c2b6c 100644 --- a/LittleShop/Services/BotService.cs +++ b/LittleShop/Services/BotService.cs @@ -26,10 +26,41 @@ public class BotService : IBotService public async Task RegisterBotAsync(BotRegistrationDto dto) { - _logger.LogInformation("Registering new bot: {BotName}", dto.Name); + _logger.LogInformation("Registering bot: {BotName} (Type: {BotType})", dto.Name, dto.Type); + // Check if a bot with the same name and type already exists + var existingBot = await _context.Bots + .FirstOrDefaultAsync(b => b.Name == dto.Name && b.Type == dto.Type); + + if (existingBot != null) + { + _logger.LogInformation("Bot already exists: {BotId}. Updating existing bot instead of creating duplicate.", existingBot.Id); + + // Update existing bot + existingBot.Description = dto.Description; + existingBot.Version = dto.Version; + existingBot.Settings = JsonSerializer.Serialize(dto.InitialSettings); + existingBot.PersonalityName = string.IsNullOrEmpty(dto.PersonalityName) ? existingBot.PersonalityName : dto.PersonalityName; + existingBot.Status = BotStatus.Active; + existingBot.IsActive = true; + existingBot.LastConfigSyncAt = DateTime.UtcNow; + + await _context.SaveChangesAsync(); + + _logger.LogInformation("Existing bot updated: {BotId}", existingBot.Id); + + return new BotRegistrationResponseDto + { + BotId = existingBot.Id, + BotKey = existingBot.BotKey, + Name = existingBot.Name, + Settings = dto.InitialSettings + }; + } + + // Create new bot if none exists var botKey = await GenerateBotKeyAsync(); - + var bot = new Bot { Id = Guid.NewGuid(), @@ -48,7 +79,7 @@ public class BotService : IBotService _context.Bots.Add(bot); await _context.SaveChangesAsync(); - _logger.LogInformation("Bot registered successfully: {BotId}", bot.Id); + _logger.LogInformation("New bot registered successfully: {BotId}", bot.Id); return new BotRegistrationResponseDto { diff --git a/LittleShop/appsettings.Development.json b/LittleShop/appsettings.Development.json index bb136cf..5db3fc2 100644 --- a/LittleShop/appsettings.Development.json +++ b/LittleShop/appsettings.Development.json @@ -10,7 +10,7 @@ }, "SilverPay": { "BaseUrl": "http://10.0.0.51:5500", - "ApiKey": "sp_test_key_development", + "ApiKey": "OCTk42VKenf5KZqKDDRAAskxf53yJsEby72j99Fc", "WebhookSecret": "webhook_secret_dev", "DefaultWebhookUrl": "http://localhost:5000/api/orders/payments/webhook", "AllowUnsignedWebhooks": true diff --git a/TeleBot/TeleBot/appsettings.json b/TeleBot/TeleBot/appsettings.json index b7a4ef2..586a886 100644 --- a/TeleBot/TeleBot/appsettings.json +++ b/TeleBot/TeleBot/appsettings.json @@ -20,7 +20,7 @@ "Comment": "Optional secret key for webhook authentication" }, "LittleShop": { - "ApiUrl": "http://littleshop:5000", + "ApiUrl": "http://localhost:5000", "OnionUrl": "", "Username": "admin", "Password": "admin", @@ -34,7 +34,7 @@ "EnableAnalytics": false, "RequirePGPForShipping": false, "EphemeralByDefault": true, - "EnableTor": true, + "EnableTor": false, "TorSocksHost": "tor-gateway", "TorSocksPort": 9050, "TorControlPort": 9051,