package entity

import (
	"git.gocasts.ir/ebhomengo/niki/types"
	"time"
)

type Order struct {
	ID            types.ID
	UserID        types.ID
	TotalAmount   types.Price
	TotalDiscount types.Price
	ShippingID    types.ID
	PaymentMethod PaymentMethod
	ProcessStatus ProcessStatus
	PaymentStatus PaymentStatus
	Address       string
	CreatedAt     time.Time
	UpdatedAt     time.Time
}

type OrderItem struct {
	ID                types.ID
	ProductID         types.ID
	Price             types.Price
	Quantity          types.Count
	PriceWithDiscount types.Price
	OrderID           types.ID
	CreatedAt         time.Time
}

type PaymentMethod string

const (
	Online PaymentMethod = "online"
	Wallet               = "wallet"
	Cart                 = "cart"
)

type ProcessStatus string

const (
	WaitingToPay ProcessStatus = "waiting-to-pay"
	processing                 = "processing"
	accepted                   = "accepted"
	preparing                  = "preparing"
	prepared                   = "prepared"
	givenToPost                = "given-to-post"
	delivered                  = "delivered"
	cancelled                  = "cancelled"
)

type PaymentStatus string

const (
	Paid      PaymentStatus = "paid"
	UnPaid                  = "unpaid"
	Cancelled               = "cancelled"
)
