<?php

namespace app\common\service;

use app\common\model\ProjectSchedule;

class ProjectScheduleService extends Service
{
    public function create($param = [])
    {
        $param = $this->autoParams($param);
        
        return ProjectSchedule::create($param);
    }

    public function update($param = [])
    {
        $param = $this->autoParams($param);

        $newStatus = $this->pg('status');
        $goingStatus = $this->pg('going_project_status');
        $finishStatus = $this->pg('finish_project_status');
        $projectNewStatus = '';

        $schedule = $this->one(ProjectSchedule::class);
        // 是否更新项目状态值
        if ($schedule->is_update_project_status) {
            if ($schedule->status == ProjectSchedule::STATUS_NOT_START) {   
                if ($newStatus == ProjectSchedule::STATUS_GOING) {
                    $projectNewStatus = $goingStatus;
                } elseif ($newStatus == ProjectSchedule::STATUS_FINISH) {
                    $projectNewStatus = $finishStatus;
                }
            } elseif($schedule->status == ProjectSchedule::STATUS_GOING && $newStatus == ProjectSchedule::STATUS_FINISH) {
                $projectNewStatus = $finishStatus;
            }
        }

        // 跳过、没有对应值、不更新项目状态值的projectNewStatus都是空,跳过
        if ($projectNewStatus) {
            $project = $schedule->project;
            $project->status = $projectNewStatus;
            $project->save();
        }

        return ProjectSchedule::update($param);
    }

    public function delete($param = [])
    {
        $param = $this->autoParams($param);
        $schedule = $this->one(ProjectSchedule::class);

        return $schedule->delete();
    }
}