static function getMap()
{
return [
(new IntegerField("ID", ["primary" => true, "autocomplete" => true])),
(new IntegerField("FORUM_GROUP_ID")),
(new StringField("NAME", ["required" => true, "size" => 255])),
(new TextField("DESCRIPTION")),
(new IntegerField("SORT", ["default_value" => 150])),
(new BooleanField("ACTIVE", ["values" => ["N", "Y"], "default_value" => "Y"])),
(new BooleanField("ALLOW_HTML", ["values" => ["N", "Y"], "default_value" => "N"])),
(new BooleanField("ALLOW_ANCHOR", ["values" => ["N", "Y"], "default_value" => "Y"])),
(new BooleanField("ALLOW_BIU", ["values" => ["N", "Y"], "default_value" => "Y"])),
(new BooleanField("ALLOW_IMG", ["values" => ["N", "Y"], "default_value" => "Y"])),
(new BooleanField("ALLOW_VIDEO", ["values" => ["N", "Y"], "default_value" => "Y"])),
(new BooleanField("ALLOW_LIST", ["values" => ["N", "Y"], "default_value" => "Y"])),
(new BooleanField("ALLOW_QUOTE", ["values" => ["N", "Y"], "default_value" => "Y"])),
(new BooleanField("ALLOW_CODE", ["values" => ["N", "Y"], "default_value" => "Y"])),
(new BooleanField("ALLOW_FONT", ["values" => ["N", "Y"], "default_value" => "Y"])),
(new BooleanField("ALLOW_SMILES", ["values" => ["N", "Y"], "default_value" => "Y"])),
(new BooleanField("ALLOW_TABLE", ["values" => ["N", "Y"], "default_value" => "Y"])),
(new BooleanField("ALLOW_ALIGN", ["values" => ["N", "Y"], "default_value" => "Y"])),
(new BooleanField("ALLOW_NL2BR", ["values" => ["N", "Y"], "default_value" => "Y"])),
(new EnumField("ALLOW_UPLOAD", ["values" => ["Y", "F", "A"], "default_value" => "F"])),
(new StringField("ALLOW_UPLOAD_EXT", ["size" => 255])),
(new BooleanField("ALLOW_MOVE_TOPIC", ["values" => ["N", "Y"], "default_value" => "Y"])),
(new BooleanField("ALLOW_TOPIC_TITLED", ["values" => ["N", "Y"], "default_value" => "Y"])),
(new BooleanField("ALLOW_SIGNATURE", ["values" => ["N", "Y"], "default_value" => "Y"])),
(new BooleanField("ASK_GUEST_EMAIL", ["values" => ["N", "Y"], "default_value" => "N"])),
(new BooleanField("USE_CAPTCHA", ["values" => ["N", "Y"], "default_value" => "Y"])),
(new BooleanField("INDEXATION", ["values" => ["N", "Y"], "default_value" => "Y"])),
(new BooleanField("DEDUPLICATION", ["values" => ["N", "Y"], "default_value" => "N"])),
(new BooleanField("MODERATION", ["values" => ["N", "Y"], "default_value" => "N"])),
(new EnumField("ORDER_BY", ["values" => self::$topicSort, "default_value" => "P"])),
(new EnumField("ORDER_DIRECTION", ["values" => ["ASC", "DESC"], "default_value" => "DESC"])),
(new IntegerField("TOPICS")),
(new IntegerField("POSTS")),
(new IntegerField("POSTS_UNAPPROVED")),
(new IntegerField("LAST_POSTER_ID")),
(new StringField("LAST_POSTER_NAME", ["size" => 255])),
(new DatetimeField("LAST_POST_DATE", ["default_value" => function(){return new DateTime();}])),
(new IntegerField("LAST_MESSAGE_ID")),
(new IntegerField("ABS_LAST_POSTER_ID")),
(new StringField("ABS_LAST_POSTER_NAME", ["size" => 255])),
(new DatetimeField("ABS_LAST_POST_DATE", ["default_value" => function(){return new DateTime();}])),
(new IntegerField("ABS_LAST_MESSAGE_ID")),
(new StringField("EVENT1")),
(new StringField("EVENT2")),
(new StringField("EVENT3")),
(new StringField("XML_ID", ["size" => 255])),
(new StringField("HTML", ["size" => 255])),
(new Reference("PERMISSION", BitrixForumPermissionTable::class, Join::on("this.ID", "ref.FORUM_ID"))),
(new Reference("SITE", BitrixForumForumSiteTable::class, Join::on("this.ID", "ref.FORUM_ID"))),
(new Reference("GROUP", BitrixForumGroupTable::class, Join::on("this.FORUM_GROUP_ID", "ref.ID")))
];
}