54 lines
1.8 KiB
Go
54 lines
1.8 KiB
Go
package form
|
|
|
|
import (
|
|
"time"
|
|
|
|
db "management/internal/db/sqlc"
|
|
"management/internal/pkg/convertor"
|
|
|
|
"github.com/jackc/pgx/v5/pgtype"
|
|
)
|
|
|
|
type BudgetForm struct {
|
|
ID int64 `json:"id"`
|
|
ProjectID int64 `json:"project_id"`
|
|
Name string `json:"name"`
|
|
BudgetType int32 `json:"budget_type"`
|
|
Category int32 `json:"category"`
|
|
StartAt time.Time `json:"start_at"`
|
|
EndAt time.Time `json:"end_at"`
|
|
Amount float64 `json:"amount"`
|
|
AmountF pgtype.Numeric `comment:"预算金额"`
|
|
UsedAmount float64 `json:"used_amount"`
|
|
UsedAmountF pgtype.Numeric `comment:"已支付金额"`
|
|
RemainingAmount float64 `json:"remaining_amount"`
|
|
RemainingAmountF pgtype.Numeric `comment:"剩余金额"`
|
|
Remark string `json:"remark"`
|
|
Status int16 `json:"status"`
|
|
Sort int32 `json:"sort"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
CreatedName string `comment:"创建人"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
UpdatedName string `comment:"更新人"`
|
|
}
|
|
|
|
func (f *BudgetForm) ToForm(p *db.Budget) *BudgetForm {
|
|
return &BudgetForm{
|
|
ID: p.ID,
|
|
ProjectID: p.ProjectID,
|
|
Name: p.Name,
|
|
BudgetType: p.BudgetType,
|
|
Category: p.Category,
|
|
StartAt: p.StartAt,
|
|
EndAt: p.EndAt,
|
|
Amount: convertor.NumericToFloat64(p.Amount),
|
|
UsedAmount: convertor.NumericToFloat64(p.UsedAmount),
|
|
RemainingAmount: convertor.NumericToFloat64(p.RemainingAmount),
|
|
Remark: p.Remark,
|
|
Status: p.Status,
|
|
Sort: p.Sort,
|
|
CreatedAt: p.CreatedAt,
|
|
UpdatedAt: p.UpdatedAt,
|
|
}
|
|
}
|