Phase 5.3-ClosedTrade: ClosedTrade -> Modul + ICopyTradeLogRepository

- ClosedTrade (+ ClosedTradeRow) nach src/PolyTrader.Modules.CopyTrading/Models/.
- Neues ICopyTradeLogRepository (+ Mongo-Impl) im Modul: EnsureIndexes, Exists,
  Insert, Find(predicate) auf der closed_trades-Collection.
- closed_trades-Zugriffe der Modul-Services vom App-Shim auf das Repo umgestellt:
  TraderMonitorService, PersistenceService, PolymarketWssClient, TraderAnalyticsJob.
  Shim-/DB-Usings dort entfernt.
- TraderMonitorService nutzt kein _db mehr (auch die uebrigen _db-Guards aus 3d
  entfernt, da Repos immer verfuegbar sind). Verhaltensneutral.
- frm_main (UI) + Program.cs (BsonDocument-Cleanup) bleiben auf _db.
- Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-07-01 22:27:22 +02:00
co-authored by Claude Opus 4.8
parent 3be75c0f05
commit 88fc982089
8 changed files with 122 additions and 73 deletions
@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using PolyTraderSharp.Models;
namespace PolyTrader.Modules.CopyTrading.Persistence
{
/// <summary>
/// Copytrading-eigener Trade-Log (Collection "closed_trades"). Enthält die kopierten,
/// geschlossenen Trades mit Copytrading-Details (SourceTraderId etc.).
/// Ergänzt später den generischen Core-Trade-Log (TradeRecord).
/// </summary>
public interface ICopyTradeLogRepository
{
void EnsureIndexes();
/// <summary>Prüft, ob für Account + TokenId bereits ein Eintrag existiert (Dedup).</summary>
bool Exists(int accountId, string tokenId);
void Insert(ClosedTrade trade);
/// <summary>Generische Abfrage (ersetzt die bisherigen LiteFind-Zugriffe).</summary>
List<ClosedTrade> Find(Expression<Func<ClosedTrade, bool>> predicate);
}
}