package gmodel

import (
	"gorm.io/gorm"
	"time"
)

// fs_order
type FsOrder struct {
	Id                     int64      `gorm:"primary_key;default:0;auto_increment;" json:"id"` //
	Sn                     *string    `gorm:"unique_key;default:'';" json:"sn"`                // 订单编号 FS211224OL2XDKNP
	UserId                 *int64     `gorm:"index;default:0;" json:"user_id"`                 //
	SellerUserId           *int64     `gorm:"default:0;" json:"seller_user_id"`                //
	TotalAmount            *int64     `gorm:"default:0;" json:"total_amount"`                  // 总价
	PayedAmount            *int64     `gorm:"default:0;" json:"payed_amount"`                  // 已支付金额
	PayMethod              *int64     `gorm:"default:0;" json:"pay_method"`                    // 支付方式 1paypal 2strip
	Ctime                  *int64     `gorm:"default:0;" json:"ctime"`                         //
	Utime                  *int64     `gorm:"default:0;" json:"utime"`                         //
	Ptime                  *int64     `gorm:"default:0;" json:"ptime"`                         //
	AddressId              *int64     `gorm:"index;default:0;" json:"address_id"`              // 地址ID或者云仓ID
	DeliveryMethod         *int64     `gorm:"default:0;" json:"delivery_method"`               // 配送方式 1:直接发货到收获地址 2:云仓
	CustomerMark           *string    `gorm:"default:'';" json:"customer_mark"`                //
	Mark                   *string    `gorm:"default:'';" json:"mark"`                         // 后台订单备注
	AddressInfo            *string    `gorm:"default:'';" json:"address_info"`                 // 详细地址信息JSON
	IsSup                  *int64     `gorm:"default:0;" json:"is_sup"`                        // 0不是补货 1是补货
	Status                 *int64     `gorm:"default:0;" json:"status"`                        // 状态位(0:未支付,1:部分支付,2:支付完成,3:部分生产,4:部分生产完成,5:全部生产,6:全部生产完成,7:部分发货,8:发货完成,9:完成订单,10:取消订单,11:退款中,12:退款完成,13:订单已删除,14:订单已关闭)
	IsPartPay              *int64     `gorm:"default:0;" json:"is_part_pay"`                   // 是否部分支付(0:否,1:是)
	IsPayCompleted         *int64     `gorm:"default:0;" json:"is_pay_completed"`              // 是否支付完成(0:否,1:是)
	IsPartProduct          *int64     `gorm:"default:0;" json:"is_part_product"`               // 是否部分生产(0:否,1:是)
	IsPartProductCompleted *int64     `gorm:"default:0;" json:"is_part_product_completed"`     // 是否部分生产完成(0:否,1:是)
	IsAllProduct           *int64     `gorm:"default:0;" json:"is_all_product"`                // 是否全部生产(0:否,1:是)
	IsAllProductCompleted  *int64     `gorm:"default:0;" json:"is_all_product_completed"`      // 是否全部生产完成(0:否,1:是)
	IsPartDelivery         *int64     `gorm:"default:0;" json:"is_part_delivery"`              // 是否部分发货(0:否,1:是)
	IsDeliveryCompleted    *int64     `gorm:"default:0;" json:"is_delivery_completed"`         // 是否发货完成(0:否,1:是)
	IsComplated            *int64     `gorm:"default:0;" json:"is_complated"`                  // 是否完成订单(0:否,1:是)
	IsCancel               *int64     `gorm:"default:0;" json:"is_cancel"`                     // 是否取消订单(0:否,1:是)
	IsRefunding            *int64     `gorm:"default:0;" json:"is_refunding"`                  // 是否退款中(0:否,1:是)
	IsRefunded             *int64     `gorm:"default:0;" json:"is_refunded"`                   // 是否退款完成(0:否,1:是)
	IsDeleted              *int64     `gorm:"default:0;" json:"is_deleted"`                    // 是否删除(0:否,1:是)
	RefundReasonId         *int64     `gorm:"default:0;" json:"refund_reason_id"`              //
	RefundReason           *string    `gorm:"default:'';" json:"refund_reason"`                //
	TsTime                 *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"ts_time"`   //
	IsSure                 *int64     `gorm:"default:0;" json:"is_sure"`                       // 是否确认订单 1确认0未确认
	DeliverSn              *string    `gorm:"default:'';" json:"deliver_sn"`                   // 发货单号
	EmailTime              *int64     `gorm:"default:0;" json:"email_time"`                    // 邮件发送时间
}
type FsOrderModel struct {
	db   *gorm.DB
	name string
}

func NewFsOrderModel(db *gorm.DB) *FsOrderModel { return &FsOrderModel{db: db, name: "fs_order"} }