import type { Square } from "square" import { defineSquareOperation } from "../lib" /** Publishes 1 - 100 scheduled shifts. */ export const bulkSquarePublishScheduledShifts = defineSquareOperation< Square.BulkPublishScheduledShiftsRequest, Square.BulkPublishScheduledShiftsResponse >({ allowedKeys: ["scheduledShifts", "scheduledShiftNotificationAudience"], description: "Publishes 1 - 100 scheduled shifts.", execute: (api, input) => api.labor.bulkPublishScheduledShifts(input), name: "Bulk Square Publish Scheduled Shifts", replaySafety: "unsafe", requiredKeys: ["scheduledShifts"], scopes: ["TIMECARDS_WRITE"], }) /** Creates a new `BreakType`. */ export const createSquareBreakType = defineSquareOperation< Square.labor.CreateBreakTypeRequest, Square.CreateBreakTypeResponse >({ allowedKeys: ["idempotencyKey", "breakType"], description: "Creates a new `BreakType`.", execute: (api, input) => api.labor.breakTypes.create(input), name: "Create Square Break Type", replaySafety: "unsafe", requiredKeys: ["breakType"], scopes: ["TIMECARDS_SETTINGS_WRITE"], }) /** * Creates a scheduled shift by providing draft shift details such as job ID, * team member assignment, and start and end times. */ export const createSquareScheduledShift = defineSquareOperation< Square.CreateScheduledShiftRequest, Square.CreateScheduledShiftResponse >({ allowedKeys: ["idempotencyKey", "scheduledShift"], description: "Creates a scheduled shift by providing draft shift details such as job ID, team member assignment, and start and end times.", execute: (api, input) => api.labor.createScheduledShift(input), name: "Create Square Scheduled Shift", replaySafety: "unsafe", requiredKeys: ["scheduledShift"], scopes: ["TIMECARDS_WRITE"], }) /** Creates a new `Timecard`. */ export const createSquareTimecard = defineSquareOperation< Square.CreateTimecardRequest, Square.CreateTimecardResponse >({ allowedKeys: ["idempotencyKey", "timecard"], description: "Creates a new `Timecard`.", execute: (api, input) => api.labor.createTimecard(input), name: "Create Square Timecard", replaySafety: "unsafe", requiredKeys: ["timecard"], scopes: ["TIMECARDS_WRITE"], }) /** Deletes an existing `BreakType`. */ export const deleteSquareBreakType = defineSquareOperation< Square.labor.DeleteBreakTypesRequest, Square.DeleteBreakTypeResponse >({ allowedKeys: ["id"], description: "Deletes an existing `BreakType`.", execute: (api, input) => api.labor.breakTypes.delete(input), name: "Delete Square Break Type", replaySafety: "safe", requiredKeys: ["id"], scopes: ["TIMECARDS_SETTINGS_WRITE"], }) /** Deletes a `Timecard`. */ export const deleteSquareTimecard = defineSquareOperation< Square.DeleteTimecardRequest, Square.DeleteTimecardResponse >({ allowedKeys: ["id"], description: "Deletes a `Timecard`.", execute: (api, input) => api.labor.deleteTimecard(input), name: "Delete Square Timecard", replaySafety: "safe", requiredKeys: ["id"], scopes: ["TIMECARDS_WRITE"], }) /** Returns a single `BreakType` specified by `id`. */ export const getSquareBreakType = defineSquareOperation< Square.labor.GetBreakTypesRequest, Square.GetBreakTypeResponse >({ allowedKeys: ["id"], description: "Returns a single `BreakType` specified by `id`.", execute: (api, input) => api.labor.breakTypes.get(input), name: "Get Square Break Type", replaySafety: "safe", requiredKeys: ["id"], scopes: ["TIMECARDS_SETTINGS_READ"], }) /** Returns a single `TeamMemberWage` specified by `id`. */ export const getSquareTeamMemberWage = defineSquareOperation< Square.labor.GetTeamMemberWagesRequest, Square.GetTeamMemberWageResponse >({ allowedKeys: ["id"], description: "Returns a single `TeamMemberWage` specified by `id`.", execute: (api, input) => api.labor.teamMemberWages.get(input), name: "Get Square Team Member Wage", replaySafety: "safe", requiredKeys: ["id"], scopes: ["EMPLOYEES_READ"], }) /** Returns a paginated list of `BreakType` instances for a business. */ export const listSquareBreakTypes = defineSquareOperation< Square.labor.ListBreakTypesRequest, Square.ListBreakTypesResponse >({ allowedKeys: ["locationId", "limit", "cursor"], description: "Returns a paginated list of `BreakType` instances for a business.", execute: (api, input) => api.labor.breakTypes.list(input), name: "List Square Break Types", replaySafety: "safe", requiredKeys: [], scopes: ["TIMECARDS_SETTINGS_READ"], }) /** Returns a paginated list of `TeamMemberWage` instances for a business. */ export const listSquareTeamMemberWages = defineSquareOperation< Square.labor.ListTeamMemberWagesRequest, Square.ListTeamMemberWagesResponse >({ allowedKeys: ["teamMemberId", "limit", "cursor"], description: "Returns a paginated list of `TeamMemberWage` instances for a business.", execute: (api, input) => api.labor.teamMemberWages.list(input), name: "List Square Team Member Wages", replaySafety: "safe", requiredKeys: [], scopes: ["EMPLOYEES_READ"], }) /** Returns a list of `WorkweekConfig` instances for a business. */ export const listSquareWorkweekConfigs = defineSquareOperation< Square.labor.ListWorkweekConfigsRequest, Square.ListWorkweekConfigsResponse >({ allowedKeys: ["limit", "cursor"], description: "Returns a list of `WorkweekConfig` instances for a business.", execute: (api, input) => api.labor.workweekConfigs.list(input), name: "List Square Workweek Configs", replaySafety: "safe", requiredKeys: [], scopes: ["TIMECARDS_SETTINGS_READ"], }) /** Publishes a scheduled shift. */ export const publishSquareScheduledShift = defineSquareOperation< Square.PublishScheduledShiftRequest, Square.PublishScheduledShiftResponse >({ allowedKeys: [ "id", "idempotencyKey", "version", "scheduledShiftNotificationAudience", ], description: "Publishes a scheduled shift.", execute: (api, input) => api.labor.publishScheduledShift(input), name: "Publish Square Scheduled Shift", replaySafety: "safe", requiredKeys: ["id", "idempotencyKey"], scopes: ["TIMECARDS_WRITE"], }) /** Retrieves a scheduled shift by ID. */ export const retrieveSquareScheduledShift = defineSquareOperation< Square.RetrieveScheduledShiftRequest, Square.RetrieveScheduledShiftResponse >({ allowedKeys: ["id"], description: "Retrieves a scheduled shift by ID.", execute: (api, input) => api.labor.retrieveScheduledShift(input), name: "Retrieve Square Scheduled Shift", replaySafety: "safe", requiredKeys: ["id"], scopes: ["TIMECARDS_READ"], }) /** Returns a single `Timecard` specified by `id`. */ export const retrieveSquareTimecard = defineSquareOperation< Square.RetrieveTimecardRequest, Square.RetrieveTimecardResponse >({ allowedKeys: ["id"], description: "Returns a single `Timecard` specified by `id`.", execute: (api, input) => api.labor.retrieveTimecard(input), name: "Retrieve Square Timecard", replaySafety: "safe", requiredKeys: ["id"], scopes: ["TIMECARDS_READ"], }) /** * Returns a paginated list of scheduled shifts, with optional filter and sort * settings. */ export const searchSquareScheduledShifts = defineSquareOperation< Square.SearchScheduledShiftsRequest, Square.SearchScheduledShiftsResponse >({ allowedKeys: ["query", "limit", "cursor"], description: "Returns a paginated list of scheduled shifts, with optional filter and sort settings.", execute: (api, input) => api.labor.searchScheduledShifts(input), name: "Search Square Scheduled Shifts", replaySafety: "safe", requiredKeys: [], scopes: ["TIMECARDS_READ"], }) /** Returns a paginated list of `Timecard` records for a business. */ export const searchSquareTimecards = defineSquareOperation< Square.SearchTimecardsRequest, Square.SearchTimecardsResponse >({ allowedKeys: ["query", "limit", "cursor"], description: "Returns a paginated list of `Timecard` records for a business.", execute: (api, input) => api.labor.searchTimecards(input), name: "Search Square Timecards", replaySafety: "safe", requiredKeys: [], scopes: ["TIMECARDS_READ"], }) /** Updates an existing `BreakType`. */ export const updateSquareBreakType = defineSquareOperation< Square.labor.UpdateBreakTypeRequest, Square.UpdateBreakTypeResponse >({ allowedKeys: ["id", "breakType"], description: "Updates an existing `BreakType`.", execute: (api, input) => api.labor.breakTypes.update(input), name: "Update Square Break Type", replaySafety: "safe", requiredKeys: ["id", "breakType"], scopes: ["TIMECARDS_SETTINGS_READ", "TIMECARDS_SETTINGS_WRITE"], }) /** Updates the draft shift details for a scheduled shift. */ export const updateSquareScheduledShift = defineSquareOperation< Square.UpdateScheduledShiftRequest, Square.UpdateScheduledShiftResponse >({ allowedKeys: ["id", "scheduledShift"], description: "Updates the draft shift details for a scheduled shift.", execute: (api, input) => api.labor.updateScheduledShift(input), name: "Update Square Scheduled Shift", replaySafety: "safe", requiredKeys: ["id", "scheduledShift"], scopes: ["TIMECARDS_WRITE"], }) /** Updates an existing `Timecard`. */ export const updateSquareTimecard = defineSquareOperation< Square.UpdateTimecardRequest, Square.UpdateTimecardResponse >({ allowedKeys: ["id", "timecard"], description: "Updates an existing `Timecard`.", execute: (api, input) => api.labor.updateTimecard(input), name: "Update Square Timecard", replaySafety: "safe", requiredKeys: ["id", "timecard"], scopes: ["TIMECARDS_READ", "TIMECARDS_WRITE"], }) /** Updates a `WorkweekConfig`. */ export const updateSquareWorkweekConfig = defineSquareOperation< Square.labor.UpdateWorkweekConfigRequest, Square.UpdateWorkweekConfigResponse >({ allowedKeys: ["id", "workweekConfig"], description: "Updates a `WorkweekConfig`.", execute: (api, input) => api.labor.workweekConfigs.get(input), name: "Update Square Workweek Config", replaySafety: "safe", requiredKeys: ["id", "workweekConfig"], scopes: ["TIMECARDS_SETTINGS_READ", "TIMECARDS_SETTINGS_WRITE"], })