package model import "time" // RenterGrowthLedger 记录租客成长积分变动流水,便于排查订单完成后的积分发放。 type RenterGrowthLedger struct { ID uint64 `gorm:"primaryKey" json:"id"` UserID uint64 `gorm:"not null;index" json:"user_id"` Role string `gorm:"size:16;not null;default:'renter';uniqueIndex:uk_renter_growth_order_role_source,priority:3" json:"role"` OrderID *uint64 `gorm:"index;uniqueIndex:uk_renter_growth_order_role_source,priority:1" json:"order_id,omitempty"` RedemptionID uint64 `gorm:"not null;default:0" json:"redemption_id"` Points int64 `gorm:"not null;default:0" json:"points"` BasisAmountCent int64 `gorm:"not null;default:0" json:"basis_amount_cent"` PointsPerYuan int64 `gorm:"not null;default:0" json:"points_per_yuan"` PointsMultiplierBps int `gorm:"not null;default:10000" json:"points_multiplier_bps"` BeforePoints int64 `gorm:"not null;default:0" json:"before_points"` AfterPoints int64 `gorm:"not null;default:0" json:"after_points"` AvailableBefore int64 `gorm:"not null;default:0" json:"available_before"` AvailableAfter int64 `gorm:"not null;default:0" json:"available_after"` BeforeLevel string `gorm:"size:32;not null;default:'normal'" json:"before_level"` AfterLevel string `gorm:"size:32;not null;default:'normal'" json:"after_level"` Source string `gorm:"size:32;not null;default:'order_completed';uniqueIndex:uk_renter_growth_order_role_source,priority:2" json:"source"` BizKey *string `gorm:"size:128;uniqueIndex:uk_renter_growth_biz_key" json:"biz_key,omitempty"` OperatorAdminID *uint64 `gorm:"index" json:"operator_admin_id,omitempty"` Remark string `gorm:"size:255;not null;default:''" json:"remark"` CreatedAt time.Time `json:"created_at"` } func (RenterGrowthLedger) TableName() string { return "renter_growth_ledger" }