AssetManager.API/AssetManager.Models/DTOs/PortfolioDTO.cs

157 lines
4.8 KiB
C#

namespace AssetManager.Models.DTOs;
public class CreatePortfolioRequest
{
public string? name { get; set; }
public string? strategyId { get; set; }
public string? currency { get; set; }
public List<StockItem>? 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<PositionItem>? 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 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<TransactionItem>? 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<PortfolioListItem>? 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; }
}