using System.Collections.Generic;
using PolyTraderSharp.Models;

namespace PolyTrader.Core.Persistence
{
    /// <summary>
    /// Zugriff auf die offenen Positionen je Account. Kapselt das aktuelle
    /// Collection-per-Account-Muster ("open_positions_{id}" / "demo_positions_{id}").
    /// In der späteren MySQL-Migration wird daraus eine Tabelle mit account_id/is_demo.
    /// </summary>
    public interface IPositionRepository
    {
        List<Position> GetLive(int accountId);
        List<Position> GetDemo(int accountId);

        Position? FindLive(int accountId, string tokenId);
        Position? FindDemo(int accountId, string tokenId);

        void UpsertLive(int accountId, Position position);
        void UpsertDemo(int accountId, Position position);

        void DeleteLive(int accountId, string tokenId);
        void DeleteDemo(int accountId, string tokenId);

        void DropDemo(int accountId);
    }
}
