package model import "time" // RefuelRecord 单次加油记录。 // // 关键约定: // - Liters > 0(后端强校验) // - TotalAmount >= 0(允许 0 表示免费加注或赠送) // - PricePerLiter = TotalAmount / Liters(在 service 层实时计算并落库, // 既保留历史真实单价,也方便后续统计直接查询) // - IsFull = true 时,该记录才进入"标准百公里油耗"统计 type RefuelRecord struct { ID uint64 `gorm:"primaryKey;column:id" json:"id"` VehicleID uint64 `gorm:"not null;index;column:vehicle_id" json:"vehicle_id"` RefuelTime time.Time `gorm:"not null;index;column:refuel_time" json:"refuel_time"` // UTC Odometer float64 `gorm:"not null;column:odometer" json:"odometer"` // 公里 FuelType string `gorm:"not null;column:fuel_type" json:"fuel_type"` Liters float64 `gorm:"not null;column:liters" json:"liters"` // 升 PricePerLiter float64 `gorm:"not null;column:price_per_liter" json:"price_per_liter"` TotalAmount float64 `gorm:"not null;column:total_amount" json:"total_amount"` // 元 StationName string `gorm:"column:station_name" json:"station_name"` IsFull bool `gorm:"not null;default:false;column:is_full" json:"is_full"` Remark string `gorm:"column:remark" json:"remark"` CreatedAt time.Time `gorm:"not null;column:created_at" json:"created_at"` UpdatedAt time.Time `gorm:"not null;column:updated_at" json:"updated_at"` } // TableName 显式指定表名。 func (RefuelRecord) TableName() string { return "refuel_record" }