<?php

namespace app\common\model;

/**
 * 项目流程
 * 
 * @property bool|int $is_update_project_status 是否更新项目状态
 * @property string $status 状态值
 * @property mixed $name
 * @property Project $project 项目
 */
class ProjectSchedule extends Base
{
    // 状态值
    /**
     * 未开始
     */
    const STATUS_NOT_START = 'NOT_START';

    /**
     * 进行中
     */
    const STATUS_GOING = 'GOING';

    /**
     * 完成
     */
    const STATUS_FINISH = 'FINISH';

    /**
     * 跳过
     */
    const STATUS_SKIP = 'SKIP';

    protected $schema = [
        'id'     => 'int',       // id
        'create_time'    => 'datetime',  // 创建时间
        'update_time'    => 'datetime',  // 更新时间
        'delete_time'    => 'datetime',  // 删除时间
        'name'   => 'varchar',   // 名称
        'start_date'     => 'date',      // 开始日期
        'end_date'       => 'date',      // 结束日期
        'desc'   => 'text',      // 描述
        'project_id'     => 'int',       // 项目id
        'is_update_project_status'       => 'tinyint',   // 是否更新项目状态
        'going_project_status'   => 'varchar',   // 进行中项目状态
        'finish_project_status'  => 'varchar',   // 结束项目状态(如果勾选更新项目状态为必填)
        'status'         => 'varchar',   // "NOT_START"未开始 "GOING"进行中 "FINISH"完成 "SKIP"跳过
        'updater_id'     => 'int'   // 更新人id
    ];

    public function project()
    {
        return $this->belongsTo(Project::class);
    }
}