using System;

namespace PolyTrader.Modules.ResolutionFarming.Models
{
    /// <summary>
    /// Offene Farming-Position (Tabelle rf_positions). Zusammengesetzter Schlüssel (AccountId, TokenId):
    /// eine offene Position je Markt/Account. Beim Schließen wird die Zeile gelöscht und ein
    /// <see cref="RfClosedTrade"/> geschrieben.
    /// </summary>
    public class RfPosition
    {
        public int AccountId { get; set; }
        public string TokenId { get; set; } = string.Empty;

        public string MarketSlug { get; set; } = string.Empty;
        public string MarketQuestion { get; set; } = string.Empty;
        public string Outcome { get; set; } = string.Empty;
        public string Category { get; set; } = string.Empty;
        public string ClusterKey { get; set; } = string.Empty;

        public decimal EntryPrice { get; set; }
        public decimal Size { get; set; }         // Shares
        public decimal AmountUsd { get; set; }    // Einstiegskosten inkl. Fee
        public int EntryFeeBps { get; set; }
        public bool IsDemo { get; set; }

        public DateTime OpenedAt { get; set; }
        public DateTime? EndDate { get; set; }

        /// <summary>"Pending" (Order platziert, nicht gefüllt), "Open" (gefüllt), "Resolving".</summary>
        public string Status { get; set; } = "Pending";
    }
}
