package entities

import (
	"time"
)

type Purchase struct {
	Id         uint   `gorm:"primaryKey;autoIncrement"`
	PrNumber   string `gorm:"not null"`
	PoNumber   *string
	PoDate     *time.Time
	SupplierId uint `gorm:"not null"`
	CreditTerm int  `gorm:"column:credit_term;not null;default:0"`
	DueDate    *time.Time
	Notes      *string
	CreatedAt  time.Time  `gorm:"autoCreateTime"`
	UpdatedAt  time.Time  `gorm:"autoUpdateTime"`
	DeletedAt  *time.Time `gorm:"index"`
	CreatedBy  uint       `gorm:"not null"`

	// Relations
	Supplier       Supplier       `gorm:"foreignKey:SupplierId;references:Id"`
	Items          []PurchaseItem `gorm:"foreignKey:PurchaseId"`
	CreatedUser    User           `gorm:"foreignKey:CreatedBy;references:Id"`
	LatestApproval *Approval      `gorm:"-" json:"-"`
}
