{
    "keyColumn": "module_id",
    "wildsearch": "true",
    "detailHeaderColumnPrefix": "Team: ",
    "handleFile": "true",
    "detailHeaderColumns": [
        "project_id"
    ],
    "breadCrumbColumn": "project_id",
    "orderBy": {
        "module_id": "DESC"
    },
    "listColumns": [
        "project_id",
        "module_title",
        "module_owner",
        "module_estimated_time",
        "created_by",
        "module_estimated_completion_date"
    ],
    "showColumns": [
        "module_id",
        "project_id",
        "module_title",
        "module_owner",
        "module_estimated_time",
        "created_by",
        "module_estimated_completion_date"
    ],
    "detailColumns": [
        "module_id",
        "project_id",
        "module_title",
        "module_owner",
        "module_estimated_time",
        "created_by",
        "module_estimated_completion_date",
        "total_module_task_time",
        "total_module_tasks",
        "module_status"
    ],
    "columns": {
        "module_id": {
            "name": "ID",
            "editoptions": {
                "type": "hidden"
            }
        },
        "project_id": {
            "name": "Project",
            "searchable": "true",
            "sortable": "true",
            "external": "true",
            "externalOptions": {
                "externalTable": "tbl_projects",
                "externalColumn": "project_id",
                "externalShowColumn": "project_title"
            }
        },
        "module_title": {
            "name": "module name",
            "searchable": "true",
            "sortable": "true",
            "editoptions": {
                "type": "textbox",
                "label": "Module name",
                "class": "textbox",
                "hint": "project Title",
                "validations": [
                    "required"
                ]
            }
        },
        "module_estimated_time": {
            "name": "module estimated time",
            "searchable": "true",
            "sortable": "true",
            "editoptions": {
                "type": "textbox",
                "label": "Module estimated time",
                "class": "textbox",
                "hint": "Module estimated time",
                "validations": [
                    "required"
                ]
            }
        },
        "module_estimated_completion_date": {
            "name": "module estimated completion date",
            "searchable": "true",
            "sortable": "true",
            "dbFormat": "date",
            "displayFormat": "m/d/Y",
            "editoptions": {
                "dbFormat": "date",
                "displayFormat": "m/d/Y",
                "type": "datepicker",
                "label": "Module estimated completion date",
                "class": "",
                "hint": "Module estimated completion date",
                "validations": [
                    "required"
                ]
            }
        },
        "total_module_task_time": {
            "name": "Total Module Task Assigned time"
        },
        "total_module_tasks": {
            "name": "Module Task Count"
        },
        "module_status": {
            "name": "Module Status"
        },
        "module_owner": {
            "name": "owner",
            "searchable": "true",
            "sortable": "true",
            "external": "true",
            "externalOptions": {
                "externalTable": "tbl_employee",
                "externalColumn": "emp_main_id",
                "externalShowColumn": "first_name"
            },
            "editoptions": {
                "type": "select",
                "source": "Cmshelper::getProjectTeamUsernameCombo",
                "default": "",
                "source_type": "function",
                "label": "Owner",
                "class": "select",
                "validations": [
                    "required"
                ]
            }
        },
        "created_by": {
            "name": "Total Logged Hours",
            "customColumn": "true",
            "customaction": "Cmshelper::gettotalloggedtime"
        }
    },
    "relations": {
        "tasks": {
            "name": "tasks",
            "section": "project_task",
            "child_table": "tbl_project_tasks",
            "parent_join_column": "module_id",
            "child_join_column": "module_id"
        },
        "bugs": {
            "name": "bugs",
            "section": "project_bug",
            "child_table": "tbl_project_bugs",
            "parent_join_column": "module_id",
            "child_join_column": "module_id"
        }
    },
    "reference": {
        "referenceTable": "tbl_projects",
        "referenceColumn": "project_id",
        "referenceTableForiegnKey": "project_id"
    },
    "customActions": {
        "beforeAddRecord": "Cmshelper::validateEngine",
        "beforeEditRecord": "Cmshelper::validateEngine",
        "afterEditRecord": "Cmshelper::updateModuleInfo",
        "afterAddRecord": "Cmshelper::increaseModuleCount",
        "beforeDeleteRecord": "Cmshelper::decreaseModuleCount"
    },
    "opertations": [
        "add",
        "view",
        "edit",
        "delete"
    ],
    "operationLabel": {
        "addLabel": "Add Module",
        "editTitle": "Edit Module",
        "viewTitle": "View Module Details",
        "deleteTitle": "Delete Module"
    }
}