package model

import (
	"gorm.io/plugin/soft_delete"
	"time"
)

// ApprovalCopy 审批流
type ApprovalCopy struct {
	ID         uint64                `gorm:"primaryKey;column:id" json:"id"`
	DeletedAt  soft_delete.DeletedAt `gorm:"column:deleted_at" json:"deletedAt"`
	CreatedAt  time.Time             `gorm:"column:created_at" json:"createdAt"`
	UpdatedAt  time.Time             `gorm:"column:updated_at" json:"updatedAt"`
	ApprovalID uint64                `gorm:"type:int(11);column:approval_id;default:1;comment:绑定的审批id" json:"approvalID"`
	UserId     uint64                `gorm:"type:int(11);column:user_id;default:1;comment:绑定的人员id" json:"userId"`
	Name       string                `gorm:"type:varchar(50);column:name;default:'';comment:绑定的人名称" json:"name"`
	Status     uint64                `gorm:"type:int(11);column:status;default:1;comment:状态" json:"status"`
}

func BatchCopySave(users CopyUsers, approvalId uint64) error {
	var insertRaws []*ApprovalCopy

	if users == nil && len(users) == 0 {
		return nil
	}

	for _, user := range users {
		temp := &ApprovalCopy{
			UserId:     user.ID,
			Name:       user.Name,
			ApprovalID: approvalId,
			Status:     StatusDoing,
		}

		insertRaws = append(insertRaws, temp)

	}

	return DB.Create(&insertRaws).Error
}

func (m *ApprovalCopy) TableName() string {
	return "approval_copy"
}