/**
 * 业务单基类
 */
import {BusinessImportantList} from "./businessImportantList.domain";
import {BusinessRunRecordList} from "./businessRunRecordList.domain";

export class BusinessDoc{
    BusCode: string; // 业务单编号
    CreateTime: string; // 创建时间
    OperUserId: string; // 创建人
    WorkID: string; // 工作流Id
    Status: number; // 业务单状态,业务单状态（取值EBusinessDocStatus）
    BusinessType: number; // 业务类型
    EndTime: string; // 完成时间,结束时间
    OverdueDay: number; // 办理时限（天）,超期时间
    OverdueTime: string; // 超期时间（业务受理后通过办理时限计算）
    ImportantDocs: BusinessImportantList; // 要件列表
    BusinessDocRunRecords: BusinessRunRecordList; // 业务单运行记录
    Remark: string; // 备注

    constructor(options: {
        BusCode?: string;
        CreateTime?: string;
        OperUserId?: string;
        WorkID?: string;
        Status?: number;
        BusinessType?: number;
        EndTime?: string;
        OverdueDay?: number;
        OverdueTime?: string;
        ImportantDocs?: BusinessImportantList;
        BusinessDocRunRecords?: BusinessRunRecordList;
        Remark?: string;
    } = {}) {
        this.BusCode = options.BusCode || '';
        this.CreateTime = options.CreateTime || new Date().toString();
        this.OperUserId = options.OperUserId || '';
        this.WorkID = options.WorkID || '';
        this.Status = !options.Status ? 0 : Number.parseFloat(options.Status.toString());
        this.BusinessType = !options.BusinessType ? 0 : Number.parseFloat(options.BusinessType.toString());
        this.EndTime = options.CreateTime || new Date().toString();
        this.OverdueDay = !options.OverdueDay ? 0 : Number.parseFloat(options.OverdueDay.toString());
        this.OverdueTime = options.CreateTime || new Date().toString();
        this.ImportantDocs = new BusinessImportantList(options.ImportantDocs || undefined);
        this.BusinessDocRunRecords = new BusinessRunRecordList(options.BusinessDocRunRecords || undefined);
        this.Remark = options.Remark || '';
    }
}
