package entities

import "time"

// HEADER
type StockTransfer struct {
	Id              uint64 `gorm:"primaryKey;autoIncrement"`
	MovementNumber  string `gorm:"uniqueIndex;not null"`
	FromWarehouseId uint64
	ToWarehouseId   uint64
	TransferDate    time.Time
	Reason          string
	CreatedBy       uint64
	CreatedAt       time.Time
	UpdatedAt       time.Time
	DeletedAt       *time.Time `gorm:"index"`
	// Relations
	FromWarehouse *Warehouse              `gorm:"foreignKey:FromWarehouseId"`
	ToWarehouse   *Warehouse              `gorm:"foreignKey:ToWarehouseId"`
	Details       []StockTransferDetail   `gorm:"foreignKey:StockTransferId"`
	Deliveries    []StockTransferDelivery `gorm:"foreignKey:StockTransferId"`
	CreatedUser   *User                   `gorm:"foreignKey:CreatedBy"`
	Documents     []Document              `gorm:"foreignKey:DocumentableId;constraint:OnUpdate:CASCADE,OnDelete:CASCADE"`
}
