private function makeArFields(): self
{
$this->arFields = [
// task fields
'ID' => ['FIELD' => 'TT.ID', 'DEFAULT' => true],
'TITLE' => ['FIELD' => 'TT.TITLE', 'DEFAULT' => true],
'DESCRIPTION' => ['FIELD' => 'TT.DESCRIPTION', 'DEFAULT' => true],
'DESCRIPTION_IN_BBCODE' => ['FIELD' => 'TT.DESCRIPTION_IN_BBCODE', 'DEFAULT' => true],
'PRIORITY' => ['FIELD' => 'TT.PRIORITY', 'DEFAULT' => true],
'STATUS' => ['FIELD' => 'TT.STATUS', 'DEFAULT' => true],
'STAGE_ID' => ['FIELD' => 'TT.STAGE_ID', 'DEFAULT' => true],
'RESPONSIBLE_ID' => ['FIELD' => 'TT.RESPONSIBLE_ID', 'DEFAULT' => true],
'DEADLINE_AFTER' => ['FIELD' => 'TT.DEADLINE_AFTER', 'DEFAULT' => true],
'START_DATE_PLAN_AFTER' => ['FIELD' => 'TT.START_DATE_PLAN_AFTER', 'DEFAULT' => true],
'END_DATE_PLAN_AFTER' => ['FIELD' => 'TT.END_DATE_PLAN_AFTER', 'DEFAULT' => true],
'REPLICATE' => ['FIELD' => 'TT.REPLICATE', 'DEFAULT' => true],
'CREATED_BY' => ['FIELD' => 'TT.CREATED_BY', 'DEFAULT' => true],
'XML_ID' => ['FIELD' => 'TT.XML_ID', 'DEFAULT' => true],
'ALLOW_CHANGE_DEADLINE' => ['FIELD' => 'TT.ALLOW_CHANGE_DEADLINE', 'DEFAULT' => true],
'ALLOW_TIME_TRACKING' => ['FIELD' => 'TT.ALLOW_TIME_TRACKING', 'DEFAULT' => true],
'TASK_CONTROL' => ['FIELD' => 'TT.TASK_CONTROL', 'DEFAULT' => true],
'ADD_IN_REPORT' => ['FIELD' => 'TT.ADD_IN_REPORT', 'DEFAULT' => true],
'GROUP_ID' => ['FIELD' => 'TT.GROUP_ID', 'DEFAULT' => true],
'PARENT_ID' => ['FIELD' => 'TT.PARENT_ID', 'DEFAULT' => true],
'MULTITASK' => ['FIELD' => 'TT.MULTITASK', 'DEFAULT' => true],
'SITE_ID' => ['FIELD' => 'TT.SITE_ID', 'DEFAULT' => true],
'ACCOMPLICES' => ['FIELD' => 'TT.ACCOMPLICES', 'DEFAULT' => true],
'AUDITORS' => ['FIELD' => 'TT.AUDITORS', 'DEFAULT' => true],
'RESPONSIBLES' => ['FIELD' => 'TT.RESPONSIBLES', 'DEFAULT' => true],
'FILES' => ['FIELD' => 'TT.FILES', 'DEFAULT' => true],
'TAGS' => ['FIELD' => 'TT.TAGS', 'DEFAULT' => true],
'DEPENDS_ON' => ['FIELD' => 'TT.DEPENDS_ON', 'DEFAULT' => true],
'MATCH_WORK_TIME' => ['FIELD' => 'TT.MATCH_WORK_TIME', 'DEFAULT' => true],
// template parameters
'TASK_ID' => ['FIELD' => 'TT.TASK_ID', 'DEFAULT' => true],
'TPARAM_TYPE' => ['FIELD' => 'TT.TPARAM_TYPE', 'DEFAULT' => true],
'TPARAM_REPLICATION_COUNT' => ['FIELD' => 'TT.TPARAM_REPLICATION_COUNT', 'DEFAULT' => true],
'REPLICATE_PARAMS' => ['FIELD' => 'TT.REPLICATE_PARAMS', 'DEFAULT' => true],
// virtual
'BASE_TEMPLATE_ID' => ['FIELD' => 'CASE WHEN TDD.' . DependencyTable::getPARENTIDColumnName() . ' IS NULL THEN 0 ELSE TDD.' . DependencyTable::getPARENTIDColumnName() . ' END', 'DEFAULT' => false],
'TEMPLATE_CHILDREN_COUNT' => ['FIELD' => 'CASE WHEN TEMPLATE_CHILDREN_COUNT IS NULL THEN 0 ELSE TEMPLATE_CHILDREN_COUNT END', 'DEFAULT' => false],
// additional
'CREATED_BY_NAME' => ['FIELD' => 'CU.NAME', 'DEFAULT' => true, 'ALWAYS' => true],
'CREATED_BY_LAST_NAME' => ['FIELD' => 'CU.LAST_NAME ', 'DEFAULT' => true, 'ALWAYS' => true],
'CREATED_BY_SECOND_NAME' => ['FIELD' => 'CU.SECOND_NAME', 'DEFAULT' => true, 'ALWAYS' => true],
'CREATED_BY_LOGIN' => ['FIELD' => 'CU.LOGIN', 'DEFAULT' => true, 'ALWAYS' => true],
'CREATED_BY_WORK_POSITION' => ['FIELD' => 'CU.WORK_POSITION', 'DEFAULT' => true, 'ALWAYS' => true],
'CREATED_BY_PHOTO' => ['FIELD' => 'CU.PERSONAL_PHOTO', 'DEFAULT' => true, 'ALWAYS' => true],
'RESPONSIBLE_NAME' => ['FIELD' => 'RU.NAME', 'DEFAULT' => true, 'ALWAYS' => true],
'RESPONSIBLE_LAST_NAME' => ['FIELD' => 'RU.LAST_NAME', 'DEFAULT' => true, 'ALWAYS' => true],
'RESPONSIBLE_SECOND_NAME' => ['FIELD' => 'RU.SECOND_NAME', 'DEFAULT' => true, 'ALWAYS' => true],
'RESPONSIBLE_LOGIN' => ['FIELD' => 'RU.LOGIN', 'DEFAULT' => true, 'ALWAYS' => true],
'RESPONSIBLE_WORK_POSITION' => ['FIELD' => 'RU.WORK_POSITION', 'DEFAULT' => true, 'ALWAYS' => true],
'RESPONSIBLE_PHOTO' => ['FIELD' => 'RU.PERSONAL_PHOTO', 'DEFAULT' => true, 'ALWAYS' => true],
'SCENARIO' => ['FIELD' => 'TS.SCENARIO', 'DEFAULT' => true, 'ALWAYS' => true],
];
return $this;
}