Files
collector/models/models.go
2026-04-07 19:30:42 +08:00

104 lines
8.7 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package models
import (
"time"
"gorm.io/gorm"
)
// AssetSnapshot 资产快照数据库模型
type CollectorAssets struct {
ID uint `json:"id" gorm:"primaryKey;comment:主键ID"`
AccountID string `json:"account_id" gorm:"type:varchar(50);not null;index;comment:账户ID"`
Ymd int `json:"ymd" gorm:"not null;index;comment:采集日期年月日数字格式如20260407"`
Cash float64 `json:"cash" gorm:"type:decimal(15,2);not null;default:0;comment:可用资金"`
FrozenCash float64 `json:"frozen_cash" gorm:"type:decimal(15,2);not null;default:0;column:frozen_cash;comment:冻结资金"`
MarketValue float64 `json:"market_value" gorm:"type:decimal(15,2);not null;default:0;column:market_value;comment:持仓市值"`
Profit float64 `json:"profit" gorm:"type:decimal(15,2);not null;default:0;comment:当日盈亏"`
TotalAsset float64 `json:"total_asset" gorm:"type:decimal(15,2);not null;default:0;column:total_asset;comment:总资产"`
DataHash string `json:"data_hash" gorm:"type:varchar(64);not null;index;comment:数据哈希值(用于变化检测)"`
CollectedAt time.Time `json:"collected_at" gorm:"not null;index;comment:数据采集时间"`
CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime;comment:记录创建时间"`
DeletedAt gorm.DeletedAt `json:"-" gorm:"index;comment:软删除时间"`
}
// OrderRecord 订单数据库模型
type CollectorOrder struct {
ID uint `json:"id" gorm:"primaryKey;comment:主键ID"`
OrderID int64 `json:"order_id" gorm:"not null;index;comment:订单ID"`
AccountID string `json:"account_id" gorm:"type:varchar(50);not null;index;comment:账户ID"`
StockCode string `json:"stock_code" gorm:"type:varchar(20);not null;index;comment:股票代码"`
Ymd int `json:"ymd" gorm:"not null;index;comment:采集日期年月日数字格式如20260407"`
Price float64 `json:"price" gorm:"type:decimal(10,4);not null;default:0;comment:委托价格"`
Volume int `json:"volume" gorm:"not null;default:0;comment:委托数量"`
TradedPrice float64 `json:"traded_price" gorm:"type:decimal(10,4);not null;default:0;column:traded_price;comment:成交均价"`
TradedVolume int `json:"traded_volume" gorm:"not null;default:0;column:traded_volume;comment:成交数量"`
OrderStatus int `json:"order_status" gorm:"not null;default:0;column:order_status;comment:订单状态"`
OrderTime int64 `json:"order_time" gorm:"not null;column:order_time;comment:下单时间戳"`
OrderRemark string `json:"order_remark" gorm:"type:text;column:order_remark;comment:订单备注"`
DataHash string `json:"data_hash" gorm:"type:varchar(64);not null;comment:数据哈希值(用于变化检测)"`
CollectedAt time.Time `json:"collected_at" gorm:"not null;index;comment:数据采集时间"`
CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime;comment:记录创建时间"`
DeletedAt gorm.DeletedAt `json:"-" gorm:"index;comment:软删除时间"`
}
// PositionRecord 持仓数据库模型
type CollectorPosition struct {
ID uint `json:"id" gorm:"primaryKey;comment:主键ID"`
AccountID string `json:"account_id" gorm:"type:varchar(50);not null;index;comment:账户ID"`
Code string `json:"code" gorm:"type:varchar(20);not null;index;comment:股票代码"`
Ymd int `json:"ymd" gorm:"not null;index;comment:采集日期年月日数字格式如20260407"`
Volume int `json:"volume" gorm:"not null;default:0;comment:持仓数量"`
CanUseVolume int `json:"can_use_volume" gorm:"not null;default:0;column:can_use_volume;comment:可用数量"`
FrozenVolume int `json:"frozen_volume" gorm:"not null;default:0;column:frozen_volume;comment:冻结数量"`
AvgPrice float64 `json:"avg_price" gorm:"type:decimal(10,4);not null;default:0;column:avg_price;comment:持仓成本价"`
OpenPrice float64 `json:"open_price" gorm:"type:decimal(10,4);not null;default:0;column:open_price;comment:开仓价格"`
CurrentPrice float64 `json:"current_price" gorm:"type:decimal(10,4);not null;default:0;column:current_price;comment:当前价格"`
MarketValue float64 `json:"market_value" gorm:"type:decimal(15,2);not null;default:0;column:market_value;comment:持仓市值"`
Profit float64 `json:"profit" gorm:"type:decimal(15,2);not null;default:0;comment:持仓盈亏"`
ProfitRate float64 `json:"profit_rate" gorm:"type:decimal(10,4);not null;default:0;column:profit_rate;comment:盈亏比例"`
MinProfitRate float64 `json:"min_profit_rate" gorm:"type:decimal(10,4);not null;default:0;column:min_profit_rate;comment:最低盈亏比例"`
DataHash string `json:"data_hash" gorm:"type:varchar(64);not null;comment:数据哈希值(用于变化检测)"`
CollectedAt time.Time `json:"collected_at" gorm:"not null;index;comment:数据采集时间"`
CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime;comment:记录创建时间"`
DeletedAt gorm.DeletedAt `json:"-" gorm:"index;comment:软删除时间"`
}
// TickRecord 行情数据库模型
type CollectorTick struct {
ID uint `json:"id" gorm:"primaryKey;comment:主键ID"`
StockCode string `json:"stock_code" gorm:"type:varchar(20);not null;index;comment:股票代码"`
Ymd int `json:"ymd" gorm:"not null;index;comment:采集日期年月日数字格式如20260407"`
LastPrice float64 `json:"last_price" gorm:"type:decimal(10,4);not null;default:0;column:last_price;comment:最新成交价"`
Open float64 `json:"open" gorm:"type:decimal(10,4);not null;default:0;comment:开盘价"`
High float64 `json:"high" gorm:"type:decimal(10,4);not null;default:0;comment:最高价"`
Low float64 `json:"low" gorm:"type:decimal(10,4);not null;default:0;comment:最低价"`
LastClose float64 `json:"last_close" gorm:"type:decimal(10,4);not null;default:0;column:last_close;comment:昨收盘价"`
Volume int64 `json:"volume" gorm:"not null;default:0;comment:成交量(股)"`
Amount float64 `json:"amount" gorm:"type:decimal(15,2);not null;default:0;comment:成交额(元)"`
PVolume int64 `json:"pvolume" gorm:"not null;default:0;column:pvolume;comment:累积成交量"`
BidPrices []float64 `json:"bid_prices" gorm:"type:decimal(10,4)[];column:bid_prices;comment:买盘价格数组(买一到买五)"`
BidVolumes []int `json:"bid_volumes" gorm:"type:integer[];column:bid_volumes;comment:买盘数量数组(买一到买五)"`
AskPrices []float64 `json:"ask_prices" gorm:"type:decimal(10,4)[];column:ask_prices;comment:卖盘价格数组(卖一到卖五)"`
AskVolumes []int `json:"ask_volumes" gorm:"type:integer[];column:ask_volumes;comment:卖盘数量数组(卖一到卖五)"`
Time int64 `json:"time" gorm:"not null;index;comment:行情时间戳"`
TimeTag string `json:"timetag" gorm:"type:varchar(50);column:timetag;comment:时间标签(格式化时间字符串)"`
StockStatus int `json:"stock_status" gorm:"not null;default:0;column:stock_status;comment:股票状态"`
DataHash string `json:"data_hash" gorm:"type:varchar(64);not null;comment:数据哈希值(用于变化检测)"`
CollectedAt time.Time `json:"collected_at" gorm:"not null;index;comment:数据采集时间"`
CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime;comment:记录创建时间"`
DeletedAt gorm.DeletedAt `json:"-" gorm:"index;comment:软删除时间"`
}
// CollectionLog 采集日志数据库模型
type CollectorLog struct {
ID uint `json:"id" gorm:"primaryKey;comment:主键ID"`
DataHash string `json:"data_hash" gorm:"type:varchar(64);not null;index;comment:数据哈希值(用于变化检测)"`
Ymd int `json:"ymd" gorm:"not null;index;comment:采集日期年月日数字格式如20260407"`
HasChanged bool `json:"has_changed" gorm:"not null;default:false;column:has_changed;comment:数据是否发生变化"`
StatusMessage string `json:"status_message" gorm:"type:text;column:status_message;comment:状态消息(成功/失败信息)"`
CollectedAt time.Time `json:"collected_at" gorm:"not null;index;comment:数据采集时间"`
CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime;comment:记录创建时间"`
DeletedAt gorm.DeletedAt `json:"-" gorm:"index;comment:软删除时间"`
}