package entities

import (
	"time"

	"gorm.io/gorm"
)

type Supplier struct {
	Id            uint           `gorm:"primaryKey"`
	Name          string         `gorm:"type:varchar(50);not null;uniqueIndex:suppliers_name_unique,where:deleted_at IS NULL"`
	Alias         string         `gorm:"not null;size:5"`
	Pic           string         `gorm:"type:varchar(50);not null"`
	Type          string         `gorm:"not null;size:50"`
	Category      string         `gorm:"not null;size:20"`
	Hatchery      *string        `gorm:"type:varchar(50)"`
	Phone         string         `gorm:"not null;size:20"`
	Email         string         `gorm:"type:varchar(50);not null"`
	Address       string         `gorm:"not null"`
	Npwp          *string        `gorm:"size:50"`
	AccountNumber *string        `gorm:"size:50"`
	Balance       float64        `gorm:"type:numeric(15,3);default:0"`
	DueDate       int            `gorm:"not null"`
	CreatedBy     uint           `gorm:"not null"`
	CreatedAt     time.Time      `gorm:"autoCreateTime"`
	UpdatedAt     time.Time      `gorm:"autoUpdateTime"`
	DeletedAt     gorm.DeletedAt `gorm:"index" json:"-"`

	CreatedUser       User               `gorm:"foreignKey:CreatedBy;references:Id"`
	ProductSuppliers  []ProductSupplier  `gorm:"foreignKey:SupplierId;references:Id"`
	NonstockSuppliers []NonstockSupplier `gorm:"foreignKey:SupplierId;references:Id"`
}
