{
    "ObjectFields": [
        {
            "Name": "ShiftCode",
            "Type": "string",
            "Label": "Common.code",
            "ExpandedView": true,
            "FieldDescription": "A unique identifier used to reference this shift throughout the system, including employee assignment and reports.",
            "FieldDescriptionWidth": 360,
            "PostData": true,
            "Required": true,
            "ValidRegEx": "",
            "DefaultValue": "",
            "LinkId": "ShiftId",
            "PicklistJSON": "shiftmaster",
            "Multiple": false,
            "PicklistTitle": "Code",
            "PlaceHolder": "Enter Code",
            "Width": 295,
            "LabelWidth": 185,
            "AddNew": true,
            "IsFirstField": true,
            "MaxLength": 10,
            "isKeyField": true,
            "GridArea": "code"
        },
        {
            "Name": "ShiftDescription",
            "Type": "string",
            "Label": "CycleClass.description",
            "ExpandedView": true,
            "FieldDescription": "A readable name for the shift, shown in dropdowns and employee shift assignments.",
            "FieldDescriptionWidth": 360,
            "PostData": true,
            "Required": true,
            "ValidRegEx": "",
            "DefaultValue": "",
            "LinkId": "ShiftId",
            "PicklistJSON": "shiftmaster",
            "Multiple": false,
            "PicklistTitle": "Description",
            "PlaceHolder": "Enter Description",
            "Width": 295,
            "LabelWidth": 204,
            "AddNew": true,
            "MaxLength": 50,
            "isKeyField": true,
            "GridArea": "desc"
        },
        {
            "Name": "ShiftId",
            "Type": "number",
            "Required": true,
            "ValidRegEx": "",
            "PostData": true,
            "DefaultValue": 0,
            "width": "400px"
        },
        {
            "Name": "ShiftStartTime",
            "Type": "string",
            "Required": true,
            "ValidRegEx": "",
            "PostData": true,
            "DefaultValue": "00:00",
            "Width": 320,
            "LabelWidth": 185,
            "Label": "SecurityQuestion.StartTime",
            "MaxLength": 5,
            "ExpandedView": true,
            "FieldDescription": "Raw shift start time value used internally by the paired time control; not rendered as a standalone field.",
            "FieldDescriptionWidth": 360
        },
        {
            "Name": "TotalShiftStartTime",
            "Type": "string",
            "Required": true,
            "PostData": false,
            "ValidRegEx": "",
            "Label": "SecurityQuestion.StartTime",
            "ExpandedView": true,
            "FieldDescription": "Official clock-in time at which the shift begins. Used as the reference point for grace and late-entry calculations.",
            "FieldDescriptionWidth": 360,
            "Width": 320,
            "LabelWidth": 185,
            "Placeholder": "HH:MM in 24hrs Format",
            "LinkId": "ShiftStartTime",
            "DefaultValue": "",
            "GridArea": "start"
        },
        {
            "Name": "ShiftEndTime",
            "Type": "string",
            "Required": true,
            "ValidRegEx": "",
            "PostData": true,
            "DefaultValue": "00:00",
            "LabelWidth": 204,
            "Width": 320,
            "Label": "SecurityQuestion.EndTime",
            "MaxLength": 5,
            "Placeholder": "HH:MM in 24hrs Format",
            "ExpandedView": true,
            "FieldDescription": "Raw shift end time value used internally by the paired time control; not rendered as a standalone field.",
            "FieldDescriptionWidth": 360
        },
        {
            "Name": "TotalShiftEndTime",
            "Type": "string",
            "Required": true,
            "PostData": false,
            "ValidRegEx": "",
            "LabelWidth": 204,
            "Width": 320,
            "Label": "SecurityQuestion.EndTime",
            "ExpandedView": true,
            "FieldDescription": "Official clock-out time at which the shift ends. Used for early-exit and overtime calculations.",
            "FieldDescriptionWidth": 360,
            "DefaultValue": "",
            "LinkId": "ShiftEndTime",
            "Placeholder": "HH:MM in 24hrs Format",
            "GridArea": "end"
        },
        {
            "Name": "FirstHalfStartTime",
            "Type": "string",
            "Required": true,
            "ValidRegEx": "",
            "PostData": false,
            "DefaultValue": "00:00",
            "Width": 320,
            "ReadOnly": true,
            "Placeholder": "HH:MM in 24hrs Format",
            "LabelWidth": 185,
            "Label": "SecurityQuestion.FirstHalfStartTime",
            "MaxLength": "",
            "ExpandedView": true,
            "FieldDescription": "Raw first-half start time value used internally by the paired time control; not rendered as a standalone field.",
            "FieldDescriptionWidth": 360
        },
        {
            "Name": "FirstHalfStartTimeExtraField",
            "Type": "string",
            "Required": false,
            "ValidRegEx": "",
            "Placeholder": "HH:MM in 24hrs Format",
            "PostData": false,
            "DefaultValue": "00:00",
            "Width": 320,
            "ReadOnly": true,
            "LabelWidth": 185,
            "Label": "SecurityQuestion.FirstHalfStartTime",
            "ExpandedView": true,
            "FieldDescription": "Start time of the first half of the shift, used for half-day attendance calculation.",
            "FieldDescriptionWidth": 360,
            "LinkId": "FirstHalfStartTime",
            "GridArea": "fhStart"
        },
        {
            "Name": "FirstHalfEndTime",
            "Type": "string",
            "Required": true,
            "ValidRegEx": "",
            "Width": 320,
            "PostData": false,
            "DefaultValue": "00:00",
            "ReadOnly": true,
            "Placeholder": "HH:MM in 24hrs Format",
            "width": "400px",
            "Label": "SecurityQuestion.SecondHalfEndTime",
            "ExpandedView": true,
            "FieldDescription": "Raw second-half end time value used internally by the paired time control; not rendered as a standalone field.",
            "FieldDescriptionWidth": 360
        },
        {
            "Name": "FirstHalfEndTimeExtraField",
            "Type": "string",
            "Required": true,
            "ValidRegEx": "",
            "PostData": false,
            "DefaultValue": "",
            "LabelWidth": 204,
            "Width": 320,
            "Label": "SecurityQuestion.FirstHalfEndTime",
            "ExpandedView": true,
            "FieldDescription": "Time at which the first half of the shift ends. Marks the boundary used for half-day and break calculations.",
            "FieldDescriptionWidth": 360,
            "Placeholder": "HH:MM in 24hrs Format",
            "LinkId": "FirstHalfEndTime",
            "GridArea": "fhEnd"
        },
        {
            "Name": "ShiftSecondHalfStartTime",
            "Type": "string",
            "Required": true,
            "ValidRegEx": "",
            "PostData": true,
            "DefaultValue": "00:00",
            "Width": 320,
            "LabelWidth": 185,
            "Label": "SecurityQuestion.SecondHalfStartTime",
            "Placeholder": "HH:MM in 24hrs Format",
            "AddNew": true,
            "ExpandedView": true,
            "FieldDescription": "Raw second-half start time value used internally by the paired time control; not rendered as a standalone field.",
            "FieldDescriptionWidth": 360
        },
        {
            "Name": "ShiftSecondHalfStartTimeSelfName",
            "Type": "string",
            "Required": true,
            "ValidRegEx": "",
            "PostData": false,
            "DefaultValue": "",
            "Width": 320,
            "LabelWidth": 185,
            "Label": "SecurityQuestion.SecondHalfStartTime",
            "ExpandedView": true,
            "FieldDescription": "Time at which the second half of the shift begins, following the break or shift midpoint.",
            "FieldDescriptionWidth": 360,
            "Placeholder": "HH:MM in 24hrs Format",
            "LinkId": "ShiftSecondHalfStartTime",
            "GridArea": "shStart"
        },
        {
            "Name": "ShiftFirstHalfEndTime",
            "Type": "string",
            "Required": true,
            "ValidRegEx": "",
            "PostData": true,
            "DefaultValue": "00:00",
            "Width": 320,
            "Label": "SecurityQuestion.FirstHalfEndTime",
            "Placeholder": "HH:MM in 24hrs Format",
            "AddNew": true,
            "ExpandedView": true,
            "FieldDescription": "Raw first-half end time value used internally by the paired time control; not rendered as a standalone field.",
            "FieldDescriptionWidth": 360
        },
        {
            "Name": "ShiftSecondHalfEndTimeSelfName",
            "Type": "string",
            "Required": false,
            "ValidRegEx": "",
            "PostData": false,
            "DefaultValue": "00:00",
            "LabelWidth": 204,
            "Width": 320,
            "ReadOnly": true,
            "Label": "SecurityQuestion.SecondHalfEndTime",
            "ExpandedView": true,
            "FieldDescription": "End time of the second half of the shift, typically aligned with the overall shift end time.",
            "FieldDescriptionWidth": 360,
            "Placeholder": "HH:MM in 24hrs Format",
            "LinkId": "ShiftFirstHalfEndTime",
            "GridArea": "shEnd"
        },
        {
            "Name": "ShiftGraceMinutes",
            "Type": "number",
            "Required": true,
            "ValidRegEx": "",
            "PostData": true,
            "DefaultValue": "0",
            "MaxLength": 4,
            "LabelWidth": 220,
            "Width": 320,
            "Label": "ShiftMaster.GraceMinutes",
            "ExpandedView": true,
            "FieldDescription": "Minutes an employee may clock in after the shift start time without being marked late.",
            "FieldDescriptionWidth": 360,
            "Placeholder": "Enter Grace Minutes ",
            "GridArea": "grace"
        },
        {
            "Name": "ShiftBreakMinutes",
            "Type": "number",
            "Required": true,
            "ValidRegEx": "",
            "PostData": true,
            "DefaultValue": "0",
            "Width": 320,
            "LabelWidth": 185,
            "MaxLength": 3,
            "Label": "ShiftMaster.BreakMinutes",
            "ExpandedView": true,
            "FieldDescription": "Total duration of the scheduled break, in minutes. Deducted from gross shift time to compute working minutes.",
            "FieldDescriptionWidth": 360,
            "Placeholder": "Enter Break Minutes",
            "AddNew": true,
            "GridArea": "breakMin"
        },
        {
            "Name": "ShiftShiftMinutes",
            "Type": "string",
            "Required": true,
            "ValidRegEx": "",
            "PostData": true,
            "DefaultValue": "0",
            "Width": 320,
            "LabelWidth": 185,
            "Label": "ShiftMaster.ShiftMinutes",
            "ExpandedView": true,
            "FieldDescription": "Total gross duration of the shift, calculated automatically from the start and end times.",
            "FieldDescriptionWidth": 360,
            "Placeholder": "Enter Shift Minutes",
            "ReadOnly": true,
            "AddNew": false,
            "GridArea": "shiftMin"
        },
        {
            "Name": "ShiftIsProductionShift",
            "Type": "number",
            "Required": false,
            "ValidRegEx": "",
            "PostData": true,
            "DefaultValue": 1,
            "Width": 320,
            "LabelWidth": 185,
            "Label": "ShiftMaster.ProductionShift",
            "ExpandedView": true,
            "FieldDescription": "Marks this shift as available for shop-floor production scheduling and reporting.",
            "FieldDescriptionWidth": 360,
            "GridArea": "prodShift"
        },
        {
            "Name": "ShiftRemarks",
            "Type": "string",
            "Required": false,
            "ValidRegEx": "",
            "PostData": true,
            "DefaultValue": "",
            "MaxLength": 200,
            "Width": 368,
            "LabelWidth": 220,
            "Label": "Brand.Remark",
            "ExpandedView": true,
            "FieldDescription": "Optional free-text notes about this shift — exceptions, applicability, or internal reference for HR/Admin.",
            "FieldDescriptionWidth": 360,
            "Placeholder": "Enter Remarks",
            "GridArea": "remarks"
        },
        {
            "Name": "ShiftIsBreakApplicable",
            "Type": "number",
            "Required": false,
            "ValidRegEx": "",
            "PostData": true,
            "DefaultValue": 1,
            "Width": 200,
            "LabelWidth": 185,
            "Label": "ShiftMaster.BreakApplicable",
            "ExpandedView": true,
            "FieldDescription": "Enable if this shift includes a scheduled break period.",
            "FieldDescriptionWidth": 360,
            "GridArea": "breakApplicable"
        },
        {
            "Name": "ShiftWorkingMinutes",
            "Type": "number",
            "Required": true,
            "ValidRegEx": "",
            "PostData": true,
            "DefaultValue": 0,
            "Width": 320,
            "MaxLength": 4,
            "LabelWidth": 185,
            "Label": "ShiftMaster.WorkingMinutes",
            "ExpandedView": true,
            "FieldDescription": "Net minutes an employee is expected to work, calculated automatically after deducting break minutes.",
            "FieldDescriptionWidth": 360,
            "Placeholder": "Enter Working Minutes",
            "AddNew": false,
            "GridArea": "workingMin"
        },
        {
            "Name": "ShiftFullDayMinutes",
            "Type": "number",
            "Required": true,
            "ValidRegEx": "",
            "PostData": true,
            "DefaultValue": 0,
            "MaxLength": 4,
            "Width": 320,
            "LabelWidth": 185,
            "Label": "ShiftMaster.FullDayMinutes",
            "ExpandedView": true,
            "FieldDescription": "Minimum attendance minutes required for a day to be marked as a full working day.",
            "FieldDescriptionWidth": 360,
            "Placeholder": "Enter Full Day Minutes",
            "GridArea": "fullDayMin"
        },
        {
            "Name": "ShiftHalfDayMinutes",
            "Type": "number",
            "Required": true,
            "ValidRegEx": "",
            "PostData": true,
            "MaxLength": 4,
            "DefaultValue": 0,
            "Width": 320,
            "LabelWidth": 185,
            "Label": "ShiftMaster.HalfDayMinutes",
            "ExpandedView": true,
            "FieldDescription": "Minimum attendance minutes required for a day to be marked as a half working day.",
            "FieldDescriptionWidth": 360,
            "Placeholder": "Enter Half Day Minutes",
            "GridArea": "halfDayMin"
        },
        {
            "Name": "ShiftCreatedById",
            "Type": "number",
            "Required": false,
            "ValidRegEx": "",
            "PostData": false,
            "DefaultValue": 0,
            "width": "400px"
        },
        {
            "Name": "ShiftCreatedByName",
            "Type": "string",
            "Required": false,
            "ValidRegEx": "",
            "PostData": true,
            "DefaultValue": "ADMIN",
            "width": "400px"
        },
        {
            "Name": "ShiftModifiedByName",
            "Type": "string",
            "Required": false,
            "ValidRegEx": "",
            "PostData": true,
            "DefaultValue": "ADMIN",
            "width": "400px"
        },
        {
            "Name": "TenantId",
            "Type": "number",
            "Required": false,
            "ValidRegEx": "",
            "PostData": true,
            "DefaultValue": -1,
            "width": "400px"
        },
        {
            "Name": "ShiftModifiedById",
            "Type": "number",
            "Required": false,
            "ValidRegEx": "",
            "PostData": false,
            "DefaultValue": -1,
            "width": "400px"
        },
        {
            "Name": "ShiftSortOrder",
            "Type": "number",
            "Required": true,
            "ValidRegEx": "",
            "PostData": true,
            "DefaultValue": 9999,
            "LabelWidth": 220,
            "Width": 320,
            "MaxLength": 4,
            "Label": "EmployeeMaster.SortOrder",
            "ExpandedView": true,
            "FieldDescription": "Controls the display position of this shift in selection lists. Lower numbers appear first.",
            "FieldDescriptionWidth": 360,
            "Placeholder": "Enter Sort Order",
            "GridArea": "sortOrder"
        },
        {
            "Name": "ShiftStatus",
            "Type": "number",
            "Required": false,
            "ValidRegEx": "",
            "PostData": true,
            "DefaultValue": 1,
            "width": "400px"
        },
        {
            "Name": "ShiftVersion",
            "Type": "number",
            "Required": false,
            "ValidRegEx": "",
            "PostData": true,
            "DefaultValue": 1,
            "width": "400px"
        },
        {
            "Name": "ShiftSourceType",
            "Type": "number",
            "Required": false,
            "ValidRegEx": "",
            "PostData": true,
            "DefaultValue": 5,
            "width": "400px"
        },
        {
            "Name": "ShiftCutOffMinutes",
            "Type": "number",
            "Required": true,
            "ValidRegEx": "",
            "PostData": true,
            "DefaultValue": -1,
            "MaxLength": 4,
            "LabelWidth": 220,
            "Width": 320,
            "Label": "ShiftMaster.FirstHalfCutOffMinutes",
            "ExpandedView": true,
            "FieldDescription": "Latest minute offset from the first-half boundary still counted as attendance for the first half. -1 disables the check.",
            "FieldDescriptionWidth": 360,
            "Placeholder": "First Half Cut Off Min",
            "GridArea": "cutoffIn"
        },
        {
            "Name": "ShiftCutOffMinutesOut",
            "Type": "number",
            "Required": true,
            "ValidRegEx": "",
            "PostData": true,
            "MaxLength": 4,
            "DefaultValue": -1,
            "LabelWidth": 220,
            "Width": 320,
            "Label": "ShiftMaster.SecondHalfCutOffMinutes",
            "ExpandedView": true,
            "FieldDescription": "Latest minute offset from the second-half boundary still counted as attendance for the second half. -1 disables the check.",
            "FieldDescriptionWidth": 360,
            "Placeholder": "Second Half Cut Off Min",
            "GridArea": "cutoffOut"
        },
        {
            "Name": "ShiftWorkTimeMethod",
            "Type": "number",
            "Required": false,
            "ValidRegEx": "",
            "PostData": true,
            "DefaultValue": 0,
            "LabelWidth": 220,
            "Width": 320,
            "Label": "ShiftMaster.ShiftWorkTime",
            "ExpandedView": true,
            "FieldDescription": "Determines how attendance is captured for this shift — punch-based devices or fixed shift-based hours.",
            "FieldDescriptionWidth": 360,
            "GridArea": "workMethod",
            "PickLists": [
                {
                    "key": 0,
                    "value": "Punch Based"
                },
                {
                    "key": 1,
                    "value": "Shift Based"
                }
            ]
        }
    ]
}