package v1

import (
	"database/sql"
	"time"

	"gorm.io/gorm"
)

type Department struct {
	ID                 uint64         `json:"id" gorm:"primary_key;AUTO_INCREMENT;column:id"`
	CreatedAt          time.Time      `json:"createdAt" gorm:"column:createdAt"`
	UpdatedAt          sql.NullTime   `json:"updatedAt" gorm:"column:updatedAt"`
	DeletedAt          gorm.DeletedAt `json:"deletedAt" gorm:"column:deletedAt"`
	LarkID             string         `json:"larkID" gorm:"unique;column:larkID;type:varchar(128)"`
	ParentLarkID       string         `json:"parentLarkID" gorm:"unique;column:parentLarkID;type:varchar(128)"`
	Name               string         `json:"name" gorm:"column:name"`
	FlatChildrenLarkID string         `json:"flatChildrenLarkID" gorm:"unique;column:flatChildrenLarkID;type:varchar(128)"`
	OpenLarkID         string         `json:"openLarkID" gorm:"unique;column:openLarkID;type:varchar(128)"`
	Level              int            `json:"level" gorm:"column:level"`
}

type DepartmentList struct {
	Items []*Department `json:"items"`
}

func (u *Department) TableName() string {
	return "department"
}
