package plant

import (
	"sundynix-go/global"
	"time"
)

// ExchangeOrder 兑换订单
type ExchangeOrder struct {
	global.BaseModel
	UserId        string        `json:"userId" gorm:"index;size:50;not null;column:user_id"`         // 用户ID
	ItemId        string        `json:"itemId" gorm:"index;size:50;not null;column:item_id"`         // 商品ID
	ItemName      string        `json:"itemName" gorm:"size:100;column:item_name"`                   // 商品名称(冗余快照)
	CostSunlight  int64         `json:"costSunlight" gorm:"not null;default:0;column:cost_sunlight"` // 消耗阳光值
	Quantity      int           `json:"quantity" gorm:"not null;default:1;column:quantity"`          // 数量
	Status        int           `json:"status" gorm:"not null;default:1;column:status"`              // 1待处理 2处理中 3已发货 4已完成 5已取消
	ItemType      string        `json:"itemType" gorm:"size:20;column:item_type"`                    // 商品类型快照
	RecipientName string        `json:"recipientName" gorm:"size:50;column:recipient_name"`          // 收货人姓名
	Phone         string        `json:"phone" gorm:"size:20;column:phone"`                           // 联系电话
	Address       string        `json:"address" gorm:"size:255;column:address"`                      // 收货地址
	TrackingNo    string        `json:"trackingNo" gorm:"size:100;column:tracking_no"`               // 快递单号
	Remark        string        `json:"remark" gorm:"size:255;column:remark"`                        // 备注
	CompletedAt   *time.Time    `json:"completedAt" gorm:"column:completed_at"`                      // 完成时间
	Item          *ExchangeItem `json:"item" gorm:"foreignKey:ItemId"`                               // 商品关联
}

func (ExchangeOrder) TableName() string {
	return "sundynix_exchange_order"
}

// 订单状态常量
const (
	OrderStatusPending    = 1 // 待处理
	OrderStatusProcessing = 2 // 处理中
	OrderStatusShipped    = 3 // 已发货
	OrderStatusCompleted  = 4 // 已完成
	OrderStatusCancelled  = 5 // 已取消
)
