{
    "ObjectFields": [
        {
            "Name": "Description",
            "Type": "string",
            "Label": "Common.description",
            "Required": true,
            "PostData": true,
            "ValidRegEx": "",
            "DefaultValue": "",
            "PlaceHolder": "Enter job description",
            "LabelWidth": 160,
            "Width": 340,
            "MaxLength": 200
        },
        {
            "Name": "SourceDBInstanceCode",
            "Type": "string",
            "Label": "DataSyncJob.SourceDatabase",
            "Required": true,
            "PostData": true,
            "ValidRegEx": "",
            "DefaultValue": "",
            "LinkId": "SourceDBInstanceId",
            "PicklistJSON": "DBInstance",
            "Multiple": false,
            "PicklistTitle": "Name",
            "PlaceHolder": "Select source database",
            "LabelWidth": 160,
            "Width": 340,
            "AddNew": false,
            "isKeyField": false
        },
        {
            "Name": "SourceDBInstanceId",
            "Type": "number",
            "Required": true,
            "PostData": true,
            "ValidRegEx": "",
            "DefaultValue": 0
        },
        {
            "Name": "TargetDBInstanceCode",
            "Type": "string",
            "Label": "DataSyncJob.TargetDatabase",
            "Required": true,
            "PostData": true,
            "ValidRegEx": "",
            "DefaultValue": "",
            "LinkId": "TargetDBInstanceId",
            "PicklistJSON": "DBInstance",
            "Multiple": false,
            "PicklistTitle": "Name",
            "PlaceHolder": "Select target database",
            "LabelWidth": 160,
            "Width": 340,
            "AddNew": false,
            "isKeyField": false
        },
        {
            "Name": "TargetDBInstanceId",
            "Type": "number",
            "Required": true,
            "PostData": true,
            "ValidRegEx": "",
            "DefaultValue": 0
        },
        {
            "Name": "DatasetCode",
            "Type": "string",
            "Label": "DataSyncJob.Dataset",
            "Required": true,
            "PostData": true,
            "ValidRegEx": "",
            "DefaultValue": "",
            "LinkId": "DatasetId",
            "PicklistJSON": "DatasetName",
            "Multiple": false,
            "PicklistTitle": "Name",
            "PlaceHolder": "Select dataset",
            "LabelWidth": 160,
            "Width": 340,
            "AddNew": false,
            "isKeyField": false
        },
        {
            "Name": "DatasetId",
            "Type": "number",
            "Required": true,
            "PostData": true,
            "ValidRegEx": "",
            "DefaultValue": 0
        },
        {
            "Name": "SchedulerCode",
            "Type": "string",
            "Label": "DataSyncJob.Schedule",
            "Required": false,
            "PostData": true,
            "ValidRegEx": "",
            "DefaultValue": "",
            "LinkId": "SchedulerId",
            "PicklistJSON": "SchedulerList",
            "Multiple": false,
            "PicklistTitle": "Name",
            "PlaceHolder": "Select schedule (optional)",
            "LabelWidth": 160,
            "Width": 340,
            "AddNew": false,
            "isKeyField": false
        },
        {
            "Name": "SchedulerId",
            "Type": "number",
            "Required": false,
            "PostData": true,
            "ValidRegEx": "",
            "DefaultValue": null
        },
        {
            "Name": "ConflictPolicy",
            "Type": "number",
            "Label": "DataSyncJob.ConflictPolicy",
            "Required": true,
            "PostData": true,
            "ValidRegEx": "",
            "DefaultValue": 0,
            "LabelWidth": 160,
            "Width": 340,
            "DropdownOptions": [
                { "value": 0, "label": "Overwrite" },
                { "value": 1, "label": "Skip" },
                { "value": 2, "label": "Last Write Wins" }
            ]
        },
        {
            "Name": "Direction",
            "Type": "number",
            "Label": "DataSyncJob.Direction",
            "Required": true,
            "PostData": true,
            "ValidRegEx": "",
            "DefaultValue": 0,
            "LabelWidth": 160,
            "Width": 340,
            "DropdownOptions": [
                { "value": 0, "label": "Source → Target" },
                { "value": 1, "label": "Target → Source" },
                { "value": 2, "label": "Bidirectional" }
            ]
        },
        {
            "Name": "IsEnabled",
            "Type": "boolean",
            "Label": "DataSyncJob.Enabled",
            "Required": false,
            "PostData": true,
            "ValidRegEx": "",
            "DefaultValue": true,
            "LabelWidth": 160,
            "Width": 340
        },
        {
            "Name": "QueryCondition",
            "Type": "string",
            "Label": "DataSyncJob.QueryCondition",
            "Required": false,
            "PostData": true,
            "ValidRegEx": "",
            "DefaultValue": "",
            "PlaceHolder": "Optional WHERE clause e.g. BranchId = 5",
            "LabelWidth": 160,
            "Width": 340,
            "MaxLength": 2000
        },
        {
            "Name": "SyncJobId",
            "Type": "number",
            "Required": false,
            "PostData": true,
            "ValidRegEx": "",
            "DefaultValue": 0
        },
        {
            "Name": "Version",
            "Type": "number",
            "Required": false,
            "PostData": true,
            "ValidRegEx": "",
            "DefaultValue": 0
        }
    ]
}
