- 所有 Model 添加对应的 *Cent int64 字段 - 旧的 float64 字段保留但不输出到 JSON (json:"-") - 涉及文件:user.go, listing.go, order.go, order_checkout.go, wallet.go, withdrawal.go - 目标:为后续业务逻辑切换到分存储做准备 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
46 lines
2.7 KiB
Go
46 lines
2.7 KiB
Go
package model
|
|
|
|
import (
|
|
"time"
|
|
|
|
"gorm.io/datatypes"
|
|
)
|
|
|
|
type RentalOrder struct {
|
|
ID uint64 `gorm:"primaryKey" json:"id"`
|
|
OrderNo string `gorm:"size:64;not null;uniqueIndex" json:"order_no"`
|
|
ListingID uint64 `gorm:"not null;index" json:"listing_id"`
|
|
AccountID uint64 `gorm:"not null;index" json:"account_id"`
|
|
OwnerID uint64 `gorm:"not null;index" json:"owner_id"`
|
|
RenterID uint64 `gorm:"not null;index" json:"renter_id"`
|
|
RentedAt *time.Time `json:"rented_at"`
|
|
EstimatedDurationHours int `gorm:"not null;default:24" json:"estimated_duration_hours"`
|
|
RentAmount float64 `gorm:"type:decimal(12,2);not null;default:0" json:"-"`
|
|
RentAmountCent int64 `gorm:"not null;default:0" json:"-"`
|
|
OwnerRentAmount float64 `gorm:"type:decimal(12,2);not null;default:0" json:"-"`
|
|
OwnerRentAmountCent int64 `gorm:"not null;default:0" json:"-"`
|
|
DepositAmount float64 `gorm:"type:decimal(12,2);not null;default:0" json:"-"`
|
|
DepositAmountCent int64 `gorm:"not null;default:0" json:"-"`
|
|
DepositOriginalAmount float64 `gorm:"type:decimal(12,2);not null;default:0" json:"-"`
|
|
DepositOriginalAmountCent int64 `gorm:"not null;default:0" json:"-"`
|
|
DepositWaivedAmount float64 `gorm:"type:decimal(12,2);not null;default:0" json:"-"`
|
|
DepositWaivedAmountCent int64 `gorm:"not null;default:0" json:"-"`
|
|
PlatformFee float64 `gorm:"type:decimal(12,2);not null;default:0" json:"-"`
|
|
PlatformFeeCent int64 `gorm:"not null;default:0" json:"-"`
|
|
AccountSnapshot datatypes.JSON `json:"account_snapshot"`
|
|
Status string `gorm:"size:32;not null;default:'pending_payment'" json:"status"`
|
|
HandoffStatus string `gorm:"size:32;not null;default:'none'" json:"handoff_status"`
|
|
SettlementStatus string `gorm:"size:32;not null;default:'unsettled'" json:"settlement_status"`
|
|
RefundStatus string `gorm:"size:32;not null;default:'none';index" json:"refund_status"`
|
|
RefundAmountCent int64 `gorm:"not null;default:0" json:"refund_amount_cent"`
|
|
RefundedAt *time.Time `json:"refunded_at"`
|
|
OwnerSettledAt *time.Time `json:"owner_settled_at"`
|
|
SettledAt *time.Time `json:"settled_at"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
func (RentalOrder) TableName() string {
|
|
return "rental_orders"
|
|
}
|