package entities

import (
	"time"

	"gorm.io/gorm"
)

type Kandang struct {
	Id                   uint                  `gorm:"primaryKey"`
	Name                 string                `gorm:"type:varchar(50);not null;uniqueIndex:kandangs_name_unique,where:deleted_at IS NULL"`
	Status               string                `gorm:"type:varchar(50);not null"`
	HouseType            *string               `gorm:"type:house_type_enum"`
	LocationId           uint                  `gorm:"not null"`
	KandangGroupId       uint                  `gorm:"not null"`
	Capacity             float64               `gorm:"not null"`
	PicId                uint                  `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"`
	Location             Location              `gorm:"foreignKey:LocationId;references:Id"`
	KandangGroup         KandangGroup          `gorm:"foreignKey:KandangGroupId;references:Id"`
	Pic                  User                  `gorm:"foreignKey:PicId;references:Id"`
	Warehouses           []Warehouse           `gorm:"foreignKey:KandangId;references:Id"`
	ProjectFlockKandangs []ProjectFlockKandang `gorm:"foreignKey:KandangId;references:Id" json:"-"`
}
