package plant

import (
	"sundynix-go/global"
)

// CarePlan 养护计划
type CarePlan struct {
	global.BaseModel
	UserId       string `json:"userId" form:"userId" gorm:"size:50;column:user_id;comment:用户id"`
	PlantId      string `json:"plantId" form:"plantId" gorm:"index;size:50;column:plant_id;comment:植物id"`
	Icon         string `json:"icon" form:"icon" gorm:"type:text;"`
	Name         string `json:"name"`
	Period       int    `json:"period" form:"period" gorm:"column:period;comment:周期"`
	TargetAction string `gorm:"type:varchar(32);index;not null;column:target_action;comment:触发动作代码" json:"targetAction"`
}

// AfterUpdate 钩子函数 修改计划后重新生成任务
// func (p *CarePlan) AfterUpdate(tx *gorm.DB) error {
// 	//1.删除旧任务
// 	err := tx.Where("plan_id = ?", p.Id).Unscoped().Delete(&CareTask{}).Error
// 	if err != nil {
// 		return err
// 	}
// 	//2.创建新任务
// 	today := timer.GetZeroTime()
// 	dueDate := today.AddDate(0, 0, p.Period)
// 	task := CareTask{
// 		UserId:  p.UserId,
// 		PlantId: p.Id,
// 		PlanId:  p.Id,
// 		Name:    p.Name,
// 		Icon:    p.Icon,
// 		DueDate: dueDate,
// 		Status:  1,
// 	}
// 	err = tx.Create(&task).Error
// 	if err != nil {
// 		return err
// 	}
// 	return nil

// }
