import type { Square } from "square" import { defineSquareOperation } from "../lib" /** Adds a group membership to a customer. */ export const addSquareGroupToCustomer = defineSquareOperation< Square.customers.AddGroupsRequest, Square.AddGroupToCustomerResponse >({ allowedKeys: ["customerId", "groupId"], description: "Adds a group membership to a customer.", execute: (api, input) => api.customers.groups.add(input), name: "Add Square Group To Customer", replaySafety: "safe", requiredKeys: ["customerId", "groupId"], scopes: ["CUSTOMERS_WRITE"], }) /** Creates multiple [customer profiles](entity:Customer) for a business. */ export const bulkCreateSquareCustomers = defineSquareOperation< Square.BulkCreateCustomersRequest, Square.BulkCreateCustomersResponse >({ allowedKeys: ["customers"], description: "Creates multiple [customer profiles](entity:Customer) for a business.", execute: (api, input) => api.customers.batchCreate(input), name: "Bulk Square Create Customers", replaySafety: "unsafe", requiredKeys: ["customers"], scopes: ["CUSTOMERS_WRITE"], }) /** Deletes multiple customer profiles. */ export const bulkDeleteSquareCustomers = defineSquareOperation< Square.BulkDeleteCustomersRequest, Square.BulkDeleteCustomersResponse >({ allowedKeys: ["customerIds"], description: "Deletes multiple customer profiles.", execute: (api, input) => api.customers.bulkDeleteCustomers(input), name: "Bulk Square Delete Customers", replaySafety: "unsafe", requiredKeys: ["customerIds"], scopes: ["CUSTOMERS_WRITE"], }) /** Retrieves multiple customer profiles. */ export const bulkRetrieveSquareCustomers = defineSquareOperation< Square.BulkRetrieveCustomersRequest, Square.BulkRetrieveCustomersResponse >({ allowedKeys: ["customerIds"], description: "Retrieves multiple customer profiles.", execute: (api, input) => api.customers.bulkRetrieveCustomers(input), name: "Bulk Square Retrieve Customers", replaySafety: "safe", requiredKeys: ["customerIds"], scopes: ["CUSTOMERS_READ"], }) /** Updates multiple customer profiles. */ export const bulkUpdateSquareCustomers = defineSquareOperation< Square.BulkUpdateCustomersRequest, Square.BulkUpdateCustomersResponse >({ allowedKeys: ["customers"], description: "Updates multiple customer profiles.", execute: (api, input) => api.customers.bulkUpdateCustomers(input), name: "Bulk Square Update Customers", replaySafety: "unsafe", requiredKeys: ["customers"], scopes: ["CUSTOMERS_WRITE"], }) /** Creates a new customer for a business. */ export const createSquareCustomer = defineSquareOperation< Square.CreateCustomerRequest, Square.CreateCustomerResponse >({ allowedKeys: [ "idempotencyKey", "givenName", "familyName", "companyName", "nickname", "emailAddress", "address", "phoneNumber", "referenceId", "note", "birthday", "taxIds", ], description: "Creates a new customer for a business.", execute: (api, input) => api.customers.create(input), name: "Create Square Customer", replaySafety: "unsafe", requiredKeys: [], scopes: ["CUSTOMERS_WRITE"], }) /** Deletes a customer profile from a business. */ export const deleteSquareCustomer = defineSquareOperation< Square.DeleteCustomersRequest, Square.DeleteCustomerResponse >({ allowedKeys: ["customerId", "version"], description: "Deletes a customer profile from a business.", execute: (api, input) => api.customers.delete(input), name: "Delete Square Customer", replaySafety: "safe", requiredKeys: ["customerId"], scopes: ["CUSTOMERS_WRITE"], }) /** Lists customer profiles associated with a Square account. */ export const listSquareCustomers = defineSquareOperation< Square.ListCustomersRequest, Square.ListCustomersResponse >({ allowedKeys: ["cursor", "limit", "sortField", "sortOrder", "count"], description: "Lists customer profiles associated with a Square account.", execute: (api, input) => api.customers.list(input), name: "List Square Customers", replaySafety: "safe", requiredKeys: [], scopes: ["CUSTOMERS_READ"], }) /** Removes a group membership from a customer. */ export const removeSquareGroupFromCustomer = defineSquareOperation< Square.customers.RemoveGroupsRequest, Square.RemoveGroupFromCustomerResponse >({ allowedKeys: ["customerId", "groupId"], description: "Removes a group membership from a customer.", execute: (api, input) => api.customers.groups.remove(input), name: "Remove Square Group From Customer", replaySafety: "safe", requiredKeys: ["customerId", "groupId"], scopes: ["CUSTOMERS_WRITE"], }) /** Returns details for a single customer. */ export const retrieveSquareCustomer = defineSquareOperation< Square.GetCustomersRequest, Square.GetCustomerResponse >({ allowedKeys: ["customerId"], description: "Returns details for a single customer.", execute: (api, input) => api.customers.get(input), name: "Retrieve Square Customer", replaySafety: "safe", requiredKeys: ["customerId"], scopes: ["CUSTOMERS_READ"], }) /** * Searches the customer profiles associated with a Square account using one or * more supported query filters. */ export const searchSquareCustomers = defineSquareOperation< Square.SearchCustomersRequest, Square.SearchCustomersResponse >({ allowedKeys: ["cursor", "limit", "query", "count"], description: "Searches the customer profiles associated with a Square account using one or more supported query filters.", execute: (api, input) => api.customers.search(input), name: "Search Square Customers", replaySafety: "safe", requiredKeys: [], scopes: ["CUSTOMERS_READ"], }) /** Updates a customer profile. */ export const updateSquareCustomer = defineSquareOperation< Square.UpdateCustomerRequest, Square.UpdateCustomerResponse >({ allowedKeys: [ "customerId", "givenName", "familyName", "companyName", "nickname", "emailAddress", "address", "phoneNumber", "referenceId", "note", "birthday", "version", "taxIds", ], description: "Updates a customer profile.", execute: (api, input) => api.customers.update(input), name: "Update Square Customer", replaySafety: "safe", requiredKeys: ["customerId"], scopes: ["CUSTOMERS_WRITE"], })