namespace AssetManager.Models.DTOs; public class CreatePortfolioRequest { public string? name { get; set; } public string? strategyId { get; set; } public string? currency { get; set; } public List? stocks { get; set; } } public class StockItem { public string? name { get; set; } public string? code { get; set; } public double price { get; set; } public int amount { get; set; } public string? date { get; set; } public string? currency { get; set; } public string assetType { get; set; } = "Stock"; // Stock / Crypto } public class CreatePortfolioResponse { public string? id { get; set; } public double totalValue { get; set; } public double returnRate { get; set; } public string? currency { get; set; } public string? createdAt { get; set; } } public class PortfolioDetailResponse { public string? id { get; set; } public string? name { get; set; } public string? currency { get; set; } public string? status { get; set; } public StrategyInfo? strategy { get; set; } public double portfolioValue { get; set; } public double totalReturn { get; set; } public double todayProfit { get; set; } public double historicalChange { get; set; } public double dailyVolatility { get; set; } public string? todayProfitCurrency { get; set; } public string? logicModel { get; set; } public string? logicModelStatus { get; set; } public string? logicModelDescription { get; set; } public int totalItems { get; set; } public double totalRatio { get; set; } public List? positions { get; set; } } public class StrategyInfo { public string? id { get; set; } public string? name { get; set; } public string? description { get; set; } } public class PositionItem { public string? id { get; set; } public string? stockCode { get; set; } public string? stockName { get; set; } public string? symbol { get; set; } public int amount { get; set; } public double averagePrice { get; set; } public double currentPrice { get; set; } public double totalValue { get; set; } public double profit { get; set; } public double profitRate { get; set; } public double changeAmount { get; set; } public double ratio { get; set; } public double deviationRatio { get; set; } public string? currency { get; set; } } public class TransactionItem { public string? id { get; set; } public string? portfolioId { get; set; } public string? date { get; set; } public string? time { get; set; } public string? type { get; set; } public string? title { get; set; } public string? stockCode { get; set; } public double amount { get; set; } public string? currency { get; set; } public string? status { get; set; } public string? remark { get; set; } } public class GetTransactionsRequest { public string? portfolioId { get; set; } public int limit { get; set; } public int offset { get; set; } } public class GetTransactionsResponse { public List? items { get; set; } public int total { get; set; } public int page { get; set; } public int pageSize { get; set; } } public class CreateTransactionRequest { public string? portfolioId { get; set; } public string? type { get; set; } public string? stockCode { get; set; } public int amount { get; set; } public double price { get; set; } public string? currency { get; set; } public string? remark { get; set; } public string assetType { get; set; } = "Stock"; // Stock / Crypto public string? transactionTime { get; set; } // 实际交易时间,可选 public string? transactionDate { get; set; } // 交易日期,前端传入 YYYY-MM-DD 格式 } public class CreateTransactionResponse { public string? id { get; set; } public double totalAmount { get; set; } public string? status { get; set; } public string? createdAt { get; set; } } public class PortfolioListItem { public string? id { get; set; } public string? name { get; set; } public string? tags { get; set; } public string? status { get; set; } public string? statusType { get; set; } public string? iconChar { get; set; } public string? iconBgClass { get; set; } public string? iconTextClass { get; set; } public double value { get; set; } public string? currency { get; set; } public double returnRate { get; set; } public string? returnType { get; set; } } public class GetPortfoliosResponse { public List? items { get; set; } } public class TotalAssetsResponse { public double totalValue { get; set; } public string? currency { get; set; } public double todayProfit { get; set; } public string? todayProfitCurrency { get; set; } public double totalReturnRate { get; set; } }