Files
hammond/server/models/report.go
2021-08-13 13:04:00 +05:30

39 lines
1.2 KiB
Go

package models
import (
"encoding/json"
"time"
"github.com/akhilrex/hammond/db"
)
type MileageModel struct {
Date time.Time `form:"date" json:"date" binding:"required" time_format:"2006-01-02"`
VehicleID string `form:"vehicleId" json:"vehicleId" binding:"required"`
FuelUnit db.FuelUnit `form:"fuelUnit" json:"fuelUnit" binding:"required"`
FuelQuantity float32 `form:"fuelQuantity" json:"fuelQuantity" binding:"required"`
PerUnitPrice float32 `form:"perUnitPrice" json:"perUnitPrice" binding:"required"`
Currency string `json:"currency"`
Mileage float32 `form:"mileage" json:"mileage" binding:"mileage"`
CostPerMile float32 `form:"costPerMile" json:"costPerMile" binding:"costPerMile"`
OdoReading int `form:"odoReading" json:"odoReading" binding:"odoReading"`
}
func (v *MileageModel) FuelUnitDetail() db.EnumDetail {
return db.FuelUnitDetails[v.FuelUnit]
}
func (b *MileageModel) MarshalJSON() ([]byte, error) {
return json.Marshal(struct {
MileageModel
FuelUnitDetail db.EnumDetail `json:"fuelUnitDetail"`
}{
MileageModel: *b,
FuelUnitDetail: b.FuelUnitDetail(),
})
}
type MileageQueryModel struct {
Since time.Time `json:"since" query:"since" form:"since"`
}