using Managing.Domain.Accounts; using Orleans; using static Managing.Common.Enums; namespace Managing.Domain.Users; [GenerateSerializer] public class User { [Id(0)] public int Id { get; set; } [Id(1)] public string Name { get; set; } [Id(2)] public List Accounts { get; set; } [Id(3)] public string AgentName { get; set; } = string.Empty; [Id(4)] public string AvatarUrl { get; set; } = string.Empty; [Id(5)] public string TelegramChannel { get; set; } = string.Empty; [Id(6)] public string OwnerWalletAddress { get; set; } = string.Empty; [Id(7)] public bool IsAdmin { get; set; } = false; [Id(8)] public DateTimeOffset? LastConnectionDate { get; set; } // User Settings - Trading Configuration [Id(9)] public decimal? LowEthAmountAlert { get; set; } [Id(10)] public bool EnableAutoswap { get; set; } = false; [Id(11)] public decimal? AutoswapAmount { get; set; } [Id(12)] public int? MaxWaitingTimeForPositionToGetFilledSeconds { get; set; } [Id(13)] public decimal? MaxTxnGasFeePerPosition { get; set; } [Id(14)] public bool IsGmxEnabled { get; set; } = false; [Id(20)] public decimal? GmxSlippage { get; set; } // User Settings - Indicator Combo Configuration [Id(15)] public Confidence? MinimumConfidence { get; set; } [Id(16)] public decimal? TrendStrongAgreementThreshold { get; set; } [Id(17)] public decimal? SignalAgreementThreshold { get; set; } [Id(18)] public bool? AllowSignalTrendOverride { get; set; } [Id(19)] public TradingExchanges? DefaultExchange { get; set; } }