{"version":3,"sources":["modules/Tracking.js","modules/ScheduleQueries.js","modules/ScheduleService.js","utils/Common/Template.js","graphql/mutations.js","queries/ListBookingsQueries.js","context/reducers.js","context/StoreContext.js","context/actions.js","modules/SystemErrorService.js","graphql/queries.js","modules/TriggerManager.js","atoms/atoms.js","modules/DBService.js","modules/MessagingService.js","auth/SignIn.js","auth/SignUp.js","auth/Logout.js","styles/ProviderAddEditStyles.js","components/tip/TipPage.js","images/MBLogo.svg","auth/Forgot.js","modules/GoogleTagManager.js","images/WarningTriangleIcon.svg","components/MaintenanceDialog.js","App.js","modules/TimeService.js","styles/PublicSiteStyles.js","components/UI/theme/typography.js","queries/CustomQueries.js","modules/BillingCommon.js","user/UserCommon.js","serviceWorker.js","aws-exports.js","index.js","utils/Common/ProviderBookingConfirmation.js","utils/Common/guestCheckoutEmail.js","modules/BookingService.js","modules/TaxService.js","utils/Common/Mixpanel.js","components/MainNavbar.js","utils/Constants.js","user/checkoutOption.js","utils/index.js"],"names":["trackProviderSearch","_ref","searchParams","selectedFromDate","selectedToDate","selectedTod","selectedSkillsNames","companyId","serviceType1","serviceType2","serviceType3","eventprops","track","e","console","log","trackProviderSelection","bookingState","provider","datefilter","isRemoteLocation","location","serviceType","isVirtual","appointmentLocation","trackPackageSelection","boughtPackage","clientPackage","sdt","pkgsdt","trackTimeslotSelection","repeatingAppointment","selectedslot","trackBookingConfirmation","tryOtherProviders","trackOrderCompleted","order","trackRegistration","newUser","id","username","emailaddress","registered","firstname","lastname","phonepref","city","state","country","postalcode","role","trackLogin","user","trackPaymentProcessed","chargeInfo","trackCharge","useDifferentCard","amount","charge","brand","source","currency","listAllScheduleItems","listTimeblocks","SLOTSINADAY","SLOTUNITMINS","TIMEMAP","tmap","Array","s","hr","Math","floor","mins","tstr24","tfd","tstr12","buildTimeMap","SCHEDPKSKSPLITAT","EARTHRADIUS","ALLDAYSARRAY","DEFAULT_LOOKAHEAD_DAYS_FOR_CLUSTERING","DEFAULT_MAX_NUM_OF_SUGGESTED_SLOTS_TO_DISPALY","createTimeblock","async","locationId","startDate","endDate","startTime","endTime","type","status","weeksToRepeat","weekDays","tz","sdtutc","providerId","geoLoc","weekdaysStr","join","timeblockData","getProviderScheduleId","scheduleinfo","uuid","active","providerScheduleProviderId","locations","JSON","stringify","lat","latitude","lng","longitude","response","execWrite","opname","op","createProviderSchedule","input","getSlotsForSbs","SBs","numberOfDays","bookingIntervalMinutes","serviceDuration","travelTime","bookingIncrement","providerTz","locationTz","addStats","returnUnreadable","_ref2","timeZoneAdjustedScheduleBlocks","adjustScheduleBlocksToLocationTz","nowInLocalTimeZone","utcToZonedTime","Date","startingDate","getAWSDate","endingDate","sd","nd","ed","awsDateToJsDate","setDate","getDate","getEndingDate","primaryKey","items","BUTs","execReadBySortkey","scheduleQueries","skey","beginsWith","filter","deleted","ne","length","sbu","startDateTimeinUtc","zonedTimeToUtc","startDateTimeInBookingLoc","format","endDateTimeinUtc","endDateTimeInBookingLoc","adjustBUTimesForBookingLocationTimezone","bookedResp","between","limit","find","bk","includes","companyLocations","locationData","execReadByPK","getCompanyLocations","companyLoc","booking","bookings","b","bookedMinutes","calculateBookedMinutes","startDateUTC","startDateInLocZone","timeZone","endDateUTC","setMinutes","getMinutes","adjustGlobalBookingTimesForBookingLocationTimezone","unreadableSlots","timeBlocks","booked","selectedStartDateTime","slotMapObjects","fill","map","a","dayIndex","date","addDays","hasavail","slotmap","from","availableIntervals","timeblock","forEach","_ref4","slotMapObject","worksonday","availableIntervalsForCurrentBlock","getIndexByTime","workedTheDayBefore","workedTheDayAfter","slotsForCurrentBlock","val","index","some","availableInterval","undefined","i","concat","slotmapDate","unavStartDate","unavEndDate","unavWeekDays","getTime","indexOf","getDay","hasUnavailability","markUnAvailability","_ref5","computeAvailableSlots","readableSlots","schedule","sma","step","readableArray","d","push","slots","toReableArray","toReadableSlots","urs","futureSlotsOnly","checkDateTime","day","slot","dayDate","dayDateMillis","slotDate","setHours","Number","parseInt","start24","slice","isFutureSlot_v3","filterOutTodaysPastSlots","fromTz","targetTz","blocks","_ref3","rest","startDateTimeInScheduleTz","toDate","endDateTimeInScheduleTz","startDateTimeInLocationTz","endDateTimeInLocationTz","startDateInLocationTz","startTimeInLocationTz","endDateInLocationTz","endTimeInLocationTz","uniq","split","reduce","agr","dayNum","mod","compareTimezones","toString","bkstartTime","bkendTime","startHHMM","endHHMM","valueOf","displaybleSlots","sm","stepstarted","steplen","serviceDurationlen","returnStartTimes","foundStartTimes","referenceStartIndex","fst","live","uc","st","displaySlotsByStep2","ds","datetime","len","start12","toLocaleDateString","year","month","awsDate","dateparts","awsDateToJsEndDate","setSeconds","setMilliseconds","sample","range","shceduleWeekday","areSame","d1","d2","getMonth","getFullYear","validateApptDate","aDate","scheduleIds","dayCount","dayType","selectedLocation","timezone","availableTBs","getSBsByScheduleInfo","doesworkondate","isScheduleAvailableOnApptDate","result","slotsByDate","apptTime24hr","get24hrTime","isValid","hasAlternate","alternateSlot","originalSlot","dateInSchedule","diff","abs","sort","_slotsBySchedule$","decideAlternateSlotSearchDateRange","apptDate","numdays","avTBs","ret","dosuggestalternate","tb","pk","schInfos","scheduleBlocks","and","filteredBlocks","_ref6","createScheduleDescription","timeRange","withAMPM","dateRange","formatted","weekDaysArr","repeat","wa","isWeekdaysOnly","weeks","sortedWeekDays","Set","sortScheduleDisplayOrder","schedules","sortBy","days","min","t","hh","mm","hours","ampm","toLocaleTimeString","hour","minute","hourCycle","parts","si","ei","tbLat","tbLng","bookLat","dLat","PI","dLng","bookLatRad","tbLatRad","sin","cos","c","atan2","sqrt","includeTravelTime","ttIndLen","clawbackInd","_getSchedules","_ref7","process","allSchedules","schitem","startsWith","allLocationIds","agrigate","_ref8","parse","lc","stripLocationPrefix","uniqueLocations","allServices","allSBs","locationsFilter","or","lId","eq","execRead","queries","pd","getProviderDataForSchedules","scheduleLocationIds","substring","_ref9","services","serv","endsWith","servicetypeId","name","getServiceName","servicetypes","providerServices","serviceTypeName","servicetype","cid","pid","providerData","API","graphql","graphqlOperation","providerid","providerDataForSchedule","data","getProvider","pl","checkPackageBookedSlotsValid","heldPackageSlots","packageBookedSlots","_result$data$getProvi","idsplit","getProviderSchedule","_slots$index","dateInfo","dtstamp_str","checkSelectedSlotStillAvailable","pksk","label","serviceLocationObj","allSlotsHaveTz","slotTzMatch","checkSlotStillAvailablePkgBkgFlow","_ref10","getPhysicalLocationGeoLoc","locObj","getClusteredSlots","lookAheadDays","arguments","includeFullDayAnyTimeSlots","forceBookingTimeWithPackageBookingTime","_bookingState$company","firstBookingAnchorTime","maxTravelTimeMinutes","timeSuggestionsEnabled","company","SuggestionConfig","suggestionConfigObj","isEnabled","timeOfFirstBookingOfTheDay","maxTravelTime","remoteAddressCoordinates","clusteredSlotsResponse","post","body","providerSBs","startdate","minutes","BROWSER_TZ","Intl","DateTimeFormat","resolvedOptions","forceBookingTime","_clusteredSlotsRespon","clusteredslots","seenDates","obj","has","clusteredReadableSlot","add","getTimeSuggestions","maxNumberOfSlots","fullDays","_result$clusteredslot","slot1","slot2","_slot1$clusteredReada","_slot2$clusteredReada","slot1DateTime","slot2DateTime","getPackageSuggestedTimes","apptDates","suggestedPackageDates","hour12","_result$clusteredslot2","moment","milisecondsOfCurrentApptDate","suggestedSlot","clusteredApptMilisconds","diffToUserSelectedDateTime","s1","s2","suggestedSlotToBePresented","key","toISOString","selected","validity","searchProviderSchedulesByAddress","coords","serviceTypeIds","get","queryStringParameters","stids","esr","ex","tz1","tz2","nowDate","sortProvidersByRating","providers","p1","p2","r1","ratingstarsavg","r2","n1","toUpperCase","n2","calculateDailyPossibleMaxAvailability","counti","interval","calculateDailyStats","unreadables","dailyStats","slotlengths","sl","currLen","total","currMaxLen","currMinLen","dailyPossibleMaxAvil","p","sxl","m","stl","loadData","url","fetch","ok","text","logSystemError","statusText","checkCompanyHasTosFile","hasTos","tosPdfUrl","pdfExists","tosHtmlUrl","htmlExists","createUser","updateUser","updateProvider","createProviderRatings","createServiceType","createClient","updateClient","createClientPackage","updateClientPackage","createBooking","updateBooking","createOrder","createClientCharge","createBillingProgress","updateProviderSchedule","deleteProviderSchedule","createUISession","createAdditionalCharge","createBillingTransaction","createBookingRequest","createSystemErrorLog","updatePublicAccessToken","createProspect","createManualBooking","servicesOfCompany","skillByCompany","bundledServicesByCompany","regionalPricingByCompanyServiceType","packageByCompany","initialState","address","types","reducer","action","payload","Error","StoreContext","createContext","StoreProvider","children","dispatch","useReducer","actions","useActions","setBookingState","stringifyBookingState","useEffect","newState","_jsx","Provider","value","Logger","getCurrentDate","utc","severity","line","error","stack","message","createdAt","publicsiteByCompany","getUser","userByCompany","getCompany","companyBySubdomain","serviceTypeByCompany","clientByUserId","listSkills","getClientPackage","clientPackageByUser","promoSettingsByCompany","getBooking","getCompanyLocation","listCompanyLocations","companyLocationByCompany","getPublicAccessToken","getRefData","TriggerManager","hookName","exists","refType","refName","overrideValue","hooks","hook","hookUrls","urlList","urls","window","mode","method","headers","then","catch","invokeTrigger","selectedProviderAtom","atom","selectedProviderServicesAtom","item","service","isVisible","_s1$category","_s2$category","_s1$category2","_s2$category2","_s1$category3","_s2$category3","category","ordinal","allServicesAtom","allActiveServicesAtom","isArray","allPublicServicesAtom","activeServices","behavior","query","resp","hasOwnProperty","nextToken","sortDirection","sendSms","to","msg","countryCode","getSenderNumberByCountry","refValue","text_field_style","width","maxWidth","withRouter","props","_props$company","_props$company2","useContext","email","setEmail","useState","pasw","setPasw","loginClicked","setLoginClicked","errorMsg","setErrorMsg","newPaswRequired","setNewPaswRequired","newPasw","setNewPasW","setUser","showPassword","setShowPassword","React","showNewPassword","setShowNewPassword","smallerScreen","useMediaQuery","handleMouseDownPassword","event","preventDefault","handleEnterKeyDown","handleSignin","Auth","signIn","challengeName","doPostSignInProcess","err","_props$location$state2","_props$location$state3","code","history","fromPath","stage","_props$location$state4","_props$location$state5","authUser","currentAuthenticatedUser","bypassCache","attributes","clientRecord","Cache","removeItem","signOut","prevLoginInfo","LoginInfo","newLoginCount","loginCount","loginInfo","lastLoginDate","updateMBUserInput","getClientIfExists","userid","companyid","setClient","isNewClient","client","createClientRecord","groupName","addUserRole","newloggedinuser","newMBUserInput","signInUserSession","idToken","sub","given_name","family_name","userCompanyId","mobilephone","phone_number","contactconsent","contactconsentdatetime","newMBUser","usersByCompanyResult","roleEmailaddress","clientData","clientPackagesResult","userId","clientPackageUserId","clientId","updateClientResult","clientUserId","handleNewUserLogin","_jsxs","MainNavBar","guestUser","signOutOp","currentPath","pathname","banner","publicsitesettings","style","display","alignItems","flexDirection","gap","marginTop","padding","Grid","container","justifyContent","xs","Button","sx","cursor","marginLeft","variant","size","startIcon","KeyboardArrowLeft","marginRight","color","onClick","_props$location","_props$location$state","deleteHeldSlots","heldSlots","repeatingApptList","Typography","textAlign","_Fragment","Box","marginBottom","fontSize","TextField","alignSelf","backgroundColor","InputProps","disableUnderline","endAdornment","InputAdornment","position","IconButton","handleClickShowNewPassword","show","onMouseDown","edge","VisibilityOff","Visibility","onChange","target","userWithNewPassword","completeNewPassword","disabled","CircularProgress","isGuestOnlyCheckout","clientMayCreateAccount","fontWeight","_props$location$state6","_props$location$state7","ev","trim","toLowerCase","onKeyDown","handleClickShowPassword","fontFamily","textDecoration","_props$location$state8","_props$location$state9","isGuestCheckoutAllowed","_props$location$state10","_props$location$state11","guestMode","phone_field_style","height","setGuestMode","firstName","setFirstName","lastName","setLastName","phoneNumber","setPhoneNumber","showConfirmationSection","setShowConfirmationSection","confirmationCode","setConfirmationCode","setError","signupClicked","setSignupClicked","codeIsResent","setCodeIsResent","formNotValid","re","match","validEmail","createAccount","userDetails","UserStatus","mbUserInfo","Username","Promise","resolve","setTimeout","checkAndhandleUnconfirmedAccount","cleanedPhonNumber","codeDeliveryDetails","signUp","password","confirmSignup","confirmSignUp","userData","dateString","toLocaleString","userType","createAccountOnKeyDown","disableConfirmationBtn","disable","resendSignUp","MuiPhoneNumber","defaultCountry","userByEmailResult","setBookingUserInState","newumbser","uuidValue","v4","cleanPhone","registerUserInput","addUserToDb","clientCompanyId","accountbalance","addClient","disableCreateBtn","UserContext","setLoggedOut","doLogout","Container","useStyles","makeStyles","theme","grow","flexGrow","menuButton","spacing","title","breakpoints","up","search","borderRadius","shape","alpha","palette","common","white","searchIcon","pointerEvents","inputRoot","inputInput","transition","transitions","create","sectionDesktop","sectionMobile","paper","root","bigAvatar","margin","noLabelselectmargin","rating1","paddingTop","circleBox","border","topHeader","font","btnHidden","buttonProgress","top","logger","TipPage","setProvider","providerPic","setProviderPic","setApptDate","serviceName","setServiceName","setLocation","rating","setRating","review","setReview","hover","setHover","tipMsg","setTipMsg","tipAmt","setTipAmt","setBooking","snackMsg","setSnackMsg","msgOpen","setMsgOpen","tipPercent","setTipPercent","customTipModel","setCustomTipModal","customTipAmt","setCustomTipAmt","customTip","setCustomTip","authuser","done","setDone","buttonText","setButtonText","loading","setLoading","tokenId","setTokenId","companyAdmins","setCompanyAdmins","tipText","setTipText","bookingAddress","setBookingAddress","smallerWidthThanSixHundred","setTipInfo","percent","price","saveRating","_booking$client","_booking$client$user","_booking$client2","_booking$client2$user","_booking$company","providerRatingsProviderId","ratingstars","ratingtext","ratinguserId","debug","newReview","mutations","companyAdminsList","getCompanyAdmins","companyAdminsEmailList","companyAdmin","clientName","charAt","numStars","providerName","dataObj","client_name","num_stars","provider_name","servicetype_name","isRegisteredUser","templateName","subject","toAddresses","ccAddresses","bccAddresses","replyTo","replyemailaddress","companyName","companyLogoUrl","logoUrl","companyColor","primaryColor","authSiteUrl","sendLowRatingEmailNotification","providerRatingsByProvider","totalstars","avgstars","numberofratings","ratingInput","bookingRatingId","getCountryCodeForSms","countrycode3166alpha2","bookingId","token","params","URLSearchParams","href","expiryDate","now","picresult","Storage","pictures3key","getOrderInfo","load","Snackbar","anchorOrigin","vertical","horizontal","open","autoHideDuration","onClose","ContentProps","direction","rowSpacing","md","Rating","selectedColor","onChangeActive","newHover","newValue","ml","multiline","rows","localStorage","getItem","flexWrap","Chip","background","borderWidth","borderStyle","borderColor","startAdornment","getCurrencySymbolByCompany","billingDesc","dateNow","dateNowString","dateStyle","desc","note","orderId","additionalChargeOrderId","additionalChargeUserId","additionalChargeCompanyId","additionalChargeClientId","additionalChargeCreatorId","creatorId","createAddCharge","totalAddChg","parseFloat","timeblockid","updateBookingAddCharge","billingTransactionId","billingTransactionClientId","billingTransactionCreatorId","billingTransactionCompanyId","credit","billingTransactionOrderId","stripe_result","chargeCreditCard","stripeCustomerId","getStripeAmount","stripeAccount","stripeConnectEnabled","clientChargeClientId","description","stripechargeid","stripepaymentmethod","payment_method","stripe_payment_method_details","balance_transaction","stripe_refund_charge","stripe_status","clientChargeBillingtransactionId","billingtransactionId","amount_refunded","clientChargeOrderId","createStripePayment","companyEmail","companyCode","servicedesc","encodedURIEmail","encodeURIComponent","minimumFractionDigits","smsresult","sendSMSPaymentNotification","_jsonParse","_booking$company2","canProviderSeeClientName","jsonParse","ProviderRestrictionConfig","provider_firstname","dollars","company_name","sendProviderTipEmailNotification","finalMsg","errorresult","setStage","forgotPassword","forgotPasswordSubmit","initializeGTM","gtmId","gtmScript","document","createElement","innerHTML","head","appendChild","fetchGTMIds","hookIds","MaintenanceDialog","Sentry","dsn","beforeSend","hint","SENTRY_POPUP_ENV","exception","eventId","event_id","labelComments","subtitle2","environment","integrations","Integrations","BrowserTracing","release","npm_package_version","tracesSampleRate","SelectService","lazy","reload","ProviderPermalink","ProviderDirectory","ChooseTimeslot","AutoSelectProviderTimeSlot","ConfirmAppointmentDetail","OrderPayment","ConfirmOrder","ChoosePackage","BookingComplete","NotFound","PageNotFound","MsgTest","ContactPage","defaultButtonTextColor","buttonColor","buttonTextColor","createTheme","primary","main","createBrowserHistory","setGuestUser","guestCheckout","setGuestCheckout","userAttributes","setAttributes","setCompanyId","setCompany","setCompanyLocations","skills","setSkills","publicSiteSettings","setPublicSiteSettings","serviceLoading","setServiceLoading","landingPage","setLandingPage","loggedOut","showLoader","setShowLoader","setSelectedColor","provAgnoFlow","setProvAgnoFlow","setDefaultCountry","pathingInfo","currentPathname","currentSearch","openMessage","setAllServices","useAtom","allActiveServices","fetchSkillsData","compId","fetchServiceTypeData","sortByOrdinal","fetchCompanyLocations","offersRemoteServices","unshift","locationname","fetchCompanyPublicSettings","_styleCustomization","_styleCustomization$b","_styleCustomization2","_styleCustomization2$","_settings$textColor","styleCustomization","settings","_styleCustomization3","StyleCustomization","bookingFlowCustomizations","showHeader","opacity","circularLogo","showHeadings","showLogo","fontTypeForAllHeading","mainHeading","mandatoryNotes","checkoutOption","setItem","backgroundImageUrl","heading1Text","heading2Text","textColor","tipPageCustomizations","showTipOption","buildMainTheme","hideLoader","el","querySelector","remove","userAuthenticated","authenticatedUser","groups","SignInAsGuest","getCompanyFromDomain","gtmIds","all","init","doFetch","historyListening","useRef","current","listen","newLocation","path","seenConfirmOrder","seenOrderPayment","seenBookingComplete","go","updateCurrentUser","u","bookingUser","guest_mbuser","setClientInfoInBookingState","clientInfoObj","setClientPackagesInBookingState","clientPackages","clientExistingPackages","domain","hostname","subdomain","comp","ProvAgnoFlowConfig","providerAgnosticFlow","FallbackComponent","myFallbackComponent","fallback","showDialog","StyledEngineProvider","injectFirst","ThemeProvider","minHeight","Helmet","_company$tagline","tagline","getCompanyTagline","Router","Route","component","Suspense","serviceTypes","exact","render","Redirect","Logout","SignIn","setClientPackages","appPath","SignUp","Forgot","className","src","mbLogo","alt","createTimeDisplayInfoForTimeZone","dateTimeString","durationMins","convertedDateTime","tz_abbr_disp","tz_gmtoff","dt_disp","dt_long_disp","dt_full_disp","en_slot_disp","tm_st_disp","tm_et_disp","getBookingDateDescription","apptdate","tzAbbrv","getHours","success","getTodayDateAtBookingLocation","bookingLocationTimezone","browserTime","convertUtcToBookingLocationTimezone","utcDate","imgStyle","chroma","darken","hex","overflowX","overflowY","content","right","bottom","left","zindex","backgroundImage","backgroundSize","backgroundPosition","backgroundRepeat","bannerLogo","contextbox","title1","title2","title3","checkbox","notchedOutline","notchedOutlineProviderDir","outlined","inputRoot1","button","boxShadow","paperProviderDir","option","dropdown","paddingBottom","groupLabel","fontStyle","autocomplete","down","autocompleteusers","paddingLeft","qtywidth","primaryButtonTextColor","light","medium","secondary","info","COLOR_LIGHT_GREY","warning","textFieldPlaceHolder","typography","components","MuiTooltip","styleOverrides","tooltip","letterSpacing","lineHeight","MuiAccordion","MuiAccordionSummary","MuiAlert","icon","MuiCollapse","wrapperInner","MuiTab","textTransform","MuiTabPanel","MuiAutocomplete","MuiPaper","MuiButton","minWidth","containedPrimary","MuiPagination","MuiFormControl","MuiFormControlLabel","MuiCalendarPicker","responsiveFontSizes","h1","h2","h3","h4","h5","h6","body1","body2","caption","subtitle1","overline","helperText","cardHeader","stripecustomerid","customerCurrency","receiptemailaddress","prevChargeId","prevcharge","warn","checkCardExpiration","clientEmailAddress","USERROLE","CLIENT","PROVIDER","COMPANY_ADMIN","MARKETBOX_ADMIN","COMPANY_ADMIN_PROVIDER","MANAGER_PROVIDER","handleSendEmail","getUserFromCache","_authUser$attributes","userHasAdminRole","Boolean","awsmobile","aws_project_region","aws_mobile_analytics_app_id","aws_mobile_analytics_app_region","aws_cloud_logic_custom","endpoint","region","aws_appsync_graphqlEndpoint","aws_appsync_region","aws_appsync_authenticationType","aws_cognito_identity_pool_id","aws_cognito_region","aws_user_pools_id","aws_user_pools_web_client_id","oauth","aws_cognito_username_attributes","aws_cognito_social_providers","aws_cognito_signup_attributes","aws_cognito_mfa_configuration","aws_cognito_mfa_types","aws_cognito_password_protection_settings","passwordPolicyMinLength","passwordPolicyCharacters","aws_cognito_verification_mechanisms","aws_content_delivery_bucket","aws_content_delivery_bucket_region","aws_content_delivery_url","aws_user_files_s3_bucket","aws_user_files_s3_bucket_region","queryClient","QueryClient","defaultOptions","refetchOnWindowFocus","Amplify","configure","aws_exports","LOG_LEVEL","ReactDOM","QueryClientProvider","App","getElementById","navigator","serviceWorker","ready","registration","unregister","ProviderBookingConfirmation","orderNo","orderType","orderNotes","wdDisplay","canProviderSeeClientPhone","providerRestrictionConfig","adjustedBookings","TimeDisplayInfo","htmlTemplate","replace","getClientPhone","packageSection","bookingRow","homephone","workphone","guestCheckoutEmail","client_firstname","client_lastname","client_email","signupUrl","formatterCurr","curr","cost","NumberFormat","currencyDisplay","maximumFractionDigits","handleOrderAndBookingCreation","prps","usedPkgIdForCredit","boughtpackage","newclientpkg","clientpackage","bookedByAdmin","bookingOnBehalf","uiSessionId","bookingTz","clientNotes","getBookingAddress","acknowledgementDateTime","bookingType","chargeBreakup","cbu","orderSummary","osd","providerInfo","time","slot12","hasrepeatingappt","repeatingapptinfo","apptlist","localBookingDetails","createOrderAndBookings","_localBookingDetails$","_bookingState$user","promoData","actionUser","orderTotal","dbinfo","DashboardInfo","orders_today","orders_mtd","orders_ytd","sales_today","sales_mtd","sales_ytd","updateCompany","updateOrderStats","orderData","clientnotes","ordNoResp","idName","String","getNewOrderNo","prepareOrderDesc","orderProviderId","subtotal","servicechargeamt","taxamt","orderCompanyId","taxrate","legaltermsAcceptedAt","orderClientId","orderClientpackageId","bookingsList","slotNum","apptDT","bookingData","bookingOrderId","bookingServicetypeId","bookingProviderId","bookingClientId","bookingCompanyId","manualBooking","Notes","createdBy","notes","newbooking","prepareBookingDateTimeDisplayStrings","createUISessionEntry","eventName","clientFirstName","clientLastName","clientEmail","clientPhoneNumber","providerFirstName","providerLastName","providerEmail","orderNumber","orderDescription","orderAmount","orderCurrency","numberOfBookings","bookedBy","firstBooking","newBookingsResponse","recurBookingsResponse","selectedSlot","companyLocationCoordinates","bookingBookedById","daysOfWeek","rrule","heldSlotsList","apptDatesList","currentHeldSlot","bookingObject","partial_dt_full_disp","partial_en_slot_disp","getHeldSlotsForRecurringAPI","handleCreateRecurringBookings","repeatApptList","dateTimeObject","newBooking","generateBookingsList","newBookings","addrOneLine","remoteAddressState","remoteAddressCountryShort","postalCode","remoteAddressPostalCode","remoteAddressCountry","province","countryShort","holdSlotForPackageAppointments","tbendtime","getTimeblockEndTime","bookedtimeblockData","holdSlotsForAppointments","scheduleId","returnTimeblockList","getTimeblockEndTimeOfAppt","apptDatetime","ps","priceAfterDiscount","bs","basePrice","getDiscount","discountType","discountValue","calculateChargeBreakup","isPkgCredit","stateCode","getTaxJurisdiction","jurisdictionTaxRate","getServiceTaxRate","provstateCode","countryCodeUpper","provstateCodeUpper","taxRate","taxableAmount","taxAmount","regionalServicePrice","taxexempt","TaxOverride","taxOverrideJson","packagetype","quantity","discount","taxOverride","isNaN","isFinite","regionalServicePrice1","regionalServicePrice2","regionalServicePrice3","serviceQty1","serviceQty2","serviceQty3","taxexempt1","taxOverride1Json1","taxexempt2","taxOverride1Json2","taxexempt3","taxOverride1Json3","taxOverride1","taxOverride2","taxOverride3","taxRate1","taxRate2","taxRate3","taxableAmount1","taxableAmount2","taxableAmount3","acc","rate","VARIABLE_TAX_RATE","addServiceFee","serviceFeeType","serviceFeeAmount","taxableamt","updateClientPackageToPaid","pkg","usedQuantity","packageId","endtime","cd","getPaidPackages","servicetypeid","listClientPackagesData","servicetypeIdPackageIdCreatedAt","cp","initialQuantity","updateUsedQuantityOfPackage","increaseby","updateOrderStatusToPaidByPkgCredit","updateOrderStatus","orderid","updateOrderStatusToConfirmed","receipt","updateOrderStatusToPaid","orderReceipt","updateClientBalanceTo","balance","saveBillingProgress","ts","jsonData","userEmailAddress","bookingTimeblockId","appointmentDate","timestamp","bpData","dateTime","bp","updateHeldSlotsToConfirmed","hs","tbpksk","sendProviderBookingConfirmation","providerConfirmation","sendOrderReceipt","saveClientPackage","clientPackageServicetypeId","clientPackageClientId","clientPackagePackageId","fetchPackages","serviceTypeId","listPackagesData","servicetypeIdCreatedAt","noPackages","serviceId","pkgs","fetchRegionalPricing","getPrice","regpri","prov","countryRegPri","o","pricingtype","provRegPri","postalRegPri","postalcodes","getDescription","getCurrencySymbol","toFixed","pricePerSession","fetchCompanyLocation","num","num_check","decimal_pos","rounded_num","saveBookingRequest","guestCheckoutInfoForBookingReq","_bookingState$package","_bookingState$package2","_bookingState$heldPac","_bookingState$user2","savedNotDisplayedProviderData","savedDisplayedProviderData","usethese","_p$SBs","maxtraveltype","phone","virtualMeetingUserId","vmlink","sb","_p$SBs2","br","extraAvailabilityNotes","bookedSuggestedSlots","dir","notdisplayed","displayed","permalink","origProvider","newclientpkgid","serviceLocation","contactname","currencyBasedOnLocation","addressoneline","street","ApptAcceptanceFlowConfig","billingMode","iframeURL","publishableStripeKey","offersForeverAppt","virtualMeetingConfig","BccLists","getConfigurgedEmailAddresses","collectpayment","lastForeverApptDate","validPromocodeApplied","isRepeatingAppointment","packageRecurringSelected","guestCheckoutInfo","brData","recordType","accepted","bccListsJson","forOrdSum","bccListsObj","forBookingReqCreated","forBookingReqExpired","getCurrency","readCurrency","companyCurrency","totalRegionalPrice","numServices","taxJurisdiction","createOsd","creditsRemaining","_bs$packageBookedSlot","numofappts","unusedSessions","maxSlotsToBeBooked","qty","newService","_bs$promoData","_bs$promoData2","promocode","od","taxExemption","findOrCreateService","units","multipleServices","multipleQty","tempArr","bundledName","categoryId","categoryName","bundledMinutes","includedServices","t1","t2","componentServices","serviceTypeCompanyId","serviceTypeCategoryId","isBundledService","newBundledService","heldSlotsTimeoutExpired","heldSlotTime","heldSlotsOnDateTime","createNewUiSession","newSessionDetails","sessionItem","newUiSessionEntry","updateClientPackageIfValid","_bookingState$package3","num_of_credits_being_booked","getResponseRate","AcceptanceRatios","recent","avg","pri_rep_acceptance_ratio","getResponseTime","rep_mins","pri_rep_mins","sendGuestCheckoutEmail","guestCheckoutEmailBody","trackUser","loggedInUser","mixpanel","people","set","identify","trackServiceSelection","eventProps","trackOrderSummaryViewed","ignore_dnt","userName","setUserName","anchorEl","setAnchorEl","bookingFlowSettings","setBookingFlowSettings","useHistory","phoneWidthPadding","innerHeight","innerWidth","getCompanyName","companyname","getCompanyLogoUrl","isAdmin","getUserName","_props$publicsitesett","txtColor","logoClickHandler","homepage","focus","DisplayCompanyName","displayOnlyLogo","zIndex","handleClick","handleClose","dropDownItemsHandler","str","deviceWidth","avatarSize","phoneWidthSmaller","DisplayLoginInfo","GUEST_ONLY","currentTarget","endIcon","KeyboardArrowDownIcon","Popover","PaperProps","transformOrigin","List","ListItemText","Divider","Link","_props$publicsitesett2","_props$publicsitesett3","_props$publicsitesett4","_props$publicsitesett5","_props$publicsitesett6","overflow","objectFit","showHeadingOne","fontSizeHeader1","showHeadingTwo","fontSizeHeader2","showHeadingThree","fontSizeHeader3","AppBar","elevation","Toolbar","logo","DisplayCompanyLogo","MenuIcon","dayAbbreviations","fullDayNameMap","Mon","Tue","Wed","Thu","Fri","Sat","Sun","weekDayMap","MAX_FIRST_NAME_LENGTH","LOCATION_PREFIXES_REGEX","RegExp","AGNOSTIC_PROVIDER_NAME_TRUNCATE_LENGTH","SERVICE_BEHAVIOR_INTERNAL","TIME_OF_DAY","DEFAULT_TIME_OF_DAY_INDICES","ACCOUNT_OR_GUEST","getCheckoutOption","_publicsitesettings$S","_publicsitesettings$S2","co","_publicsitesettings$S3","_publicsitesettings$S4","_publicsitesettings$S5","_publicsitesettings$S6","_publicsitesettings$S7","_publicsitesettings$S8","n","isNumeric","jsonString","defaultValue","loggingMessage"],"mappings":"4HAAA,8TAEO,SAASA,EAAmBC,GAU/B,IAVgC,aAClCC,EAAY,iBACZC,EAAgB,eAChBC,EAAc,YACdC,EAAW,oBACXC,EAAmB,UACnBC,EAAS,aACTC,EAAY,aACZC,EAAY,aACZC,GACDT,EACC,GAAIC,EACF,IACE,IAAIS,EAAa,CACfT,eACAC,mBACAC,iBACAC,cACAC,sBACAC,YACAC,eACAC,eACAC,gBAEFE,IAA0BD,EAC5B,CAAE,MAAOE,GACPC,QAAQC,IAAIF,EACd,CAEJ,CAEO,SAASG,EAAuBC,EAAcX,GACnD,GAAIW,EACF,IACE,IAAI,SACFC,EAAQ,WACRC,EAAU,UACVZ,EAAS,iBACTa,EAAgB,SAChBC,EAAQ,YACRC,EAAW,UACXC,EAAS,oBACTC,GACEP,EACAN,EAAa,IACZQ,EACHD,WACAZ,sBACAC,YACAa,mBACAC,WACAC,cACAC,YACAC,uBAEFZ,IAA6BD,EAC/B,CAAE,MAAOE,GACPC,QAAQC,IAAIF,EACd,CAEJ,CAEO,SAASY,EAAsBR,GACpC,IACE,IAAI,cACFS,EAAa,cACbC,EAAa,IACbC,EAAG,OACHC,EAAM,UACNtB,EAAS,SACTW,EAAQ,WACRC,EAAU,iBACVC,EAAgB,SAChBC,EAAQ,YACRC,EAAW,UACXC,EAAS,oBACTC,GACEP,EACJL,IAA4B,CAC1Bc,gBACAC,gBACAC,MACAC,SACAtB,YACAW,WACAC,aACAC,mBACAC,WACAC,cACAC,YACAC,uBAEJ,CAAE,MAAOX,GACPC,QAAQC,IAAIF,EACd,CACF,CAEO,SAASiB,EAAuBb,GACrC,IACE,IAAI,cACFS,EAAa,cACbC,EAAa,IACbC,EAAG,OACHC,EAAM,UACNtB,EAAS,SACTW,EAAQ,WACRC,EAAU,iBACVC,EAAgB,SAChBC,EAAQ,YACRC,EAAW,UACXC,EAAS,oBACTC,EAAmB,qBACnBO,EAAoB,aACpBC,GACEf,EACJL,IAA6B,CAC3Bc,gBACAC,gBACAC,MACAC,SACAtB,YACAW,WACAC,aACAC,mBACAC,WACAC,cACAC,YACAC,sBACAO,uBACAC,gBAEJ,CAAE,MAAOnB,GACPC,QAAQC,IAAIF,EACd,CACF,CAEO,SAASoB,EAAyBhB,GACvC,IACE,IAAI,cACFS,EAAa,cACbC,EAAa,IACbC,EAAG,OACHC,EAAM,UACNtB,EAAS,SACTW,EAAQ,WACRC,EAAU,iBACVC,EAAgB,SAChBC,EAAQ,YACRC,EAAW,UACXC,EAAS,oBACTC,EAAmB,qBACnBO,EAAoB,aACpBC,EAAY,kBACZE,GACEjB,EACJL,IAA+B,CAC7Bc,gBACAC,gBACAC,MACAC,SACAtB,YACAW,WACAC,aACAC,mBACAC,WACAC,cACAC,YACAC,sBACAO,uBACAC,eACAE,qBAEJ,CAAE,MAAOrB,GACPC,QAAQC,IAAIF,EACd,CACF,CAEO,SAASsB,EAAoBlB,EAAcmB,GAChD,GAAInB,GAAgBmB,EAClB,IACE,IAAI,cACFV,EAAa,cACbC,EAAa,IACbC,EAAG,OACHC,EAAM,UACNtB,EAAS,SACTW,EAAQ,WACRC,EAAU,iBACVC,EAAgB,SAChBC,EAAQ,YACRC,EAAW,UACXC,EAAS,oBACTC,EAAmB,qBACnBO,EAAoB,aACpBC,EAAY,kBACZE,GACEjB,EACJL,IAA0B,CACxBc,gBACAC,gBACAC,MACAC,SACAtB,YACAW,WACAC,aACAC,mBACAC,WACAC,cACAC,YACAC,sBACAO,uBACAC,eACAE,oBACAE,SAEJ,CAAE,MAAOvB,GACPC,QAAQC,IAAIF,EACd,CAEJ,CA6CO,SAASwB,EAAkBC,GAChC,GAAIA,EACF,IACE,IAAI,GACFC,EAAE,SACFC,EAAQ,aACRC,EAAY,WACZC,EAAU,UACVC,EAAS,SACTC,EAAQ,UACRC,EAAS,KACTC,EAAI,MACJC,EAAK,QACLC,EAAO,WACPC,EAAU,KACVC,EAAI,UACJ3C,GACE+B,EACJ1B,IAAwB,CACtB2B,KACAC,WACAC,eACAC,aACAC,YACAC,WACAC,YACAC,OACAC,QACAC,UACAC,aACAC,OACA3C,aAEJ,CAAE,MAAOM,GACPC,QAAQC,IAAIF,EACd,CAEJ,CAEO,SAASsC,EAAWC,GACzB,GAAIA,EACF,IACE,IAAI,GACFb,EAAE,SACFC,EAAQ,aACRC,EAAY,WACZC,EAAU,UACVC,EAAS,SACTC,EAAQ,UACRC,EAAS,KACTC,EAAI,MACJC,EAAK,QACLC,EAAO,WACPC,EAAU,KACVC,EAAI,UACJ3C,GACE6C,EACJxC,IAAiB,CACf2B,KACAC,WACAC,eACAC,aACAC,YACAC,WACAC,YACAC,OACAC,QACAC,UACAC,aACAC,OACA3C,aAEJ,CAAE,MAAOM,GACPC,QAAQC,IAAIF,EACd,CAEJ,CACO,SAASwC,EAAsBpC,EAAcqC,GAClD,GAAIrC,EACF,IACE,IAIIsC,EAAc,CAChBC,iBALqBF,GAAcA,EAAWE,iBAM9CC,OALWH,GAAcA,EAAWI,OAAOD,OAM3CE,MALUL,GAAcA,EAAWI,OAAOE,OAAOD,MAMjDE,SALaP,GAAcA,EAAWI,OAAOE,OAAOC,UAOtD/C,QAAQC,IAAI,cAAewC,GAC3B3C,IAA4B2C,EAC9B,CAAE,MAAO1C,GACPC,QAAQC,IAAIF,EACd,CAEJ,C,0rBC1WO,MAAMiD,EAAqC,2uBAuCrCC,EAA+B,suB,8DCnB5C,MAAMC,EAAc,IACdC,EAAe,EAEfC,EAwrCN,WACE,MAAMC,EAAO,IAAIC,MAAMJ,GACvB,IAAK,IAAIK,EAAI,EAAGA,EAAIL,EAAaK,IAAK,CACpC,MAAMC,EAAKC,KAAKC,MAAMH,EA5rCN,IA6rCVI,EAAQJ,EA7rCE,GA6rCiBJ,EAC3BS,EAAS,GAAGJ,EAAK,GAAK,IAAM,KAAKA,KAAMG,EAAO,GAAK,IAAM,KAAKA,IAC9DE,EACJL,EAAK,GAAKA,EAAK,GACX,EACAA,EAAK,IAAMA,EAAK,GAChB,EACAA,EAAK,IAAMA,GAAM,GACjB,EACA,EACAM,EAAS,GAAGN,EAAK,GAAKA,EAAKA,EAAK,MAAMG,EAAO,GAAK,IAAM,KAAKA,KACjEH,EAAK,GAAK,KAAO,OAEnBH,EAAKE,GAAK,CAAEK,SAAQE,SAAQD,MAAKL,KAAIG,OACvC,CACA,OAAON,CACT,CA5sCgBU,GACVC,EAAmB,KAEnBC,EAAc,OACdC,EAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAC3BC,EAAwC,EAC/CC,EAAgD,GAMtD,MAAMC,EAAkBC,UAejB,IAfwB,UAC7B7E,EAAS,WACT8E,EAAU,UACVC,EAAS,QACTC,EAAO,UACPC,EAAS,QACTC,EAAO,KACPC,EAAI,OACJC,EAAM,cACNC,EAAa,SACbC,EAAQ,GACRC,EAAE,OACFC,EAAM,WACNC,EAAU,OACVC,GACDhG,EACC,MAAMiG,EAAcL,EAnBb,GAmBuCA,EAnB1BM,KAAK,IAmBiCN,EAE1D,MAAMO,EAAgB,CACpB7D,GAAI8D,EAAsB9F,EAAWyF,GACrCM,aAAc,MAAMhB,KAAaE,KAAaH,KAAckB,iBAC5DhG,YACA+E,YACAC,UACAC,YACAC,UACAC,OACAC,SACAG,KACAU,QAAQ,EACRR,aACAS,2BAA4BT,KACxBE,GAAe,CAAEL,SAAUK,MAC3BN,GAAiB,CAAEA,iBACvBG,SACAW,UAAWC,KAAKC,UAAU,CAAC,GAAGvB,UACpB,OAANY,QAAM,IAANA,OAAM,EAANA,EAAQY,MAAO,CAAEC,SAAUb,EAAOY,SAC5B,OAANZ,QAAM,IAANA,OAAM,EAANA,EAAQc,MAAO,CAAEC,UAAWf,EAAOc,MAEzC,IAAIE,QAAiBC,YAAU,CAC7BC,OAAQ,yBACRC,GAAIC,IACJC,MAAOlB,IAQT,OANIa,IACFA,EAAW,IACNA,EACH1E,GAAI,GAAG0E,EAAS1E,KAAKuC,IAAmBmC,EAASX,iBAG9CW,CAAQ,EAEXM,EAAiBnC,UAehB,IAfuB,IAC5BoC,EAAG,UACHlC,EAAS,aACTmC,EAAY,uBACZC,EAAsB,gBACtBC,EAAe,WACfC,EAAU,OACV3B,EAAM,iBACN4B,EAAgB,WAChBC,EAAU,WACVC,EAAU,UACVxH,EAAS,WACTyF,EAAU,SACVgC,GAAW,EAAK,iBAChBC,GAAmB,GACpBC,EACC,MAAMC,EAAiCC,EACrCN,EACAC,EACAP,GAEIa,EAAqBC,YAAe,IAAIC,KAAQR,GAChDS,EAAelD,GAAwBmD,EAAWJ,GAClDK,EAwhBR,SAAuBC,EAAIC,GACzB,MAAMC,EAAKC,EAAgBH,GAE3B,OADAE,EAAGE,QAAQF,EAAGG,UAAYJ,GACnBH,EAAWI,EACpB,CA5hBqBI,CAAcT,EAAcf,GACzCyB,EAAa7C,EAAsB9F,EAAWyF,IAE5CmD,MAAOC,SAAeC,YAAkB,CAC9ClC,OAAQ,wBACRC,GAAIkC,EACJ/G,GAAI,CAAEA,GAAI2G,GACVK,KAAM,CAAEjD,aAAc,CAAEkD,WAAY,SACpCC,OAAQ,CAAEC,QAAS,CAAEC,IAAI,MAGvBP,GAAQA,EAAKQ,QAqOnB,SAAiDR,EAAMtB,EAAYC,GACjE,IAAK,IAAI8B,KAAOT,EAAM,CACpB,MAAMU,EAAqBC,YACzB,GAAGF,EAAIvE,aAAauE,EAAIrE,eACxBsC,GAEIkC,EAA4B1B,YAChCwB,EACA/B,GAEF8B,EAAIvE,UAAY2E,YAAOD,EAA2B,cAClDH,EAAIrE,UAAYyE,YAAOD,EAA2B,SAElD,MAAME,EAAmBH,YACvB,GAAGF,EAAItE,WAAWsE,EAAIpE,aACtBqC,GAEIqC,EAA0B7B,YAC9B4B,EACAnC,GAEF8B,EAAItE,QAAU0E,YAAOE,EAAyB,cAC9CN,EAAIpE,QAAUwE,YAAOE,EAAyB,QAChD,CACF,CA5PIC,CAAwChB,EAAMtB,EAAYC,GAE5D,MAAMsC,QAAmBhB,YAAkB,CACzClC,OAAQ,wBACRC,GAAIkC,EACJ/G,GAAI,CAAEA,GAAI2G,GACVK,KAAM,CACJjD,aAAc,CAAEgE,QAAS,CAAC,MAAM9B,IAAgB,MAAME,OAExDe,OAAQ,CAAE9D,OAAQ,CAAEgE,GAAI,cACxBY,MAAO,MAET,GAAIF,GAAcA,EAAWlB,MAAO,CAIlC,GAHckB,EAAWlB,MAAMqB,MAAMC,GACnCA,EAAGnE,aAAaoE,SAAS,UAEhB,CAET,MAAMC,QAuDZvF,eAAmC7E,GACjC,IACE,IAAIqK,QAAqBC,YAAa,CACpC1D,OAAQ,2BACRC,GAAkB,u3BA+BlB7E,GAAI,CACFhC,aAEFgK,MAAO,MAGT,OAAgB,OAAZK,QAAY,IAAZA,KAAczB,QAAqB,OAAZyB,QAAY,IAAZA,OAAY,EAAZA,EAAczB,MAAMS,QAAS,EAC/CgB,EAAazB,MAEf,EACT,CAAE,MAAOtI,GAEP,OADAC,QAAQC,IAAI,+CAAgDF,GACrD,EACT,CACF,CAxGqCiK,CAAoBvK,GACnD,IAAK,MAAMwK,KAAcJ,EACvB,IAAK,MAAMK,KAAWX,EAAWlB,MAE7B6B,EAAQ1E,aAAaoE,SAASK,EAAWxI,KACzCwI,EAAWjE,UACXiE,EAAW/D,YAENgE,EAAQlE,UAAakE,EAAQhE,YAChCgE,EAAQlE,SAAWiE,EAAWjE,SAC9BkE,EAAQhE,UAAY+D,EAAW/D,WAKzC,CACF,CAEIqD,GAAcA,EAAWlB,OA0K/B,SACEpB,EACAkD,GAEA,IAAK,IAAIC,KAAKD,EACZ,GAAIC,EAAEnF,QAAUmF,EAAE1F,WAAa0F,EAAEzF,QAAS,CACxC,MAAM0F,EAAgBC,EAAuBF,EAAE1F,UAAW0F,EAAEzF,SACtD4F,EAAe,IAAI9C,KAAK2C,EAAEnF,QAC1BuF,EAAqBhD,YAAe+C,EAActD,GACxDmD,EAAE5F,UAAY2E,YAAOqB,EAAoB,aAAc,CACrDC,SAAUxD,IAEZmD,EAAE1F,UAAYyE,YAAOqB,EAAoB,QAAS,CAChDC,SAAUxD,IAEZ,MAAMyD,EAAa,IAAIjD,KAAK+C,GAC5BE,EAAWC,WAAWD,EAAWE,aAAeP,GAChDD,EAAEzF,QAAUwE,YAAOuB,EAAY,QAASzD,EAC1C,CAEJ,CA5LI4D,CACE5D,EACAsC,EAAWlB,OAKf,MAAMyC,EA+PR,SACEC,EACAC,EACAC,EACAnD,EACAf,EACAD,EACA3B,GAGA2B,EAAaA,GAA0B,EAIvC,IAAIoE,EAAiB,IAAI5H,MAAMwE,GAAIqD,KAAK,MAAMC,KAAI,CAACC,EAAGC,KAAQ,CAC5DC,KAAMC,YAAQP,EAAuBK,GACrCG,UAAU,EACVC,QAASpI,MAAMqI,KAAK,CAAE7C,OAAQ5F,IAC9B0I,mBAAoB,OAsHtB,OA5GAb,EACGpC,QAAQkD,GAAiC,cAAnBA,EAAUjH,OAChCkH,SAAQC,IAA2D,IAA1D,SAAEhH,EAAQ,UAAEL,EAAS,UAAEF,EAAS,QAAEC,EAAO,QAAEE,GAASoH,EAC5Db,EACGvC,QAAQqD,GAELA,EAAcT,MAAQvD,EAAgBxD,IACtCwH,EAAcT,MAAQvD,EAAgBvD,IACtCwH,EAAWD,EAAcT,KAAMxG,KAGlC+G,SAASE,IACRA,EAAcP,UAAW,EACzB,MAAMS,EACJvH,GAAWD,EACP,CAEE,CAACyH,EAAezH,GAAYyH,EAAexH,KAE7C,IAGMyH,EAAmBJ,EAAcT,KAAMxG,GACvC,CAAC,CAAC,EAAGoH,EAAexH,KACpB,MACA0H,EAAkBL,EAAcT,KAAMxG,GACtC,CAAC,CAACoH,EAAezH,GAAYxB,IAC7B,IAGNoJ,EAAuBhJ,MAAMqI,KACjC,CAAE7C,OAAQ5F,IACV,CAACqJ,EAAKC,IACJN,EAAkCO,MAC/BC,GACCF,GAASE,EAAkB,IAAMF,GAASE,EAAkB,KAE5D,OACAC,IAGRX,EAAcN,QAAUM,EAAcN,QAAQN,KAAI,CAACmB,EAAKK,SAC9CD,IAARJ,QAAiDI,IAA5BL,EAAqBM,QACtCD,EACAJ,GAAOD,EAAqBM,KAElCZ,EAAcJ,mBACZI,EAAcJ,mBAAmBiB,OAC/BX,EACD,GACH,IAIRnB,EACGpC,QAAQkD,GAAiC,gBAAnBA,EAAUjH,OAChCkH,SAASD,IACRX,EACGvC,QACEqD,GACCA,EAAcP,UAmD1B,SACEqB,EACAC,EACAC,EACAC,GAKA,GACEH,EAAYI,WAAaH,EAAcG,WACvCJ,EAAYI,WAAaF,EAAYE,UACrC,CACA,GAAID,GAAgBA,EAAanE,OAAQ,CAGvC,MADkD,IAAhDmE,EAAaE,QAAQL,EAAYM,WACd,OAAO,CAC9B,CACA,OAAO,CACT,CAAO,OAAO,CAChB,CAtEYC,CACErB,EAAcT,KACdvD,EAAgB6D,EAAUrH,WAC1BwD,EAAgB6D,EAAUpH,SAC1BoH,EAAU9G,YAGf+G,SAASE,IACRsB,EACEtB,EAAcN,QACdS,EAAeN,EAAUnH,WACzByH,EAAeN,EAAUlH,SACzB,EACA,KACA,KACAoC,EACD,GACD,IAQRiE,EACGrC,QAAO4E,IAAA,IAAC,KAAE3I,GAAM2I,EAAA,MAAc,WAAT3I,CAAiB,IACtCkH,SAASD,IACRX,EACGvC,QACE+C,GACCA,EAAQD,UACRC,EAAQH,KAAK2B,YACXlF,EAAgB6D,EAAUrH,WAAW0I,YAE1CpB,SAASJ,IACR4B,EACE5B,EAAQA,QACRS,EAAeN,EAAUnH,WACzByH,EAAeN,EAAUlH,SACzBmC,EACA+E,EACA1G,EACA4B,EACD,GACD,IAEDmE,CACT,CAxY0BsC,CACtB,IAAInG,KAAmCiB,GACvCiB,EAAWlB,MACXL,EAAgBN,GAChBf,EACAI,EACAD,EACA3B,GAIIsI,EAqZR,SAAyBC,EAAUC,EAAKC,EAAM/G,GAC5C,MAAMgH,EAAgB,GActB,OAbAF,EAAI7B,SAASgC,IACXD,EAAcE,KAAK,CAEjBxC,KAAMuC,EAAEvC,KACRyC,MAAOC,EACLH,EAAEpC,QACFkC,EACAE,EAAEvC,KACFuC,EAAElC,mBACF/E,IAEF,IAEGgH,CACT,CArawBK,CACpB,EACApD,EAAgBnC,QAAQwF,GAAQA,EAAI1C,WACpC1E,EACAF,GAGIuH,EA2MR,SACEJ,EACApH,EACAW,GAEA,MAAM8G,EAAgB,IAAI5G,KACxBF,EAAmB2F,UAAqC,GAAzBtG,EAA8B,KAQ/D,OANAoH,EAAMlC,SAASwC,IACbA,EAAIN,MAAQM,EAAIN,MAAMrF,QAAQ4F,GAgBlC,SAAyBA,EAAMC,EAASH,GAEtC,MAAMI,EAAgBD,EAAQtB,UAC9B,IAAIwB,EAAW,IAAIjH,KAAKgH,GAGxB,OAFAC,EAASC,SAASC,OAAOC,SAASN,EAAKO,QAAQC,MAAM,EAAG,KACxDL,EAAS/D,WAAWiE,OAAOC,SAASN,EAAKO,QAAQC,OAAO,KACjDL,EAASxB,UAAYmB,EAAcnB,SAC5C,CAtBM8B,CAAgBT,EAAMD,EAAI/C,KAAM8C,IACjC,IAGIL,CACT,CA1N0BiB,CACtBxB,EACA7G,EACAW,GAEF,OAAOJ,EACH,CAAC2D,EAAiBsD,EAAiB7E,EAAWlB,OAC9C+F,CAAe,EAsDrB,MAAM9G,EAAmCA,CAAC4H,EAAQC,EAAUC,IAC1DD,IAAaD,EACTE,EAAOhE,KACLiE,IAAoE,IAAnE,UAAE3K,EAAS,UAAEF,EAAS,QAAEC,EAAO,QAAEE,EAAO,SAAEI,KAAauK,GAAMD,EAE5D,MAAME,EAA4BC,YAChC,GAAGhL,KAAaE,IAChB,CACE+F,SAAUyE,IAGRO,EAA0BD,YAAO,GAAG/K,KAAWE,IAAW,CAC9D8F,SAAUyE,IAGNQ,EAA4BlI,YAChC+H,EACAJ,GAEIQ,EAA0BnI,YAC9BiI,EACAN,GAGIS,EAAwBzG,YAC5BuG,EACA,cAEIG,EAAwB1G,YAC5BuG,EACA,SAGII,EAAsB3G,YAC1BwG,EACA,cAEII,EAAsB5G,YAAOwG,EAAyB,SAiC5D,MAAO,IACFL,EACHvK,SAhCAgL,EAAsBF,EAClBG,eACEjL,EACGkL,MAAM,IACNC,QACC,CAACC,EAAKC,IACJD,EAAItD,OACFwD,YACExB,SAASuB,GACP,GAAKE,GAAiBnB,EAAUD,GAAU,GAAK,GACjD,GACAqB,aAENxL,IAEJM,KAAK,IACPuK,IAA0BpL,EAC1BwL,eAEEjL,EACGkL,MAAM,IACN7E,KAAKgF,GACJC,YACExB,SAASuB,GACP,GAAKE,GAAiBnB,EAAUD,GAAU,GAAK,GACjD,GACAqB,cAENlL,KAAK,IACPN,EAIJL,UAAWmL,EACXrL,UAAWoL,EACXjL,QAASoL,EACTtL,QAASqL,EACV,IAGLV,EAkDN,SAAS9E,EAAuBkG,EAAaC,GAG3C,MAAMC,EAAYF,EAAYP,MAAM,KAC9BU,EAAUF,EAAUR,MAAM,KAC1BvL,EAAY,IAAI+C,KAAK,IAAM,EAAG,EAAGiJ,EAAU,GAAIA,EAAU,IAI/D,OAHgB,IAAIjJ,KAAK,IAAM,EAAG,EAAGkJ,EAAQ,GAAIA,EAAQ,IACpCC,UAAYlM,EAAUkM,WACjB,GAE5B,CAwNA,SAAS3C,EACPvC,EACAkC,EACArC,EACAK,EACA/E,GAEA,MAAM4G,EAAgB,GAChBoD,EA4jBR,SACEjD,EACAkD,EACAzN,EACAwD,EACA+E,GAEA,IAAImF,GAAc,EAClB,MAAMC,EAAUpD,EAAOzK,EACjB8N,EAAqBpK,EAAkB1D,EAC7C,IAAI+N,EAAmB,GAoCvB,OAlCAtF,EAAmBE,SAASY,IAC1B,MAAMyE,EAAkB,GACxB,IAAIC,EAAsB1E,EAAkB,GAC5C,IAAK,IAAInJ,EAAImJ,EAAkB,GAAInJ,EAAImJ,EAAkB,GAAInJ,IAC3D,GAAc,IAAVuN,EAAGvN,GACL,GAAIwN,EAAa,CAEf,IAAK,IAAIM,KAAOF,EACVE,EAAIC,OAAMD,EAAIE,IAAM,IAErBhO,EAAI6N,GAAuBJ,IAAY,IAC1CG,EAAgBpD,KAAK,CAAEyD,GAAInO,EAAKE,GAAIgO,GAAI,EAAGD,MAAM,IACjDP,GAAc,EACdK,EAAsB7N,EAE1B,MAEE4N,EAAgBpD,KAAK,CAAEyD,GAAInO,EAAKE,GAAIgO,GAAI,EAAGD,MAAM,IACjDP,GAAc,EACdK,EAAsB7N,MAEnB,CACL,IAAK,IAAI8N,KAAOF,EACdE,EAAIC,MAAO,EAEbP,GAAc,CAChB,CAEFG,EAAmBA,EAAiBrE,OAClCsE,EACGxI,QAAQ0I,GAAQA,EAAIE,IAAMN,IAC1B7F,KAAKiG,GAAQA,EAAIG,KACrB,IAEIN,CACT,CA3mB0BO,CACtB7D,EACAlC,EACAtI,EACAyD,EACA+E,GAkBF,OAhBIiF,EAAgB/H,OAAS,GAC3B+H,EAAgB/E,SAAS4F,IACvB,MAAMC,EAAW,IAAIlK,KAAK8D,EAAK2B,WAC/ByE,EAAShD,SAAS+C,EAAGlO,IACrBmO,EAAShH,WAAW+G,EAAG/N,MACvB8J,EAAcM,KAAK,CACjB6D,IAAKhE,EACLkB,QAAS4C,EAAG9N,OACZiO,QAASH,EAAG5N,OACZ6N,WACA9N,IAAK6N,EAAG7N,IACRL,GAAIkO,EAAGlO,IACP,IAICiK,CACT,CAEA,SAAS9F,EAAW4D,GAOlB,MAAO,GALIA,EAAKuG,mBAAmB,QAD1B,CAAEC,KAAM,eAGRxG,EAAKuG,mBAAmB,QADxB,CAAEE,MAAO,eAGTzG,EAAKuG,mBAAmB,QADxB,CAAExD,IAAK,aAGlB,CAQA,SAAStG,EAAgBiK,GAEvB,MAAMC,EAAYD,EAAQhC,MAAM,KAChC,OAAO,IAAIxI,KACToH,SAASqD,EAAU,IACnBrD,SAASqD,EAAU,GAAK,GACxBrD,SAASqD,EAAU,IAEvB,CAEA,SAASC,EAAmBF,GAC1B,MAAMnE,EAAI9F,EAAgBiK,GAK1B,OAJAnE,EAAEa,SAAS,IACXb,EAAEnD,WAAW,IACbmD,EAAEsE,WAAW,IACbtE,EAAEuE,gBAAgB,KACXvE,CACT,CAEA,SAAS7B,EAAWqG,EAAQC,GAC1B,OAAIA,IAASD,IACgC,IAApCC,EAAMpF,QAAQmF,EAAOlF,SAEhC,CACA,MAAMhB,EAAqBA,CAACkC,EAAKkE,KACwB,IAAvDA,EAAgBrF,QAAQkD,YAAI/B,EAAIlB,SAAW,EAAG,IAE1Cf,EAAoBA,CAACiC,EAAKkE,KACyB,IAAvDA,EAAgBrF,QAAQkD,YAAI/B,EAAIlB,SAAW,EAAG,IAEhD,SAASqF,EAAQC,EAAIC,GACnB,OACED,GACAC,GACAD,EAAGxK,YAAcyK,EAAGzK,WACpBwK,EAAGE,aAAeD,EAAGC,YACrBF,EAAGG,gBAAkBF,EAAGE,aAE5B,CAIA,MAAMC,EAAmBxO,MACvByO,EACAC,EACAC,EACAC,EACAtM,EACAC,EACAC,EACA3B,EACA4B,EACAoM,EACA1T,EACAW,KAEA0G,EAAaA,GAA0B,EACvC,MAAQrF,GAAIyD,EAAYkO,SAAUpM,GAAe5G,EAE3CiT,QAAqBC,EACzB/N,EAAsB9F,EAAWyF,GACjC8N,GAGIO,EAAiBC,EAA8BT,EAAOM,GAC5D,GAAIE,EAAeE,OAAQ,CAGzB,MAAMC,QAAoBjN,EAAe,CACvCC,IAAK2M,EACL7O,UAAWmD,EAAWoL,GACtBpM,aAAc,EACdC,yBACAC,kBACAC,aACA3B,SACA4B,mBACAoM,mBACA1T,YACAyF,aACA8B,aACAC,WAAYkM,EAAiBC,WAEzBO,EAAeC,EAAYb,GACjC,IAAK,MAAMzE,KAAOoF,EAChB,GAAIpF,GAAOmE,EAAQnE,EAAI/C,KAAMwH,GAC3B,IAAK,MAAMxE,KAAQD,EAAIN,MACrB,GAAIO,EAAKO,UAAY6E,EACnB,MAAO,CACLE,SAAS,EACTC,cAAc,EACdC,cAAe,CAAC,EAChBC,aAAcjB,EACdkB,eAAgBV,EAAeU,gBAKzC,IAAK,MAAM3F,KAAOoF,EAChB,GAAIpF,GAAOmE,EAAQnE,EAAI/C,KAAMwH,GAAQ,CACnC,GAAIzE,GAAOA,EAAIN,OAASM,EAAIN,MAAMlF,OAAQ,CACxC,IAAK,MAAMyF,KAAQD,EAAIN,MACrBO,EAAK2F,KAAOzQ,KAAK0Q,IAAI5F,EAAKoD,SAASzE,UAAY6F,EAAM7F,WAKvD,OAHAoB,EAAIN,MAAMoG,MAAK,SAAU/I,EAAGjB,GAC1B,OAAOiB,EAAE6I,KAAO9J,EAAE8J,IACpB,IACO,CACLL,SAAS,EACTC,cAAc,EACdC,cAAe,CAAExI,KAAM+C,EAAI/C,KAAMgD,KAAMD,EAAIN,MAAM,IACjDgG,aAAcjB,EACdkB,eAAgBV,EAAeU,eAEnC,CACE,MAAO,CACLJ,SAAS,EACTC,cAAc,EACdC,cAAe,CAAC,EAChBC,aAAcjB,EACdkB,eAAgBV,EAAeU,eAGrC,CAGJ,KAAO,CAAC,IAADI,EASL,IAAmC,IALPC,EAC1BvB,EACAE,EACAC,GAEsBO,OACtB,MAAO,CACLI,SAAS,EACTC,cAAc,EACdC,cAAe,CAAC,EAChBC,aAAcjB,EACdkB,eAAgBV,EAAeU,gBAGnC,MAeMP,EAAgC,QAArBW,SAfa5N,EAAe,CAC3CC,IAAK2M,EACL7O,UAAWmD,EAAWoL,GACtBpM,aAAc,EACdC,yBACAC,kBACAC,aACA3B,SACA4B,mBACAoM,mBACA1T,YACAyF,aACA8B,aACAC,WAAYkM,EAAiBC,YAEK,UAAE,IAAAiB,OAAA,EAAlBA,EAAoBrG,MAClC2F,EAAeC,EAAYb,GACjC,GAAIW,GAAeA,EAAY5K,OAC7B,IAAK,MAAMwF,KAAOoF,EAChB,IAAK,MAAMnF,KAAQD,EAAIN,MACrB,GAAIO,EAAKO,UAAY6E,EACnB,MAAO,CACLE,SAAS,EACTC,cAAc,EACdC,cAAe,CAAExI,KAAM+C,EAAI/C,KAAMgD,KAAMA,GACvCyF,aAAcjB,EACdkB,eAAgBV,EAAeU,eAM3C,CACA,MAAO,CACLJ,SAAS,EACTC,cAAc,EACdC,cAAe,CAAC,EAChBC,aAAcjB,EACdkB,eAAgBV,EAAeU,eAChC,EAGGK,EAAqCA,CAACC,EAAUtB,EAAUC,IAC9C,SAAZA,GAAmC,IAAbD,EAEjB,CAAEQ,QAAQ,GAEH,SAAZP,EACK,CACLO,QAAQ,EACRjP,UAAWgH,YAAQ+I,EAAU,GAC7BC,QAAsB,IAAbvB,EAAiB,EAAIA,EAAW,GAG7B,UAAZC,EACK,CACLO,QAAQ,EACRjP,UAAWgH,YAAQ+I,EAAU,GAC7BC,QAAsB,IAAbvB,EAAiB,EAAgB,EAAXA,EAAgB,GAGnC,WAAZC,EACK,CACLO,QAAQ,EACRjP,UAAWgH,YAAQ+I,EAAU,GAC7BC,QAAsB,IAAbvB,EAAiB,GAAiB,GAAXA,EAAiB,GAG9C,CACLQ,QAAQ,GAIND,EAAgCA,CAACT,EAAO0B,KAC5C,MAAMC,EAAM,CACVjB,QAAQ,EACRkB,oBAAoB,EACpBV,gBAAgB,GAElB,IAAIA,GAAiB,EACrB,IAAK,IAAIW,KAAMH,EAEX1B,GAAS/K,EAAgB4M,EAAGpQ,YAC5BuO,GAASZ,EAAmByC,EAAGnQ,WAE/BwP,GAAiB,GAGrBS,EAAIT,eAAiBA,EACrB,IAAK,IAAIW,KAAMH,EAEX1B,GAAS/K,EAAgB4M,EAAGpQ,YAC5BuO,GAASZ,EAAmByC,EAAGnQ,SAE3BwH,EAAW8G,EAAO6B,EAAG7P,WACvB2P,EAAIjB,QAAS,EACbiB,EAAIC,oBAAqB,GAEpBD,EAAIjB,SACPiB,EAAIjB,QAAS,EACbiB,EAAIC,oBAAqB,GAIxBD,EAAIjB,SACPiB,EAAIjB,QAAS,EACbiB,EAAIC,oBAAqB,GAI/B,OAAOD,CAAG,EAGNpB,EAAuBhP,MAAOuQ,EAAIC,KACtC,MAAQzM,MAAO0M,SAAyBxM,YAAkB,CACxDlC,OAAQ,wBACRC,GAAIkC,EACJ/G,GAAI,CAAEA,GAAIoT,GACVpM,KAAM,CAAEjD,aAAc,CAAEkD,WAAY,QACpCC,OAAQ,CACNqM,IAAK,CAAC,CAAEtP,OAAQ,CAAEmD,IAAI,IAAW,CAAED,QAAS,CAAEC,IAAI,MAEpDY,MAAO,KAEHwL,EAAiBF,EAAepM,QAAOuM,IAAA,IAAC,aAAE1P,GAAc0P,EAAA,OAC5DJ,EAASrI,MAAMqI,IAAiD,IAApCtP,EAAa2H,QAAQ2H,IAAiB,IAEpE,GAAIG,EACF,IAAK,IAAIL,KAAMK,EACbE,EAA0BP,GAG9B,OAAOK,CAAc,EAGvB,SAASE,EAA0BP,GACjCA,EAAGQ,UAAY,GAAGC,EAAST,EAAGlQ,qBAAgB2Q,EAAST,EAAGjQ,WAC1DiQ,EAAGU,UAAY,GAAGC,EAAUX,EAAGpQ,qBAAgB+Q,EAAUX,EAAGnQ,WAC5D,MAAM+Q,EACa,MAAf,OAAFZ,QAAE,IAAFA,OAAE,EAAFA,EAAI7P,UAAkBb,EAAe0Q,EAAG7P,SAASkL,MAAM,IACzD,GAAIuF,EAAa,CACfA,EAAYpB,OACZ,IAAIqB,EAAS,GACb,GAA2B,IAAvBD,EAAY1M,OACd2M,EAAS,iBACJ,GAA2B,IAAvBD,EAAY1M,QAmC3B,SAAwB4M,GACtBA,EAAGtB,OACH,IAAK,IAAIxH,EAAI,EAAGA,GAAK,EAAGA,IACtB,GAAMiC,SAAS6G,EAAG9I,MAAQA,EAAI,EAAI,OAAO,EAE3C,OAAO,CACT,CAzC2C+I,CAAeH,GACpDC,EAAS,oBACJ,CACL,MAAMG,EAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACnDC,EAAiB,IAAI,IAAIC,IAAIN,IAAcpB,MAAK,CAAC/I,EAAGjB,IAAMiB,EAAIjB,IACpE,GAA8B,IAA1ByL,EAAe/M,OACjB2M,EAAS,GAAGG,EAAMC,EAAe,WAC5B,GAA8B,IAA1BA,EAAe/M,OACxB2M,EAAS,gBACJ,CAGLA,EAAS,GAFQG,EAAMC,EAAe,cACtBD,EAAMC,EAAeA,EAAe/M,OAAS,MAE/D,CACF,CACA8L,EAAGa,OAASA,CACd,CACF,CAEA,MAAMM,EAA4BC,GAGzBC,iBAAOD,EAAW,CACtBtI,GAFiB,UAGhBA,EAAS3I,UAJG,YAIyB2I,EAAS3I,UACzC,EACD,EACL2I,IACC,MAAMwI,EAAOxI,EAAS3I,SAASkL,MAAM,IAAI7E,IAAIwD,QAC7C,OAAOuH,cAAID,EAAK9K,KAAKkD,GAAiB,IAARA,EAAY,EAAIA,IAAM,EAEtD,cAWJ,SAASiH,EAAUzH,GACjB,OAAO,IAAIrG,KAAKqG,GAAGgE,mBAAmB,QAAS,CAC7CC,KAAM,UACNC,MAAO,QACP1D,IAAK,WAET,CAEA,SAAS+G,EAASe,GAChB,IAAKA,EAAG,MAAO,GACf,MAAOC,EAAIC,GAAMF,EAAEnG,MAAM,KACzB,IAAIsG,EAAQ1H,SAASwH,EAAI,IACzB,MAAMG,EAAOD,EAAQ,GAAK,KAAO,KAEjC,OADAA,EAAQA,EAAQ,IAAM,GACf,GAAGA,KAASD,KAAME,GAC3B,CAEA,MAwDM5C,EAAeb,GACZA,EACHA,EAAM0D,mBAAmB,QAAS,CAChCC,KAAM,UACNC,OAAQ,UACRC,UAAW,QAEb,GAEN,SAASzK,EAAeiK,GACtB,MAAMS,EAAQT,EAAEnG,MAAM,KAItB,OADmB,GAFTpB,SAASgI,EAAM,IACfhI,SAASgI,EAAM,KACI1T,CAE/B,CAEA,SAASmK,EACPwD,EACAgG,EACAC,EACAjQ,EACA8N,EACAzP,EACA4B,GAKA,GAHI6N,GAAMA,EAAG5O,UAAY4O,EAAG1O,WAAaf,IAsB3C,SAA2ByP,EAAIzP,GAC7B,GAAIyP,GAAMA,EAAG5O,UAAY4O,EAAG1O,WAAaf,EAAQ,CAC/C,MAAM6R,EAAQpI,OAAOgG,EAAG5O,UAClBiR,EAAQrI,OAAOgG,EAAG1O,WAClBgR,EAAUtI,OAAOzJ,EAAOY,KAGxBE,EAAMgR,EAFIrI,OAAOzJ,EAAOc,KAGxBkR,GAFMH,EAAQE,GAEAzT,KAAK2T,GAAM,IACzBC,EAAQpR,EAAMxC,KAAK2T,GAAM,IACzBE,EAAcJ,EAAUzT,KAAK2T,GAAM,IACnCG,EAAYP,EAAQvT,KAAK2T,GAAM,IAErC,IAAI/L,EACF5H,KAAK+T,IAAIL,EAAO,GAAK1T,KAAK+T,IAAIL,EAAO,GACrC1T,KAAKgU,IAAIH,GACP7T,KAAKgU,IAAIF,GACT9T,KAAK+T,IAAIH,EAAO,GAChB5T,KAAK+T,IAAIH,EAAO,GAChBK,EAAI,EAAIjU,KAAKkU,MAAMlU,KAAKmU,KAAKvM,GAAI5H,KAAKmU,KAAK,EAAIvM,IAEnD,GADQpH,EAAcyT,EA3kCC,IA4kCK,OAAO,CACrC,CACA,OAAO,CACT,CA7CSG,CAAkBjD,EAAIzP,KAAS2B,EAAa,IAE/CA,GAAcA,EAAa,EAAG,CAChC,IAAIgR,EAAWhR,EAAa3D,EAC5B2T,GAAUgB,EAEV,IAAIC,GADJhB,GAAUe,IACc/Q,EAAmB5D,GACvC4U,GAAe,IAEjBhB,GAAUgB,EAEd,CAGIhB,EAAKD,IAAIC,EAAK7T,GAElB,IAAK,IAAIK,EAAIuT,EAAIvT,GAAKwT,EAAK,EAAGxT,IAC5BuN,EAAGvN,GAAK,CAEZ,CAwJA,MAAMyU,EAAgB1T,UAAsC,IAA/B,UAAE7E,EAAS,WAAEyF,GAAY+S,EACpD,MAAM9R,QAAiBoC,YAAkB,CACvClC,OAAQ,wBACRC,GAAIkC,EACJ/G,GAAI,CAAEA,GAAI8D,EAAsB9F,EAAWyF,IAC3CuD,KAAM,CAAEjD,aAAc,CAAEkD,WAAY,MACpCC,OAAQ,CAAEqM,IAAK,CAAC,CAAEtP,OAAQ,CAAEmD,IAAI,IAAW,CAAED,QAAS,CAAEC,IAAI,MAC5DY,MAAOyO,SAKHC,EAAehS,EAASkC,MAAMM,QAAQyP,GAC1CA,EAAQ5S,aAAa6S,WAAW,SAG5BC,EAAiBH,EAAajI,QAClC,CAACqI,EAAQC,KAAA,IAAE,UAAE5S,EAAY,MAAM4S,EAAA,MAAK,IAC/BD,KACA1S,KAAK4S,MAAM7S,GAAWwF,KAAKsN,GAAOC,YAAoBD,KAC1D,GACD,IAGIE,EAAkB5I,eAAKsI,GAEvBO,EAAc1S,EAASkC,MAAMM,QAAQyP,GACzCA,EAAQ5S,aAAa6S,WAAW,SAE5BS,EAAS3S,EAASkC,MAAMM,QAAQyP,GACpCA,EAAQ5S,aAAa6S,WAAW,SAW5BU,EAAkB,CACtBC,GARkBJ,EAAgBxN,KAAK6N,IAChC,CACLxX,GAAI,CACFyX,GAAID,QAOJpP,QAAyBsP,YAAS,CACtC9S,OAAQ,uBACRC,GAAI8S,IACJzQ,OAAQoQ,EACRtP,MAAOyO,SAGHmB,QAAWC,EAA4BpU,GAqC7C,OAnCwBiT,EAAa/M,KAAKsC,IACxC,MAAM6L,EAAsB1T,KAAK4S,MAAM/K,EAAS9H,WAAWwF,KAAK3J,GAC9DA,EAAG+X,UAAU,KAEf,MAAO,IACF9L,EACHjM,GAAIiM,EAASjM,GAAKuC,EAAmB0J,EAASlI,aAC9CkB,IAAKoS,EACFnQ,QAAQiM,GAAOA,EAAGpP,aAAaoE,SAAS8D,EAASlI,gBACjD4F,KAAKwJ,IACJO,EAA0BP,GACnB,IACFA,EACHnT,GAAImT,EAAGnT,GAAKuC,EAAmB4Q,EAAGpP,iBAGxCqE,iBAAkBA,EAAiBxB,MAAMM,QAAO8Q,IAAA,IAAC,GAAEhY,GAAIgY,EAAA,OACrDF,EAAoB3P,SAASnI,EAAG,IAElCiY,SAAUb,EACPlQ,QACEgR,GACCA,EAAKnU,aAAaoU,SAASlM,EAASlI,eACpCmU,EAAKnU,aAAaoE,SAAS8D,EAASlI,aAAayK,MAAM,KAAK,MAE/D7E,KAAKuO,IACJ,MAAME,EAAgBF,EAAKnU,aAAayK,MAAM,KAAK,GACnD,MAAO,CACLzK,aAAcmU,EAAKnU,aACnBqU,gBACAC,KAAMC,EAAeV,EAAGW,aAAcH,GACvC,IAEN,GAEmB,EAGxB,SAASE,EAAeE,EAAkBJ,GACxC,IAAIK,EAAkB,KAMtB,OALAD,EAAiBnO,SAAS0F,IACpBqI,IAAkBrI,EAAG2I,YAAY1Y,KACnCyY,EAAkB1I,EAAG2I,YAAYL,KACnC,IAEKI,CACT,CACO,SAAS3U,EAAsB6U,EAAKC,GACzC,MAAO,KAAKD,OAASC,GACvB,CAEA,MAAMf,EAA8BhV,UAClC,MAAMgW,QAAqBC,IAAIC,QAC7BC,YDlwCsD,8ZCkwCS,CAC7DhZ,GAAIiZ,KAIR,IAAIC,EAA0B,CAAC,EA+B/B,OA5BEL,GACAA,EAAaM,MACbN,EAAaM,KAAKC,aAClBP,EAAaM,KAAKC,YAAYb,cAC9BM,EAAaM,KAAKC,YAAYb,aAAa3R,QAE3CsS,EAA0B,IACrBA,EACHX,aAAcM,EAAaM,KAAKC,YAAYb,aAAa3R,MAAMM,QAC5DpF,MAAQ,IAASA,EAAE4W,YAAYvR,aAKpC0R,GACAA,EAAaM,MACbN,EAAaM,KAAKC,aAClBP,EAAaM,KAAKC,YAAYjV,WAC9B0U,EAAaM,KAAKC,YAAYjV,UAAUyC,QAExCsS,EAA0B,IACrBA,EACH/U,UAAW0U,EAAaM,KAAKC,YAAYjV,UAAUyC,MAAMM,QACtDmS,MAAS,IAASA,EAAGlS,aAKrB+R,CAAuB,EAGhCrW,eAAeyW,EAA6B5a,GAC1C,MAAM6N,EAAQ7N,EAAa6a,iBACrB7Q,EAAWhK,EAAa8a,mBAC9B,IAAS,OAALjN,QAAK,IAALA,OAAK,EAALA,EAAOlF,WAAmB,OAARqB,QAAQ,IAARA,OAAQ,EAARA,EAAUrB,QAC9B,OAAO,EAGT,IAAK,IAAIyF,KAAQP,EAAO,CAAC,IAADkN,EACtB,MAAMC,EAAU5M,EAAK9M,GAAGwO,MAAMjM,GAiB9B,OAAsC,QAA/BkX,SAhBcX,IAAIC,QACvBC,YACgB,yOAQd,CACEhZ,GAAI0Z,EAAQ,GACZ3V,aAAc2V,EAAQ,OAIdP,KAAKQ,2BAAmB,IAAAF,OAAA,EAA/BA,EAAiC1V,gBAAiB+I,EAAK/I,YAChE,CAEA,IAAIgH,EAAQ,EACZ,IAAK,IAAIpC,KAAKD,EAAU,CAAC,IAADkR,EACtB,GAAIjR,EAAEkR,SAASC,eAA4B,QAAjBF,EAAKrN,EAAMxB,UAAM,IAAA6O,OAAA,EAAZA,EAAcpW,QAC3C,OAAO,EAETuH,GAAgB,CAClB,CACA,OAAO,CACT,CACAlI,eAAekX,EAAgCrb,GAC7C,MAAMsb,EAAOlW,EACXpF,EAAaV,UACbU,EAAaC,SAASqB,IAExB,IAAI+C,EAAY,IAAIiD,KAAKtH,EAAae,aAAaqK,MACnD/G,EAAYmD,EAAWnD,GACvB,IAAIE,EAAYvE,EAAae,aAAawa,MAC1C,MAAMnS,QAAmBhB,YAAkB,CACzClC,OAAQ,wBACRC,GAAIkC,EACJ/G,GAAI,CAAEA,GAAIga,GACVhT,KAAM,CACJjD,aAAc,CAAEkD,WAAY,MAAMlE,KAAaE,MAEjDiE,OAAQ,CAAE9D,OAAQ,CAAEgE,GAAI,cACxBY,MAAO,MAGT,GAAIF,GAAcA,EAAWlB,OACvBkB,EAAWlB,MAAMS,OAAQ,CAC3B,MAAM7B,EAAa9G,EAAawb,mBAAmBvI,SAEnD,IAAIwI,GAAiB,EACjBC,GAAc,EAElB,IAAK,IAAItN,KAAQhF,EAAWlB,MACrBkG,EAAKvJ,KAAI4W,GAAiB,GAC3BrN,EAAKvJ,KAAOiC,IACd4U,GAAc,GAGlB,QAAID,IAAwBC,CAG9B,CAEF,OAAO,CACT,CAEAvX,eAAewX,GACb5a,EACA2T,EAAEkH,GAED,IADC3I,SAAUnM,GAAY8U,EAEpBvX,EAAY,IAAIiD,KAAKvG,EAAaqK,MACtC/G,EAAYmD,EAAWnD,GACvB,IAAIE,EAAYxD,EAAawa,MAC7B,MAAMnS,QAAmBhB,YAAkB,CACzClC,OAAQ,wBACRC,GAAIkC,EACJ/G,GAAI,CAAEA,GAAIoT,GACVpM,KAAM,CACJjD,aAAc,CAAEkD,WAAY,MAAMlE,KAAaE,MAEjDiE,OAAQ,CAAE9D,OAAQ,CAAEgE,GAAI,cACxBY,MAAO,MAGT,GAAIF,GAAcA,EAAWlB,OACvBkB,EAAWlB,MAAMS,OAAQ,CAC3B,IAAI8S,GAAiB,EACjBC,GAAc,EAElB,IAAK,IAAItN,KAAQhF,EAAWlB,MACrBkG,EAAKvJ,KAAI4W,GAAiB,GAC3BrN,EAAKvJ,KAAOiC,IACd4U,GAAc,GAGlB,QAAID,IAAwBC,CAG9B,CAEF,OAAO,CACT,CAEA,SAASG,GAA0BL,GACjC,GAAIA,EAAoB,CACtB,IAAIM,EAASN,EACb,GAAIM,EAAOjW,UAAYiW,EAAO/V,UAC5B,MAAO,CACLH,IAAKkW,EAAOjW,SACZC,IAAKgW,EAAO/V,UAGlB,CAEF,CAEA5B,eAAe4X,GACb/b,GAMC,IALDgc,EAAaC,UAAAtT,OAAA,QAAA6D,IAAAyP,UAAA,GAAAA,UAAA,GAAGjY,EAChBK,EAAS4X,UAAAtT,OAAA,QAAA6D,IAAAyP,UAAA,GAAAA,UAAA,GAAG,IAAI3U,KAChB4U,EAA0BD,UAAAtT,OAAA,QAAA6D,IAAAyP,UAAA,IAAAA,UAAA,GAC1BnV,EAAUmV,UAAAtT,OAAA,EAAAsT,UAAA,QAAAzP,EACV2P,EAAsCF,UAAAtT,OAAA,EAAAsT,UAAA,QAAAzP,EAEtC,IAAK,IAAD4P,EACF,IACIC,EACAC,EAFAC,GAAyB,EAG7B,GAAIvc,GAAoC,QAAxBoc,EAAIpc,EAAawc,eAAO,IAAAJ,GAApBA,EAAsBK,iBAAkB,CAC1D,MAAMC,EAAsBhX,KAAK4S,MAC/BtY,EAAawc,QAAQC,kBAEvBF,EAAyBG,EAAoBC,UAC7CN,EAAyBK,EAAoBE,2BAC7CN,EAAuBI,EAAoBJ,oBAC7C,CAGA,GAFItc,EAAaC,SAAS4c,gBACxBP,EAAuBtc,EAAaC,SAAS4c,eAC3CN,EAAwB,CAC1B,IAAIvX,EAAShF,EAAaG,iBACtBH,EAAa8c,yBACbjB,GAA0B7b,EAAawb,oBAC3C,MAAMtU,EAAiCC,EACrCnH,EAAaC,SAASgT,SACtBnM,EACA9G,EAAaC,SAASsG,KAExB,GAAIvB,EAAQ,CACV,MAAM+X,QAA+B3C,IAAI4C,KACvC,aACA,kBACA,CACEC,KAAM,CACJ3d,UAAWU,EAAawc,QAAQlb,GAChCyD,WAAY/E,EAAaC,SAASqB,GAClC4b,YAAahW,EACbiW,UAAW3V,EAAWnD,GACtBgQ,QAAS2H,EACTvV,uBACEzG,EAAawc,QAAQ/V,uBACvBC,gBAAiB1G,EAAaK,YAAY+c,QAC1CP,cAAeP,EACftX,SACA4B,iBAAkB,GAClByW,WAAYC,KAAKC,iBAAiBC,kBAAkBlT,SACpD+R,uBAAwBA,EACxBH,6BACApV,aACA2W,iBAAkBtB,GAEd,MAK4D,IAADuB,EAArE,GAAIX,GAA0BA,EAAuBY,eACnD,GAA+C,QAA/CD,EAAIX,EAAuBY,eAAe9P,aAAK,IAAA6P,GAA3CA,EAA6C/U,OAAQ,CACvD,MAAMiV,EAAY,IAAIjI,IACtBoH,EAAuBY,eAAe9P,MACpCkP,EAAuBY,eAAe9P,MAAMrF,QAAQqV,IAC9CD,EAAUE,IAAID,EAAIE,sBAAsBvM,YAG1CoM,EAAUI,IAAIH,EAAIE,sBAAsBvM,WACjC,IAGf,CAEF,OAAOuL,CACT,CACF,CACF,CAAE,MAAOnd,GACPC,QAAQC,IAAI,2BAA4BF,EAC1C,CACF,CACAuE,eAAe8Z,GACbnX,EACA9G,GAIC,IAHDgc,EAAaC,UAAAtT,OAAA,QAAA6D,IAAAyP,UAAA,GAAAA,UAAA,GAAGjY,EAChBK,EAAS4X,UAAAtT,OAAA,QAAA6D,IAAAyP,UAAA,GAAAA,UAAA,GAAG,IAAI3U,KAChB4W,EAAgBjC,UAAAtT,OAAA,QAAA6D,IAAAyP,UAAA,GAAAA,UAAA,GAAGhY,EAEnB,IACE,MAAMqP,QAAeyI,GACnB/b,EACAgc,EACA3X,GACA,EACAyC,GAEF,IAAIwM,EAsBF,MAAO,CACLzF,MAAO,GACPsQ,SAAU,IAvB0B,IAADC,EAArC,GAAI9K,GAAUA,EAAOqK,eAkBnB,OAhBArK,EAAOqK,eAAe9P,MAAMoG,MAAK,CAACoK,EAAOC,KAAW,IAADC,EAAAC,EACjD,MAAMC,EAAgB,IAAInX,KACG,QADCiX,EAC5BF,EAAMN,6BAAqB,IAAAQ,OAAA,EAA3BA,EAA6B/M,UAC7Bf,UACIiO,EAAgB,IAAIpX,KACG,QADCkX,EAC5BF,EAAMP,6BAAqB,IAAAS,OAAA,EAA3BA,EAA6BhN,UAC7Bf,UACF,OAAIgO,EAAgBC,EAAsB,EACjCD,EAAgBC,GAAuB,EACpC,CAAC,KAEgB,QAA3BN,EAAA9K,EAAOqK,eAAe9P,aAAK,IAAAuQ,OAAA,EAA3BA,EAA6BzV,QAASuV,IACxC5K,EAAOqK,eAAe9P,MAAQyF,EAAOqK,eAAe9P,MAAMe,MACxD,EACAsP,IAEG5K,EAAOqK,cAQpB,CAAE,MAAO/d,GAEP,OADAC,QAAQC,IAAIF,GACL,CACLiO,MAAO,GACPsQ,SAAU,GAEd,CACF,CAEAha,eAAewa,GAAyBC,EAAW5e,EAAc8G,GAC/D,IACE,MAAM+X,EAAwB,GAC9B,IAAK,IAAIzK,KAAYwK,EAAW,CAE9B,MAAMzC,EACJ/H,EAAShJ,KAAKkL,mBAAmB,QAAS,CACxCC,KAAM,UACNC,OAAQ,UACRsI,QAAQ,IAENxL,QAAeyI,GACnB/b,EACA,EACAoU,EAAShJ,MACT,EACAtE,EACAqV,GAGsC,IAAD4C,EADvC,GAAIzL,EACF,GAAIA,GAAUA,EAAOqK,eAWnB,GAV8C,IAA1CrK,EAAOqK,eAAeQ,SAASxV,QAG/BqW,IAAO5K,EAAShJ,MAAMpC,OAAO,gBAC7BgW,IAAO1L,EAAOqK,eAAeQ,SAAS,GAAG/S,MAAMpC,OAC7C,eAGF6V,EAAsBjR,KAAKwG,GAEA,QAA/B2K,EAAIzL,EAAOqK,eAAe9P,aAAK,IAAAkR,GAA3BA,EAA6BpW,OAAQ,CACvC,MAAMsW,EAA+B,IAAI3X,KACvC8M,EAAShJ,MACTqF,UACF,IAAK,IAAIyO,KAAiB5L,EAAOqK,eAAe9P,MAAO,CACrDqR,EAAcnB,sBAAsBvM,SAAW,IAAIlK,KACjD4X,EAAc9T,MAEhB8T,EAAcnB,sBAAsBvM,SAAShD,SAC3C0Q,EAAcnB,sBAAsB1a,IAEtC6b,EAAcnB,sBAAsBvM,SAAShH,WAC3C0U,EAAcnB,sBAAsBva,MAGtC,MAAM2b,EAA0B,IAAI7X,KAClC4X,EAAcnB,sBAAsBvM,UACpCf,UACFyO,EAAcnB,sBAAsBqB,2BAClC9b,KAAK0Q,IACHmL,EAA0BF,EAEhC,CACA3L,EAAOqK,eAAe9P,MAAMoG,MAAK,CAACoL,EAAIC,IAElCD,EAAGtB,sBAAsBqB,2BACzBE,EAAGvB,sBAAsBqB,2BAElB,EAEPC,EAAGtB,sBAAsBqB,2BACzBE,EAAGvB,sBAAsBqB,4BAEjB,EACE,IAEd,MAAMG,EACJjM,EAAOqK,eAAe9P,MAAM,GAAGkQ,sBAEjCc,EAAsBjR,KAAK,CACzBxC,KAAMmU,EAA2B/N,SACjCgO,IAAKD,EAA2B/N,SAASiO,cACzCC,UAAU,EACVC,SAAU,CACRjM,QAC4D,IAA1D6L,EAA2BH,2BAG7BzL,aAC4D,IAA1D4L,EAA2BH,2BAG7BvL,aAAcO,EAAShJ,KACvB0I,gBAAgB,KACZyL,EAA2BH,4BAA8B,CAC3DxL,cAAe,CACbxI,KAAMmU,EAA2B/N,SACjCpD,KAAMmR,MAKhB,CAGN,CACA,OAAOV,CACT,CAAE,MAAOjf,GACPC,QAAQC,IAAI,oCAAqCF,EACnD,CACF,CACO,MAAMggB,GAAmCzb,MAC9C0b,EACA9a,EACA+a,EACAxgB,KAEA,IACE,IAAIgU,QAAe8G,IAAI2F,IAAI,YAAa,aAAc,CACpDC,sBAAuB,CACrBjb,aACAe,IAAK+Z,EAAO/Z,IACZF,IAAKia,EAAOja,IACZqa,MAAOH,EACPxgB,eAIJ,OAAIgU,GAAUA,EAAO3K,OAAS,EACrB2K,EAAOrI,KAAKiV,IACV,CACL5e,GAAI4e,EAAI5e,GACRiE,OAAQ2a,EAAI3a,OACZF,aAAc6a,EAAI7a,iBAGV,EAChB,CAAE,MAAO8a,GAEP,OADAtgB,QAAQC,IAAI,QAASqgB,GACd,EACT,GAGWhQ,GAAmBA,CAACiQ,EAAKC,KACpC,MAAMC,EAAU,IAAIhZ,KAKpB,OAJAzH,QAAQC,IACNuH,YAAeiZ,EAASF,GAAO/Y,YAAeiZ,EAASD,GACvDhZ,YAAeiZ,EAASF,GAAO/Y,YAAeiZ,EAASD,IAElDhZ,YAAeiZ,EAASF,GAAO/Y,YAAeiZ,EAASD,EAAI,EAG7D,SAASE,GAAsBC,GACpC,OAAOA,EAAUvM,MAAK,CAACwM,EAAIC,KACzB,IAAIC,EAAKF,EAAGG,eAAiBH,EAAGG,eAAiB,EAC7CC,EAAKH,EAAGE,eAAiBF,EAAGE,eAAiB,EACjD,GAAID,EAAKE,EAAI,OAAQ,EACrB,GAAIF,EAAKE,EAAI,OAAO,EACpB,IAAIC,EAAK,GAAGL,EAAG/e,YAAY+e,EAAG9e,WAAWof,cACrCC,EAAK,GAAGN,EAAGhf,YAAYgf,EAAG/e,WAAWof,cACzC,OAAID,EAAKE,EAAW,EAChBF,EAAKE,GAAY,EACd,CAAC,GAEZ,CAEA,SAASC,GAAsCxV,GAC7C,GAAIA,EAAoB,CACtB,IAAIyV,EAAS,EACb,IAAK,IAAIC,KAAY1V,EACnByV,GAAUC,EAAS,GAAKA,EAAS,GAEnC,OAAOD,EAASle,CAClB,CACA,OAAO,CACT,CACO,SAASoe,GAAoBC,GAClC,IAAIC,EAAa,GACjB,GAAID,EACF,IAAK,IAAI1T,KAAK0T,EACZ,GAAI1T,EAAErC,SAAU,CACd,IAAI5H,EAAM,IAAIiS,IACV4L,EAAc5T,EAAEpC,QAAQwE,QAC1B,SAAUyR,EAAIpe,EAAGqJ,GAkBf,OAjBIrJ,GACFoe,EAAGC,UACHD,EAAGE,QACHF,EAAGrQ,MAAO,EACVzN,EAAIsa,IAAI/a,EAAQwJ,GAAG/I,MAEf8d,EAAGrQ,OACDqQ,EAAGC,QAAUD,EAAGG,aAClBH,EAAGG,WAAaH,EAAGC,SAEjBD,EAAGI,WAAaJ,EAAGC,UACrBD,EAAGI,WAAaJ,EAAGC,SAErBD,EAAGC,QAAU,EACbD,EAAGrQ,MAAO,GAGPqQ,CACT,GACA,CAAEC,QAAS,EAAGG,WAAY,IAAKD,WAAY,EAAGD,MAAO,EAAGvQ,MAAM,IAEhE,MAAM0Q,EAAuBZ,GAC3BtT,EAAElC,oBAEJ6V,EAAW1T,KAAK,CACdD,EAAGqR,IAAOrR,EAAEvC,MAAMpC,OAAO,cACzB8Y,EAC2B,IAAzBD,EACI,EACEN,EAAYG,MAAQ1e,EAAgB6e,EACtC,IACNE,IAAKR,EAAYI,WAAa3e,EAC9Bgf,EAAGte,EAAIoa,IAAI,GAAK,EAAI,EACpB5S,EAAGxH,EAAIoa,IAAI,GAAK,EAAI,EACpBle,EAAG8D,EAAIoa,IAAI,GAAK,EAAI,EACpBmE,IAAKV,EAAYG,MAAQ1e,GAE7B,CAGJ,OAAOse,CACT,C,mCCl1DA,iFAEAnd,eAAe+d,EAASC,EAAK7iB,GAC3B,IAAI0G,QAAiBoc,MAAMD,GAC3B,GAAInc,EAASqc,GAAI,CAEf,aADiBrc,EAASsc,MAE5B,CASE,aARMC,YACJjjB,EACA,QACA,eAAe0G,EAAStB,UAAUsB,EAASwc,kCAAkCL,IAC7E,EACA,CAAC,GAEHtiB,QAAQC,IAAI,WAAYkG,GACjB,OAEX,CAOA,MAAMyc,EAAyBte,UAC7B,IACE,IAAIue,GAAS,EACb,MAAMC,EAAY,8DAAuCrjB,YACnDsjB,QAAkBV,EAASS,EAAWrjB,GAEtCujB,EAAa,8DAAuCvjB,aACpDwjB,QAAmBZ,EAASW,EAAYvjB,GAQ9C,OANkB,UAAdsjB,GAEsB,UAAfE,KADTJ,GAAS,GAKJA,CACT,CAAE,MAAO9iB,GACPC,QAAQC,IAAI,uBACd,E,kCC3CF,k1BAGO,MA+SMijB,EAA2B,k2LA4Q3BC,EAA2B,k2LAkoD3BC,EAA+B,okNAg2D/BC,EAAsC,2uHA6jEtCC,EAAkC,0yJAygDlCC,EAA6B,szRAwY7BC,EAA6B,szRAsqD7BC,EAAoC,+raA0kBpCC,EAAoC,+raAk5EpCC,EAA8B,8o1BAsqC9BC,EAA8B,8o1BAgzG9BC,EAA4B,o/XAioD5BC,EAAmC,khYAolDnCC,EAAsC,mOA2hGtCxd,EAAuC,29HA0LvCyd,EAAuC,29HA0LvCC,EAAuC,29HA0LvCC,EAAgC,2NA2EhCC,EAAuC,q/fA6nFvCC,EAAyC,u6eAynEzCC,EAAqC,+QA6FrCC,EAAqC,6OAkDrCC,EAAwC,sNAiGxCC,EAA+B,6aA2E/BC,EAAoC,qY,mCCh+5BjD,0KAEO,MAyEMC,EAAkC,w5BA6ClCC,EAA+B,8iBA8B/BC,EAAyC,k8BA+CzCC,EAAoD,+uCA6DpDC,EAAiC,8uC,kHClQ9C,MACMC,EAAe,CACnB5kB,aAAc,CACZwc,QAAS,CAAC,EACVld,UAAW,GACXe,YAAa,GACbJ,SAAU,GACV4kB,QAAS,GACTzkB,SAAU,IAEZid,WAViBC,KAAKC,iBAAiBC,kBAAkBlT,UAarDwa,EACe,oBAGfC,EAAU,WAAmC,IAAlCjjB,EAAKma,UAAAtT,OAAA,QAAA6D,IAAAyP,UAAA,GAAAA,UAAA,GAAG2I,EAAcI,EAAM/I,UAAAtT,OAAA,EAAAsT,UAAA,QAAAzP,EAC3C,GAAQwY,EAAOvgB,OACRqgB,EACH,MAAO,IACFhjB,EACH9B,aAAcglB,EAAOC,SAGvB,MAAM,IAAIC,MAAM,oBAEtB,E,WCvBA,MAAMC,EAAeC,wBAAcR,GAC7BS,EAAgBrmB,IAAmB,IAAlB,SAAEsmB,GAAUtmB,EAEjC,MAAO8C,EAAOyjB,GAAYC,qBAAWT,EAASH,GAExCa,ECPkBC,EAAC5jB,EAAOyjB,KAUzB,CACLI,gBATF,SAAyB3lB,GACvBulB,EAAS,CAAE9gB,KAAMqgB,EAAyBG,QAASjlB,IACnD,IAAI4lB,EAAwBlgB,KAAKC,UAAU3F,GAC3CH,QAAQC,IAAI,iCACZD,QAAQC,IAAI4F,KAAK4S,MAAMsN,GAEzB,IDDgBF,CAAW5jB,EAAOyjB,GASlC,OANAM,qBAAU,KACRhmB,QAAQC,IAAI,kCACZD,QAAQC,IAAI,CAAEgmB,SAAUhkB,GAAQ,GAC/B,CAACA,IAIFikB,cAACZ,EAAaa,SAAQ,CAACC,MAAO,CAAEnkB,QAAOyjB,WAAUE,WAAUH,SACxDA,GACqB,C,mCErB5B,sFASe,IAAIY,IAAO,eAA1B,MAEMC,EAAiBA,IACdnH,IAAOoH,MAAMpd,OAAO,8BAG7B7E,eAAeoe,EAAejjB,EAAW+mB,EAAU1jB,EAAQ2jB,EAAMC,GAC/D,MAAMlgB,EAAQ,CACZ/G,YACA+mB,WACA1jB,SAEA2jB,KAAMC,EAAMC,MAEZD,MAAOA,EAAME,QACbC,UAAWP,WAGQ/L,IAAIC,QACvBC,YAAiB6J,IAAsB,CAAE9d,UAI7C,C,kCChCA,kkBAGO,MAgOMsgB,EAAoC,8gFAyGpCC,EAAwB,m0LAyaxBC,EAA8B,0xHAymC9BC,EAA2B,qqDAmK3BC,EAAmC,moEAmjHnCC,EAAqC,utGAk0DrCC,EAA+B,+gIA2nB/BC,EAA2B,g0EA25B3BC,EAAiC,upaAgsBjCC,EAAoC,onFAgiDpCC,EAAuC,uzFAqHvCC,EAA2B,4m1BA2yM3BC,EAAmC,6rEAqGnCC,EAAqC,mkFAgHrCC,EAAyC,u1FAg0KzCC,EAAqC,0KAiCrCC,EAA2B,mP,mCClkuBxC,6DAWAxjB,eAAeyjB,EAAenN,EAAMnZ,EAAIumB,GACtChoB,QAAQC,IAAI,uCAAwC2a,GACpD5a,QAAQC,IAAI,uBAAwB+nB,GAwBpC,IACE,MAAMC,QAAe1N,IAAIC,QACvBC,YAAiBrB,IAAoB,CACnC8O,QAAS,eAAezmB,IACxB0mB,QAAS,sBAMb,GAHAnoB,QAAQC,IAAI,6BAA8BgoB,IAGtCA,EAAOrN,KAAKkN,WA2Bd,YADA9nB,QAAQC,IAAI,4CAA6CwB,GA1B/B,CAC1BzB,QAAQC,IACN,oCACA4F,KAAK4S,MAAMwP,EAAOrN,KAAKkN,WAAWM,gBAEpC,IAAIA,EAAgBviB,KAAK4S,MAAMwP,EAAOrN,KAAKkN,WAAWM,eAGtD,IAAIA,EAAcC,QAASD,EAAcC,MAAML,GAe7C,YADAhoB,QAAQC,IAAI,sBAAuB+nB,GAdqB,CACxDhoB,QAAQC,IACN,mBACA+nB,EACAI,EAAcC,MAAML,IAEtB,IAAIM,EAAOF,EAAcC,MAAML,GAC3BO,EAAW,GACf,IAAK,IAAI3b,EAAI,EAAGA,EAAI0b,EAAKxf,OAAQ8D,IAC/B2b,EAASxa,KAAKua,EAAK1b,GAAG0V,KAExBtiB,QAAQC,IAAI,+BAAgCsoB,GAlDlD,SAAuBC,EAAS5N,GAC9B,IAAI6N,EAAOD,EACX,IAAK,IAAI5b,EAAI,EAAGA,EAAI6b,EAAK3f,OAAQ8D,IAC/B8b,OACGnG,MAAMkG,EAAK7b,GAAI,CACd+b,KAAM,UACNC,OAAQ,OACRC,QAAS,CACP,eAAgB,oBAElBzL,KAAMvX,KAAKC,UAAU8U,KAEtBkO,MAAM3iB,IACLnG,QAAQC,IAAI,yBAA0BwoB,EAAK7b,GAAG,IAE/Cmc,OAAOrC,IACN1mB,QAAQ0mB,MAAM,gCAAiC+B,EAAK7b,GAAI8Z,EAAM,GAGtE,CAgCMsC,CAAcT,EAAU3N,EAC1B,CAIF,CAIF,CAAE,MAAO7a,GACPC,QAAQC,IAAI,2BAA4BF,EAC1C,CACF,C,mCC/EA,uLAEO,MAAMkpB,EAAuBC,eAAK,MAE5BC,EAA+BD,gBAAMhJ,IAChD,MAAM9f,EAAW8f,EAAI+I,GACrB,GAAI7oB,GAAYA,EAAS4Z,cAAgB5Z,EAAS4Z,aAAa3R,MAAO,CAsBpE,OArByBjI,EAAS4Z,aAAa3R,MAAM+C,KAClDge,GAASA,EAAKjP,cAE+BxR,QAAQ0gB,IAEjC,IAAnBA,EAAQ3jB,SACY,IAApB2jB,EAAQzgB,UACc,IAAtBygB,EAAQC,YAGkClV,MAAK,CAACoL,EAAIC,KAAQ,IAAD8J,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC7D,OAAM,OAAFpK,QAAE,IAAFA,GAAY,QAAV+J,EAAF/J,EAAIqK,gBAAQ,IAAAN,OAAV,EAAFA,EAAcO,UAAY,OAAFrK,QAAE,IAAFA,GAAY,QAAV+J,EAAF/J,EAAIoK,gBAAQ,IAAAL,OAAV,EAAFA,EAAcM,SAAgB,GACpD,OAAFtK,QAAE,IAAFA,GAAY,QAAViK,EAAFjK,EAAIqK,gBAAQ,IAAAJ,OAAV,EAAFA,EAAcK,UAAY,OAAFrK,QAAE,IAAFA,GAAY,QAAViK,EAAFjK,EAAIoK,gBAAQ,IAAAH,OAAV,EAAFA,EAAcI,UAAiB,GACrD,OAAFtK,QAAE,IAAFA,GAAY,QAAVmK,EAAFnK,EAAIqK,gBAAQ,IAAAF,OAAV,EAAFA,EAAcloB,OAAS,OAAFge,QAAE,IAAFA,GAAY,QAAVmK,EAAFnK,EAAIoK,gBAAQ,IAAAD,OAAV,EAAFA,EAAcnoB,IACjC+d,EAAGsK,QAAUrK,EAAGqK,QAAgB,EAChCtK,EAAGsK,QAAUrK,EAAGqK,SAAiB,EAC9B,EAEF,CAAC,GAIZ,CAEA,MAAO,EAAE,IAGEC,EAAkBb,eAAK,MAEvBc,EAAwBd,gBAAMhJ,IACzC,MAAMrH,EAAcqH,EAAI6J,GACxB,IAAKlR,IAAgBvV,MAAM2mB,QAAQpR,GACjC,MAAO,GAWT,OARuBA,EAAYlQ,QAAQ0gB,IAEpB,IAAnBA,EAAQ3jB,SACY,IAApB2jB,EAAQzgB,UACc,IAAtBygB,EAAQC,WAIS,IAGVY,EAAwBhB,gBAAMhJ,IACzC,MAAMiK,EAAiBjK,EAAI8J,GAC3B,IAAKG,IAAmB7mB,MAAM2mB,QAAQE,GACpC,MAAO,GAMT,OAJuBA,EAAexhB,QACnC0gB,GAAiC,aAArBA,EAAQe,UAGF,G,kCC9DvB,2JAEA9lB,eAAe8B,EAAUikB,GACvB,IACE,MAAM,OAAEhkB,EAAM,GAAEC,EAAE,MAAEE,GAAU6jB,EACxBC,QAAa/P,IAAIC,QAAQC,YAAiBnU,EAAI,CAAEE,MAAOA,KAC7D,OAAI8jB,GAAQA,EAAK1P,MAAQ0P,EAAK1P,KAAK2P,eAAelkB,GACzC,IACFikB,EAAK1P,KAAKvU,IAGR,CACLqgB,MAAO,8CAGb,CAAE,MAAOA,GACP,MAAO,CACLA,QAEJ,CACF,CAEApiB,eAAe6U,EAASkR,GACtB,IACE,MAAM,OAAEhkB,EAAM,GAAEC,EAAE,OAAEqC,EAAM,MAAEc,GAAU4gB,EACtC,IAAIC,EAAO,KACPE,EAAY,KAChB,MAAMniB,EAAQ,GACd,EAAG,CAQD,GAPAiiB,QAAa/P,IAAIC,QACfC,YAAiBnU,EAAI,CACnBqC,YACIc,EAAQ,CAAEA,SAAU,CAAEA,MAAO,IACjC+gB,iBAGAF,GAAQA,EAAK1P,MAAQ0P,EAAK1P,KAAK2P,eAAelkB,IAKhD,MAAO,CACLqgB,MAAO,+CAJTre,EAAM0F,QAAQuc,EAAK1P,KAAKvU,GAAQgC,OAChCmiB,EAAYF,EAAK1P,KAAKvU,GAAQmkB,SAMlC,OAASA,GACT,MAAO,CACLniB,QAEJ,CAAE,MAAOqe,GACP,MAAO,CACLA,QAEJ,CACF,CAEApiB,eAAeiE,EAAkB8hB,GAC/B,IACE,MAAM,OAAEhkB,EAAM,GAAEC,EAAE,GAAE7E,EAAE,KAAEgH,EAAI,OAAEE,EAAM,MAAEc,EAAK,cAAEghB,GAAkBJ,EAC/D,IAAIC,EAAO,KACPE,EAAY,KAChB,MAAMniB,EAAQ,GACd,EAAG,CAaD,GAXAiiB,QAAa/P,IAAIC,QACfC,YAAiBnU,EAAI,IAChB7E,KACAgH,EACHE,YACIc,EAAQ,CAAEA,SAAU,CAAEA,MAAO,OAC7BghB,EAAgB,CAAEA,iBAAkB,CAAEA,cAAe,OACzDD,iBAIAF,GAAQA,EAAK1P,MAAQ0P,EAAK1P,KAAK2P,eAAelkB,IAKhD,MAAO,CACLqgB,MAAO,+CAJTre,EAAM0F,QAAQuc,EAAK1P,KAAKvU,GAAQgC,OAChCmiB,EAAYF,EAAK1P,KAAKvU,GAAQmkB,SAMlC,OAASA,GACT,MAAO,CACLniB,QAEJ,CAAE,MAAOqe,GACP,MAAO,CACLA,QAEJ,CACF,CAEApiB,eAAeyF,EAAasgB,GAC1B,IACE,MAAM,OAAEhkB,EAAM,GAAEC,EAAE,GAAE7E,EAAE,OAAEkH,EAAM,MAAEc,EAAK,cAAEghB,GAAkBJ,EACzD,IAAIC,EAAO,KACPE,EAAY,KAChB,MAAMniB,EAAQ,GACd,EAAG,CAWD,GAVArI,QAAQC,IAAI,aAAeuqB,GAC3BF,QAAa/P,IAAIC,QACfC,YAAiBnU,EAAI,IAChB7E,EACHkH,YACIc,EAAQ,CAAEA,SAAU,CAAEA,MAAOyO,WAC7BuS,EAAgB,CAAEA,iBAAkB,CAAEA,cAAe,OACzDD,iBAGAF,GAAQA,EAAK1P,MAAQ0P,EAAK1P,KAAK2P,eAAelkB,IAKhD,MAAO,CACLqgB,MAAO,+CAJTre,EAAM0F,QAAQuc,EAAK1P,KAAKvU,GAAQgC,OAChCmiB,EAAYF,EAAK1P,KAAKvU,GAAQmkB,SAMlC,OAASA,GACT,MAAO,CACLniB,QAEJ,CAAE,MAAOqe,GACP,MAAO,CACLA,QAEJ,CACF,C,mCClIA,uFAMApiB,eAAeomB,EAAQC,EAAIC,EAAKC,GAC9B,IAAIlf,QAAamf,EAAyBD,GAC1C,MAAMpX,QAAe8G,IAAI4C,KAAK,YAAa,QAAS,CAClDC,KAAM,CACJzR,OACAgf,KACAC,SAGJ5qB,QAAQC,IAAI4F,KAAKC,UAAU2N,GAC7B,CAEAnP,eAAewmB,EAAyBD,GACtC,MAAM/C,EAA2B,+LASjC,IAAIwC,QAAa/P,IAAIC,QACnBC,YAAiBqN,EAAY,CAC3BI,QAAS,kBACTC,QAAS0C,KAGb,OAAIP,EAAK1P,KAAKkN,WAAmBwC,EAAK1P,KAAKkN,WAAWiD,UAEpDT,QAAa/P,IAAIC,QACfC,YAAiBqN,EAAY,CAC3BI,QAAS,kBACTC,QAAS,aAGTmC,EAAK1P,KAAKkN,WAAmBwC,EAAK1P,KAAKkN,WAAWiD,SAEjD7S,eACT,C,8YCCA,MAAM8S,EAAmB,CAAEC,MAAO,OAAQC,SAAU,SA4rBrCC,mBA1rBf,SAAgBC,GAAQ,IAADC,EAAAC,EACrB,MAAM,QAAE1F,EAAO,MAAE3jB,GAAUspB,qBAAWjG,MAC/BkG,EAAOC,GAAYC,mBAAS,KAC5BC,EAAMC,GAAWF,mBAAS,KAC1BG,EAAcC,GAAmBJ,oBAAS,IAC1CK,EAAUC,GAAeN,mBAAS,KAClCO,EAAiBC,GAAsBR,oBAAS,IAChDS,EAASC,GAAcV,sBACvBppB,EAAM+pB,GAAWX,mBAAS,KAC1BY,EAAcC,GAAmBC,IAAMd,UAAS,IAChDe,EAAiBC,GAAsBF,IAAMd,UAAS,GACvDiB,EAAgBC,YAAc,qBAEpC5G,qBAAU,KACRhmB,QAAQC,IAAI,kBAAmBmrB,EAAM,GACpC,CAACA,IAEJ,MAEMyB,EAA2BC,IAC/BA,EAAMC,gBAAgB,EA8DlBC,EAAsBjtB,IACZ,UAAVA,EAAE4f,KACJsN,GACF,EAEF3oB,eAAe2oB,IACbnB,GAAgB,GAChB,IACE,MAAMxpB,QAAa4qB,IAAKC,OAAO3B,EAAOG,GACtCU,EAAQ/pB,GACmB,0BAAvBA,EAAK8qB,eACPlB,GAAmB,GACnBJ,GAAgB,UAEVuB,IAEV,CAAE,MAAOC,GAC6C,IAADC,EAAAC,EAAnD,GAAiB,mCAAbF,EAAIG,KACNrC,EAAMsC,QAAQ3f,KAAK,UAAW,CAC5B4f,SAA8B,QAApBJ,EAAAnC,EAAM7qB,SAAS0B,aAAK,IAAAsrB,GAApBA,EAAsBI,SACR,QADgBH,EACpCpC,EAAM7qB,SAAS0B,aAAK,IAAAurB,OAAA,EAApBA,EAAsBG,SACtB,IACJC,MAAO,EACPpC,UAMJ,OAHAxrB,QAAQC,IAAI,QAASqtB,GACrBxB,GAAgB,QAChBE,EAAY,iBAAiBsB,EAAI1G,QAAU0G,EAAI1G,QAAU,KAE3D,CACF,CAEAtiB,eAAe+oB,KAAuB,IAADQ,EAAAC,EACnChC,GAAgB,GAGhB,MAAMiC,QAAiBb,IAAKc,yBAAyB,CACnDC,aAAa,IAEf,GAAkC/V,0BAA9B6V,EAASG,WAAW1C,MAGtB,OAFAxrB,QAAQC,IAAI,qCACZ6rB,GAAgB,GAGlB,MAAMlR,QAAaL,IAAIC,QACrBC,YAAiBsM,IAAS,CACxBtlB,GAAIssB,EAASrsB,YAGjB,IAAIysB,EACJ,GAAIvT,EAAKA,KAAKmM,QAAS,CACrB,GACEnM,EAAKA,KAAKmM,QAAQtnB,YAAc2rB,EAAMzO,QAAQlb,IACnB,oBAA3BmZ,EAAKA,KAAKmM,QAAQ3kB,KAClB,CACA4pB,EACE,uFAEFoC,IAAMC,WAAW,cAEXnB,IAAKoB,gBAEQpB,IAAKC,OACtBjV,wBACAA,gBAGF,YADA4T,GAAgB,EAElB,CACAzpB,YAAWuY,EAAKA,KAAKmM,SACrB,MAAMwH,EAAgB1oB,KAAK4S,MAAMmC,EAAKA,KAAKmM,QAAQyH,WAC7CC,EAAgBF,IAAkBA,EAAcG,WAAa,EAC7DC,EAAY,CAChBC,cAAe,IAAInnB,KACnBinB,WAAYD,GAERD,EAAY3oB,KAAKC,UAAU6oB,GAC3BE,EAAoB,CACxBzsB,KAAMwY,EAAKA,KAAKmM,QAAQ3kB,KACxBT,aAAciZ,EAAKA,KAAKmM,QAAQplB,aAChCF,GAAIssB,EAASrsB,SACb8sB,aASF,SAPMjU,IAAIC,QACRC,YAAiB0I,IAAY,CAAE3c,MAAOqoB,KAExCV,QAAqBW,YAAkB,CACrCC,OAAQnU,EAAKA,KAAKmM,QAAQtlB,GAC1ButB,UAAW5D,EAAMzO,QAAQlb,KAEtB0sB,EAiBH/C,EAAMiB,QAAQ0B,GACd3C,EAAM6D,UAAU,CACdC,aAAa,EACbC,OAAQhB,QApBO,CACjB,MAAMA,QAAqBiB,YACzBxU,EAAKA,KAAKmM,QACVqE,EAAMzO,SAER,GAAIwR,GAAgBA,EAAazH,MAE/B,OADAoF,GAAgB,GACT,CACLpF,MAAOyH,EAAazH,OAGxB0E,EAAMiB,QAAQ0B,GACd3C,EAAM6D,UAAU,CACdC,aAAa,EACbC,OAAQhB,GAEZ,CAOF,YAkBF7pB,iBAKE,GAAiC4T,iCAHXgV,IAAKc,yBAAyB,CAClDC,aAAa,KAEHC,WAAW1C,MAGrB,OAFAxrB,QAAQC,IAAI,4CACZ6rB,GAAgB,IACT,QAlBXxnB,eAA2B5C,EAAU2tB,EAAWlK,SACzB5K,IAAI4C,KAAK,iBAAkB,kBAAmB,CACjEC,KAAM,CACJ1b,WACA2tB,YACAlK,WAGN,CAYQmK,CAAY9D,EAAO,SAAU,aAC7B0B,IAAKoB,gBACLpB,IAAKC,OAAO3B,EAAOG,GACzB,MAAM4D,QAAwBrC,IAAKc,yBAAyB,CAC1DC,aAAa,IAETU,EAAY,CAChBC,cAAe,IAAInnB,KACnBinB,WAAY,GAERF,EAAY3oB,KAAKC,UAAU6oB,GAC3Ba,EAAiB,CACrB9tB,SAAU6tB,EAAgB7tB,SAC1BD,GAAI8tB,EAAgBE,kBAAkBC,QAAQtK,QAAQuK,IACtDhuB,aAAc4tB,EAAgBE,kBAAkBC,QAAQtK,QAAQoG,MAChE3pB,UAAW0tB,EAAgBE,kBAAkBC,QAAQtK,QAAQwK,WAC7D9tB,SAAUytB,EAAgBE,kBAAkBC,QAAQtK,QAAQyK,YAC5DjuB,YAAY,EACZ8D,QAAQ,EACRtD,KAAM,SACN3C,UAAW2rB,EAAMzO,QAAQlb,GACzBquB,cAAe1E,EAAMzO,QAAQlb,GAC7BsuB,YACER,EAAgBE,kBAAkBC,QAAQtK,QAAQ4K,aACpDxB,YACAzsB,UAAW,SACXkuB,gBAAgB,EAChBC,wBAAwB,IAAIzoB,MAAOmY,eAE/BuQ,QAAkB5V,IAAIC,QAC1BC,YAAiByI,IAAY,CAAE1c,MAAOgpB,KAExCjuB,YAAkB4uB,GAAaA,EAAUvV,MAAQuV,EAAUvV,KAAKsI,YAChE7gB,YAAW8tB,GAAaA,EAAUvV,MAAQuV,EAAUvV,KAAKsI,YACzD,MAAMkN,QAA6B7V,IAAIC,QACrCC,YAAiBuM,IAAe,CAC9BvnB,UAAW2rB,EAAMzO,QAAQlb,GACzB4uB,iBAAkB,CAChB3nB,WAAY,CACVtG,KAAM,SACNT,aACE4tB,EAAgBE,kBAAkBC,QAAQtK,QAAQoG,QAGxD7iB,OAAQ,CACNqM,IAAK,CACH,CACErT,aAAc,CACZuX,GAAIqW,EAAgBE,kBAAkBC,QAAQtK,QAAQoG,QAG1D,CAAE5pB,WAAY,CAAEsX,IAAI,IACpB,CAAEtQ,QAAS,CAAEC,IAAI,MAGrBY,MAAO,OAKX,GACE2mB,GACAA,EAAqBxV,KAAKoM,cAAc3e,MAAMS,OAAS,EACvD,CACA,MAAMwnB,EAAaF,EAAqBxV,KAAKoM,cAAc3e,MAAM,GAC3DkoB,QAA6BhW,IAAIC,QACrCC,YAAiB8M,IAAqB,CACpCiJ,OAAQF,EAAW7uB,MAMrB8uB,GACAA,EAAqB3V,KAAK2M,oBAAoBlf,MAAMS,OAAS,GAE7DynB,EAAqB3V,KAAK2M,oBAAoBlf,MAAM+C,KAClD9G,gBAC0CiW,IAAIC,QAC1CC,YAAiBiJ,IAAqB,CACpCld,MAAO,CACL/E,GAAI2nB,EAAK3nB,GACT+uB,OAAQjB,EAAgBE,kBAAkBC,QAAQtK,QAAQuK,IAC1Dc,oBACElB,EAAgBE,kBAAkBC,QAAQtK,QAAQuK,OAGzD,UAK4BpV,IAAIC,QACrCC,YAAiB0I,IAAY,CAC3B3c,MAAO,CAAE/E,GAAI6uB,EAAW7uB,GAAImH,SAAS,MAFzC,MAYM8nB,SALsBnW,IAAIC,QAC9BC,YAAiB2M,IAAgB,CAC/BoJ,OAAQF,EAAW7uB,OAGQmZ,KAAKwM,eAAe/e,MAAM,GAAG5G,GAGtDkvB,QAA2BpW,IAAIC,QACnCC,YAAiB+I,IAAc,CAC7Bhd,MAAO,CACL/E,GAAIivB,EACJF,OAAQjB,EAAgBE,kBAAkBC,QAAQtK,QAAQuK,IAC1DiB,aAAcrB,EAAgBE,kBAAkBC,QAAQtK,QAAQuK,QAWtE,OANAvE,EAAMiB,QAAQkD,GACdnE,EAAM6D,UAAU,CACdC,aAAa,EACbC,OAAQwB,EAAmB/V,KAAK4I,eAElCsI,GAAgB,IACT,CACT,CACA,MAAMqC,QAAqBiB,YACzBe,EAAUvV,KAAKsI,WACfkI,EAAMzO,SAQR,OANAyO,EAAMiB,QAAQkD,GACdnE,EAAM6D,UAAU,CACdC,aAAa,EACbC,OAAQhB,IAEVrC,GAAgB,IACT,CACT,CAnKU+E,GAER7wB,QAAQC,IAAImrB,GACZA,EAAMsC,QAAQ3f,KACQ,QAApB8f,EAAAzC,EAAM7qB,SAAS0B,aAAK,IAAA4rB,GAApBA,EAAsBF,SAA+B,QAAvBG,EAAG1C,EAAM7qB,SAAS0B,aAAK,IAAA6rB,OAAA,EAApBA,EAAsBH,SAAW,IAEtE,CA8JA,OACEmD,eAAA,OAAArL,SAAA,CACES,cAAC6K,IAAU,CACTpU,QAASyO,EAAMzO,QACfra,KAAM,KACN0uB,WAAW,EACXC,UAAW7F,EAAM6F,UACjBC,YAAa9F,EAAM7qB,SAAS4wB,SAC5BC,QAAQ,EACRC,mBAAoBjG,EAAMiG,qBAE5BP,eAAA,OACEQ,MAAO,CACLrG,MAAO,OACPsG,QAAS,OACTC,WAAY,SACZC,cAAe,SACfC,IAAK,OACLC,UAAW,QACXC,QAAS,UACTnM,SAAA,CAEFqL,eAACe,IAAI,CAACC,WAAS,EAACC,eAAe,aAAYtM,SAAA,CACxCkH,GAAiBzG,cAAC2L,IAAI,CAACzI,MAAI,EAAC4I,GAAI,IACjC9L,cAAC2L,IAAI,CAACzI,MAAI,EAAA3D,SAERS,cAAC+L,IAAM,CACLC,GAAI,CACFC,OAAQ,UACRC,WAAazF,EAA6B,QAAb,YAE/B0F,QAAQ,OACRC,KAAK,QACLC,UACErM,cAACsM,IAAiB,CAChBF,KAAK,QACLhB,MAAO,CAAEmB,YAAa,SAG1BC,MAAM,UACNC,QAzXcruB,UAAa,IAADsuB,EAAAC,EAEpC,GADA7yB,QAAQC,IAAI,uBACH,OAALmrB,QAAK,IAALA,GAAe,QAAVwH,EAALxH,EAAO7qB,gBAAQ,IAAAqyB,GAAO,QAAPC,EAAfD,EAAiB3wB,aAAK,IAAA4wB,GAAtBA,EAAwBlF,SAAU,CACpC,GAAsC,mBAAlCvC,EAAM7qB,SAAS0B,MAAM0rB,SAA+B,CACtD,IACiC,YAA3B1rB,EAAM9B,aAAaW,KACjBmB,EAAM9B,aAAa6a,yBACf8X,YAAgB7wB,EAAM9B,aAAa6a,kBACzC/Y,EAAM9B,aAAa6a,iBAAmB,GAClC/Y,EAAM9B,aAAaoqB,eAAe,wBACpCtoB,EAAM9B,aAAa8a,mBAAqB,KAKf,YAA3BhZ,EAAM9B,aAAaW,YACfgyB,YAAgB7wB,EAAM9B,aAAa4yB,WACzC9wB,EAAM9B,aAAa4yB,UAAY,GAC/B9wB,EAAM9B,aAAa4e,UAAY,GAC/B9c,EAAM9B,aAAa6yB,kBAAoB,IAMV,WAA3B/wB,EAAM9B,aAAaW,YACfgyB,YAAgB7wB,EAAM9B,aAAa4yB,WACzC9wB,EAAM9B,aAAa4yB,UAAY,GAKnC,CAAE,MAAOhzB,GACPC,QAAQC,IAAI,iCACd,CAEA,YADAmrB,EAAMsC,QAAQ3f,KAAK,mBAErB,CACAqd,EAAMsC,QAAQ3f,KAAKqd,EAAM7qB,SAAS0B,MAAM0rB,SAC1C,GAkVqClI,SAC5B,WAIFkH,GAAiBzG,cAAC2L,IAAI,CAACzI,MAAI,EAAC4I,GAAI,OAGnC9L,cAAC+M,IAAU,CAACZ,QAAQ,KAAKH,GAAI,CAAEgB,UAAW,UAAWzN,SAClD,cAAc2F,EAAMzO,QAAQ7C,SAE9BmS,GACC6E,eAAAqC,WAAA,CAAA1N,SAAA,CACGsG,GACC7F,cAACkN,IAAG,CACF9B,MAAO,CACLrG,MAAO,OACPsG,QAAS,OACTE,cAAe,SACfD,WAAY,SACZE,IAAK,SACL2B,aAAc,QACd5N,SAEFS,cAAC+M,IAAU,CACTZ,QAAQ,QACRH,GAAI,CAAEoB,SAAU,QAChBhC,MAAO,CAAEoB,MAAO,OAAQjN,SAEvBsG,MAIP7F,cAACkN,IAAG,CACFlB,GAAI,CACFX,QAAS,OACTE,cAAe,SAEfC,IAAK,OACLzG,MAAO,QACPxF,SAEFS,cAACqN,IAAS,CACRrB,GAAI,IACClH,EACHwI,UAAW,SACXtI,SAAWyB,EAA0B,QAAV,QAC3B8G,gBAAiB,OACjB,gBAAiB,CACfA,gBAAiB,QAEnB,wCAAyC,CACvCA,gBAAiB,SAGrB7uB,KAAM6nB,EAAkB,OAAS,WACjCiH,WAAY,CACVC,kBAAkB,EAClBC,aACE1N,cAAC2N,IAAc,CAACC,SAAS,MAAKrO,SAC5BS,cAAC6N,IAAU,CACT,aAAW,6BACXpB,QA9baqB,IAAMtH,GAAoBuH,IAAUA,IA+bjDC,YAAarH,EACbsH,KAAK,MAAK1O,SAETgH,EAAkBvG,cAACkO,IAAa,IAAMlO,cAACmO,IAAU,SAK1DhC,QAAQ,WACRC,KAAK,QACL7wB,GAAG,cACHia,MAAM,eACN4Y,SAAWv0B,IACTqsB,EAAWrsB,EAAEw0B,OAAOnO,OAChB2F,GAAUC,GAAa,MAIjC8E,eAACmB,IAAM,CACLI,QAAQ,YACRH,GAAI,IAAKlH,GACT2H,QAnaZruB,iBACE,IACEwnB,GAAgB,GAChB,MAAM0I,QAA4BtH,IAAKuH,oBAAoBnyB,EAAM6pB,GACjEnsB,QAAQC,IAAI,sBAAuBu0B,SAC7BnH,IACR,CAAE,MAAOC,GACPxB,GAAgB,GAChBE,EACEsB,EAAI1G,QACA0G,EAAI1G,QACJ,iDAER,CACF,EAsZY8N,SAAU7I,EAAapG,SAAA,CACxB,kBAEEoG,GACC3F,cAACyO,IAAgB,CAACrC,KAAM,GAAIhB,MAAO,CAAEoB,MAAO,iBAKlDzG,IAAoB2I,YAAoBxJ,EAAMiG,qBAC9CP,eAAAqC,WAAA,CAAA1N,SAAA,CACEqL,eAACsC,IAAG,CACF9B,MAAO,CACLrG,MAAO,OACPsG,QAAS,OACTE,cAAe,SACfD,WAAY,SACZE,IAAK,SACL2B,aAAc,QACd5N,SAAA,CAEFS,cAAC+M,IAAU,CAACZ,QAAQ,QAAQH,GAAI,CAAEoB,SAAU,QAAS7N,SAAC,2BAGxC,QAAb4F,EAAAD,EAAMzO,eAAO,IAAA0O,GAAbA,EAAewJ,uBACd/D,eAACmC,IAAU,CAACZ,QAAQ,QAAQH,GAAI,CAAEoB,SAAU,QAAS7N,SAAA,CAAC,yBAC7B,IACvBS,cAACkN,IAAG,CACFlB,GAAI,CACFX,QAAS,SACTuD,WAAY,IACZpC,MAAO,eACPP,OAAQ,WAEVQ,QAAU7F,IAAK,IAAAiI,EAAAC,EAAA,OACb5J,EAAMsC,QAAQ3f,KAAK,UAAW,CAC5B4f,SAA8B,QAApBoH,EAAA3J,EAAM7qB,SAAS0B,aAAK,IAAA8yB,GAApBA,EAAsBpH,SACR,QADgBqH,EACpC5J,EAAM7qB,SAAS0B,aAAK,IAAA+yB,OAAA,EAApBA,EAAsBrH,SACtB,KACJ,EACHlI,SACF,YAEM,IAAI,aAIbS,cAAAiN,WAAA,OAGHpH,GACC7F,cAACkN,IAAG,CACF9B,MAAO,CACLrG,MAAO,OACPsG,QAAS,OACTE,cAAe,SACfD,WAAY,SACZE,IAAK,SACL2B,aAAc,QACd5N,SAEFS,cAAC+M,IAAU,CACTZ,QAAQ,QACRH,GAAI,CAAEoB,SAAU,QAChBhC,MAAO,CAAEoB,MAAO,OAAQjN,SAEvBsG,MAIP7F,cAACqN,IAAS,CACRrB,GAAI,IACClH,EACHE,SAAWyB,EAA0B,QAAV,SAE7B+G,WAAY,CAAEC,kBAAkB,GAChCtB,QAAQ,WACRC,KAAK,QACL7wB,GAAG,QACHia,MAAM,QACN4Y,SAAWv0B,IACT,IAAIk1B,EAAKl1B,EAAEw0B,OAAOnO,MAClB6O,EAAKA,EAAGC,OAAOC,cACf1J,EAASwJ,GACLlJ,GAAUC,GAAa,EAE7BoJ,UAAWpI,IAGb8D,eAACsC,IAAG,CACFlB,GAAI,CACFX,QAAS,OACTE,cAAe,SAEfC,IAAK,MACLzG,MAAO,QACPxF,SAAA,CAEFS,cAACqN,IAAS,CACRrB,GAAI,IACClH,EACHwI,UAAW,SACXtI,SAAWyB,EAA0B,QAAV,SAE7B/nB,KAAM0nB,EAAe,OAAS,WAC9BoH,WAAY,CACVC,kBAAkB,EAClBC,aACE1N,cAAC2N,IAAc,CAACC,SAAS,MAAKrO,SAC5BS,cAAC6N,IAAU,CACT,aAAW,6BACXpB,QA/jBU0C,IAAM9I,GAAiB0H,IAAUA,IAgkB3CC,YAAarH,EACbsH,KAAK,MAAK1O,SAET6G,EAAepG,cAACkO,IAAa,IAAMlO,cAACmO,IAAU,SAKvDhC,QAAQ,WACRC,KAAK,QACL7wB,GAAG,WACHia,MAAM,WACN4Y,SAAWv0B,IACT6rB,EAAQ7rB,EAAEw0B,OAAOnO,OACb2F,GAAUC,GAAa,EAE7BoJ,UAAWpI,IAGb9G,cAACkN,IAAG,CACFlB,GAAI,IACClH,EACH0H,MAAO,eACPP,OAAQ,UACRqB,UAAW,SACX8B,WAAY,SACZhC,SAAU,OACVpI,SAAWyB,EAA0B,QAAV,QAC3B4I,eAAgB,aAElB5C,QAAU7F,IAAK,IAAA0I,EAAAC,EAAA,OACbrK,EAAMsC,QAAQ3f,KAAK,UAAW,CAC5B4f,SAA8B,QAApB6H,EAAApK,EAAM7qB,SAAS0B,aAAK,IAAAuzB,GAApBA,EAAsB7H,SACR,QADgB8H,EACpCrK,EAAM7qB,SAAS0B,aAAK,IAAAwzB,OAAA,EAApBA,EAAsB9H,SACtB,KACJ,EACHlI,SACF,wBAKHS,cAAC+L,IAAM,CACLI,QAAQ,YACRH,GAAI,IACClH,EACHE,SAAWyB,EAA0B,QAAV,QAC3BgF,UAAW,QAEbgB,QAAS1F,EACTyH,SAAU7I,EAAapG,SAEtBoG,EACC3F,cAACyO,IAAgB,CAACrC,KAAM,GAAIJ,GAAI,CAAEQ,MAAO,kBAEzC,eAKmC,KAA7B,QAAbpH,EAAAF,EAAMzO,eAAO,IAAA2O,OAAA,EAAbA,EAAeuJ,yBACda,YAAuBtK,EAAMiG,qBAC3BP,eAACsC,IAAG,CACFlB,GAAI,CACFX,QAAS,OACTE,cAAe,SACfD,WAAY,SACZE,IAAK,OACLzG,MAAO,QACPxF,SAAA,EAEAmP,YAAoBxJ,EAAMiG,qBAC1BnL,cAAC+M,IAAU,CAACZ,QAAQ,QAAQH,GAAI,CAAEoB,SAAU,QAAS7N,SAAC,OAIxDS,cAAC+L,IAAM,CACLI,QAAQ,WACRM,QAAU7F,IAAK,IAAA6I,EAAAC,EAAA,OACbxK,EAAMsC,QAAQ3f,KAAK,UAAW,CAC5B4f,SAA8B,QAApBgI,EAAAvK,EAAM7qB,SAAS0B,aAAK,IAAA0zB,GAApBA,EAAsBhI,SACR,QADgBiI,EACpCxK,EAAM7qB,SAAS0B,aAAK,IAAA2zB,OAAA,EAApBA,EAAsBjI,SACtB,IACJkI,WAAW,GACX,EAEJ3D,GAAI,IACClH,EACHE,SAAWyB,EAA0B,QAAV,SAC3BlH,SACH,8BAQf,I,mCClsBA,MAAMuF,EAAmB,CAAEC,MAAO,OAAQC,SAAU,SAC9C4K,EAAoB,CACxB7K,MAAO,OACPC,SAAU,QACV,QAAS,CAAE6K,OAAQ,QAq0BN5K,mBAl0Bf,SAAgBC,GAAQ,IAADwH,EAAAC,EACrB,MAAOgD,EAAWG,GAAgBtK,qBAChCkJ,YAAoBxJ,EAAMiG,sBAER,QADVuB,EACJxH,EAAM7qB,gBAAQ,IAAAqyB,GAAO,QAAPC,EAAdD,EAAgB3wB,aAAK,IAAA4wB,OAAP,EAAdA,EAAuBgD,aAEtBI,EAAWC,GAAgBxK,mBAAS,KACpCyK,EAAUC,GAAe1K,mBAAS,KAClCF,EAAOC,GAAYC,mBAAS,KAC5BC,EAAMC,GAAWF,mBAAS,KAC1B2K,EAAaC,GAAkB5K,mBAAS,KACxC6K,EAAyBC,GAA8B9K,oBAAS,IAChE+K,EAAkBC,GAAuBhL,mBAAS,KAClDK,EAAUC,GAAeN,mBAAS,KAClChF,EAAOiQ,GAAYjL,sBACnBkL,EAAeC,GAAoBnL,oBAAS,IAC5CoL,EAAcC,IAAmBrL,oBAAS,IAC1CY,GAAcC,IAAmBC,IAAMd,UAAS,GAEjDiB,GAAgBC,YAAc,qBAOpC,SAASoK,KACP,OAqBF,WAGE,IAAIC,EACF,uIACF,QAAS,OAALzL,QAAK,IAALA,MAAO0L,MAAMD,GAKnB,CA/BOE,GAKAlB,EAIOE,GAIAE,IACVM,GAAS,GACT3K,EAAY,wCACL,IANP2K,GAAS,GACT3K,EAAY,6BACL,IANP2K,GAAS,GACT3K,EAAY,8BACL,IAPP2K,GAAS,GACT3K,EAAY,yCACL,EAgBX,CAiDA1nB,eAAe8yB,KACb,IAEE,GADAP,GAAiB,GACbG,KAAgB,aAtCxB1yB,eAAgDknB,GAC9C,IACE,MAAQ5Q,KAAMyc,SAAsB9c,IAAI2F,IACtC,iBACA,WACA,CACEC,sBAAuB,CACrBze,SAAU8pB,KAKhB,GAAgC,iBAAjB,OAAX6L,QAAW,IAAXA,OAAW,EAAXA,EAAaC,YAA8B,CAE7C,MACE1c,MAAQmM,QAASwQ,UACThd,IAAIC,QACZC,YAAiBsM,IAAS,CACxBtlB,GAAI41B,EAAYG,aAGJ,OAAVD,QAAU,IAAVA,OAAU,EAAVA,EAAY91B,MAAO41B,EAAYG,iBAE7Bjd,IAAI4C,KAAK,iBAAkB,cAAe,CAC9CC,KAAM,CACJ1b,SAAU21B,EAAYG,kBAGpB,IAAIC,SAASC,GAAYC,WAAWD,EAAS,OAEvD,CACF,CAAE,MAAO33B,GACPC,QAAQC,IAAIF,EACd,CACF,CAKU63B,CAAiCpM,GACvCQ,IACA2K,IACA,MAAMkB,EAAoBxB,EAAYa,MAAM,QAAQ7xB,KAAK,IACzDrF,QAAQC,IAAIo2B,EAAawB,GAEzB,MAAM,oBAAEC,SAA8B5K,IAAK6K,OAAO,CAChDr2B,SAAU8pB,EACVwM,SAAUrM,EACVuC,WAAY,CACV1C,QACAwE,aAAc,IAAI6H,IAClBjI,WAAYqG,EACZpG,YAAasG,KAGb2B,IACFtB,GAA2B,GAC3BK,GAAiB,GAErB,CAAE,MAAOnQ,GACP1mB,QAAQC,IAAI,eAAgBymB,GAC5BsF,EAAYtF,EAAME,SAClB+P,EAASjQ,EACX,CACF,CAaApiB,eAAe2zB,KACbpB,GAAiB,GAEjB,IAAK,IAADtJ,QAEIL,IAAKoB,UACXF,IAAMC,WAAW,cAEXnB,IAAKgL,cAAc1M,EAAOiL,SAC1BvJ,IAAKC,OAAO3B,EAAOG,SA0K7BrnB,eAA2B5C,EAAU2tB,EAAWlK,SACzB5K,IAAI4C,KAAK,iBAAkB,kBAAmB,CACjEC,KAAM,CACJ1b,WACA2tB,YACAlK,WAGN,CAhLUmK,CAAY9D,EAAO,SAAU,OAGnC,MAAM+D,QAAwBrC,IAAKc,yBAAyB,CAC1DC,aAAa,IAGTU,EAAY,CAChBC,cAAe,IAAInnB,KACnBinB,WAAY,GAERF,EAAY3oB,KAAKC,UAAU6oB,GAE3Ba,EAAiB,CACrB9tB,SAAU6tB,EAAgB7tB,SAC1BD,GAAI8tB,EAAgBE,kBAAkBC,QAAQtK,QAAQuK,IACtDhuB,aAAc4tB,EAAgBE,kBAAkBC,QAAQtK,QAAQoG,MAChE3pB,UAAW0tB,EAAgBE,kBAAkBC,QAAQtK,QAAQwK,WAC7D9tB,SAAUytB,EAAgBE,kBAAkBC,QAAQtK,QAAQyK,YAC5DjuB,YAAY,EACZ8D,QAAQ,EACRtD,KAAM,SACN3C,UAAW2rB,EAAMzO,QAAQlb,GACzBquB,cAAe1E,EAAMzO,QAAQlb,GAC7BsuB,YACER,EAAgBE,kBAAkBC,QAAQtK,QAAQ4K,aACpDxB,YACAzsB,UAAW,SACXkuB,gBAAgB,EAChBC,wBAAwB,IAAIzoB,MAAOmY,eAE/BuQ,QAAkB5V,IAAIC,QAC1BC,YAAiByI,IAAY,CAAE1c,MAAOgpB,KAGxCjuB,YACE4uB,GAAaA,EAAUvV,MAAQuV,EAAUvV,KAAKsI,YAEhD7gB,YAAW8tB,GAAaA,EAAUvV,MAAQuV,EAAUvV,KAAKsI,YAIzD,MAAMkN,QAA6B7V,IAAIC,QACrCC,YAAiBuM,IAAe,CAC9BvnB,UAAW2rB,EAAMzO,QAAQlb,GACzB4uB,iBAAkB,CAChB3nB,WAAY,CACVtG,KAAM,SACNT,aACE4tB,EAAgBE,kBAAkBC,QAAQtK,QAAQoG,QAGxD7iB,OAAQ,CACNqM,IAAK,CACH,CACErT,aAAc,CACZuX,GAAIqW,EAAgBE,kBAAkBC,QAAQtK,QAAQoG,QAG1D,CAAE5pB,WAAY,CAAEsX,IAAI,IACpB,CAAEtQ,QAAS,CAAEC,IAAI,MAGrBY,MAAO,OAIX,GACE2mB,GACAA,EAAqBxV,KAAKoM,cAAc3e,MAAMS,OAAS,EACvD,CAGA,MAAMqvB,EAAW/H,EAAqBxV,KAAKoM,cAAc3e,MAAM,GACzDkoB,QAA6BhW,IAAIC,QACrCC,YAAiB8M,IAAqB,CACpCiJ,OAAQ2H,EAAS12B,MAInB8uB,GACAA,EAAqB3V,KAAK2M,oBAAoBlf,MAAMS,OAAS,GAE7DynB,EAAqB3V,KAAK2M,oBAAoBlf,MAAM+C,KAClD9G,gBAC0CiW,IAAIC,QAC1CC,YAAiBiJ,IAAqB,CACpCld,MAAO,CACL/E,GAAI2nB,EAAK3nB,GACT+uB,OACEjB,EAAgBE,kBAAkBC,QAAQtK,QAAQuK,IACpDc,oBACElB,EAAgBE,kBAAkBC,QAAQtK,QAAQuK,OAGzD,UAK4BpV,IAAIC,QACrCC,YAAiB0I,IAAY,CAC3B3c,MAAO,CAAE/E,GAAI02B,EAAS12B,GAAImH,SAAS,MAFvC,MAWM8nB,SALsBnW,IAAIC,QAC9BC,YAAiB2M,IAAgB,CAC/BoJ,OAAQ2H,EAAS12B,OAGUmZ,KAAKwM,eAAe/e,MAAM,GAAG5G,GAEtDkvB,QAA2BpW,IAAIC,QACnCC,YAAiB+I,IAAc,CAC7Bhd,MAAO,CACL/E,GAAIivB,EACJF,OAAQjB,EAAgBE,kBAAkBC,QAAQtK,QAAQuK,IAC1DiB,aACErB,EAAgBE,kBAAkBC,QAAQtK,QAAQuK,QAI1DvE,EAAMiB,QAAQkD,GACdnE,EAAM6D,UAAU,CACdC,aAAa,EACbC,OAAQwB,EAAmB/V,KAAK4I,cAEpC,KAAO,CACL,MAAM2K,QAAqBiB,YACzBe,EAAUvV,KAAKsI,WACfkI,EAAMzO,SAGR,IACE,MACMyb,GADO,IAAI3wB,MACO4wB,eAAe,SACvC,IAAI/H,EAAa,CACf9E,MAAOgE,EAAe7tB,aACtB22B,SAAU,SACVjC,YAAa7G,EAAeO,YAC5BlJ,UAAWuR,EACXnC,UAAWzG,EAAe3tB,UAC1Bs0B,SAAU3G,EAAe1tB,UAEvBkmB,EAAW,0BACTD,YAAeuI,EAAYd,EAAe/vB,UAAWuoB,EAC7D,CAAE,MAAOjoB,GACPC,QAAQC,IAAI,0CAA2CF,EACzD,CACAqrB,EAAMiB,QAAQkD,GACdnE,EAAM6D,UAAU,CACdC,aAAa,EACbC,OAAQhB,GAEZ,CAEA/C,EAAMsC,QAAQ3f,KACQ,QAApBwf,EAAAnC,EAAM7qB,SAAS0B,aAAK,IAAAsrB,GAApBA,EAAsBI,SAAWvC,EAAM7qB,SAAS0B,MAAM0rB,SAAW,IAErE,CAAE,MAAOjH,GACY,0BAAfA,EAAM+G,MAAkCzB,EAAY,gBACxDhsB,QAAQC,IAAI,eAAgB4F,KAAKC,UAAU4gB,IAC3CmQ,GAAiB,EACnB,CACAA,GAAiB,EACnB,CAmGA,MAwBM0B,GAA0Bx4B,IAChB,UAAVA,EAAE4f,MACJkX,GAAiB,GACjBO,KACF,EAUF,OACEtG,eAAA,OAAArL,SAAA,CACES,cAAC6K,IAAU,CACTpU,QAASyO,EAAMzO,QACfra,KAAM,KACN0uB,WAAW,EACXC,UAAW7F,EAAM6F,UACjBC,YAAa9F,EAAM7qB,SAAS4wB,SAC5BC,QAAQ,EACRC,mBAAoBjG,EAAMiG,qBAE5BP,eAAA,OACEQ,MAAO,CACLrG,MAAO,OACPsG,QAAS,OACTC,WAAY,SACZC,cAAe,SACfC,IAAK,OACLC,UAAW,QACXC,QAAS,UACTnM,SAAA,CAEFS,cAAC+M,IAAU,CAACZ,QAAQ,KAAKH,GAAI,CAAEgB,UAAW,UAAWzN,SAClD,cAAc2F,EAAMzO,QAAQ7C,SAE9Byc,EACCzF,eAAAqC,WAAA,CAAA1N,SAAA,CACES,cAACkN,IAAG,CACF9B,MAAO,CACLrG,MAAO,OACPsG,QAAS,OACTE,cAAe,SACfD,WAAY,SACZE,IAAK,SACL2B,aAAc,QACd5N,SAEFS,cAAC+M,IAAU,CAACZ,QAAQ,QAAQH,GAAI,CAAEoB,SAAU,QAAS7N,SAClD,6DAILS,cAACqN,IAAS,CACRrB,GAAI,IACClH,EACHE,SAAWyB,GAA0B,QAAV,SAE7B+G,WAAY,CAAEC,kBAAkB,GAChCtB,QAAQ,WACRC,KAAK,QACL7wB,GAAG,kBACHia,MAAM,oBACN0K,MAAOqQ,GAAsC,GAC7CnC,SAAWv0B,IACL2mB,GAASqF,IACX4K,GAAS,GACT3K,EAAY,KAEd0K,EAAoB32B,EAAEw0B,OAAOnO,MAAM,EAErCgP,UAnEoBr1B,IAChB,UAAVA,EAAE4f,MACJkX,GAAiB,GACjBoB,KACF,IAkESlM,GACC7F,cAACkN,IAAG,CACF9B,MAAO,CACLrG,MAAO,OACPsG,QAAS,OACTE,cAAe,SACfD,WAAY,SACZE,IAAK,SACL2B,aAAc,QACd5N,SAEFS,cAAC+M,IAAU,CACTZ,QAAQ,QACRH,GAAI,CAAEoB,SAAU,QAChBhC,MAAO,CAAEoB,MAAO,OAAQjN,SAEvBsG,MAIP7F,cAAC+L,IAAM,CACLI,QAAQ,YACRH,GAAI,IACClH,EACHE,SAAWyB,GAA0B,QAAV,SAE7BgG,QAASsF,GACTvD,SAAUkC,GAjHS4B,MAC7B,IAAIC,GAAU,EAKd,OAJuC,IAAnChC,EAAiBvB,OAAOpsB,SAC1B2vB,GAAU,GAGLA,CAAO,EA2GuBD,GAAyB/S,SAEnDmR,EACC1Q,cAACyO,IAAgB,CAACrC,KAAM,GAAIJ,GAAI,CAAEQ,MAAO,UAEzC,iBAGJxM,cAACkN,IAAG,CACF9B,MAAO,CACLrG,MAAO,OACPsG,QAAS,OACTE,cAAe,SACfD,WAAY,SACZE,IAAK,SACL2B,aAAc,QACd5N,SAEFqL,eAACmC,IAAU,CAACZ,QAAQ,QAAQH,GAAI,CAAEoB,SAAU,QAAS7N,SAAA,CAAC,kBACpC,IAChBS,cAACkN,IAAG,CACFlB,GAAI,CACFX,QAAS,SACTuD,WAAY,IACZpC,MAAO,eACPP,OAAQ,WAEVQ,QA1bhBruB,iBACE4oB,IAAKwL,aAAalN,GACf1C,MAAK,KACJiO,IAAgB,EAAK,IAEtBhO,OAAOuE,IACNqJ,EAASrJ,GACLA,EAAI1G,SAASoF,EAAYsB,EAAI1G,QAAQ,GAE/C,EAiboCnB,SACrB,qBAKJqR,GACC5Q,cAACkN,IAAG,CACF9B,MAAO,CACLrG,MAAO,OACPsG,QAAS,OACTE,cAAe,SACfD,WAAY,SACZE,IAAK,SACL2B,aAAc,QACd5N,SAEFS,cAAC+M,IAAU,CAACZ,QAAQ,QAAQH,GAAI,CAAEoB,SAAU,QAAS7N,SAAC,sDAO5DqL,eAAAqC,WAAA,CAAA1N,SAAA,CACES,cAACkN,IAAG,CACF9B,MAAO,CACLrG,MAAO,OACPsG,QAAS,OACTE,cAAe,SACfD,WAAY,SACZE,IAAK,SACL2B,aAAc,QACd5N,SAEFS,cAAC+M,IAAU,CAACZ,QAAQ,QAAQH,GAAI,CAAEoB,SAAU,QAAS7N,SAClDoQ,EACG,4DACA,2BAGP9J,GACC7F,cAACkN,IAAG,CACF9B,MAAO,CACLrG,MAAO,OACPsG,QAAS,OACTE,cAAe,SACfD,WAAY,SACZE,IAAK,SACL2B,aAAc,QACd5N,SAEFS,cAAC+M,IAAU,CACTZ,QAAQ,QACRH,GAAI,CAAEoB,SAAU,QAChBhC,MAAO,CAAEoB,MAAO,OAAQjN,SAEvBsG,MAIP7F,cAACqN,IAAS,CACRrB,GAAI,IACClH,EACHE,SAAWyB,GAA0B,QAAV,SAE7B+G,WAAY,CAAEC,kBAAkB,GAChCtB,QAAQ,WACRC,KAAK,QACL7wB,GAAG,YACHia,MAAM,aACN0K,MAAO6P,EACP3B,SAAWv0B,IACL2mB,IACFiQ,GAAS,GACT3K,EAAY,KAEdkK,EAAan2B,EAAEw0B,OAAOnO,MAAM,EAI9BgP,UAAWmD,KAEbrS,cAACqN,IAAS,CACRrB,GAAI,IACClH,EACHE,SAAWyB,GAA0B,QAAV,SAE7B+G,WAAY,CAAEC,kBAAkB,GAChCtB,QAAQ,WACRC,KAAK,QACL7wB,GAAG,WACHia,MAAM,YACN0K,MAAO+P,EACP7B,SAAWv0B,IACL2mB,IACFiQ,GAAS,GACT3K,EAAY,KAEdoK,EAAYr2B,EAAEw0B,OAAOnO,MAAM,EAE7BgP,UAAWmD,KAEbrS,cAACqN,IAAS,CACRrB,GAAI,IACClH,EACHE,SAAWyB,GAA0B,QAAV,SAE7B+G,WAAY,CAAEC,kBAAkB,GAChCtB,QAAQ,WACRC,KAAK,QACL7wB,GAAG,QACHia,MAAM,QACN0K,MAAOoF,EACP8I,SAAWv0B,IACL2mB,IACFiQ,GAAS,GACT3K,EAAY,KAEd,IAAIiJ,EAAKl1B,EAAEw0B,OAAOnO,MAClB6O,EAAKA,EAAGC,OAAOC,cACf1J,EAASwJ,EAAG,EAEdG,UAAWmD,KAEbrS,cAACyS,IAAc,CACbzG,GAAI,IACC4D,EACH5K,SAAWyB,GAA0B,QAAV,SAE7B0F,QAAQ,WACRC,KAAK,QACLoB,WAAY,CAAEC,kBAAkB,GAChClyB,GAAG,cACHia,MAAM,QACNkd,eAAgBxN,EAAMwN,eACtBxS,MAAOiQ,EACP/B,SAAW/nB,IACLma,IACFiQ,GAAS,GACT3K,EAAY,KAEdsK,EAAe/pB,EAAI,EAErB6oB,UAAWmD,MAEX1C,GACA3P,cAACkN,IAAG,CACFlB,GAAI,CACFX,QAAS,OACTE,cAAe,SAEfC,IAAK,OACLzG,MAAO,QACPxF,SAEFS,cAACqN,IAAS,CACRrB,GAAI,IACClH,EACHwI,UAAW,SACXtI,SAAWyB,GAA0B,QAAV,SAE7B/nB,KAAM0nB,GAAe,OAAS,WAC9BoH,WAAY,CACVC,kBAAkB,EAClBC,aACE1N,cAAC2N,IAAc,CAACC,SAAS,MAAKrO,SAC5BS,cAAC6N,IAAU,CACT,aAAW,6BACXpB,QA5sBQ0C,IAAM9I,IAAiB0H,IAAUA,IA6sBzCC,YA3sBSpH,IAC/BA,EAAMC,gBAAgB,EA2sBAoH,KAAK,MAAK1O,SAET6G,GAAepG,cAACkO,IAAa,IAAMlO,cAACmO,IAAU,SAKvDhC,QAAQ,WACRC,KAAK,QACL7wB,GAAG,WACHia,MAAM,WACN0K,MAAOuF,EACP2I,SAAWv0B,IACL2mB,IACFiQ,GAAS,GACT3K,EAAY,KAEdJ,EAAQ7rB,EAAEw0B,OAAOnO,MAAM,EAGzBgP,UAAWmD,OAIhB1C,GACC3P,cAAC+L,IAAM,CACLxwB,GAAG,gBACH4wB,QAAQ,YACRH,GAAI,IACClH,EACHE,SAAWyB,GAA0B,QAAV,SAE7BgG,QA7bdruB,iBACE,IACE,MAAMu0B,QAA0Bte,IAAIC,QAClCC,YAAiBuM,IAAe,CAC9BvnB,UAAW2rB,EAAMzO,QAAQlb,GACzB4uB,iBAAkB,CAChB3nB,WAAY,CACVtG,KAAM,SACNT,aAAc6pB,IAGlB7iB,OAAQ,CAAEC,QAAS,CAAEC,IAAI,IAEzBY,MAAO,OAMR,IAAD+jB,EAHF,GACEqL,GACsD,IAAtDA,EAAkBje,KAAKoM,cAAc3e,MAAMS,OAO3C,OAJAsiB,EAAM0N,sBACJD,EAAkBje,KAAKoM,cAAc3e,MAAM,SAE7C+iB,EAAMsC,QAAQ3f,KAAyB,QAArByf,EAACpC,EAAM7qB,SAAS0B,aAAK,IAAAurB,OAAA,EAApBA,EAAsBG,SAG7C,CAAE,MAAOL,GACPttB,QAAQC,IAAI,4CAA6CqtB,EAC3D,CACA,IACE,MAAMyL,QAmBVz0B,iBACE,IACE,MAAM00B,EAAYC,eACZC,EAAa7C,EAAYa,MAAM,QAAQ7xB,KAAK,IAClD,IAAI8zB,EAAoB,CACtB13B,GAAIu3B,EACJt3B,SAAUs3B,EACVr3B,aAAc6pB,EACd3pB,UAAWo0B,EACXn0B,SAAUq0B,EACVv0B,YAAY,EACZ8D,QAAQ,EACRtD,KAAM,SACN3C,UAAW2rB,EAAMzO,QAAQlb,GACzBquB,cAAe1E,EAAMzO,QAAQlb,GAC7BsuB,YAAa,IAAImJ,IACjBn3B,UAAW,SACXkuB,gBAAgB,EAChBC,wBAAwB,IAAIzoB,MAAOmY,eAKrC,aAHsBrF,IAAIC,QACxBC,YAAiByI,IAAY,CAAE1c,MAAO2yB,MAEzBve,KAAKsI,UAEtB,CAAE,MAAOoK,GACPttB,QAAQC,IAAIqtB,EACd,CACF,CA/C4B8L,GACxB,GAAIL,EAAW,CAAC,IAADlL,EACb,MAAMyC,EAAa,CACjBE,OAAQuI,EAAUt3B,GAClBhC,UAAW2rB,EAAMzO,QAAQlb,GACzBmvB,aAAcmI,EAAUt3B,GACxBsB,SAAUqoB,EAAMzO,QAAQ5Z,SAAWqoB,EAAMzO,QAAQ5Z,SAAW,MAC5Ds2B,gBAAiBjO,EAAMzO,QAAQlb,GAC/B63B,eAAgB,SAyCxBh1B,eAAyBkC,GAIvB,aAHsB+T,IAAIC,QACxBC,YAAiB8I,IAAc,CAAE/c,UAGrC,CA5CY+yB,CAAUjJ,GAChBlF,EAAM0N,sBAAsBC,GAC5B3N,EAAMsC,QAAQ3f,KAAyB,QAArB8f,EAACzC,EAAM7qB,SAAS0B,aAAK,IAAA4rB,OAAA,EAApBA,EAAsBF,SAC3C,CACF,CAAE,MAAOL,GACPttB,QAAQC,IAAIqtB,EACd,CACF,EA6YuC7H,SAC1B,sBAGA,KACDoQ,GACA3P,cAAC+L,IAAM,CACLxwB,GAAG,iBACH4wB,QAAQ,YACRH,GAAI,IACClH,EACHE,SAAWyB,GAA0B,QAAV,SAE7B+H,SAAUkC,GAnXC4C,MACvB,IAAIf,GAAU,EAWd,OAR8B,IAA5BxC,EAAUf,OAAOpsB,QACU,IAA3BqtB,EAASjB,OAAOpsB,QACQ,IAAxB0iB,EAAM0J,OAAOpsB,QACbutB,EAAYnB,OAAOpsB,OAAS,GACL,IAAvB6iB,EAAKuJ,OAAOpsB,SAEZ2vB,GAAU,GAELA,CAAO,EAuWyBe,GAC3B7G,QAASyE,GAAc3R,SAEtBmR,EACC1Q,cAACyO,IAAgB,CAACrC,KAAM,GAAIJ,GAAI,CAAEQ,MAAO,kBAEzC,oBAIJkC,YAAoBxJ,EAAMiG,qBAC1BnL,cAACkN,IAAG,CACF9B,MAAO,CACLrG,MAAO,OACPsG,QAAS,OACTE,cAAe,SACfD,WAAY,SACZE,IAAK,SACL2B,aAAc,QACd5N,SAEFqL,eAACmC,IAAU,CAACZ,QAAQ,QAAQH,GAAI,CAAEoB,SAAU,QAAS7N,SAAA,CAAC,mBACnC,IACjBS,cAACkN,IAAG,CACFlB,GAAI,CACFX,QAAS,SACTuD,WAAY,IACZpC,MAAO,eACPP,OAAQ,WAEVQ,QAAU7F,IAAK,IAAAgB,EAAAiH,EAAA,OACb3J,EAAMsC,QAAQ3f,KAAK,SAAU,CAC3B4f,SAA8B,QAApBG,EAAA1C,EAAM7qB,SAAS0B,aAAK,IAAA6rB,GAApBA,EAAsBH,SACR,QADgBoH,EACpC3J,EAAM7qB,SAAS0B,aAAK,IAAA8yB,OAAA,EAApBA,EAAsBpH,SACtB,KACJ,EACHlI,SACF,yBAWnB,I,SC90Be0F,mBAxBf,SAAgBC,GACd,MAAM,KAAE9oB,EAAI,UAAE0uB,GAAczF,qBAAWkO,IAWvC,OATAzT,qBAAU,MACR1hB,uBACQ4oB,IAAKoB,UACXlD,EAAMsO,cAAa,EAErB,CACAC,EAAU,GACT,IAGDzT,cAAAiN,WAAA,CAAA1N,SACEqL,eAAC8I,IAAS,CAAC1O,SAAS,KAAIzF,SAAA,CACtBS,cAAC6K,IAAU,CAACpU,QAASyO,EAAMzO,UAC3BuJ,cAAA,SACAA,cAAA,SACAA,cAAA,SAAM,iBAKd,I,yDC1BO,MAAM2T,GAAYC,cAAYC,IAAK,CACxCC,KAAM,CACJC,SAAU,GAEZC,WAAY,CACVzH,YAAasH,EAAMI,QAAQ,IAE7BC,MAAO,CACL7I,QAAS,OACT,CAACwI,EAAMM,YAAYC,GAAG,OAAQ,CAC5B/I,QAAS,UAGbgJ,OAAQ,CACNzG,SAAU,WACV0G,aAAcT,EAAMU,MAAMD,aAC1B/G,gBAAiBiH,aAAMX,EAAMY,QAAQC,OAAOC,MAAO,KACnDpI,YAAasH,EAAMI,QAAQ,GAC3B/H,WAAY,EACZnH,MAAO,OACP,CAAC8O,EAAMM,YAAYC,GAAG,OAAQ,CAC5BlI,WAAY2H,EAAMI,QAAQ,GAC1BlP,MAAO,QAET+O,KAAM,CACJC,SAAU,IAGda,WAAY,CACV7P,MAAO8O,EAAMI,QAAQ,GACrBpE,OAAQ,OACRjC,SAAU,WACViH,cAAe,OACfxJ,QAAS,OACTC,WAAY,SACZO,eAAgB,UAElBiJ,UAAW,CACTtI,MAAO,WAETuI,WAAY,CACVrJ,QAASmI,EAAMI,QAAQ,EAAG,EAAG,EAAG,GAChCe,WAAYnB,EAAMoB,YAAYC,OAAO,SACrCnQ,MAAO,OACP,CAAC8O,EAAMM,YAAYC,GAAG,OAAQ,CAC5BrP,MAAO,MAGXoQ,eAAgB,CACd9J,QAAS,OACT,CAACwI,EAAMM,YAAYC,GAAG,OAAQ,CAC5B/I,QAAS,SAGb+J,cAAe,CACb/J,QAAS,OACT,CAACwI,EAAMM,YAAYC,GAAG,OAAQ,CAC5B/I,QAAS,SAGbgK,MAAO,CACL3J,QAAS,GAEX4J,KAAM,CACJ5J,QAASmI,EAAMI,QAAQ,EAAG,IAE5BsB,UAAW,CACTC,OAAQ,GACRzQ,MAAO,IACP8K,OAAQ,KAEV4F,oBAAqB,CACnBhK,UAAW,OACXS,WAAY,OAEdwJ,QAAS,CACP3Q,MAAO,IACPsG,QAAS,OACTC,WAAY,UAEdM,UAAW,CACT+J,WAAY9B,EAAMI,QAAQ,IAE5B2B,UAAW,CACT7Q,MAAO,GACP8K,OAAQ,GACRrD,MAAO,UACPe,gBAAiB,UACjB+G,aAAc,MACdkB,OAAQ,SACRnK,QAAS,cACTwK,OAAQ,oBACRhK,eAAgB,SAChBP,WAAY,UAEdwK,UAAW,CACTvI,gBAAiB,OACjBf,MAAO,OACPd,QAAS,MACT8J,OAAQ,sBACRpI,SAAU,OACV2I,KAAM,QACN,CAAClC,EAAMM,YAAYC,GAAG,OAAQ,CAC5BoB,OAAQ,sBACR9J,QAAS,aAGbsK,UAAW,CACT3K,QAAS,QAEX4K,eAAgB,CACdrI,SAAU,WACVsI,IAAK,MACLzK,WAAY,EACZS,YAAa,O,2FC/FjB,MAAMiK,GAAS,IAAIhW,IAAO,WAGbiW,GAAWlR,IACNyO,KACKA,KADrB,MAEOz5B,EAAUm8B,GAAe7Q,sBACzB8Q,EAAaC,GAAkB/Q,mBAAS,KACxCnX,EAAUmoB,GAAehR,mBAAS,KAClCiR,EAAaC,GAAkBlR,mBAAS,KACxCnrB,EAAUs8B,GAAenR,mBAAS,KAClCoR,EAAQC,GAAarR,mBAAS,IAC9BsR,EAAQC,GAAavR,mBAAS,KAC9BwR,EAAOC,GAAY3Q,IAAMd,UAAU,IACnC0R,EAAQC,GAAa3R,mBAAS,mBAC9B4R,EAAQC,GAAa7R,mBAAS,KAC9BxhB,EAASszB,GAAc9R,sBACvB+R,EAAUC,GAAehS,oBAAS,IAClCiS,EAASC,GAAclS,oBAAS,IAChCmS,EAAYC,GAAiBpS,mBAAS,IACtCqS,EAAgBC,GAAqBtS,oBAAS,IAC9CuS,EAAcC,GAAmBxS,mBAAS,KAC1CyS,GAAWC,IAAgB1S,oBAAS,IACpCppB,GAAM+pB,IAAWX,mBAASN,EAAMiT,WAEhCC,GAAMC,IAAW7S,oBAAS,IAC1B8S,GAAYC,IAAiB/S,mBAAS,KACtCgT,GAASC,IAAcjT,oBAAS,IAChCkT,GAASC,IAAcnT,mBAAS,OAChCoT,GAAeC,IAAoBrT,mBAAS,KAC5CsT,GAASC,IAAcvT,mBAAS,OAChCwT,GAAgBC,IAAqBzT,mBAAS,IAC/C0T,GAA6BxS,YAAc,qBA+FjD,SAASyS,GAAWC,GAClBxB,EAAcwB,GACdjC,EAAUiC,EAAU,oBACpB/B,EAAUrzB,GAAYA,EAAQiQ,YAAYolB,MAAQD,EAAW,IAC/D,CAuCAh7B,eAAek7B,KAAc,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAC1B,IAAIr5B,EAAQ,CACVs5B,0BAA2B1/B,EAASqB,GACpCyD,WAAY9E,EAASqB,GACrBs+B,YAAajD,EACbkD,WAAYhD,EACZt3B,QAAQ,EACRu6B,aAAqB,OAAP/1B,QAAO,IAAPA,GAAe,QAARu1B,EAAPv1B,EAASilB,cAAM,IAAAsQ,GAAM,QAANC,EAAfD,EAAiBn9B,YAAI,IAAAo9B,GAArBA,EAAuBj+B,GAC1B,OAAPyI,QAAO,IAAPA,GAAe,QAARy1B,EAAPz1B,EAASilB,cAAM,IAAAwQ,GAAM,QAANC,EAAfD,EAAiBr9B,YAAI,IAAAs9B,OAAd,EAAPA,EAAuBn+B,GACvBa,GAAKb,GACThC,UAAkB,OAAPyK,QAAO,IAAPA,GAAgB,QAAT21B,EAAP31B,EAASyS,eAAO,IAAAkjB,OAAT,EAAPA,EAAkBp+B,IAE/B46B,GAAO6D,MAAM,SAAW15B,GACxB,MAAM25B,QAAkB5lB,IAAIC,QAC1BC,YAAiB2lB,IAAiC,CAAE55B,WAEtD61B,GAAO6D,MAAM,yBACb7D,GAAO6D,MAAMC,GAGTrD,EAAS,SAqMfx4B,eAA8CkC,GAE5C,MAAM65B,QAA0BC,aAAiBp2B,EAAQyS,QAAQlb,IACjE,IAAI8+B,EAAyB,GAC7B,IAAK,IAAIC,KAAgBH,EACvBE,EAAuBxyB,KAAKyyB,EAAa7+B,cAE3C,MAAMm9B,EAAgByB,EAGhBE,EACJv2B,EAAQilB,OAAO7sB,KAAKT,UACpB,IACAqI,EAAQilB,OAAO7sB,KAAKR,SAAS4+B,OAAO,GACpC,IACIC,EAAWn6B,EAAMu5B,YACjBa,EAAexgC,EAASyB,UAAY,IAAMzB,EAAS0B,SAAS4+B,OAAO,GACnExmB,EAAkBhQ,EAAQiQ,YAAYL,KAGtC+mB,EAAU,CACdC,YAAaL,EACbM,UAAWJ,EACXK,cAAeJ,EACfK,iBAAkB/mB,EAClBgnB,kBAAkB,SAIC3mB,IAAI4C,KACvB,kBACA,2BACA,CACEC,KAAM,CACJ+jB,aAAc,+BACdC,QAAS,GAAGT,sBAA6BF,SAAkBG,IAC3DxjB,KAAM,KACNikB,YAAa,CAACjhC,EAASuB,cACvB2/B,YAAa,GACbC,aAAczC,EACd0C,QAASt3B,EAAQyS,QAAQ8kB,kBACzBC,YAAax3B,EAAQyS,QAAQ7C,KAC7Bra,UAAWyK,EAAQyS,QAAQlb,GAC3Bkb,QAASzS,EAAQyS,QACjBkkB,QAASA,EACTc,eAAgBz3B,EAAQyS,QAAQilB,QAChCC,aAAc33B,EAAQyS,QAAQmlB,aAC9BC,YAAa7pB,iCAInBlY,QAAQC,IAAI,sCACd,CAvPU+hC,CAA+Bx7B,GAIvC,MAAMiN,QAAe1J,aAAa,CAChC1D,OAAQ,4BACRC,GAAI27B,KACJxgC,GAAI,CAAEyD,WAAY9E,EAASqB,IAC3BkH,OAAQ,CACNjD,OAAQ,CAAEwT,IAAI,IAEhBuR,cAAe,SAGjB,IAAIyX,EAAa,EACfC,EAAW,EAEb,IAAK,IAAIv1B,EAAI,EAAGA,EAAI6G,EAAOpL,MAAMS,OAAQ8D,IACvCs1B,GAAczuB,EAAOpL,MAAMuE,GAAGmzB,YAGhCoC,EAAWD,EAAazuB,EAAOpL,MAAMS,OAErC,MAAMs5B,EAAoBhiC,EAASgiC,gBAC/BhiC,EAASgiC,gBAAkB,EAC3B,EAEJ57B,EAAQ,CACN/E,GAAIrB,EAASqB,GACbsf,eAAgBohB,EAChBC,kBACAvgC,UAAWzB,EAASyB,UACpBC,SAAU1B,EAAS0B,SACnB+kB,UAAWzmB,EAASymB,iBAGItM,IAAIC,QAC5BC,YAAiB2lB,IAA0B,CAAE55B,WAD/C,MAKM67B,EAAc,CAClB5gC,GAAIyI,EAAQzI,GACZ6gC,gBAAiBnC,EAAUvlB,KAAKyI,sBAAsB5hB,UAEvB8Y,IAAIC,QACnCC,YAAiB2lB,IAAyB,CAAE55B,MAAO67B,IAEvD,CAiVA,SAASE,KACP,GAAIr4B,EAAQ5I,MAAM49B,eAAgB,CAEhC,OADWr5B,KAAK4S,MAAMvO,EAAQ5I,MAAM49B,gBACxBrU,WACd,CACE,OAAO3gB,EAAQyS,QAAQ6lB,qBAE3B,CA9hBAxc,qBAAU,MACR1hB,uBAMFA,iBACE,IAAIm+B,EAAWC,EAEXnI,EAAS7R,OAAOnoB,SAASg6B,OACzBoI,EAAS,IAAIC,gBAAgBrI,GAEjC,GAAIoI,EAAQ,CACV,IAAIA,EAAO1kB,IAAI,MAA4B,KAApB0kB,EAAOziB,IAAI,KAKhC,YADAwI,OAAOnoB,SAASsiC,KAAO,KAGzB,GANEJ,EAAYE,EAAOziB,IAAI,MAMrByiB,EAAO1kB,IAAI,MAA4B,KAApB0kB,EAAOziB,IAAI,KAMhC,YADAwI,OAAOnoB,SAASsiC,KAAO,KAJvBH,EAAQC,EAAOziB,IAAI,KACnB2e,GAAW6D,EAMf,CAEA,IAEE,IAAIl8B,EAAQ,CACV/E,GAAIihC,GAGFv8B,QAAiBoU,IAAIC,QACvBC,YAAiBrB,IAA8B5S,IAG7CiN,EAAStN,EAASyU,KAAKiN,qBAE3B,MAAMib,EAAa,IAAIr7B,KAAKgM,EAAOqvB,YAC7BC,EAAM,IAAIt7B,KACVrF,EAAOqR,EAAOrR,KAGpB,KAAI0gC,EAAW51B,UAAY61B,EAAI71B,WAAsB,YAAT9K,GAuB1C,OAFAi6B,GAAO3V,MAAM,iCACbgC,OAAOnoB,SAASsiC,KAAO,KAtBuC,CAE9Dr8B,EAAQ,CACN/E,GAAIghC,GAENt8B,QAAiBoU,IAAIC,QACnBC,YAAiBrB,IAAoB5S,IAEvCiN,EAAStN,EAASyU,KAAK6M,WACvB+V,EAAW/pB,GACX,MAAMrT,EAAWqT,EAAOrT,SAKxB,GAJAm8B,EAAYn8B,GACZq+B,GAAc,QAAUr+B,EAASyB,WACjC+6B,EAAenpB,EAAO0G,YAAYL,MAClC4iB,EAAYvd,KAAO1L,EAAO6J,WAAWnU,OAAO,iBACjB,IAAvBqzB,EAAY1zB,OAAc,CAC5B,MAAMk6B,QAAkBC,IAAQ/iB,IAAI9f,EAAS8iC,cAC7CzG,EAAeuG,EACjB,CACAnG,EAAYppB,EAAOlT,SAAWkT,EAAOlT,SAAW,cAClD,CAKF,CAAE,MAAO+sB,GAGP,OAFA+O,GAAO3V,MAAM,yCAA2C4G,EAAI1G,cAC5D8B,OAAOnoB,SAASsiC,KAAO,IAEzB,CACF,CA5EUM,EACR,CACAC,EAAM,GACL,IA2EHpd,qBAAU,KACRhmB,QAAQC,IAAI,0BACZD,QAAQC,IAAIiK,EAAQ,GACnB,CAACA,IAgkBJ,OACE4mB,eAAAqC,WAAA,CAAA1N,SAAA,CACES,cAACmd,KAAQ,CACPC,aAAc,CACZC,SAAU,MACVC,WAAY,UAEdC,KAAM9F,EACN+F,iBAAkB,IAClBC,QAASA,IAAM/F,GAAW,GAC1BgG,aAAc,CACZ,mBAAoB,cAEtBhd,QAASV,cAAA,QAAMzkB,GAAG,aAAYgkB,SAAEgY,MAElCvX,cAAC6K,IAAU,CAACpU,QAASyO,EAAMzO,UAC1BzS,GACC4mB,eAAC8I,IAAS,CAAC1O,SAAS,KAAKoG,MAAO,CAAEK,UAAW,SAAUlM,SAAA,CAGnDrlB,GAEE8lB,cAAC2L,IAAI,CACHC,WAAS,EACT+R,UAAU,SACV9R,eAAe,aACf+R,WAAY,IAMlB5d,cAAC2L,IAAI,CAACC,WAAS,EAACqI,QAASiF,GAA6B,EAAI,EAAE3Z,SAE1DqL,eAACe,IAAI,CAACzI,MAAI,EAACtY,GAAI,GAAIizB,GAAI,EAAEte,SAAA,CACvBS,cAAC2L,IAAI,CACHC,WAAS,EACT1I,MAAI,EACJ2a,GAAI,GACJhS,eAAe,aACf8R,UAAU,SAAQpe,SAElBS,cAAC+M,IAAU,CACT3B,MAAO,CACLK,UAAYyN,GAAwC,OAAX,SACzC/L,aAAc,QAEhBhB,QAAQ,KAAI5M,SAEX,sBACCvb,EAAQ9J,SAASyB,aACfqI,EAAQ9J,SAAS0B,SAAS0X,UAAU,EAAG,WACzCmjB,GAA4B,SASlC7L,eAACe,IAAI,CACHC,WAAS,EACT1I,MAAI,EACJ2a,GAAI,GACJhS,eAAe,aACf8R,UAAU,MACVrS,WAAY,SAAS/L,SAAA,CAErBS,cAAC8d,IAAM,CACL1S,MAAO,CAAEoB,MAAOtH,EAAM6Y,eACtBnqB,KAAK,aACLsM,MAAO0W,EACPoH,eAAgBA,CAACpX,EAAOqX,KACtBhH,EAASgH,EAAS,EAEpB7P,SAAUA,CAACxH,EAAOsX,KAChBrH,EAAUqH,EAAS,EAErB9R,KAAK,UAEPpM,cAACkN,IAAG,CAACiR,GAAI,EAAGnS,GAAI,CAAEP,UAAW,OAAQlM,SA5uBpC,CACb,EAAG,iBACH,EAAG,KACH,EAAG,OACH,EAAG,YACH,EAAG,cAwuB8B,IAAXyX,EAAeA,EAAQJ,QAKnC5W,cAAC2L,IAAI,CACHC,WAAS,EACTR,MAAO,CAAEK,UAAW,QACpBvI,MAAI,EACJ2a,GAAI,GACJhS,eAAe,aACf8R,UAAU,MAAKpe,SAEfS,cAACqN,IAAS,CACRlB,QAAQ,WACRC,KAAK,QACLhB,MAAO,CAAErG,MAAO,QAChBxpB,GAAG,4BACHia,MAAM,SACN0K,MAAO4W,EACP1I,SAAWxH,GAAUmQ,EAAUnQ,EAAMyH,OAAOnO,OAC5CsN,WAAY,CAAEC,kBAAkB,GAChC2Q,WAAS,EACTC,KAAK,QAIkC,UAA1CC,aAAaC,QAAQ,kBAEpB3T,eAACe,IAAI,CACHC,WAAS,EACT1I,MAAI,EACJ2a,GAAI,GACJhS,eAAe,aACf8R,UAAU,SAAQpe,SAAA,CAEjBrlB,GACC0wB,eAACmC,IAAU,CACT3B,MAAO,CAAEK,UAAW,OAAQ0B,aAAc,QAC1ChB,QAAQ,QAAO5M,SAAA,CAChB,gBACe,IACb,GAAGrlB,EAASyB,aAAazB,EAAS0B,SAAS0X,UAC1C,EACA,SAKN0M,cAAA,OACEoL,MAAO,CACLC,QAAS,OACTmT,SAAU,QACVjf,SAEFqL,eAAA,OACEQ,MAAO,CACLC,QAAS,OACTmT,SAAU,SACVhT,IAAM0N,GAAwC,UAAX,SACnCnU,MAAQmU,GAAsC,MAAT,QACrC3Z,SAAA,CAEFS,cAACye,IAAI,CACHtS,QACE2M,IAAuB,OAAZA,GAAmB,SAAW,WAE3CtM,MAAM,UACNR,GAAI,CACFX,QAAS,OACTC,WAAY,SACZO,eAAgB,SAEhBI,OAAQ,UACR,mBAAoB,CAClByS,WAAYxZ,EAAM6Y,cAClBY,YAAa,MACbC,YAAa,QACbC,YAAa,gBAEf,qBAAsB,CACpBA,YAAa,UACbrS,MAAO,WAET4C,WAAY,SACZhC,SAAU,OACVrI,MAAO,SAET0H,QAluBtB,WAEE0M,GADgB,IAEhBJ,GAAW,KACb,EA+tBsBvjB,MAAO,QAGTwK,cAACye,IAAI,CACHtS,QACE2M,IAAuB,OAAZA,GAAmB,SAAW,WAE3CtM,MAAM,UACNR,GAAI,CACFjH,MAAO,QAEPsG,QAAS,OACTC,WAAY,SACZO,eAAgB,SAEhBI,OAAQ,UACR,mBAAoB,CAClByS,WAAYxZ,EAAM6Y,cAClBY,YAAa,MACbC,YAAa,QACbC,YAAa,gBAEf,qBAAsB,CACpBA,YAAa,UACbrS,MAAO,WAET4C,WAAY,SACZhC,SAAU,QAEZX,QA1vBtB,WAEE0M,GADgB,IAEhBJ,GAAW,KACb,EAuvBsBvjB,MAAO,QAGTwK,cAACye,IAAI,CACHtS,QACE2M,IAAuB,OAAZA,GAAmB,SAAW,WAE3CtM,MAAM,UACNR,GAAI,CACFjH,MAAO,QAEPsG,QAAS,OACTC,WAAY,SACZO,eAAgB,SAEhBI,OAAQ,UACR,mBAAoB,CAClByS,WAAYxZ,EAAM6Y,cAClBY,YAAa,MACbC,YAAa,QACbC,YAAa,gBAEf,qBAAsB,CACpBA,YAAa,UACbrS,MAAO,WAET4C,WAAY,SACZhC,SAAU,QAEZX,QAlxBtB,WAEE0M,GADgB,IAEhBJ,GAAW,KACb,EA+wBsBvjB,MAAO,QAETwK,cAACye,IAAI,CACHtS,QACE2M,IAAuB,WAAZA,GACP,SACA,WAENtM,MAAM,UACNR,GAAI,CACFjH,MAAO,QACPsG,QAAS,OACTC,WAAY,SACZO,eAAgB,SAChBI,OAAQ,UACR,mBAAoB,CAClByS,WAAYxZ,EAAM6Y,cAClBY,YAAa,MACbC,YAAa,QACbC,YAAa,gBAEf,qBAAsB,CACpBA,YAAa,UACbrS,MAAO,WAGT4C,WAAY,SACZhC,SAAU,QAEZX,QAnyBtB,WACEqL,GAAkB,GAClBiB,GAAW,SACb,EAiyBsBvjB,MAAO,gBAKZsjB,IAAuB,WAAZA,IACV9Y,cAACqN,IAAS,CACRrB,GAAI,CACFP,UAAW,SACX1G,MAAQmU,GAAsC,QAAT,QAGvC/M,QAAQ,WACRC,KAAK,QACL1tB,KAAK,SACLnD,GAAG,SACHia,MAAM,gBACNgY,WAAY,CACVC,kBAAkB,EAClBqR,eAAgB96B,GACdgc,cAAC2N,IAAc,CAACC,SAAS,QAAOrO,SAC9BS,cAAA,UAAAT,SACGwf,aAA2B/6B,EAAQyS,cAK5CyJ,MAAOkX,EACPhJ,SAAWxH,IACTyQ,EAAUzQ,EAAMyH,OAAOnO,MAAM,OAQvCF,cAAC2L,IAAI,CACHC,WAAS,EACT1I,MAAI,EACJ2a,GAAI,GACJhS,eAAe,aACf8R,UAAU,SAAQpe,SAEjBrlB,GACC8lB,cAAC+L,IAAM,CACLX,MAAO,CACLK,UAAW,SACX1G,MAAQmU,GAAsC,QAAT,QAGvC/M,QAAQ,YACRM,QA5aMruB,UAmBtB,GAJKo6B,IAAYJ,IACfK,IAAW,GAGE,IAAX7B,EAMF,OALAY,EACE,+CAAiDt9B,EAASyB,WAE5D+7B,GAAW,QACXe,IAAW,GAIb,UAEQa,KAEN,MAAM0F,EACJ,iCACA9kC,EAASyB,UACT,IACAzB,EAAS0B,SACT,uBACA66B,EACA,eACAp8B,EACA,OACAgU,EAGF,GAAI+oB,EAAS,EAAG,OArYpBh5B,eAA+B4gC,GAC7B,MAAMC,EAAU,IAAI19B,KAEd29B,EACJD,EAAQrzB,mBAAmB,QAFb,CAAEuzB,UAAW,SAG3B,IACAF,EAAQ1uB,qBAEV,IAAIjQ,EAAQ,CACV7D,OAAQ26B,EACRgI,KACE,WACAllC,EAASyB,UACT,IACAzB,EAAS0B,SACT,sBACAsjC,EACFG,KAAML,EACNzC,UAAWv4B,EAAQzI,GACnB+jC,QAASt7B,EAAQ5I,MAAMG,GACvBgkC,wBAAyBv7B,EAAQ5I,MAAMG,GACvCikC,uBAAwBpjC,GAAKb,GAC7BkkC,0BAA2Bz7B,EAAQyS,QAAQlb,GAC3ChC,UAAWyK,EAAQyS,QAAQlb,GAC3BmkC,yBAA0B17B,EAAQilB,OAAO1tB,GACzCivB,SAAUxmB,EAAQilB,OAAO1tB,GACzBokC,0BAA2B37B,EAAQilB,OAAO7sB,KAAKb,GAC/CqkC,UAAW57B,EAAQilB,OAAO7sB,KAAKb,UAGd8Y,IAAIC,QACrBC,YAAiB2lB,IAAkC,CAAE55B,UAEzD,CAqWYu/B,CAAgBb,SAnW5B5gC,iBACE,MAAM0hC,GAAe97B,EAAQ87B,aAAe,GAAKp3B,OAAOq3B,WAAW3I,GAC7D92B,EAAQ,CACZ/E,GAAIyI,EAAQzI,GACZ6b,UAAWpT,EAAQoT,UACnB4oB,YAAah8B,EAAQg8B,YACrBF,eAEIvyB,QAAe8G,IAAIC,QACvBC,YAAiB2lB,IAAyB,CAAE55B,WAE9C61B,GAAO6D,MAAM,uBAAyBr6B,KAAKC,UAAU2N,GACvD,CAwVY0yB,GAEN,MAAMC,QAxVZ9hC,eAAwC4gC,GACtC,IAAIkB,EAAuB,EAEvB5/B,EAAQ,CACV6/B,2BAA4Bn8B,EAAQilB,OAAO1tB,GAC3CivB,SAAUxmB,EAAQilB,OAAO1tB,GACzBkB,OAAQ26B,EACRgJ,4BAA6Bp8B,EAAQilB,OAAO7sB,KAAKb,GACjDqkC,UAAW57B,EAAQilB,OAAO7sB,KAAKb,GAC/B8kC,4BAA6Br8B,EAAQyS,QAAQlb,GAC7ChC,UAAWyK,EAAQyS,QAAQlb,GAC3B6jC,KAAMJ,EACNsB,QAAQ,GAENt8B,EAAQ5I,QACVkF,EAAQ,IACHA,EACHigC,0BAA2Bv8B,EAAQ5I,MAAMG,GACzC+jC,QAASt7B,EAAQ5I,MAAMG,KAG3B,IAAIgS,QAAe8G,IAAIC,QACrBC,YAAiB2lB,IAAoC,CAAE55B,WAQzD,OALIiN,GAAUA,EAAOmH,OAEnBwrB,EAAuB3yB,EAAOmH,KAAKwJ,yBAAyB3iB,IAGvD2kC,CACT,CAyTyChiB,CACjC8gB,SAxTR5gC,eAAmC4gC,EAAakB,GAC9C,MAAMzkC,EACJuI,EAAQilB,OAAO7sB,MAAQ4H,EAAQilB,OAAO7sB,KAAKX,aACvCuI,EAAQilB,OAAO7sB,KAAKX,aACpB,yBAEN,IAAIoB,EAAWmH,EAAQ5I,MAAMyB,SACxBA,IAAUA,EAAWmH,EAAQyS,QAAQ5Z,UAI1C,MAAM2jC,QAAsBC,aAC1Bz8B,EAAQilB,OAAOyX,iBACfC,YAAgBvJ,GAChBv6B,EACApB,GACA,EACA,EACAuI,EAAQyS,QAAQlb,GAChByI,EAAQyS,QAAQmqB,cAChB58B,EAAQyS,QAAQoqB,sBAElB1K,GAAO6D,MAAM,oBACb7D,GAAO6D,MAAMwG,GAGb,MAAMvB,EAAU,IAAI19B,KAEd29B,EACJD,EAAQrzB,mBAAmB,QAFb,CAAEuzB,UAAW,SAG3B,IACAF,EAAQ1uB,qBACV,IAAIjQ,EAAQ,CACVkqB,SAAUxmB,EAAQilB,OAAO1tB,GACzBulC,qBAAsB98B,EAAQilB,OAAO1tB,GACrChC,UAAWyK,EAAQyS,QAAQlb,GAC3BwlC,YAAa,0CAA4C7B,EACzDvgC,OAAQ,UACRqiC,eAAgBR,EAAc9jC,OAAOnB,GACrC0lC,oBAAqBT,EAAc9jC,OAAOwkC,eAC1CC,8BACEX,EAAc9jC,OAAOykC,8BACvBC,oBAAqBZ,EAAc9jC,OAAO0kC,oBAC1CC,qBAAsBb,EAAc9jC,OAAOnB,GAC3C+lC,cAAed,EAAc9jC,OAAOiC,OACpC4iC,iCAAkCrB,EAClCsB,qBAAsBtB,EACtBzjC,OAAQ26B,EACRqK,gBAAiB,EACjB5kC,SAAUA,GAERmH,EAAQ5I,QACVkF,EAAQ,IACHA,EACHohC,oBAAqB19B,EAAQ5I,MAAMG,GACnC+jC,QAASt7B,EAAQ5I,MAAMG,WAGR8Y,IAAIC,QACrBC,YAAiB2lB,IAA8B,CAAE55B,UAErD,CA+PYqhC,CAAoB3C,EAAakB,SAvM7C9hC,iBACE,MACMqmB,EAAKzgB,EAAQilB,OAAO7sB,KAAKytB,YAEzB2R,EAAcx3B,EAAQyS,QAAQ7C,KAC9BguB,EAAe59B,EAAQyS,QAAQhb,aAC/BomC,EAAc79B,EAAQyS,QAAQ6lB,sBAChC,MAAQt4B,EAAQyS,QAAQ6lB,sBAAsBthB,cAC9C,QACJmb,GAAO6D,MAAM,iBAAmB6H,GAChC,MAAMC,EAAc99B,EAAQo7B,KAC5B,IAAIviC,EAAWmH,EAAQ5I,MAAMyB,SAC7B,MAAMklC,EAAkBC,mBAAmBJ,GACtC/kC,IAAUA,EAAWmH,EAAQyS,QAAQ5Z,UAC1C,MAMM6nB,EACJ,gBACA8W,EACA,qBATYpE,EAAOjF,eAAe0P,EAAa,CAC/CzW,MAAO,WACPvuB,WACAolC,sBAAuB,IAQvB,oCACAH,EACA,oDACAC,EACA,kCACF5L,GAAO6D,MAAM,YAAcvV,GAC3B0R,GAAO6D,MAAM,SAAWtV,GACxB,MAAMwd,QAAkB1d,aAAQC,EAAIC,EAAK2X,MACzClG,GAAO6D,MAAM,eAAiBr6B,KAAKC,UAAUsiC,GAC/C,CAwKYC,SAtKZ/jC,iBAAmD,IAADgkC,EAAAC,EAChD,MAAMC,EAGL,QAH6BF,EAAGG,aAChB,QADyBF,EACxCr+B,EAAQyS,eAAO,IAAA4rB,OAAA,EAAfA,EAAiBG,0BACjB,CAAC,UACF,IAAAJ,OAAA,EAHgCA,EAG9BE,yBACGnI,QAA0BC,aAAiBp2B,EAAQyS,QAAQlb,IACjE,IAAI8+B,EAAyB,GAC7B,IAAK,IAAIC,KAAgBH,EACvBE,EAAuBxyB,KAAKyyB,EAAa7+B,cAE3C,MAAMm9B,EAAgByB,EAGhBwH,EAAc79B,EAAQyS,QAAQ6lB,sBAChC,MAAQt4B,EAAQyS,QAAQ6lB,sBAAsBthB,cAC9C,QACJ,IAAIne,EAAWmH,EAAQ5I,MAAMyB,SACxBA,IAAUA,EAAWmH,EAAQyS,QAAQ5Z,UAC1C,MAAM8e,EAAQyb,EAAOjF,eAAe0P,EAAa,CAC/CzW,MAAO,WACPvuB,WACAolC,sBAAuB,IAEnB1H,EAAa+H,EACft+B,EAAQilB,OAAO7sB,KAAKT,UAAY,IAAMqI,EAAQilB,OAAO7sB,KAAKR,SAC1DoI,EAAQilB,OAAO7sB,KAAKT,UACpB,IACAqI,EAAQilB,OAAO7sB,KAAKR,SAAS4+B,OAAO,GAGlCG,EAAU,CACd8H,mBAAoBvoC,EAASyB,UAC7B+mC,QAAS/mB,EACTif,YAAaL,EACboI,aAAc3+B,EAAQyS,QAAQ7C,KAC9BonB,kBAAkB,GAGpBlhC,QAAQC,IAAI,iBAAkBG,SAGTma,IAAI4C,KACvB,kBACA,2BACA,CACEC,KAAM,CACJ+jB,aAAc,iCACdC,QAAS,wCAAmCX,IAC5CrjB,KAAM,KACNikB,YAAa,CAACjhC,EAASuB,cACvB2/B,YAAa,GACbC,aAAczC,EACd0C,QAASt3B,EAAQyS,QAAQ8kB,kBACzBC,YAAax3B,EAAQyS,QAAQ7C,KAC7Bra,UAAWyK,EAAQyS,QAAQlb,GAC3Bkb,QAASzS,EAAQyS,QACjBkkB,QAASA,EACTc,eAAgBz3B,EAAQyS,QAAQilB,QAChCC,aAAc33B,EAAQyS,QAAQmlB,aAC9BC,YAAa7pB,iCAInBlY,QAAQC,IAAI,cACd,CAyGY6oC,GACN9oC,QAAQC,IAAI,uBAId,CAEA,IAAI8oC,EAEFA,EADEzL,EAAS,EAET,0BACAl9B,EAASyB,UACT,mCAGA,kBACAzB,EAASyB,UACT,kCAIJ,MAAM2E,EAAQ,CACZ/E,GAAIm9B,GACJkE,WAAY,IAAIr7B,YAEZ8S,IAAIC,QACRC,YAAiB2lB,IAAmC,CAAE55B,WAGxDk3B,EAAYqL,GACZnL,GAAW,GACXW,IAAQ,GACR7V,OAAOnoB,SAASsiC,KAAO,GACzB,CAAE,MAAOvV,GACP+O,GAAO3V,MAAM,yCAA2C4G,EAAI1G,SAC5DyV,GAAO3V,MAAM4G,GACb,MAAM0b,QAAoBtmB,aACxBxY,EAAQyS,QAAQlb,GAChB,QACA,mCACA,EACA6rB,GAUF,OARA+O,GAAO6D,MAAM8I,GACbtL,EACE,0BACKJ,EAAS,EAAI,UAAY,gBAA5B,gBAGJM,GAAW,QACXe,IAAW,EAEb,GA6TgBjK,SAAUgK,KAAY5B,EAAOrX,SAK5BiZ,GACCxY,cAACyO,IAAgB,CAACrC,KAAM,GAAIJ,GAAI,CAAEQ,MAAO,UAEzC,8BASf,E,4CC/hCQ,OAA0B,mC,0BCYzC,MAAM1H,GAAmB,CAAEC,MAAO,OAAQC,SAAU,SAyMrCC,oBAvMf,SAAgBC,GACd,MAAOwC,EAAOqb,GAAYvd,mBAAS,IAC5BF,EAAOC,GAAYC,mBAAS,KAC5B+K,EAAkBC,GAAuBhL,mBAAS,KAClDC,EAAMC,GAAWF,mBAAS,KAC1BK,EAAUC,GAAeN,sBACzBhF,EAAOiQ,GAAYjL,qBACpBiB,EAAgBC,YAAc,qBAEpC5G,qBAAU,KAENoF,EAAM7qB,SAAS0B,OACfmpB,EAAM7qB,SAAS0B,MAAM2rB,OACrBxC,EAAM7qB,SAAS0B,MAAMupB,QAErByd,EAAS7d,EAAM7qB,SAAS0B,MAAM2rB,OAC9BnC,EAASL,EAAM7qB,SAAS0B,MAAMupB,OAChC,IAgBF,MAAM0d,EAAiB5kC,UACrB4oB,IAAKgc,eAAe1d,GACjB1C,MAAMlO,IACL5a,QAAQC,IAAI2a,GACZquB,EAAS,EAAE,IAEZlgB,OAAOuE,GAAQtB,EAAYsB,EAAI1G,UAAS,EAgB7C,OACEkK,eAAA,OAAArL,SAAA,CACES,cAAC6K,IAAU,CACTpU,QAASyO,EAAMzO,QACfra,KAAM,KACN0uB,WAAW,EACXC,UAAW7F,EAAM6F,UACjBC,YAAa9F,EAAM7qB,SAAS4wB,SAC5BC,QAAQ,EACRC,mBAAoBjG,EAAMiG,qBAE5BP,eAAA,OACEQ,MAAO,CACLrG,MAAO,OACPsG,QAAS,OACTC,WAAY,SACZC,cAAe,SACfC,IAAK,OACLC,UAAW,QACXC,QAAS,UACTnM,SAAA,CAEFS,cAAC+M,IAAU,CAACZ,QAAQ,KAAKH,GAAI,CAAEgB,UAAW,UAAWzN,SAClD,wBAEQ,IAAVmI,GACC1H,cAAC+M,IAAU,CAACZ,QAAQ,QAAQH,GAAI,CAAEgB,UAAW,UAAWzN,SACrD,sEAGM,IAAVmI,GACC1H,cAAC+M,IAAU,CAACZ,QAAQ,QAAQH,GAAI,CAAEgB,UAAW,UAAWzN,SACrD,0DAGJsG,GACC7F,cAACkN,IAAG,CACF9B,MAAO,CACLrG,MAAO,OACPsG,QAAS,OACTE,cAAe,SACfD,WAAY,SACZE,IAAK,SACL2B,aAAc,QACd5N,SAEFS,cAAC+M,IAAU,CAACZ,QAAQ,QAAQf,MAAO,CAAEoB,MAAO,OAAQjN,SACjDsG,MAII,IAAV6B,EACCkD,eAAAqC,WAAA,CAAA1N,SAAA,CACES,cAACqN,IAAS,CACRrB,GAAI,IACClH,GACHE,SAAWyB,EAA0B,QAAV,SAE7B+G,WAAY,CAAEC,kBAAkB,GAChCtB,QAAQ,WACRC,KAAK,QACL7wB,GAAG,kBACHia,MAAM,oBACN0K,MAAOqQ,GAAsC,GAC7CnC,SAAWv0B,GAAM22B,EAAoB32B,EAAEw0B,OAAOnO,SAEhDF,cAACkN,IAAG,CACFlB,GAAI,CACFX,QAAS,OACTE,cAAe,SAEfC,IAAK,OACLzG,MAAO,QACPxF,SAEFS,cAACqN,IAAS,CACRrB,GAAI,IACClH,GACHwI,UAAW,SACXtI,SAAWyB,EAA0B,QAAV,SAE7B/nB,KAAK,WACL8uB,WAAY,CAAEC,kBAAkB,GAChCtB,QAAQ,WACRC,KAAK,QACL7wB,GAAG,WACHia,MAAM,WACN0K,MAAOuF,EACP2I,SAAWv0B,GAAM6rB,EAAQ7rB,EAAEw0B,OAAOnO,WAItCF,cAAC+L,IAAM,CACLI,QAAQ,YACRH,GAAI,IACClH,GACHE,SAAWyB,EAA0B,QAAV,SAE7BgG,QA/GUruB,UACpB4oB,IAAKic,qBAAqB3d,EAAOiL,EAAkB9K,GAChD7C,MAAMlO,IACL5a,QAAQC,IAAI,yBAA0B2a,GACtCwQ,EAAMsC,QAAQ3f,KAAK,SAAU,CAC3B4f,SAAUvC,EAAM7qB,SAAS0B,MAAM0rB,UAC/B,IAEH5E,OAAOuE,IACNttB,QAAQC,IAAI,sBAAuBqtB,EAAI,GACvC,EAsGMoH,SACqC,IAAnC+B,EAAiBvB,OAAOpsB,QAAuC,IAAvB6iB,EAAKuJ,OAAOpsB,OACrD2c,SACF,sBAKHqL,eAAAqC,WAAA,CAAA1N,SAAA,CACES,cAACqN,IAAS,CACRrB,GAAI,IACClH,GACHE,SAAWyB,EAA0B,QAAV,SAE7B+G,WAAY,CAAEC,kBAAkB,GAChCtB,QAAQ,WACRC,KAAK,QACL7wB,GAAG,QACHia,MAAM,QACN0K,MAAOoF,EACP8I,SAAWv0B,IACT,IAAIk1B,EAAKl1B,EAAEw0B,OAAOnO,MAClB6O,EAAKA,EAAGC,OAAOC,cACf1J,EAASwJ,GACLlJ,GAAUC,GAAa,IAG/B9F,cAAC+L,IAAM,CACLI,QAAQ,YACRH,GAAI,IACClH,GACHE,SAAWyB,EAA0B,QAAV,SAE7BgG,QAvKZruB,iBACE,GAAIknB,EACF,UACQ0d,GACR,CAAE,MAAO5b,GACPttB,QAAQC,IAAI,8BACZD,QAAQC,IAAIqtB,GACZtB,EAAYsB,EAAI1G,QAClB,MAEAoF,EAAY,qCAEhB,EA4JY0I,SAAkC,IAAxBlJ,EAAM0J,OAAOpsB,OAAa2c,SACrC,sBAQb,IChNA,MAAM2jB,GAAiBC,IACrB,MAAMC,EAAYC,SAASC,cAAc,UACzCF,EAAUG,UAAY,oWAKuBJ,WAE7CE,SAASG,KAAKC,YAAYL,EAAU,EAGhCM,GAActlC,UAClB,IACE,MAAMmP,QAAe8G,IAAIC,QACvBC,YAAiBrB,IAAoB,CACnC8O,QAAS,eAAezoB,IACxB0oB,QAAS,sBAGb,IAAI0hB,EAAU,KAEd,GAAIp2B,EAAOmH,KAAKkN,WAAY,CAC1B,IAAIM,EAAgBviB,KAAK4S,MAAMhF,EAAOmH,KAAKkN,WAAWM,eAGtD,GAAIA,EAAcC,OAASD,EAAcC,MAAM,sBAAuB,CAEpEwhB,EADYzhB,EAAcC,MAAM,sBAChBjd,KAAKkd,GAASA,EAAK7mB,IACrC,CACF,CACA,OAAOooC,CACT,CAAE,MAAO9pC,GACPC,QAAQC,IAAI,6CAA8CR,EAC5D,G,cCrCa,I,qBCqCAqqC,I,6BCqBfC,KAAY,CACVC,IAAK,4EACLC,WAAUA,CAACnd,EAAOod,KAGdhyB,eAAsCiyB,MACtCrd,EAAMsd,WAENL,KAAwB,CACtBM,QAASvd,EAAMwd,SACfC,cACE,iEACFC,UACE,gHAGC1d,GAET2d,YAAavyB,aACbwyB,aAAc,CAAC,IAAIC,KAAaC,gBAChCC,QAAS,yBAA2B3yB,suBAAY4yB,oBAChDC,iBAAkB,IAGpB,MAAMC,GAAgBC,gBAAK,IACzB,0EAA6CliB,OAAOhpB,GAClD2oB,OAAOnoB,SAAS2qC,aAGdC,GAAoBF,gBAAK,IAC7B,0EAAyCliB,OAAOhpB,GAC9C2oB,OAAOnoB,SAAS2qC,aAGdE,GAAoBH,gBAAK,IAC7B,0EAAiDliB,OAAOhpB,GACtD2oB,OAAOnoB,SAAS2qC,aAOdG,GAAiBJ,gBAAK,IAC1B,yEAA8CliB,OAAOhpB,GACnD2oB,OAAOnoB,SAAS2qC,aAGdI,GAA6BL,gBAAK,IACtC,yEAA0DliB,OAAOhpB,GAC/D2oB,OAAOnoB,SAAS2qC,aAGdK,GAA2BN,gBAAK,IACpC,2EAAyDliB,OAAOhpB,GAC9D2oB,OAAOnoB,SAAS2qC,aAGdM,GAAeP,gBAAK,IACxB,2EAA4CliB,OAAOhpB,GACjD2oB,OAAOnoB,SAAS2qC,aAGdO,GAAeR,gBAAK,IACxB,+BAA4CliB,OAAOhpB,GACjD2oB,OAAOnoB,SAAS2qC,aAGdQ,GAAgBT,gBAAK,IACzB,oEAA6CliB,OAAOhpB,GAClD2oB,OAAOnoB,SAAS2qC,aAGdS,GAAkBV,gBAAK,IAC3B,mEAA+CliB,OAAOhpB,GACpD2oB,OAAOnoB,SAAS2qC,aAGdU,GAAWX,gBAAK,IACpB,+BAAgCliB,OAAOhpB,GAAM2oB,OAAOnoB,SAAS2qC,aAEzDW,GAAeZ,gBAAK,IACxB,+BAAoCliB,OAAOhpB,GAAM2oB,OAAOnoB,SAAS2qC,aAE7DY,GAAUb,gBAAK,IACnB,4DAAuCliB,OAAOhpB,GAAM2oB,OAAOnoB,SAAS2qC,aAEhEa,GAAcd,gBAAK,IACvB,mEAA2CliB,OAAOhpB,GAChD2oB,OAAOnoB,SAAS2qC,aAGd7O,GAAS,IAAIhW,IAAO,OAC1B,IAAIsc,GACJ,MAAMl5B,GAAQyO,OAIR8zB,GAAyB,QAC/B,IAAIC,GAAczH,aAAaC,QAAQ,gBAFZ,UAGvByH,GACF1H,aAAaC,QAAQ,oBAAsBuH,GAEzCjS,GAAQoS,YAAY,CACtBxR,QAAS,CACPyR,QAAS,CACPC,KAAMJ,OAKL,MAAMve,GAAU4e,cACV7S,GAAcjN,IAAMjH,gBAygClBwkB,SAAoB5e,aAvgCnC,SAAaC,GACX,MAAO9oB,EAAM+pB,GAAWX,sBACjBsF,EAAWub,GAAgB7gB,sBAC3B8gB,EAAeC,GAAoB/gB,oBAAS,IAC5CghB,EAAgBC,GAAiBjhB,mBAAS,CAAC,IAC3CjsB,EAAWmtC,GAAgBlhB,mBAAS,KACpC/O,EAASkwB,GAAcnhB,sBACvB7hB,EAAkBijC,GAAuBphB,sBACzCqhB,EAAQC,GAAathB,sBACrBuhB,EAAoBC,GAAyBxhB,sBAC9C,MAAEzpB,EAAK,QAAE2jB,GAAY2F,qBAAWjG,MAC/B6nB,EAAgBC,GAAqB1hB,oBAAS,IAC9CgT,EAASC,GAAcjT,oBAAS,IAChC2hB,EAAaC,GAAkB5hB,oBAAS,IACxC6hB,EAAW7T,GAAgBhO,oBAAS,IAEpC8hB,EAAYC,GAAiB/hB,oBAAS,IACtCuY,EAAeyJ,GAAoBhiB,mBAAS,OAC5CiiB,EAAcC,GAAmBliB,oBAAS,IAC1CkN,EAAgBiV,GAAqBniB,qBAC5C,IAAIoiB,GAAc,CAChBC,gBAAiB,KACjBC,cAAe,KACfpnB,QAAS,wDACTqnB,aAAa,GAEf,MAAOp1B,GAAaq1B,IAAkBC,mBAAQpkB,OACvCqkB,IAAqBD,mBAAQnkB,MAG9BqkB,GAAkB/pC,UACtB,MAAM6B,QAAiBoU,IAAIC,QACzBC,YAAiBkK,IAAgB,CAC/BllB,UAAW6uC,EACX3lC,OAAQ,CACNqM,IAAK,CAAC,CAAEtP,OAAQ,CAAEmD,IAAI,IAAW,CAAED,QAAS,CAAEC,IAAI,MAEpDY,MACF,MAEIgK,QAAetN,EAASyU,KAAK+J,eAAetc,MAClD2kC,EAAUv5B,EAAO,EAGb86B,GAAuBjqC,UAC3B,MAOM6B,QAAiBoU,IAAIC,QACzBC,YAAiBiK,IAAmB,CAClCjlB,UAAW6uC,EACX3lC,OAVW,CACbqM,IAAK,CACH,CAAEtP,OAAQ,CAAEmD,IAAI,IAChB,CAAED,QAAS,CAAEC,IAAI,IACjB,CAAEygB,UAAW,CAAEzgB,IAAI,MAOnBY,MACF,MAEIgK,QAAetN,EAASyU,KAAKuM,qBAAqB9e,MAExD6lC,GAwOF,SAAuBx0B,GACrB,GAAIA,EACF,OAAOA,EAAStF,MAAK,CAACoL,EAAIC,IACpBD,EAAGqK,SAASC,QAAUrK,EAAGoK,SAASC,QAAgB,EAClDtK,EAAGqK,SAASC,QAAUrK,EAAGoK,SAASC,SAAiB,EACnDtK,EAAGqK,SAASpoB,KAAOge,EAAGoK,SAASpoB,GAC7B+d,EAAGsK,QAAUrK,EAAGqK,QAAgB,EAChCtK,EAAGsK,QAAUrK,EAAGqK,SAAiB,EAC9B,EAEF,IAGX,MAAO,EACT,CAtPiB0kB,CAAc/6B,IAC7B25B,GAAkB,EAAM,EAGpBqB,GAAwBnqC,MAAO7E,EAAWivC,KAC9C,MAIMvoC,QAAiBoU,IAAIC,QACzBC,YAAiBmN,IAA0B,CACzCnoB,YACAkJ,OAPW,CACbqM,IAAK,CAAC,CAAEtP,OAAQ,CAAEmD,IAAI,IAAW,CAAED,QAAS,CAAEC,IAAI,MAOhDY,MACF,MAEF,IAAIgK,QAAetN,EAASyU,KAAKgN,yBAAyBvf,MAEtDqmC,GACFj7B,EAAOk7B,QAAQ,CACbltC,GAAI,IACJmtC,aAAc,gBAGlB9B,EAAoBr5B,EAAO,EAGvBo7B,GAA6BvqC,UAAmB,IAADwqC,EAAAC,EAAAC,EAAAC,EAAAC,EACnD,IAAIpN,EAAe,GACnB,MAAM37B,QAAiBoU,IAAIC,QACzBC,YAAiBqM,IAAqB,CAAErnB,UAAW6uC,KAErD,IACIa,GADCC,GAAYjpC,EAASyU,KAAKkM,oBAAoBze,MA+ChD,IAADgnC,GA5CQ,OAARD,QAAQ,IAARA,KAAUE,oBACVF,EAASE,mBAAmBxmC,OAAS,GAErCqmC,EAAqBtpC,KAAK4S,MAAM22B,EAASE,oBACzCpC,EAAsB,IACjBkC,EACHE,mBAAoBH,MAGtBA,EAAqB,CACnBI,0BAA2B,CACzBC,YAAY,EACZ/b,gBAAiBwZ,EAAmBhB,YACpCwD,QAAS,GACTC,cAAc,EACdC,cAAc,EACdC,UAAU,EACVC,sBAAuB,UACvBC,YAAoB,OAAPnzB,QAAO,IAAPA,KAAS7C,KAClB6C,EAAQ7C,KACR,kDACJi2B,gBAAgB,EAChBC,eAAgB,qBAGpB9C,EAAsB,IACjBkC,EACHE,mBAAoBH,KAIxB3K,aAAayL,QAAQ,mBAAoBb,EAASc,oBAClD1L,aAAayL,QAAQ,cAAeb,EAASnD,aAC7CzH,aAAayL,QAAQ,eAAgBb,EAASe,cAC9C3L,aAAayL,QAAQ,eAAgBb,EAASgB,cAC9C5L,aAAayL,QAAQ,YAAab,EAASiB,WAC3C7L,aAAayL,QACX,mBACkB,QAAlBnB,EAAAK,SAAkB,IAAAL,GAA2B,QAA3BC,EAAlBD,EAAoBS,iCAAyB,IAAAR,OAA3B,EAAlBA,EAA+C7C,kBAC7CF,SAI2Dr/B,KAA3C,QAAlBqiC,EAAAG,SAAkB,IAAAH,GAAuB,QAAvBC,EAAlBD,EAAoBsB,6BAAqB,IAAArB,OAAvB,EAAlBA,EAA2CsB,iBAE3C/L,aAAayL,QACX,gBACkB,QADHZ,EACfF,SAAkB,IAAAE,OAAA,EAAlBA,EAAoBiB,sBAAsBC,eAG9CxW,GAAQyW,aACNpB,EAASnD,YAAY/W,OACrBgX,GACQ,OAARkD,QAAQ,IAARA,GAAmB,QAAXF,EAARE,EAAUiB,iBAAS,IAAAnB,OAAX,EAARA,EAAqBha,QAEvBwY,EAAiB0B,EAASnD,YAAY/W,QACtC4M,EAAesN,EAASnD,YACxBnK,EAAeA,EAAa5M,OAC5BwY,EAAiB5L,EAAa,EA4BhC,SAAS2O,KACP,MAAMC,EAAKnH,SAASoH,cAAc,qBAC9BD,IACFA,EAAGE,SACHnD,GAAeD,GAEnB,CA/BAxnB,qBAAU,KAEJoF,GAASA,EAAM7qB,UAAY6qB,EAAM7qB,SAASg6B,SAC5CoI,GAASlqB,gBAAM2S,EAAM7qB,SAASg6B,QAC9B8B,GAAO6D,MAAM,UAAYyC,GAAO1gB,GAC5B0gB,GAAO1gB,GAAkB,KAAb0gB,GAAO1gB,GACrBqrB,GAAe,IAInBhpC,uBA6EFA,iBACEq6B,GAAW,GACX18B,EAAM9B,aAAe,CAAC,QA+DxBmE,iBACE,IAAIusC,GAAoB,EAExB,IAEE,IACE,MAAMC,QAA0B5jB,IAAKc,yBAAyB,CAC5DC,aAAa,IAEf,GACE6iB,GACAA,EAAkBrhB,mBAClBqhB,EAAkBrhB,kBAAkBC,SACpCohB,EAAkBrhB,kBAAkBC,QAAQtK,QAC5C,CACA,IAAI2rB,EACFD,EAAkBrhB,kBAAkBC,QAAQtK,QAC1C,kBAEA2rB,GAAUA,EAAOjoC,SACnBujB,EAAQykB,GACRnE,EAAcmE,EAAkB5iB,YAG9BhW,0BADA44B,EAAkB5iB,WAAW1C,MAG7B+gB,GAAa,GACVA,GAAa,GAClBsE,GAAoB,EACpB5uC,EAAM9B,aAAamC,KAAOwuC,EAE9B,CACF,CAAE,MAAO/wC,GACPC,QAAQC,IAAI,iBAAkBF,EAAE0tB,KAClC,CAEA,IAAKojB,EAAmB,CACtB,MAAMvuC,QAAa4qB,IAAKC,OACtBjV,wBACAA,gBAEFmU,EAAQ/pB,GACRqqC,EAAcrqC,EAAK4rB,YACnBqe,GAAa,GAEbtqC,EAAM9B,aAAamC,KAAOA,CAC5B,CACF,CAAE,MAAOgrB,GACU,8BAAbA,EAAIG,MAIgB,mCAAbH,EAAIG,MAIS,2BAAbH,EAAIG,MAES,0BAAbH,EAAIG,MAGb4O,GAAO6D,MACL,qDACEr6B,KAAKC,UAAUwnB,GAGvB,CACF,CAhIQ0jB,GACN,MAAM,OAAE1C,EAAM,QAAE3xB,SAAkBs0B,MAC5B,qBAAEvC,GAAyB/xB,EACjC,GAAKA,IAA8B,IAAnBA,EAAQjX,SAAsBiX,EAI5C,OAHA+Q,GAAQ3f,KAAK,aACb4wB,GAAW,QACX8R,KAKFrH,GAAclxB,iBAGVA,EAIJ,MAAO,CAAC,CAAF,EAASg5B,SAAgBzZ,QAAQ0Z,IAAI,CACzC5C,GAAqBD,GACrBD,GAAgBC,GAChBG,GAAsBH,EAAQI,GAC9BG,GAA2BP,GAC3B1E,GAAY0E,KAGV4C,GAAU5tC,MAAM2mB,QAAQinB,IAAWA,EAAOpoC,OAAS,GACrDsgC,GAAc8H,EAAO,IAGvBtE,EAAa0B,GACbrsC,EAAM9B,aAAawc,QAAUA,EAC7B1a,EAAM9B,aAAaV,UAAY6uC,EAG/B,MAAMzrB,QAAeD,aAAuB0rB,GAC5C1oB,EAAQE,gBAAgB,IACnB7jB,EAAM9B,aACT0iB,OAAQA,IAGV8b,GAAW,GACX8R,IACF,CA3HUW,EACR,CACAC,EAAS,GACR,CAACpN,IAEJje,qBAAU,KAMJunB,GALJjpC,iBACEo1B,GAAa,GACbhM,GAAQ3f,KAAK,KACb2a,OAAOnoB,SAAS2qC,QAClB,CACemG,EAAS,GACvB,CAAC9D,IAUJ,MAAM+D,GAAmBC,kBAAO,GAC3BD,GAAiBE,UACpBF,GAAiBE,SAAU,EAC3B9jB,GAAQ+jB,QAAO,CAACC,EAAavsB,KAC3B,IACE,GAoCO,OAFewsB,EAlCCD,IAqChB,YAATC,GACS,WAATA,GACS,cAATA,GACS,aAATA,GACS,aAATA,EAvCI,OAGa,SAAXxsB,EAEAusB,EAAYvgB,WAAa2c,GAAYC,iBACrC2D,EAAYnX,SAAWuT,GAAYE,gBAEnCF,GAAYG,aAAc,EAC1BhsC,EAAM9B,aAAayxC,kBAAmB,EACtC3vC,EAAM9B,aAAa0xC,kBAAmB,EACtC5vC,EAAM9B,aAAa2xC,qBAAsB,EAEzChE,GAAYC,gBAAkB2D,EAAYvgB,SAC1C2c,GAAYE,cAAgB0D,EAAYnX,OAExC7M,GAAQ3f,KAAK,CACXojB,SAAUugB,EAAYvgB,SACtBoJ,OAAQmX,EAAYnX,WAKxBuT,GAAYG,aAAc,EAC1BvgB,GAAQqkB,GAAG,GAEf,CAAE,MAAOhyC,GACPC,QAAQC,IAAI,uBAAwBF,EACtC,CAIJ,IAA4B4xC,CAJxB,KAyJJ,MAAMK,GAAqBC,IACzBhwC,EAAM9B,aAAamC,KAAO2vC,EAC1BhwC,EAAM9B,aAAa+xC,YAAcD,EACjCrsB,EAAQE,gBAAgB7jB,EAAM9B,cAC9BksB,EAAQ4lB,GACR1F,GAAa,EAAM,EAGfzT,GAAyBqZ,IAC7BlwC,EAAM9B,aAAa+xC,YAAcC,EACjClwC,EAAM9B,aAAaqsC,eAAgB,EACnCC,GAAiB,EAAK,EAGlBxb,GAAY3sB,UAChBopB,GAAQ3f,KAAK,UAAU,EAGnBqkC,GAA+BC,IACnCpwC,EAAM9B,aAAa+uB,YAAcmjB,EAAcnjB,YAC/CjtB,EAAM9B,aAAagvB,OAASkjB,EAAcljB,OAC1CvJ,EAAQE,gBAAgB7jB,EAAM9B,aAAa,EAGvCmyC,GAAmCC,IACvCtwC,EAAM9B,aAAaqyC,uBAAyBD,EAC5C3sB,EAAQE,gBAAgB7jB,EAAM9B,aAAa,EAGvC8wC,GAAuB3sC,UAG3B,IAAImuC,EAAS/pB,OAAOnoB,SAASmyC,SAGzBpE,EAAS,GACT3xB,EAAU,CAAC,EAEA,cAAX81B,IAEFA,EAAS,gCAMX,MAAMtsC,QAAiBoU,IAAIC,QACzBC,YAAiByM,IAAoB,CACnCyrB,UAAWF,KAoBf,OAhBEtsC,EAASyU,KAAKsM,mBAAmB7e,OACiB,IAAlDlC,EAASyU,KAAKsM,mBAAmB7e,MAAMS,QAEvCwlC,EAASnoC,EAASyU,KAAKsM,mBAAmB7e,MAAM,GAAG5G,GACnDkb,EAAUxW,EAASyU,KAAKsM,mBAAmB7e,MAAM,GACjDwkC,EAAWlwB,GACXiwB,EAAa0B,GAajB,SAA8BsE,GAC5B,GAAIA,EAAKC,mBAAoB,CAC3B,MAAMA,EAAqBhtC,KAAK4S,MAAMm6B,EAAKC,oBAC3CjF,EAAgBiF,EAAmB/1B,UACrC,CACF,CAjBIg2B,CAAqBn2B,GACrBkxB,EAAkBlxB,EAAQ6lB,uBAAyB,MACnDgC,aAAayL,QAAQ,YAAa3B,GAClC9J,aAAayL,QAAQ,UAAWpqC,KAAKC,UAAU6W,KAE/C0f,GAAO3V,MACL,0DAA4D+rB,GAGzD,CAAEnE,SAAQ3xB,UAAS,EAoB5B,GAAI6wB,EACF,OAAO,KAGT,SAASuF,KACP,OACE7sB,cAAA,OAAAT,SAAK,2IAKT,CAEA,MAAMutB,GAAsB9sB,cAAC6sB,GAAiB,IAE9C,OACE7sB,cAAAiN,WAAA,CAAA1N,SACES,cAAC6jB,KAAoB,CAACkJ,SAAUD,GAAqBE,YAAU,EAAAztB,SAC7DS,cAACitB,IAAoB,CAACC,aAAW,EAAA3tB,SAC/BS,cAACmtB,IAAa,CAACtZ,MAAOA,GAAMtU,SAC1BqL,eAAC2I,GAAYtT,SAAQ,CACnBC,MAAO,CAAE9jB,OAAMoqC,iBAAgB1b,YAAWwb,iBAAgB/mB,SAAA,CAE1DqL,eAAA,OAAKrvB,GAAG,eAAe6vB,MAAO,CAAEgiB,UAAW,QAAS7tB,SAAA,CAClDS,cAACqtB,IAAM,CAAA9tB,SACLS,cAAA,SAAAT,SACG9I,IAA8B,IAAnBA,EAAQjX,OApCtC,WAA8B,IAAD8tC,EAC3B,IAAIC,EAMJ,OAJEA,EADE92B,IAAkB,OAAPA,QAAO,IAAPA,GAAgB,QAAT62B,EAAP72B,EAAS82B,eAAO,IAAAD,OAAT,EAAPA,EAAkB1qC,SAAU,EAC/B6T,EAAQ7C,KAER6C,EAAQ82B,QAEbA,CACT,CA6BsBC,GACA,wBAGR5iB,eAAC6iB,IAAM,CAACjmB,QAASA,GAAQjI,SAAA,CACvBS,cAAC0tB,IAAK,CACJjC,KAAK,eACLkC,UAAWA,IACFnV,EACLxY,cAAA,OAAAT,SACES,cAAC4tB,WAAQ,CAACb,SAAU/sB,cAAA,UAAYT,SAK5BS,cAAC8kB,GAAa,CACZ2C,aAAcA,EACdoG,aAAc3F,GACdrB,OAAQA,EACRljC,iBAAkBA,EAClBpK,UAAWA,EACXkd,QAASA,EACT+hB,QAASyO,EACT9b,mBAAoB4b,EACpBhc,UAAWA,GACX6c,YAAaA,GACb7J,cACEA,GAAgC,gBAO1C,KAIN/d,cAAC0tB,IAAK,CACJjC,KAAK,WACLkC,UAAWA,IACFnV,EACLxY,cAAC4tB,WAAQ,CAACb,SAAU/sB,cAAA,UAAYT,SAC9BS,cAAC8kB,GAAa,CACZ2C,aAAcA,EACdoG,aAAc3F,GACdrB,OAAQA,EACRljC,iBAAkBA,EAClBpK,UAAWA,EACXkd,QAASA,EACT+hB,QAASyO,EACT9b,mBAAoB4b,EACpBa,YAAaA,GACb7c,UAAWA,GACXgT,cACEA,GAAgC,cAKtC,KAIN/d,cAAC0tB,IAAK,CACJjC,KAAK,WACLkC,UAAWA,IACFnV,EACLxY,cAAC4tB,WAAQ,CAACb,SAAU/sB,cAAA,UAAYT,SAC9BS,cAAC6lB,GAAW,CACVpvB,QAASA,EACT0U,mBAAoB4b,EACpBa,YAAaA,GACb7J,cACEA,GAAgC,cAKtC,KAIN/d,cAAC0tB,IAAK,CACJjC,KAAK,YACLkC,UAAWA,IACFnV,EACLxY,cAAC4tB,WAAQ,CAACb,SAAU/sB,cAAA,UAAYT,SAC9BS,cAAC0lB,GAAQ,CACPjvB,QAASA,EACTmxB,YAAaA,GACb7J,cACEA,GAAgC,cAKtC,KAIN/d,cAAC0tB,IAAK,CACJjC,KAAK,gBACLkC,UAAWA,IACFnV,EACLxY,cAAC4tB,WAAQ,CAACb,SAAU/sB,cAAA,UAAYT,SAC9BS,cAAC2lB,GAAY,CACXlvB,QAASA,EACTmxB,YAAaA,GACb7J,cACEA,GAAgC,cAKtC,KAIN/d,cAAC0tB,IAAK,CACJI,OAAK,EACLrC,KAAK,aACLkC,UAAWA,IACFnV,EACLxY,cAAC4tB,WAAQ,CAACb,SAAU/sB,cAAA,UAAYT,SAC9BS,cAACklB,GAAiB,CAChB2I,aAAcl7B,GACdk0B,OAAQA,EACRljC,iBAAkBA,EAClBpK,UAAWA,EACXkd,QAASA,EACT+hB,QAASyO,EACT9b,mBAAoB4b,EACpBhc,UAAWA,GACX6c,YAAaA,GACb7J,cACEA,GAAgC,cAKtC,KAIN/d,cAAC0tB,IAAK,CACJjC,KAAK,2BACLkC,UAAWA,IACFnV,EACLxY,cAAA,OAAAT,SACES,cAAC4tB,WAAQ,CAACb,SAAU/sB,cAAA,UAAYT,SAC9BS,cAACilB,GAAiB,CAChBwC,aAAcA,EACdZ,OAAQA,EACRljC,iBAAkBA,EAClBpK,UAAWA,EACXkd,QAASA,EACTswB,mBAAoBA,EACpBa,YAAaA,GACb7c,UAAWA,GACXgT,cACEA,GAAgC,gBAMxC,KAIN/d,cAAC0tB,IAAK,CACJjC,KAAK,0BACLsC,OAAQ90C,IAAA,IAAC,MAAE+3B,GAAO/3B,EAAA,OAChB+mB,cAACguB,IAAQ,CACPvpB,GAAI,cAAcuM,EAAMyL,OAAO/B,gBAC/B,IAGN1a,cAAC0tB,IAAK,CACJjC,KAAK,mBACLkC,UAAWA,IACFnV,EACLxY,cAAC4tB,WAAQ,CAACb,SAAU/sB,cAAA,UAAYT,SAC9BS,cAACmlB,GAAc,CACb0I,aAAcl7B,GACdk0B,OAAQA,EACRljC,iBAAkBA,EAClBpK,UAAWA,EACXkd,QAASA,EACT+hB,QAASyO,EACT9b,mBAAoB4b,EACpBhc,UAAWA,GACX6c,YAAaA,GACb7J,cACEA,GAAgC,cAKtC,KAIN/d,cAAC0tB,IAAK,CACJjC,KAAK,iBACLkC,UAAWA,IACFnV,EACLxY,cAAC4tB,WAAQ,CAACb,SAAU/sB,cAAA,UAAYT,SAC9BS,cAAColB,GAA0B,CACzByI,aAAcl7B,GACdk0B,OAAQA,EACRljC,iBAAkBA,EAClBpK,UAAWA,EACXkd,QAASA,EACT+hB,QAASyO,EACT9b,mBAAoB4b,EACpBhc,UAAWA,GACX6c,YAAaA,GACb7J,cACEA,GAAgC,cAKtC,KAIN/d,cAAC0tB,IAAK,CACJjC,KAAK,gBACLkC,UAAWA,IACFnV,EACLxY,cAAC4tB,WAAQ,CAACb,SAAU/sB,cAAA,UAAYT,SAC9BS,cAACqlB,GAAwB,CACvBwI,aAAcl7B,GACdk0B,OAAQA,EACRljC,iBAAkBA,EAClBpK,UAAWA,EACXkd,QAASA,EACT+hB,QAASyO,EACT9b,mBAAoB4b,EACpBhc,UAAWA,GACX6c,YAAaA,GACb7J,cACEA,GAAgC,cAKtC,KAIN/d,cAAC0tB,IAAK,CACJjC,KAAK,WACLkC,UAAWA,IACFnV,EACLxY,cAAC4tB,WAAQ,CAACb,SAAU/sB,cAAA,UAAYT,SAC9BS,cAACslB,GAAY,CACX/rC,UAAWA,EACXkd,QAASA,EACT0U,mBAAoB4b,EACpB5O,SAAU/7B,EACV2uB,UAAWA,GACX6c,YAAaA,GACb7J,cACEA,GAAgC,cAKtC,KAIN/d,cAAC0tB,IAAK,CACJjC,KAAK,iBACLkC,UAAWA,IACFnV,EACLxY,cAAC4tB,WAAQ,CAACb,SAAU/sB,cAAA,UAAYT,SAC9BS,cAACulB,GAAY,CACXsI,aAAcl7B,GACdk0B,OAAQA,EACRljC,iBAAkBA,EAClBpK,UAAWA,EACXkd,QAASA,EACT+hB,QAASyO,EACT9b,mBAAoB4b,EACpBhc,UAAWA,GACX6c,YAAaA,GACb7J,cACEA,GAAgC,cAKtC,KAIN/d,cAAC0tB,IAAK,CACJjC,KAAK,kBACLkC,UAAWA,IACFnV,EACLxY,cAAC4tB,WAAQ,CAACb,SAAU/sB,cAAA,UAAYT,SAC9BS,cAACwlB,GAAa,CACZqI,aAAcl7B,GACdk0B,OAAQA,EACRljC,iBAAkBA,EAClBpK,UAAWA,EACXkd,QAASA,EACT+hB,QAASyO,EACT9b,mBAAoB4b,EACpBa,YAAaA,GACb7c,UAAWA,GACXgT,cACEA,GAAgC,cAKtC,KAIN/d,cAAC0tB,IAAK,CACJjC,KAAK,oBACLkC,UAAWA,IACFnV,EACLxY,cAAC4tB,WAAQ,CAACb,SAAU/sB,cAAA,UAAYT,SAC9BS,cAACylB,GAAe,CACdlsC,UAAWA,EACXkd,QAASA,EACT+hB,QAASyO,EACTlc,UAAWA,GACXI,mBAAoB4b,EACpBa,YAAaA,GACb7J,cACEA,GAAgC,cAKtC,KAIN/d,cAAC0tB,IAAK,CACJjC,KAAK,UACLkC,UAAWA,IACFnV,EACL5N,eAACgjB,WAAQ,CAACb,SAAU/sB,cAAA,UAAYT,SAAA,CAC9BS,cAACiuB,EAAM,CACL10C,UAAWA,EACXkd,QAASA,EACT+hB,QAASyO,EACTzT,aAAcA,EACdrI,mBAAoB4b,EACpBa,YAAaA,GACb7J,cACEA,GAAgC,YAEjC,OAGL,KAIN/d,cAAC0tB,IAAK,CACJjC,KAAK,SACLkC,UAAWA,IACFnV,EACLxY,cAAA,OAAAT,SACES,cAACkuB,EAAM,CACL30C,UAAWA,EACXkd,QAASA,EACT0P,QAAS2lB,GACT/iB,UAAWmjB,GACXiC,kBAAmB/B,GACnBjhB,mBAAoB4b,EACpBqH,QA51BN,IA61BMxG,YAAaA,GACb7J,cACEA,GAAgC,cAKtC,KAIN/d,cAAC0tB,IAAK,CACJjC,KAAK,UACLkC,UAAWA,IACFnV,GAAW9F,EACT,OAAPjc,QAAO,IAAPA,KAASkY,uBACP3O,cAAA,OAAAT,SACES,cAACquB,EAAM,CACL90C,UAAWA,EACXkd,QAASA,EACTic,eAAgBA,EAChBE,sBAAuBA,GACvBzM,QAAS2lB,GACT/iB,UAAWmjB,GACXiC,kBACE/B,GAEFjhB,mBAAoB4b,EACpBqH,QAz3BR,IA03BQxG,YAAaA,GACb7J,cACEA,GAAgC,cAKtC/d,cAACguB,IAAQ,CAACvpB,GAAG,MAGfzE,cAAAiN,WAAA,MAINjN,cAAC0tB,IAAK,CACJjC,KAAK,UACLkC,UAAWA,IACFnV,EACLxY,cAAA,OAAAT,SACES,cAACsuB,GAAM,CACL/0C,UAAWA,EACXkd,QAASA,EACT0P,QAAS2lB,GACT/iB,UAAWmjB,GACXiC,kBAAmB/B,GACnBjhB,mBAAoB4b,EACpBqH,QAp5BN,IAq5BMxG,YAAaA,GACb7J,cACEA,GAAgC,cAKtC,KAIN/d,cAAC0tB,IAAK,CACJjC,KAAK,WACLkC,UAAWA,IACFnV,EACLxY,cAAA,OAAAT,SACES,cAAC4tB,WAAQ,CAACb,SAAU/sB,cAAA,UAAYT,SAC9BS,cAAC4lB,GAAO,CACNjiC,iBAAkBA,EAClBpK,UAAWA,EACXkd,QAASA,EACT+hB,QAASyO,EACT9b,mBAAoB4b,EACpBhc,UAAWA,GACX6c,YAAaA,GACb7J,cACEA,GAAgC,gBAMxC,KAIN/d,cAAC0tB,IAAK,CACJI,OAAK,EACLrC,KAAK,IACLkC,UAAWA,IACLlR,IAAUA,GAAO1gB,GAAkB,YAAb0gB,GAAO1gB,EACxByc,EACLxY,cAACoW,GAAO,CACN78B,UAAWA,EACXkd,QAASA,EACT0hB,SAAU/7B,EACV2hC,cACEA,GAAgC,YAIpC,GAGKvF,EACLxY,cAAC4tB,WAAQ,CAACb,SAAU/sB,cAAA,UAAYT,SAC9BS,cAAC8kB,GAAa,CACZ2C,aAAcA,EACdoG,aAAc3F,GACdrB,OAAQA,EACRljC,iBAAkBA,EAClBpK,UAAWA,EACXkd,QAASA,EACT+hB,QAASyO,EACT9b,mBAAoB4b,EACpBhc,UAAWA,GACX6c,YAAaA,GACb7J,cACEA,GAAgC,cAKtC,WAOZnT,eAAA,OAAK2jB,UAAU,SAAQhvB,SAAA,CACrBS,cAAC+M,IAAU,CAACZ,QAAQ,YAAW5M,SAAC,eAChCS,cAAA,OACEwuB,IAAKC,GACLC,IAAI,YACJtjB,MAAO,CACLrG,MAAO,OACPoI,aAAc,uBAUlC,I,mCCjrCA,2JAEO,MAAMwhB,EAAmCA,CAC9CC,EACA3lC,EACA4lC,KAEA,MAAMC,EAAoBxtC,YAAestC,EAAgB3lC,GACzD,MAAO,CACLoM,YAAapS,YAAO6rC,EAAmB,2BAA4B,CACjEvqC,SAAU0E,IAEZ8lC,aAAc9rC,YAAO6rC,EAAmB,IAAK,CAC3CvqC,SAAU0E,IAEZ+lC,UAAW,MAAM/rC,YAAO6rC,EAAmB,MAAO,CAChDvqC,SAAU0E,MAGZgmC,QAAShsC,YAAO6rC,EAAmB,aAAc,CAC/CvqC,SAAU0E,IAEZimC,aAAcjsC,YAAO6rC,EAAmB,qBAAsB,CAC5DvqC,SAAU0E,IAEZkmC,aAAclsC,YAAO6rC,EAAmB,iCAA6B,CACnEvqC,SAAU0E,IAEZmmC,aAAc,GAAGnsC,YAAO6rC,EAAmB,6BAA8B,CACvEvqC,SAAU0E,MAEZomC,WAAYpsC,YAAO6rC,EAAmB,SAAU,CAC9CvqC,SAAU0E,IAEZqmC,WAAYrsC,YACV6rC,EAAkBrqC,WAChBqqC,EAAkBpqC,aAAemqC,GAEnC,SACA,CACEtqC,SAAU0E,IAGd4lC,aAAcA,EACd/vC,GAAImK,EACL,EAEH7K,eAAemxC,EAA0BC,EAAUjrC,EAAUsqC,GAC3DW,EAAW,IAAIjuC,KAAKiuC,GAYpB,IAAIC,EAAUxsC,YAAOusC,EAAU,IAAK,CAAEjrC,aACtC,IAAIkrC,IAAYA,EAAQ/rC,SAAS,UAAW+rC,EAAQ/rC,SAAS,QActD,CACL,IAAI5E,EAAK,CAAEyF,YAEX,MAAO,CACL8Q,YAAapS,YAAOusC,EAAU,2BAA4B1wC,GAC1DiwC,aAAc9rC,YAAOusC,EAAU,IAAK1wC,GACpCkwC,UAAW,MAAM/rC,YAAOusC,EAAU,MAAO1wC,KACzCmwC,QAAShsC,YAAOusC,EAAU,aAAc1wC,GACxCowC,aAAcjsC,YAAOusC,EAAU,qBAAsB1wC,GACrDqwC,aAAclsC,YAAOusC,EAAU,iCAA6B1wC,GAC5DswC,aAAc,GAAGnsC,YAAOusC,EAAU,6BAA8B1wC,KAChEuwC,WAAYpsC,YAAOusC,EAAU,SAAU1wC,GACvCwwC,WAAYrsC,YACVusC,EAAS/qC,WAAW+qC,EAAS9qC,aAAemqC,GAC5C,SACA/vC,GAEF+vC,aAAcA,EACd/vC,GAAIyF,EAER,CAlCuE,CACrE,MAAMgJ,QAAe8G,IAAI4C,KAAK,eAAgB,YAAa,CACzDC,KAAM,CACJ+H,OAAQ,qBACR7J,SAAU,CACR3J,UAgCY7D,EAhCW4nC,EAiCxB,CACL3jC,KAAMjE,EAAE+E,cACRb,MAAOlE,EAAE8E,WACTrH,KAAMuC,EAAE5F,UACRqO,MAAOzI,EAAE8nC,WACTr4B,QAASzP,EAAElD,eArCL5F,GAAIyF,EACJsqC,mBAIN,GAAIthC,GAAUA,EAAOoiC,SAAWpiC,EAAO6H,SACrC,OAAO7H,EAAO6H,QAElB,CAuBF,IAAsBxN,CAFtB,CAkCA,SAASgoC,EAA8BC,GACrC,MAAMC,EAAc,IAAIvuC,KACxB,OAAO,IAAIA,KACTuuC,EAAY3d,eAAe,QAAS,CAAE5tB,SAAUsrC,IAEpD,CAEA,SAASE,EAAoCC,EAASH,GAMpD,OAL4B,IAAItuC,KAC9B,IAAIA,KAAKyuC,GAAS7d,eAAe,QAAS,CACxC5tB,SAAUsrC,IAIhB,C,mCChJA,4HAKO,MAAMlc,EAAYC,aAAYC,IAAK,CACxCoc,SAAW/qB,IAAK,CACdwZ,WAAY,GAAGwR,YAAOhrB,EAAM6gB,aAAaoK,SAASC,QAClD5jB,MAAO,OACPqD,OAAQ,OACRwgB,UAAW,SACXC,UAAW,SACX1iB,SAAU,WACVvC,QAAS,OACTE,cAAe,SACfD,WAAY,aACZO,eAAgB,SAChBH,QAAS,aAET,YAAa,CACX6kB,QAAS,KACT3iB,SAAU,WACVsI,IAAK,EACLsa,MAAO,EACPC,OAAQ,EACRC,KAAM,EACNnH,QAAS,GACToH,QAAS,EACTC,gBAAiB,QAAQ1rB,EAAM8kB,uBAC/B6G,eAAgB,QAChBC,mBAAoB,SACpBC,iBAAkB,eAItBC,WAAa9rB,IAAK,CAChBH,MAAO,GACP8K,OAAQ,KAGVyF,KAAOpQ,IAAK,CACV,iBAAkB,CAChBsH,MAAO,GAAGtH,EAAMilB,aAElB,yBAA0B,CACxBtU,OAAQ,oBACRvB,aAAc,MACdpI,WAAY,SAGd,sBAAuB,CACrBM,MAAO,GAAGtH,EAAM6gB,iBAGpBkL,WAAY,CAAC,EACbC,OAAShsB,IAAK,CAAQiI,aAAc0G,EAAMI,QAAQ,GAAIrF,WAAY,SAClEuiB,OAASjsB,IAAK,CAAQiI,aAAc0G,EAAMI,QAAQ,KAClDmd,OAASlsB,IAAK,CAAQiI,aAAc0G,EAAMI,QAAQ,KAElDod,SAAWnsB,IAAK,CACdyQ,WAAY,MACZ3I,UAAW,SACXR,MAAO,GAAGtH,EAAMilB,cAElB9vC,SAAW6qB,IAAK,CACdyQ,WAAY,MACZ3I,UAAW,SACXR,MAAO,GAAGtH,EAAMilB,cAElBmH,eAAiBpsB,IAAK,CACpByZ,YAAa,MACbE,YAAa,GAAG3Z,EAAMilB,yBAExBoH,0BAA4BrsB,IAAK,CAC/ByZ,YAAa,MACbE,YAAa,GAAG3Z,EAAM6gB,2BAExByL,SAAWtsB,IAAK,CACdsH,MAAO,GAAGtH,EAAMilB,cAElBrV,UAAY5P,IAAK,CACfsH,MAAO,GAAGtH,EAAMilB,cAElBsH,WAAavsB,IAAK,CAChBsH,MAAO,SAETklB,OAAQ,CACNllB,MAAO,UACPe,gBAAkBrI,GAAUA,EAAM6gB,aAEpC9P,eAAgB,CACdrI,SAAU,WACVsI,IAAK,MACLzK,WAAY,EACZS,YAAa,GAEfmJ,MAAO,CACLsc,UAAW,OACXnc,OAAQ,EACRhJ,MAAO,UACPY,SAAU,IAEZwkB,iBAAkB,CAChBD,UAAW,OACXnc,OAAQ,EACRhJ,MAAO,UACPY,SAAU,GACVwR,YAAa,QACbC,YAAc3Z,GAAUA,EAAM6gB,YAC9BpH,YAAa,QAEfkT,OAAQ,CACNzkB,SAAU,GACV,WAAY,CACVb,YAAa,GACba,SAAU,KAGd0kB,SAAU,CACRnc,WAAY,MACZoc,cAAe,OAEjBC,WAAY,CAAEpjB,WAAY,OAAQqjB,UAAW,UAC7CC,aAAc,CACZntB,MAAO,IACP,CAAC8O,EAAMM,YAAYge,KAAK,OAAQ,CAC9BptB,MAAO,MAGXqtB,kBAAmB,CACjBrtB,MAAO,IACPstB,YAAa,GACb,CAACxe,EAAMM,YAAYge,KAAK,OAAQ,CAC9BptB,MAAO,MAGXutB,SAAU,CACRvtB,MAAO,GACP,CAAC8O,EAAMM,YAAYge,KAAK,OAAQ,CAC9BptB,MAAO,SAKAulB,EAAiBA,CAC5B1O,EACA2W,EACApI,KAEA,MAAMtW,EAAQoS,YAAY,CACxBxR,QAAS,CACPyR,QAAS,CACPC,KAAMvK,EACN4W,MAAOtC,YAAOtU,GAAcpH,MAAM,IAAK4b,MACvCqC,OAAQvC,YAAOtU,GAAcpH,MAAM,KAAM4b,OAE3CsC,UAAW,CACTvM,KAAM,GAAG+J,YAAOtU,GAAcuU,SAASC,SAEzCuC,KAAM,CACJxM,KAAMyM,KAERC,QAAS,CACP1M,KAAM,GAAG+J,YAAOtU,GAAcuU,SAASC,SAEzC1R,WAAY,CACVyH,KAAM,WAER5pB,KAAM,CACJ4pB,KAAMgE,GAER2I,qBAAsB,CACpB3M,KAAM,YAGV4M,WAAYA,IACZC,WAAY,CACVC,WAAY,CACVC,eAAgB,CACdC,QAAS,CACP/lB,SAAU,OACVwB,WAAY,IACZwkB,cAAe,SACfC,WAAY,YAKlBC,aAAc,CACZJ,eAAgB,CACd5d,KAAM,CACJ5J,QAAS,OAIf6nB,oBAAqB,CACnBL,eAAgB,CACd5d,KAAM,CACJ5J,QAAS,YACTL,QAAS,OACTC,WAAY,SACZ,UAAW,CACTkB,MAAOoP,IAGX2U,QAAS,CACP/a,OAAQ,EACR,8BAA+B,CAC7BA,OAAQ,GAEV,sBAAuB,CACrB9J,QAAS,GAEX,+BAAgC,CAC9BA,QAAS,aAMjB8nB,SAAU,CACRN,eAAgB,CACd5d,KAAM,CACJ/H,gBAAiB,GAAG2iB,YAAOtU,GAAcpH,MAAM,IAAK4b,QACpD9kB,WAAY,UAEdmoB,KAAM,CACJlnB,YAAa,WACbC,MAAO,GAAG0jB,YAAOtU,GAAcuU,OAAO,GAAGC,WAK/CsD,YAAa,CACXR,eAAgB,CACdS,aAAc,CACZxmB,aAAc,YAKpBymB,OAAQ,CACNV,eAAgB,CACd5d,KAAM,CACJue,cAAe,YACfzkB,WAAY,SACZhC,SAAU,OACVwB,WAAY,MACZ,WAAY,CACViH,OAAQ,QAEV,UAAW,CACTA,OAAQ,WAMhBie,YAAa,CACXZ,eAAgB,CACd5d,KAAM,CACJ,8BAA+B,CAC7BpJ,WAAY,UAMpB6nB,gBAAiB,CACfb,eAAgB,CACd5d,KAAM,CACJvQ,MAAO,OACP,yBAA0B,CACxBA,MAAO,OACPqI,SAAU,OACVwB,WAAY,MACZQ,WAAY,CAAC,SAAU,cAAcjwB,KAAK,SAMlD60C,SAAU,CACRd,eAAgB,CACd5d,KAAM,CACJ,8BAA+B,CAC7BE,OAAQ,EAER,mBAAoB,CAClB9J,QAAS,wBAOnBuoB,UAAW,CACTf,eAAgB,CACd5d,KAAM,CACJ4e,SAAU,OACVrkB,OAAQ,SACRnE,QAAS,cACTimB,UAAW,OACX/iB,WAAY,IACZxB,SAAU,OACVymB,cAAe,aACf,2BAA4B,CAC1BnoB,QAAS,OAEX,iBAAkB,CAChBc,MAAO,UAGX2nB,iBAAkB,CAChB3nB,MAAO+lB,EACP,UAAW,CACTZ,UAAW,SAGfH,SAAU,CACR3S,YAAajD,GAEfrf,KAAM,CACJ,UAAW,CACTgR,gBAAiB,eAEnBjC,WAAY,SACZsD,WAAY,IACZQ,WAAY,CAAC,SAAU,cAAcjwB,KAAK,KAC1CiuB,SAAU,UACVZ,MAAO,kBACPqnB,cAAe,aACf,yBAA0B,CACxBre,OAAQ,MAMhB4e,cAAe,CACblB,eAAgB,CACd5d,KAAM,CACJ,+BAAgC,CAC9BO,OAAQ,iBACR6I,WAAY,SAGd,oCAAqC,CACnC7I,OAAQ,iBACR6I,WAAY,SAGd,kBAAmB,CACjB7I,OAAQ,aAAa+F,IACrB8C,WAAY,GAAGwR,YAAOtU,GAAcpH,MAAM,IAAK4b,SAGjD,kBAAmB,CACjB1R,WAAY,GAAGwR,YAAO,WAAW1b,MAAM,IAAK4b,YAMpDiE,eAAgB,CACdnB,eAAgB,CACd5d,KAAM,CACJ,yBAA0B,CACxB9I,MAAOoP,GAET,yBAA0B,CACxB8C,WAAY,QACZ7I,OAAQ,iBACRvB,aAAc,MACd,sBAAuB,CACrBoK,WAAY,QACZpK,aAAc,QAGlB,uBAAwB,CACtBoK,WAAY,SAGd,wBAAyB,CACvBA,WAAY,QACZpK,aAAc,OAEhB,4BAA6B,CAC3BoK,WAAY,QACZpK,aAAc,OAEhB,iCAAkC,CAChCoK,WAAY,QACZpK,aAAc,OAEhB,2BAA4B,CAC1B,aAAc,CACZuK,YAAa,WAEf,mBAAoB,CAClBA,YAAa,WAEf,yBAA0B,CACxBA,YAAajD,OAQvB0Y,oBAAqB,CACnBpB,eAAgB,CACd5d,KAAM,CACJE,OAAQ,KAKd+e,kBAAmB,CACjBrB,eAAgB,CACd5d,KAAM,CACJ,2BAA4B,CAC1BlG,WAAY,SACZhC,SAAU,OACVwB,WAAY,MACZpC,MAAO,uBAOnB,OAAOgoB,YAAoB3gB,EAAM,C,mCCjbnC,YACA,MAAMkf,EAAa,CACjB3jB,WAAY,CAAC,UAAW,SAAU,cAAcjwB,KAAK,KACrDs1C,GAAI,CACFrnB,SAAU,UACVwB,WAAY,OAEd8lB,GAAI,CACFtnB,SAAU,UACVwB,WAAY,MACZpC,MAAO,oBAETmoB,GAAI,CACFvnB,SAAU,SACVwB,WAAY,MACZpC,MAAO,oBAETooB,GAAI,CACFxnB,SAAU,UACVwB,WAAY,MACZQ,WAAY,CAAC,SAAU,cAAcjwB,KAAK,KAC1CqtB,MAAO,oBAETqoB,GAAI,CACFznB,SAAU,OACVwB,WAAY,MACZQ,WAAY,CAAC,SAAU,cAAcjwB,KAAK,KAC1CqtB,MAAO,oBAETsoB,GAAI,CACF1nB,SAAU,UACVwB,WAAY,MACZQ,WAAY,CAAC,SAAU,cAAcjwB,KAAK,KAC1CqtB,MAAO,oBAETuoB,MAAO,CACL3nB,SAAU,OACVwB,WAAY,MACZQ,WAAY,CAAC,WAEf4lB,MAAO,CACL5nB,SAAU,UACVwB,WAAY,MACZQ,WAAY,CAAC,SAAU,cAAcjwB,KAAK,MAE5C81C,QAAS,CACP7nB,SAAU,SACVwB,WAAY,MACZQ,WAAY,CAAC,SAAU,cAAcjwB,KAAK,MAE5CuyC,OAAQ,CACNtkB,SAAU,OACVwB,WAAY,MACZQ,WAAY,CAAC,SAAU,cAAcjwB,KAAK,KAC1C00C,cAAe,aACfT,cAAe,OAEjB8B,UAAW,CACT9lB,WAAY,CAAC,SAAU,cAAcjwB,KAAK,MAE5CmlC,UAAW,CACTlX,SAAU,UACVwB,WAAY,MACZpC,MAAO,kBACP4C,WAAY,CAAC,SAAU,cAAcjwB,KAAK,MAE5Cg2C,SAAU,CACR/nB,SAAU,UACVwB,WAAY,MACZpC,MAAO,kBACPqnB,cAAe,YACfzkB,WAAY,CAAC,SAAU,cAAcjwB,KAAK,MAE5Ci2C,WAAY,CACVhoB,SAAU,UACVwB,WAAY,MACZpC,MAAO,sBACPylB,UAAW,SACX7iB,WAAY,CAAC,WAEfimB,WAAY,CACVjoB,SAAU,WACVwB,WAAY,MACZpC,MAAOomB,IACPiB,cAAe,YACfzkB,WAAY,CAAC,SAAU,cAAcjwB,KAAK,OAI/B4zC,K,mCCzFf,kCAAO,MAAMhX,EAA0C,4mB,mCCAvD,uFAMA39B,eAAeqiC,EACb6U,EACA74C,EACA84C,EACAC,EACAlV,EACAmV,EACAl8C,EACAqnC,EACAC,GAEA,MAAM1K,EAAS,IAAIhW,IAAO,oBACpB5S,QAAe8G,IAAI4C,KAAK,mBAAoB,oBAAqB,CACrEC,KAAM,CACJza,SACA84C,mBACAD,mBACAE,sBACAlV,SACAoV,WAAYD,EACZl8C,YACAqnC,cAAeA,EACfC,qBAAsBA,KAO1B,OAHA1K,EAAOwf,KAAK,mCACZxf,EAAOwf,KAAKpoC,GAELA,CACT,CACAnP,eAAew3C,EAAmB38C,GAM9B,IAN+B,iBACjCq8C,EAAgB,UAChB/7C,EAAS,mBACTs8C,EAAkB,cAClBjV,EAAa,qBACbC,GACD5nC,EAUC,aATqBob,IAAI4C,KAAK,mBAAoB,uBAAwB,CACxEC,KAAM,CACJo+B,mBACAO,qBACAt8C,YACAqnC,cAAeA,EACfC,qBAAsBA,IAI5B,C,sHCtDA,+PAce,IAAI1gB,IAAO,cAA1B,MAEM21B,EAAW,CACfC,OAAQ,SACRC,SAAU,WACVC,cAAe,gBACfC,gBAAiB,kBACjBC,uBAAwB,yBACxBC,iBAAkB,oBAGdjO,EAAkB/pC,UACtB,MAAMhC,EAAO8rB,IAAMqW,QAAQ,QACrBt+B,QAAiBoU,IAAIC,QACzBC,YAAiB4M,IAAY,CAC3B1e,OAAQ,CACNqM,IAAK,CACH,CAAEtP,OAAQ,CAAEmD,IAAI,IAChB,CAAED,QAAS,CAAEC,IAAI,IACjB,CAAEpJ,UAAW,CAAEyZ,GAAI5W,GAAQA,EAAKqa,QAAUra,EAAKqa,QAAQlb,GAAK,OAGhEgI,MAAO,MAGLgK,QAAetN,EAASyU,KAAKyM,WAAWhf,MAE9C+lB,IAAM6hB,QAAQ,SAAUx8B,EAAO,EAmCjCnP,eAAei4C,EACbnb,EACAhkB,EACAikB,EACAC,EACAC,EACAC,EACAE,SAEqBnnB,IAAI4C,KAAK,kBAAmB,mBAAoB,CACnEC,KAAM,CACJgkB,UACAhkB,OACAikB,cACAC,cACAC,eACAC,UACAE,gBAGN,CAEAp9B,eAAeg8B,EAAiB7gC,GAmB9B,aAlBqB8a,IAAIC,QACvBC,YAAiBuM,IAAe,CAC9BvnB,YACA4wB,iBAAkB,CAChB3nB,WAAY,CACVtG,KAAM,kBAGVuG,OAAQ,CACNqM,IAAK,CACH,CAAEtP,OAAQ,CAAEmD,IAAI,IAChB,CAAED,QAAS,CAAEC,IAAI,IACjB,CAAEjH,WAAY,CAAEiH,IAAI,MAGxBY,MAAOyO,WAGG0C,KAAKoM,cAAc3e,KACnC,CAEA/D,eAAek4C,IACb,IAAIl6C,EAAO8rB,IAAMqW,QAAQ,QAOzB,GANIniC,GACwB4V,0BAAtB5V,EAAKX,eACPysB,IAAMC,WAAW,QACjB/rB,EAAO,OAGNA,EAAM,CAAC,IAADm6C,EACT,MAAM1uB,QAAiBb,IAAKc,yBAAyB,CACnDC,aAAa,IAEf,IAAKF,EAAU,OACf,GAAoC7V,2BAAxB,OAAR6V,QAAQ,IAARA,GAAoB,QAAZ0uB,EAAR1uB,EAAUG,kBAAU,IAAAuuB,OAAZ,EAARA,EAAsBjxB,OAExB,YADAxrB,QAAQC,IAAI,oCAId,MAAMk4B,QAAiB5d,IAAIC,QACzBC,YAAiBsM,IAAS,CACxBtlB,GAAIssB,EAASrsB,YAGjB,OACEy2B,GAEEjgB,0BADFigB,EAASvd,KAAKmM,QAAQplB,kBAGtB,GAEAW,EAAO61B,EAASvd,KAAKmM,QAErBqH,IAAM6hB,QAAQ,OAAQ3tC,GACfA,EAEX,CAEA,OAAOA,CACT,CAkBAgC,eAAeo4C,IACb,MAAMp6C,QAAak6C,IACnB,SAAIl6C,IAAQA,EAAKF,QAEb45C,EAASI,kBAAoB95C,EAAKF,MAClC45C,EAASG,gBAAkB75C,EAAKF,MAChC45C,EAASK,yBAA2B/5C,EAAKF,MACzC45C,EAASM,mBAAqBh6C,EAAKF,KAGzC,C,+FC9KoBu6C,QACW,cAA7Bj0B,OAAOnoB,SAASmyC,UAEe,UAA7BhqB,OAAOnoB,SAASmyC,UAEhBhqB,OAAOnoB,SAASmyC,SAASxb,MACvB,2D,YCuHS0lB,MAtIG,CAChBC,mBAAoB,YACpBC,4BAA6B,mCAC7BC,gCAAiC,YACjCC,uBAAwB,CACtB,CACEljC,KAAM,WACNmjC,SAAU,gEACVC,OAAQ,aAEV,CACEpjC,KAAM,WACNmjC,SAAU,gEACVC,OAAQ,aAEV,CACEpjC,KAAM,aACNmjC,SAAU,gEACVC,OAAQ,aAEV,CACEpjC,KAAM,iBACNmjC,SAAU,gEACVC,OAAQ,aAEV,CACEpjC,KAAM,aACNmjC,SAAU,gEACVC,OAAQ,aAEV,CACEpjC,KAAM,iBACNmjC,SAAU,gEACVC,OAAQ,aAEV,CACEpjC,KAAM,eACNmjC,SAAU,gEACVC,OAAQ,aAEV,CACEpjC,KAAM,YACNmjC,SAAU,gEACVC,OAAQ,aAEV,CACEpjC,KAAM,WACNmjC,SAAU,gEACVC,OAAQ,aAEV,CACEpjC,KAAM,uBACNmjC,SAAU,gEACVC,OAAQ,aAEV,CACEpjC,KAAM,WACNmjC,SAAU,gEACVC,OAAQ,aAEV,CACEpjC,KAAM,aACNmjC,SAAU,gEACVC,OAAQ,aAEV,CACEpjC,KAAM,YACNmjC,SAAU,gEACVC,OAAQ,aAEV,CACEpjC,KAAM,eACNmjC,SAAU,gEACVC,OAAQ,aAEV,CACEpjC,KAAM,kBACNmjC,SAAU,gEACVC,OAAQ,aAEV,CACEpjC,KAAM,mBACNmjC,SAAU,gEACVC,OAAQ,aAEV,CACEpjC,KAAM,gBACNmjC,SAAU,gEACVC,OAAQ,aAEV,CACEpjC,KAAM,iBACNmjC,SAAU,gEACVC,OAAQ,aAEV,CACEpjC,KAAM,cACNmjC,SAAU,gEACVC,OAAQ,aAEV,CACEpjC,KAAM,iBACNmjC,SAAU,gEACVC,OAAQ,cAGZC,4BACE,iFACFC,mBAAoB,YACpBC,+BAAgC,4BAChCC,6BACE,iDACFC,mBAAoB,YACpBC,kBAAmB,sBACnBC,6BAA8B,6BAC9BC,MAAO,CAAC,EACRC,gCAAiC,CAAC,SAClCC,6BAA8B,GAC9BC,8BAA+B,CAAC,SAChCC,8BAA+B,MAC/BC,sBAAuB,CAAC,OACxBC,yCAA0C,CACxCC,wBAAyB,EACzBC,yBAA0B,IAE5BC,oCAAqC,CAAC,SACtCC,4BAA6B,gDAC7BC,mCAAoC,YACpCC,yBACE,0FACFC,yBAA0B,+BAC1BC,gCAAiC,a,kCC3HnC,MAAMC,EAAc,IAAIC,IAAY,CAClCC,eAAgB,CACdvlC,QAAS,CACPwlC,sBAAsB,MAK5BC,IAAQC,UAAUC,GAElBF,IAAQx4B,OAAO24B,UAAY,QAE3BC,IAAShL,OACP/tB,cAACV,IAAa,CAAAC,SACZS,cAACg5B,IAAmB,CAAC/vB,OAAQsvB,EAAYh5B,SACvCS,cAACytB,IAAM,CAAAluB,SACLS,cAACi5B,IAAG,UAIV5V,SAAS6V,eAAe,SFkGpB,kBAAmBC,WACrBA,UAAUC,cAAcC,MAAMz2B,MAAK02B,IACjCA,EAAaC,YAAY,G,o7CG/HxB,MAAMC,EAA8Bp7C,UAUpC,IAV2C,SAChDlE,EAAQ,OACR+uB,EAAM,QACNxS,EAAO,YACPnc,EAAW,SACX2J,EAAQ,QACRw1C,EAAO,UACPC,EAAS,WACTC,EAAU,UACVC,GACD3gD,EACKqpC,GAA2B,EAC3BuX,GAA4B,EAEhC,IACE,MAAMC,EAA4Bn6C,KAAK4S,MACrCkE,EAAQ+rB,2BAA6B,MAEvCF,EACEwX,EAA0BxX,2BAA4B,EACxDuX,EACEC,EAA0BD,4BAA6B,CAC3D,CAAE,MAAOr5B,GACP1mB,QAAQC,IAAI,2CAA4CymB,EAC1D,CAEA,MAAMu5B,EAAmB91C,EAASiB,KAChChE,IAAA,IAAC,gBAAE84C,EAAe,QAAE3iC,KAAYjO,GAAMlI,EAAA,MAAM,IACvCkI,EACH4wC,gBAAiB9/C,EAASgT,SACtByhC,YACEqL,EAAgB3kC,YAChBnb,EAASgT,SACTmK,GAEF2iC,EACL,IAEH,IACE,IAAIC,QAAqB99B,YACvB,8DAA8D1F,EAAQlb,2CACtEkb,EAAQlb,IAYV,GARqB,UAAjB0+C,IAEFA,QAAqB99B,YACnB,sHACA1F,EAAQlb,KAIS,UAAjB0+C,EACF,MAAO,GAETA,EAAeA,EAAaC,QAC1B,6BACAloC,+BAEFioC,EAAeA,EAAaC,QAC1B,wBACAzjC,EAAQilB,SAEVue,EAAeA,EAAaC,QAC1B,qBACAzjC,EAAQmlB,cAIVqe,EAAeA,EAAaC,QAAQ,oBAAqBzjC,EAAQ7C,MACjEqmC,EAAeA,EAAaC,QAC1B,qBACAzjC,EAAQhb,cAEVw+C,EAAeA,EAAaC,QAC1B,0BACAhgD,EAASyB,WAEXs+C,EAAeA,EAAaC,QAC1B,yBACAhgD,EAAS0B,UAEX,MAAM2+B,EAAa+H,EACfrZ,EAAO7sB,KAAKT,UAAY,IAAMstB,EAAO7sB,KAAKR,SAC1CqtB,EAAO7sB,KAAKT,UAAY,IAAMstB,EAAO7sB,KAAKR,SAAS4+B,OAAO,GAAK,IACnEyf,EAAeA,EAAaC,QAAQ,mBAAoB3f,GACxD0f,EAAeA,EAAaC,QAC1B,oBACAC,EAAelxB,EAAO7sB,KAAMy9C,IAE9BI,EAAeA,EAAaC,QAC1B,wBACA5/C,EAAYsZ,MAEdqmC,EAAeA,EAAaC,QAAQ,gBAAiBT,GAErDQ,EAAeA,EAAaC,QAC1B,wBACAj2C,EAAS,GAAG5J,UAKd4/C,EAAeA,EAAaC,QAAQ,iBAAkBzjC,EAAQ7C,MAC9DqmC,EAAeA,EAAaC,QAC1B,kBACAzjC,EAAQhb,cAGVw+C,EAAeA,EAAaC,QAC1B,wBACAhgD,EAASyB,WAEXs+C,EAAeA,EAAaC,QAC1B,uBACAhgD,EAAS0B,UAGXq+C,EAAeA,EAAaC,QAC1B,mBACA,GAAGjxB,EAAO7sB,KAAKT,UAAYstB,EAAO7sB,KAAKT,UAAY,MACjDstB,EAAO7sB,KAAKR,SAAWqtB,EAAO7sB,KAAKR,SAAW,MAGlDq+C,EAAeA,EAAaC,QAC1B,iBACAC,EAAelxB,EAAO7sB,KAAMy9C,IAG9BI,EAAeA,EAAaC,QAAQ,iBAAkB5/C,EAAYsZ,MAElEqmC,EAAeA,EAAaC,QAAQ,aAAcT,GAGlDQ,EAAeA,EAAaC,QAC1B,qBACAH,EAAiB,GAAG1/C,UAEtB4/C,EAAeA,EAAaC,QAC1B,iBACAH,EAAiB,GAAGC,gBAAgB9K,cAEtC+K,EAAeA,EAAaC,QAC1B,iBACAH,EAAiB,GAAGC,gBAAgB3K,YAEtC4K,EAAeA,EAAaC,QAC1B,aACAH,EAAiB,GAAGC,gBAAgB1K,YAEtC2K,EAAeA,EAAaC,QAC1B,0BACAloC,+BAEF,IAAIooC,EAAiB,GAErB,GAAIL,EAAiBn3C,OAAS,EAAG,CAC/Bw3C,EAAiB,udAUjB,IAAK,IAAI1zC,EAAI,EAAGA,EAAIqzC,EAAiBn3C,OAAQ8D,IAAK,CAChD,IAAI2zC,EAAa,+pBAejBA,EAAaA,EAAWH,QACtB,iBACAH,EAAiBrzC,GAAGszC,gBAAgB9K,cAEtCmL,EAAaA,EAAWH,QACtB,iBACAH,EAAiBrzC,GAAGszC,gBAAgB3K,YAEtCgL,EAAaA,EAAWH,QACtB,aACAH,EAAiBrzC,GAAGszC,gBAAgB1K,YAEtC8K,GAAkBC,CACpB,CACF,CAsBA,MApBkB,YAAdX,GAA2BE,IAC7BQ,GAAkB,+EAEsBR,yGAS1CK,EAAeA,EAAaC,QAC1B,wBACAE,GAEFH,EAAeA,EAAaC,QAC1B,UACsB,kBAAfP,EAA0BA,EAAa,IAEzCM,CACT,CAAE,MAAO7yB,SACD5K,YACJ/F,EAAQlb,GACR,QACA,2DACA,EACA6rB,EAEJ,CACA,MAAO,EAAE,EAGX,SAAS+yB,EAAe/9C,EAAMy9C,GAC5B,GAAIA,EAA2B,CAC7B,GAAuB,WAAnBz9C,EAAKP,UAAwB,CAC/B,GAAIO,EAAKytB,YAAa,OAAOztB,EAAKytB,YAEhC,GAAIztB,EAAKk+C,UAAW,OAAOl+C,EAAKk+C,UAChC,GAAIl+C,EAAKm+C,UAAW,OAAOn+C,EAAKm+C,SAEpC,CACA,GAAuB,SAAnBn+C,EAAKP,UAAsB,CAC7B,GAAIO,EAAKk+C,UAAW,OAAOl+C,EAAKk+C,UAE9B,GAAIl+C,EAAKytB,YAAa,OAAOztB,EAAKytB,YAClC,GAAIztB,EAAKm+C,UAAW,OAAOn+C,EAAKm+C,SAEpC,CACA,GAAuB,SAAnBn+C,EAAKP,UAAsB,CAC7B,GAAIO,EAAKm+C,UAAW,OAAOn+C,EAAKm+C,UAE9B,GAAIn+C,EAAKytB,YAAa,OAAOztB,EAAKytB,YAClC,GAAIztB,EAAKk+C,UAAW,OAAOl+C,EAAKk+C,SAEpC,CACA,OAAIl+C,EAAKytB,YAAoBztB,EAAKytB,YAC9BztB,EAAKk+C,UAAkBl+C,EAAKk+C,UAC5Bl+C,EAAKm+C,UAAkBn+C,EAAKm+C,UAEzB,EACT,CACE,MAAO,kBAEX,C,aC3QO,MAAMC,EAAqBp8C,UAChCtE,QAAQC,IAAImrB,GACZ,MAAM,iBACJu1B,EAAgB,gBAChBC,EAAe,aACfC,EAAY,UACZphD,EAAS,QACTkd,GACEyO,EAEJ,IAAI+0B,QAAqB99B,YACvB,8DAA8D1F,EAAQlb,yBACtEhC,GAyCF,GArCqB,UAAjB0gD,IAEFA,QAAqB99B,YACnB,oGACA5iB,IAKiB,UAAjB0gD,IACFA,EACE,4FAGJA,EAAeA,EAAaC,QAC1B,6BACAloC,+BAEFioC,EAAeA,EAAaC,QAAQ,wBAAyBzjC,EAAQilB,SACrEue,EAAeA,EAAaC,QAC1B,qBACAzjC,EAAQmlB,cAIVqe,EAAeA,EAAaC,QAAQ,oBAAqBzjC,EAAQ7C,MACjEqmC,EAAeA,EAAaC,QAC1B,qBACAzjC,EAAQhb,cAEVw+C,EAAeA,EAAaC,QAC1B,wBACAO,GAEFR,EAAeA,EAAaC,QAAQ,uBAAwBQ,GAE5DT,EAAeA,EAAaC,QAAQ,oBAAqBS,GACrDlkC,EAAQg2B,UAAW,CACrB,MAAMmO,EAAY,WAAWnkC,EAAQg2B,mBACrCwN,EAAeA,EAAaC,QAAQ,2BAA4BU,EAClE,CAEA,OAAOX,CAAY,E,qBCnBrB,MAAMY,EAAgB,WAAyB,IAAxBC,EAAI5kC,UAAAtT,OAAA,QAAA6D,IAAAyP,UAAA,GAAAA,UAAA,GAAG,MAAO6kC,EAAI7kC,UAAAtT,OAAA,EAAAsT,UAAA,QAAAzP,EACvC,IASE,OAPgB,IAAI8Q,KAAKyjC,aAAa,QAAS,CAC7C5vB,MAAO,WACP6vB,gBAAiB,eACjBhZ,sBAAuB,EACvBiZ,sBAAuB,EACvBr+C,SAAUi+C,IAEK73C,OAAOyF,OAAOqyC,GACjC,CAAE,MAAOlhD,GAWP,OANgB,IAAI0d,KAAKyjC,kBAAav0C,EAAW,CAC/C2kB,MAAO,WACP6W,sBAAuB,EACvBiZ,sBAAuB,EACvBr+C,SAAUi+C,IAEK73C,OAAOyF,OAAOqyC,GACjC,CACF,EACMI,EAAgC/8C,MAAOnE,EAAcmhD,KACzD,IAAIC,EAAqB,KACrBphD,EAAaqhD,cACfD,EAAqBphD,EAAashD,aAAahgD,GACxCtB,EAAauhD,gBACpBH,EAAqBphD,EAAauhD,cAAcjgD,IAGlD,IAAI+E,EAAQ,IACP,CACDwU,iBAAkB7a,EAAa6a,iBAC/BC,mBAAoB9a,EAAa8a,mBACjC0mC,gBAAexhD,EAAayhD,gBAC5BC,YAAa1hD,EAAa0hD,YAC1BC,UAAW3hD,EAAa2hD,UACxBC,YAAa5hD,EAAa4hD,YAC1B7iB,eAAgB8iB,EAAkB7hD,GAClC4C,SAAU5C,EAAa4C,SACvBk/C,wBAAyB9hD,EAAa8hD,wBACtC1hD,SAAUJ,EAAaI,SACvB2hD,YAAa/hD,EAAaW,IAC1BqhD,cAAehiD,EAAaiiD,IAC5BC,aAAcliD,EAAamiD,IAC3B7hD,UAAWN,EAAaM,UACxB8hD,aAAcpiD,EAAaC,SAC3B2yB,UAAW5yB,EAAa4yB,UAExBhE,OAAQ5uB,EAAa+xC,YAAYxwC,SACjCgZ,WAAYva,EAAaC,SAASqB,GAClCkb,QAAS2kC,EAAK3kC,QACdxC,YAAa,CACX1Y,GAAItB,EAAaK,YAAYiB,GAC7B6jC,KAAMnlC,EAAaK,YAAY8kC,KAC/BxrB,KAAM3Z,EAAaK,YAAYsZ,KAC/BylB,MAAOp/B,EAAaK,YAAY++B,MAChChiB,QAASpd,EAAaK,YAAY+c,SAEpCrT,QAAS,CACPqB,KAAM,IAAI9D,KAAKtH,EAAae,aAAaqK,MACzCi3C,KAAMriD,EAAae,aAAawa,MAChC+mC,OAAQtiD,EAAae,aAAauhD,OAClCnnC,SAAUnb,EAAae,aAAaoa,UAEtCimC,mBAAoBA,KAChBphD,EAAac,sBAAwB,CACvCyhD,iBAAkBviD,EAAac,qBAC/B0hD,kBAAmB,CACjBC,SAAUziD,EAAa6yB,qBAI7B7yB,aAAcA,GAGZ0iD,EAAsB,KAC1B,IAEE,GADAA,QAA4BC,EAAuBt8C,GAEjDq8C,GACAA,EAAoBvhD,OACpBuhD,EAAoBvhD,MAAMG,GAC1B,CACA,IAAK,IAADshD,EAAAC,EACE7iD,EAAa8iD,iBACT1oC,IAAI4C,KAAK,WAAY,cAAe,CACxCC,KAAM,CACJ9b,MAAOuhD,EAAoBvhD,MAC3B2hD,UAAW9iD,EAAa8iD,UACxB/Q,YAAa,IACR2Q,EAAoB1zB,OAAO7sB,KAC9BZ,SAAoC,QAA5BqhD,EAAEF,EAAoB1zB,cAAM,IAAA4zB,OAAA,EAA1BA,EAA4BzgD,KAAKb,IAE7CyhD,WAAY,IAAsB,QAApBF,EAAG7iD,EAAamC,YAAI,IAAA0gD,OAAA,EAAjBA,EAAmB90B,cAG5C,CAAE,MAAOnuB,GACPC,QAAQC,IAAI,iCAAkCF,EAChD,OAaNuE,eAAgC7E,EAAW0jD,EAAYjB,GACrD,GAAoB,YAAhBA,EACF,IACE,MAAMvlC,QAAgBpC,IAAIC,QACxBC,YAAiBwM,IAAY,CAC3BxlB,GAAIhC,KAGR,GAAIkd,GAAWA,EAAQ/B,MAAQ+B,EAAQ/B,KAAKqM,WAAY,CACtD,IAAIm8B,EACCzmC,EAAQ/B,KAAKqM,WAAWo8B,eAU3BD,EAASv9C,KAAK4S,MAAMkE,EAAQ/B,KAAKqM,WAAWo8B,eAC5CD,EAAOE,aAAeF,EAAOE,aACzBF,EAAOE,aAAe,EACtB,EACJF,EAAOG,WAAaH,EAAOG,WAAaH,EAAOG,WAAa,EAAI,EAChEH,EAAOI,WAAaJ,EAAOI,WAAaJ,EAAOI,WAAa,EAAI,EAChEJ,EAAOK,YAAcL,EAAOK,YACxBL,EAAOK,YAAcN,EACrBA,EACJC,EAAOM,UAAYN,EAAOM,UACtBN,EAAOM,UAAYP,EACnBA,EACJC,EAAOO,UAAYP,EAAOO,UACtBP,EAAOO,UAAYR,EACnBA,GAvBJC,EAAS,CACPE,aAAc,EACdC,WAAY,EACZC,WAAY,EACZC,YAAaN,EACbO,UAAWP,EACXQ,UAAWR,GAoBf,MAAMS,EAA8B,+NASfx9C,YAAU,CAC7BC,OAAQ,gBACRC,GAAIs9C,EACJp9C,MAAO,CACL/E,GAAIhC,EACJ4jD,cAAex9C,KAAKC,UAAUs9C,KAGpC,CACF,CAAE,MAAOrjD,GACPC,QAAQC,IAAI,+BACd,CAEJ,CAvEY4jD,CACJvC,EAAK3kC,QAAQlb,GACbohD,EAAoBvhD,MAAMugB,MAC1B1hB,EAAaW,IAEjB,CACF,CAAE,MAAOwsB,GACPttB,QAAQ0mB,MAAM,4BAA6B4G,EAC7C,CACA,OAAOu1B,CAAmB,EAgE5B,MAAMC,EAAyBx+C,UAuBxB,IAvB+B,iBACpC0W,EAAgB,mBAChBC,EAAkB,cAClB0mC,EAAa,YACbE,EAAW,YACXE,EAAW,eACX7iB,EAAc,SACdn8B,EAAQ,wBACRk/C,EAAuB,YACvBC,EAAW,cACXC,EAAa,OACbpzB,EAAM,WACNrU,EAAU,QACViC,EAAO,YACPxC,EAAW,QACXjQ,EAAO,SACP3J,EAAQ,UACRwyB,EAAS,mBACTwuB,EAAkB,UAClB9gD,EAAS,aACT4hD,EAAY,UACZP,EAAS,aACT3hD,GACDhB,EAEKgwB,QAAeL,EAAkB,CACnCC,SACAC,UAAWrS,EAAQlb,KAErB,GAAI0tB,GAAUA,EAAOzI,MACnB,MAAO,CACLA,MAAOyI,EAAOzI,OAGlB,IAAKyI,EAAQ,CACX,MAAMmB,EAAa,CACjBE,OAAQzB,EACRhsB,SAAUA,EACVtD,UAAWkd,EAAQlb,GACnBmvB,aAAc7B,EACdsK,gBAAiB1c,EAAQlb,GACzB63B,eAAgB,GAOlB,GALAnK,QAAe/oB,YAAU,CACvBC,OAAQ,eACRC,GAAIid,IACJ/c,MAAO8pB,IAELnB,GAAUA,EAAOzI,MACnB,MAAO,CACLA,MAAOyI,EAAOzI,MAGpB,CACA,IAAIk5B,EAAY,SACI,YAAhBsC,IAA2BtC,EAAY,WACvB,YAAhBsC,IAA2BtC,EAAY,WAE3C,MACMkE,EAAY,CAChBnC,gBACAoC,YAAahC,EACbpC,cAscJr7C,eAA6B7E,GAC3B,MAAMukD,QAAkBzpC,IAAI2F,IAAI,aAAc,MAAO,CACnDC,sBAAuB,CACrB1gB,YACAwkD,OAAQ,aAGZ,OAAID,GAAaA,EAAUnO,QAAgBmO,EAAUviD,GAE5CmN,OAAO,IAAIs1C,OAAOz8C,KAAKs7B,OAAOh0B,OAAO,GAEhD,CArdwBo1C,CAAcxnC,EAAQlb,IAK1Cy9B,eAAgBr5B,KAAKC,UAAUo5B,GAC/Bn8B,WACAuiC,KAAM8e,EAAiBjqC,EAAajQ,EAASg4C,GAC7Ct9C,KAAMg7C,EACNngD,UAAWkd,EAAQlb,GACnByD,WAAYwV,EACZ2pC,gBAAiB3pC,EACjB4pC,SAAUnC,EAAcmC,SACxBC,iBAAkBpC,EAAcoC,iBAChCC,OAAQrC,EAAcqC,OACtB3iC,MAAOsgC,EAActgC,MACrBhd,OAAQ,YACR4/C,eAAgB9nC,EAAQlb,GACxBijD,QAASvC,EAAcuC,QACvBh0B,SAAUvB,EAAO1tB,GACjBkjD,qBAAsB1C,EACtBI,aAAcx8C,KAAKC,UAAUu8C,GAC7BuC,cAAez1B,EAAO1tB,MAClB8/C,GAAsB,CACxBsD,qBAAsBtD,IAIpBjgD,QAAc8E,YAAU,CAC5BC,OAAQ,cACRC,GAAIud,IACJrd,MAAOs9C,IAGT,GAAIxiD,GAASA,EAAMolB,MACjB,MAAO,CACLA,MAAOplB,EAAMolB,OAIjB,GAAIzL,GAAsBA,EAAmBnS,OAAQ,CAEnD,MAAMg8C,EAAe,GACrB,IAAIC,EAAU,EACd,IAAK,MAAMC,KAAU/pC,EAAoB,CAEvC,MAAMgqC,EAAc,CAClB3f,KAAMnrB,EAAYL,KAClBwD,UAAW0nC,EAAO1pC,SAASC,YAC3BgC,QAASpD,EAAYoD,QACrBhd,SAAUA,EACVd,UAAWkd,EAAQlb,GACnByjD,eAAgB5jD,EAAMG,GACtB+jC,QAASlkC,EAAMG,GACfm+C,UAAWA,EACXn/C,UAAWA,EACX0kD,qBAAsBhrC,EAAY1Y,GAClC2jD,kBAAmB1qC,EACnB2qC,gBAAiBl2B,EAAO1tB,GACxB6jD,iBAAkB3oC,EAAQlb,GAC1BykC,YAAa,GAAGlrB,EAAiB+pC,GAAStjD,KAC1CyD,WAAYwV,EACZgW,SAAUvB,EAAO1tB,GACjBoD,OAAQ,YACRuO,SAAU0uC,EACV5B,gBAAiBr6C,KAAKC,UAAUk/C,EAAO1pC,UACvCiqC,eAAe,GAGjB,IACMxD,IACFkD,EAAYO,MAAQ3/C,KAAKC,UAAU,CACjC,CACE2/C,UACEnkD,EAAM6tB,OAAO7sB,KAAKT,UAAY,IAAMP,EAAM6tB,OAAO7sB,KAAKR,SACxD+kB,UAAWvlB,EAAMulB,UACjB6+B,MAAO3D,KAIf,CAAE,MAAOhiD,GACPC,QAAQC,IAAI,yCAA0CF,EACxD,CAEA,MAAM4lD,QAAmBv/C,YAAU,CACjCC,OAAQ,gBACRC,GAAIqd,IACJnd,MAAOy+C,IAGT,GAAIU,GAAcA,EAAWj/B,MAC3B,MAAO,CACLA,MAAOi/B,EAAWj/B,OAGtBo+B,EAAa/2C,KAAK43C,GAClBZ,GAAoB,CACtB,CACAa,EAAqCd,SAG/Be,GAAqB,CACzBhE,YAAaA,EACbiE,UAAW,qBACXrmD,UAAWkd,EAAQlb,KAIrB,IACE,IAAIqiD,EAAY,CACdiC,gBAAiBzkD,EAAM6tB,OAAO7sB,KAAKT,UACnCmkD,eAAgB1kD,EAAM6tB,OAAO7sB,KAAKR,SAClCmkD,YAAa3kD,EAAM6tB,OAAO7sB,KAAKX,aAC/BukD,kBAAmB5kD,EAAM6tB,OAAO7sB,KAAKytB,YACrCo2B,kBAAmB7kD,EAAMlB,SAASyB,UAClCukD,iBAAkB9kD,EAAMlB,SAAS0B,SACjCukD,cAAe/kD,EAAMlB,SAASuB,aAC9B2kD,YAAahlD,EAAMq+C,QACnB4G,iBAAkBjlD,EAAMgkC,KACxBkhB,YAAallD,EAAMugB,MACnB4kC,cAAenlD,EAAMyB,SACrB68C,UAAWt+C,EAAMsD,KACjB8hD,iBAAkB5B,EAAah8C,OAC/BugB,QAASy7B,EAAa,GAAGxf,KACzBqhB,SAAU,SACV9/B,UAAW,IAAIpf,KAAKnG,EAAMulB,WAAWwR,eAAe,UAEnC,YAAf/2B,EAAMsD,OACRk/C,EAAU4C,iBAAmB,aAE3B/E,IACFmC,EAAU6C,SAAW,SAEvB,IAAI3+B,EAAW,yBACTD,YAAe+7B,EAAWnnC,EAAQlb,GAAIumB,EAC9C,CAAE,MAAOjoB,GACPC,QAAQC,IAAI,0CAA2CF,EACzD,CAEA,MAAO,CACLuB,QACA4I,QAAS46C,EAAa,GACtBA,eACA31B,SAEJ,CAAO,CACL,IAAIy3B,EACA9B,EAAe,GAEnB,GAAoB,YAAhB5C,EAA2B,CAE7B,MAAM2E,QAmHZviD,eAA6CnE,EAAcmB,GACzD,IACE,IAAIwlD,EACA1pC,EAAO,CACT3d,UAAWU,EAAawc,QAAQlb,GAChC+jC,QAASlkC,EAAMG,GAEfslD,aAAc5mD,EAAae,aAC3B+jD,YAAa,CACXj/C,SAAU7F,EAAaG,iBACnBH,EAAa8c,yBAAyBlX,IACtC5F,EAAa6mD,2BACb7mD,EAAa6mD,2BAA2BjhD,IACxC,KACJG,UAAW/F,EAAaG,iBACpBH,EAAa8c,yBAAyBhX,IACtC9F,EAAa6mD,2BACb7mD,EAAa6mD,2BAA2B/gD,IACxC,KACJghD,kBAAmB9mD,EAAa+xC,YAAYxwC,SAC5CnB,SAAUJ,EAAaI,SACvBgE,gBAC8BoI,IAA5BxM,EAAaoE,YAA4BpE,EAAaoE,WAClDpE,EAAaoE,WACb,GACN/D,YAAaL,EAAaK,YAC1B2uB,OAAQ,CACN8G,UAAW91B,EAAagvB,OAAO7sB,KAAKT,UACpCs0B,SAAUh2B,EAAagvB,OAAO7sB,KAAKR,SACnCL,GAAItB,EAAagvB,OAAO1tB,IAE1BrB,SAAU,CACR61B,UAAW91B,EAAaC,SAASyB,UACjCs0B,SAAUh2B,EAAaC,SAAS0B,SAChCL,GAAItB,EAAaC,SAASqB,GAC1B2R,SAAUjT,EAAaC,SAASgT,UAElC3S,iBAC6BkM,IAA3BxM,EAAaM,YAA2BN,EAAaM,WAGvDH,wBACoCqM,IAAlCxM,EAAaG,mBACbH,EAAaG,kBAGf2c,8BACoCtQ,IAAlCxM,EAAaG,kBACbH,EAAaG,iBACT,CACEyF,IAAK5F,EAAa8c,yBAAyBlX,IAC3CE,IAAK9F,EAAa8c,yBAAyBhX,KAE7C9F,EAAa6mD,2BACb7mD,EAAa6mD,2BACb,KACN/zC,SAAU9S,EAAa8S,SACvBC,QAAS/S,EAAa+S,QACtBg0C,WAAY/mD,EAAa+mD,WACzBC,MAAOhnD,EAAagnD,QAexB,GAZIhnD,EAAa4hD,cACf3kC,EAAK6nC,YAAYO,MAAQ3/C,KAAKC,UAAU,CACtC,CACE2/C,UACEtlD,EAAagvB,OAAO7sB,KAAKT,UACzB,IACA1B,EAAagvB,OAAO7sB,KAAKR,SAC3B+kB,UAAW,IAAIpf,KACfi+C,MAAOvlD,EAAa4hD,gBAItB5hD,EAAa4yB,UAAW,CAC1B,IAAIA,EAoBV,SAAqChU,EAAWgU,GAC9C,IAAIq0B,EAAgB,GAChBC,EAAgBtoC,EACpBsoC,EAAc1Y,QAAQ5b,EAAU,IAChC,IAAK,IAAInmB,EAAI,EAAGA,EAAIy6C,EAAcv+C,OAAQ8D,IAAK,CAC7C,IAAIiH,GAAU,EACVC,GAAe,EACnB,GAAIlH,EAAI,EAAG,CACT,MAAM2H,EAAW8yC,EAAcz6C,GAC/BiH,EAAUU,EAAWA,EAASuL,SAASjM,QAAUA,EACjDC,EAAeS,EAAWA,EAASuL,SAAShM,aAAeA,CAC7D,CAEA,GAAID,GAAYC,IAAiBD,EAAU,CACzC,MAAMyzC,EACJ16C,EAAI,EACAmmB,EAAUrpB,MACP6E,GAASA,EAAK/J,YAAc6iD,EAAcz6C,GAAG0O,SAAS65B,UAEzDpiB,EAAU,GACVw0B,EAAgB,CACpBpS,QAASh2B,IAAOmoC,EAAgBriD,QAAQkE,OAAO,cAC/CoS,YAAa+rC,EAAgBriD,OAC7BmwC,aAAcj2B,IAAOmoC,EAAgBriD,QAAQkE,OAC3C,sBAEFq+C,qBAAsBroC,IAAOmoC,EAAgBriD,QAAQkE,OACnD,oBAEFs+C,qBAAsBtoC,IAAOmoC,EAAgBriD,QAAQkE,OACnD,cAEF+8B,YAAaohB,EAAgB7lD,IAE/B2lD,EAAcr5C,KAAKw5C,EACrB,MACEH,EAAcr5C,KAAK,KAEvB,CACA,OAAOq5C,CACT,CA5DsBM,CACdvnD,EAAa4e,UACb5e,EAAa4yB,WAEf3V,EAAK6nC,YAAYlyB,UAAYA,CAC/B,CASA,OAPA+zB,QAA8BvsC,IAAI4C,KAChC,uBACA,6BACA,CACEC,SAGG0pC,EAAsB3gD,QAC/B,CAAE,MAAOpG,GACPC,QAAQC,IAAI,0CAA2CF,EACzD,CACF,CAhNwC4nD,CAChCxnD,EACAmB,GAEFwjD,QAkQNxgD,eAAoCijD,EAAeK,GAEjD,IAAI9C,EAAe,GAGnB,IAAK,MAAM+C,KAAkBD,EAAgB,CAE3C,IAAIE,EAAa,CACf1nD,SAAUmnD,EAAcnnD,SACxB8/C,gBAAiBr6C,KAAK4S,MACpB5S,KAAKC,UAAUyhD,EAAcrH,kBAE/Bz/C,UAAW8mD,EAAc9mD,UACzBF,SAAUgnD,EAAchnD,UAI1BunD,EAAW5H,gBAAgB/K,QAAU0S,EAAevsC,SAAS65B,QAC7D2S,EAAW5H,gBAAgB3kC,YACzBssC,EAAevsC,SAASC,YAC1BusC,EAAW5H,gBAAgB9K,aACzByS,EAAevsC,SAAS85B,aAC1B0S,EAAW5H,gBAAgB7K,aACzBwS,EAAevsC,SAASksC,qBAC1BM,EAAW5H,gBAAgB5K,aACzBuS,EAAevsC,SAASmsC,qBAG1B3C,EAAa/2C,KAAK+5C,EACpB,CAKA,OAFAhD,EAAanW,QAAQ4Y,GAEdzC,CACT,CArS2BiD,CACnBlB,EAAoBmB,YACpB7nD,EAAa6yB,mBAEf4zB,EAAeC,EAAoBmB,WACrC,KAAO,CAEL,MAAM/C,EAAc,CAClB3f,KAAMnrB,EAAYL,KAClBwD,UAAWpT,EAAQoR,SAASC,YAC5BgC,QAASpD,EAAYoD,QACrBhd,SAAUA,EACVd,UAAWkd,EAAQlb,GACnByjD,eAAgB5jD,EAAMG,GACtB+jC,QAASlkC,EAAMG,GACfm+C,UAAWA,EACXn/C,UAAWA,EACX0kD,qBAAsBhrC,EAAY1Y,GAClC2jD,kBAAmB1qC,EACnB2qC,gBAAiBl2B,EAAO1tB,GACxB6jD,iBAAkB3oC,EAAQlb,GAC1BykC,YAAa,GAAGnT,EAAU,GAAGtxB,KAC7ByD,WAAYwV,EACZgW,SAAUvB,EAAO1tB,GACjBoD,OAAQ,YACRuO,SAAU0uC,EACV5B,gBAAiBr6C,KAAKC,UAAUoE,EAAQoR,UACxCiqC,eAAe,GAGjB,IACMxD,IACFkD,EAAYO,MAAQ3/C,KAAKC,UAAU,CACjC,CACE2/C,UACEnkD,EAAM6tB,OAAO7sB,KAAKT,UAAY,IAAMP,EAAM6tB,OAAO7sB,KAAKR,SACxD+kB,UAAWvlB,EAAMulB,UACjB6+B,MAAO3D,KAIf,CAAE,MAAOhiD,GACPC,QAAQC,IAAI,yCAA0CF,EACxD,CAEA,MAAM4lD,QAAmBv/C,YAAU,CACjCC,OAAQ,gBACRC,GAAIqd,IACJnd,MAAOy+C,IAGT,GAAIU,GAAcA,EAAWj/B,MAC3B,MAAO,CACLA,MAAOi/B,EAAWj/B,OAGtBo+B,EAAe,GACfA,EAAa/2C,KAAK43C,GAElBiB,EAAejB,EACfC,EAAqCd,EACvC,OAGMe,GAAqB,CACzBhE,YAAaA,EACbiE,UAAW,qBACXrmD,UAAWkd,EAAQlb,KAIrB,IACE,IAAIqiD,EAAY,CACdiC,gBAAiBzkD,EAAM6tB,OAAO7sB,KAAKT,UACnCmkD,eAAgB1kD,EAAM6tB,OAAO7sB,KAAKR,SAClCmkD,YAAa3kD,EAAM6tB,OAAO7sB,KAAKX,aAC/BukD,kBAAmB5kD,EAAM6tB,OAAO7sB,KAAKytB,YACrCo2B,kBAAmB7kD,EAAMlB,SAASyB,UAClCukD,iBAAkB9kD,EAAMlB,SAAS0B,SACjCukD,cAAe/kD,EAAMlB,SAASuB,aAC9B2kD,YAAahlD,EAAMq+C,QACnB4G,iBAAkBjlD,EAAMgkC,KACxBkhB,YAAallD,EAAMugB,MACnB4kC,cAAenlD,EAAMyB,SACrB68C,UAAWt+C,EAAMsD,KACjB8hD,iBAAkB5B,EAAah8C,OAC/BugB,QAASy7B,EAAa,GAAGxf,KACzBqhB,SAAU,SACV9/B,UAAW,IAAIpf,KAAKnG,EAAMulB,WAAWwR,eAAe,UAEnC,YAAf/2B,EAAMsD,OACRk/C,EAAU4C,iBAAmB,aAE3B/E,IACFmC,EAAU6C,SAAW,SAEvB,IAAI3+B,EAAW,yBACTD,YAAe+7B,EAAWnnC,EAAQlb,GAAIumB,EAC9C,CAAE,MAAOjoB,GACPC,QAAQC,IAAI,0CAA2CF,EACzD,CAEA,MAAO,CACLuB,QACA4I,QAAS08C,EACT9B,eACA31B,SAEJ,GA2LF,SAASy2B,EAAqCd,GAC5C,GAAIA,GAAgBA,EAAah8C,OAC/B,IAAK,IAAIa,KAAMm7C,EACbn7C,EAAGu2C,gBAAkBr6C,KAAK4S,MAAM9O,EAAGu2C,gBAGzC,CAeA,SAAS8B,EAAkB7hD,GACzB,IAAI++B,EAAiB,CAAC,EActB,MAbyC,WAArC/+B,EAAaO,qBACfw+B,EAAe+oB,YAAc9nD,EAAaI,SAC1C2+B,EAAej9B,MAAQ9B,EAAa+nD,mBACpChpB,EAAerU,YAAc1qB,EAAagoD,0BAC1CjpB,EAAekpB,WAAajoD,EAAakoD,wBACzCnpB,EAAeh9B,QAAU/B,EAAamoD,uBAEtCppB,EAAe+oB,YAAc9nD,EAAaI,SAC1C2+B,EAAej9B,MAAQ9B,EAAaooD,SACpCrpB,EAAerU,YAAc1qB,EAAaqoD,aAC1CtpB,EAAekpB,WAAajoD,EAAaioD,WACzClpB,EAAeh9B,QAAU/B,EAAa+B,SAEjCg9B,CACT,CAEA,MAAM9P,EAAqB9qB,MAAOhC,EAAMqa,KACtC,MAAM2T,EAAa,CACjBE,OAAQluB,EAAKb,GACbsB,SAAU4Z,EAAQ5Z,SAAW4Z,EAAQ5Z,SAAW,MAChDtD,UAAWkd,EAAQlb,GACnBmvB,aAActuB,EAAKb,GACnB43B,gBAAiB1c,EAAQlb,GACzB63B,eAAgB,GAGlB,IAAInK,QAAe/oB,YAAU,CAC3BC,OAAQ,eACRC,GAAIid,IACJ/c,MAAO8pB,IAGT,OAAInB,GAAUA,EAAOzI,MACZ,CACLA,MAAOyI,EAAOzI,OAEJyI,CAAM,EAGhBs5B,EAAiCnkD,UAQhC,IARuC,YAC5Cu9C,EAAW,QACXllC,EAAO,YACPxC,EAAW,QACXjQ,EAAO,OACP/E,EAAM,WACNZ,EAAU,WACVW,GACDkC,EACC,GAAI8C,EAAS,CACX,MAAMw+C,EAAYC,EAAoBxuC,EAAajQ,GACnD,IAAI0+C,EAAsB,CACxBnpD,UAAWkd,EAAQlb,GACnB+C,UAAWmD,YAAWuC,EAAQqB,MAC9B7G,UAAWwF,EAAQs4C,KACnB79C,QAAS+jD,EACT9jD,KAAM,SACNL,aACAM,OAAQ,UACRM,SACAH,GAAIkF,EAAQoR,SAAStW,GACrBC,OAAQiF,EAAQoR,SAASC,YACzBrW,cAEF,MAAM0P,QAAWvQ,YAAgBukD,GACjC,UACQruC,IAAI4C,KAAK,aAAc,wBAAyB,CACpDC,KAAM,CACJ2V,UAAW,CACT,CACEtxB,GAAImT,EAAGnT,GACP+D,aAAcoP,EAAGpP,aACjBX,OAAQ+P,EAAG/P,SAGfg9C,YAAaA,EACbpiD,UAAWkd,EAAQlb,KAGzB,CAAE,MAAO1B,GACPC,QAAQC,IACN,uEACAF,EAEJ,CACA,OAAO6U,CACT,CACA,OAAO,IAAI,EAGPi0C,EAA2BvkD,UAW1B,IAXiC,YACtCu9C,EAAW,WACXiH,EAAU,WACV5jD,EAAU,QACVyX,EAAO,YACPxC,EAAW,QACXjQ,EAAO,iBACPw4C,EAAgB,kBAChBC,EAAiB,OACjBx9C,EAAM,WACNZ,GACD8K,EACC,MAAM05C,EAAsB,GAE5B,GAAI7+C,EAAS,CACX,MAAMw+C,EAAYC,EAAoBxuC,EAAajQ,GACnD,IAAI0+C,EAAsB,CACxBnpD,UAAWkd,EAAQlb,GACnB+C,UAAWmD,YAAWuC,EAAQqB,MAC9B7G,UAAWwF,EAAQs4C,KACnB79C,QAAS+jD,EACT9jD,KAAM,SACNkkD,aACA5jD,aACAL,OAAQ,UACRN,aACAY,SACAH,GAAIkF,EAAQoR,SAAStW,GACrBC,OAAQiF,EAAQoR,SAASC,aAE3B,MAAM3G,QAAWvQ,YAAgBukD,GACjCG,EAAoBh7C,KAAK6G,EAC3B,CAEA,GAAI8tC,GAAoBC,EAAkBC,SACxC,IAAK,MAAMoC,KAAUrC,EAAkB3vB,kBAAmB,CAExD,MAAM01B,EAAYM,EAA0B7uC,EAAa6qC,EAAOz5C,MAChE,IAAIq9C,EAAsB,CACxBnpD,UAAWkd,EAAQlb,GACnB+C,UAAWmD,YAAWq9C,EAAOz5C,MAC7B7G,WAkQsBukD,EAlQUjE,EAAOz5C,KAmQtC,GACL09C,EAAarT,WAAa,GACtB,IAAMqT,EAAarT,WACnBqT,EAAarT,cAEjBqT,EAAar+C,aAAe,GACxB,IAAMq+C,EAAar+C,aACnBq+C,EAAar+C,gBAzQbjG,QAAS+jD,EACT9jD,KAAM,SACNkkD,aACA5jD,aACAL,OAAQ,UACRM,SACAZ,aACAS,GAAIggD,EAAO1pC,SAAStW,GACpBC,OAAQ+/C,EAAO1pC,SAASC,aAE1B,MAAM3G,QAAWvQ,YAAgBukD,GACjCG,EAAoBh7C,KAAK,IAAK6G,EAAIrJ,KAAMy5C,EAAOz5C,MACjD,CAqPJ,IAA8B09C,EAnP5B,GAAIF,GAAuBA,EAAoBjgD,OAC7C,UACQyR,IAAI4C,KAAK,aAAc,wBAAyB,CACpDC,KAAM,CACJ2V,UAAWg2B,EAAoB39C,KAAK89C,IAC3B,CACLznD,GAAIynD,EAAGznD,GACP+D,aAAc0jD,EAAG1jD,aACjBX,OAAQqkD,EAAGrkD,WAGfg9C,YAAaA,EACbpiD,UAAWkd,EAAQlb,KAGzB,CAAE,MAAO1B,GACPC,QAAQC,IAAI,yCAA0CF,EACxD,CAEF,MAAO,CACLgzB,UAAWg2B,EACZ,EAGH,SAASI,EAAmBC,EAAIC,GAC9B,OAAID,EAAGnG,UACEoG,EAAYC,EAAYF,EAAIC,GAE9BA,CACT,CAEA,SAASC,EAAYF,EAAIC,GACvB,OAAID,EAAGnG,UAC6B,WAA9BmG,EAAGnG,UAAUsG,aACR36C,OAAOw6C,EAAGnG,UAAUuG,eAEjBH,GAAaz6C,OAAOw6C,EAAGnG,UAAUuG,eAAiB,KAEzD,CACT,CAEA,MAAMC,EAAyBA,CAACJ,EAAW1sC,EAAS+sC,EAAaN,KAC/D,MAAM,YAAEv+B,EAAW,UAAE8+B,GAAcC,GAAmBR,EAAIzsC,GACpDktC,ECn6BkBC,EAACj/B,EAAak/B,KACtC,MAAMC,EAAmBn/B,EAAY3J,cAC/B+oC,EAAqBF,EAAc7oC,cAGzC,GAAyB,OAArB8oC,GAAkD,OAArBA,EAC/B,OAAO,EAGT,GAAyB,OAArBA,EACF,OAAO,EAGT,GAAyB,OAArBA,EACF,OAAO,EAGT,GAAyB,OAArBA,EACF,OAAO,EAIT,GAAyB,OAArBA,EACF,OAAO,EAIT,GAAyB,OAArBA,EAA2B,CAC7B,GAA2B,OAAvBC,GAAsD,OAAvBA,EACjC,OAAO,EAET,GAA2B,OAAvBA,GAAsD,OAAvBA,EACjC,OAAO,GAET,GACyB,OAAvBA,GACuB,OAAvBA,GACuB,OAAvBA,GACuB,OAAvBA,GACuB,OAAvBA,EAEA,OAAO,GAET,GAA2B,OAAvBA,EACF,OAAO,GAET,GAA2B,OAAvBA,EACF,OAAO,OAET,GAA2B,OAAvBA,EACF,OAAO,EAEX,CAGA,OAAO,CAAC,ED42BoBH,CAAkBj/B,EAAa8+B,GAC3D,IAEIO,EAFAC,EAAgB,EAChBC,EAAY,EAGhB,GAAe,YAAXhB,EAAGtoD,KACL,GAAyB,OAArBsoD,EAAG5H,cAAwB,CAC7B,MAAM,qBACJ6I,EACA7I,eACErnC,aAAa,UAAEmwC,EAAWC,YAAaC,GAAiB,YACxDC,EAAW,MACXlrB,EAAK,SACLmrB,EAAQ,SACRC,IAEAvB,EACJ,IAAIwB,EACJ,IACEA,EAAc/kD,KAAK4S,MAAM+xC,EAC3B,CAAE,MACAxqD,QAAQC,IAAI,+BACd,EACkB,IAAdqqD,IACFH,EACkB,WAAhBM,EACItB,EAAmBC,EAAI7pB,GACvBmrB,EACAvB,EAAmBC,EAAIiB,IACtB,EAAIM,EAAW,MAExBT,GACGW,MAAM5kB,WAAW2kB,KAAiBE,SAASF,GACxC3kB,WAAW2kB,GACXf,EACNO,EAAaD,EAAgBD,EAAW,GAC1C,MACK,CACL,MAAM,sBACJa,EAAqB,sBACrBC,EAAqB,sBACrBC,EAAqB,YACrBC,EAAW,YACXC,EAAW,YACXC,EAAW,aACX1rD,EAAY,aACZC,EAAY,aACZC,GACEwpD,GACIkB,UAAWe,EAAYd,YAAae,GAC1C5rD,GAAgB,CAAC,GACX4qD,UAAWiB,EAAYhB,YAAaiB,GAC1C7rD,GAAgB,CAAC,GACX2qD,UAAWmB,EAAYlB,YAAamB,GAC1C9rD,GAAgB,CAAC,EACnB,IAAI+rD,EAAcC,EAAcC,EAC5BC,EAAUC,EAAUC,EACpBC,EAAgBC,EAAgBC,EACpC,IACER,EAAe9lD,KAAK4S,MAAM6yC,EAC5B,CAAE,MACAtrD,QAAQC,IAAI,+BACd,CACA,IACE2rD,EAAe/lD,KAAK4S,MAAM+yC,EAC5B,CAAE,MACAxrD,QAAQC,IAAI,+BACd,CACA,IACE4rD,EAAehmD,KAAK4S,MAAMizC,EAC5B,CAAE,MACA1rD,QAAQC,IAAI,+BACd,EACmB,IAAforD,GAAuB3rD,IACzBusD,EACE9C,EAAmBC,EAAI2B,GAAyBG,EAClDf,GAAiB8B,EACjBH,GACGjB,MAAM5kB,WAAW0lB,KAAkBb,SAASa,GACzC1lB,WAAW0lB,GACX9B,EACNO,GAAc6B,EAAiBH,EAAY,MAE1B,IAAfP,GAAuB5rD,IACzBusD,EAAiBlB,EAAwBG,EACzChB,GAAiB+B,EACjBH,GACGlB,MAAM5kB,WAAW2lB,KAAkBd,SAASc,GACzC3lB,WAAW2lB,GACX/B,EACNO,GAAc8B,EAAiBH,EAAY,MAE1B,IAAfN,GAAuB7rD,IACzBusD,EAAiBlB,EAAwBG,EACzCjB,GAAiB+B,EACjBF,GACGnB,MAAM5kB,WAAW4lB,KAAkBf,SAASe,GACzC5lB,WAAW4lB,GACXhC,EACNO,GAAc+B,EAAiBH,EAAY,KAG7C9B,EAAU,CAAC4B,EAAUC,EAAUC,GAAU97C,QACvC,CAACk8C,EAAKC,SACK1/C,IAAT0/C,GAAsBA,IAASD,EAAME,IAAoBF,GAC3DN,EAEJ,CAEA,MAAMlpD,EAAS,CACb0hD,SAAU6E,EAAmBC,EAAIx6C,OAAOq3B,WAAWojB,IACnD9E,iBAAkB,EAClB1iC,MAAO,EACP8oC,SAAUrB,EAAYF,EAAIC,IAwB5B,OArBI1sC,EAAQ4vC,gBAAkB7C,IACG,eAA3B/sC,EAAQ6vC,eACV5pD,EAAO2hD,iBAAmB31C,OAAOq3B,WAC9BrjC,EAAO0hD,SAAW3nC,EAAQ8vC,iBAAoB,KAGjD7pD,EAAO2hD,iBAAmB31C,OAAOq3B,WAAWtpB,EAAQ8vC,kBAIpB,OAA9B5hC,EAAY3J,eAA0Bte,EAAO2hD,iBAAmB,IAClE4F,GAAiBvnD,EAAO2hD,iBACxB6F,GAAaxnD,EAAO2hD,kBAAoBsF,EAAsB,OAIlEjnD,EAAO8pD,WAAa99C,OAAOq3B,WAAWkkB,GACtCvnD,EAAO4hD,OAAS4F,EAChBxnD,EAAO8hD,QAAUwF,EAEjBtnD,EAAOif,MAAQjf,EAAO0hD,SAAW1hD,EAAO2hD,iBAAmB3hD,EAAO4hD,OAC3D5hD,CAAM,EAGT+pD,EAA4BroD,MAAOsoD,EAAKC,UAS/BzmD,YAAU,CACrBC,OAAQ,sBACRC,GAV8B,sJAW9BE,MAAO,CACL/E,GAAImrD,EAAInrD,GACRoD,OAAQ,OACRgoD,eACAhzC,cAAe+yC,EAAI/yC,cACnBizC,UAAWF,EAAIE,UACfjmC,UAAW+lC,EAAI/lC,aAKrB,SAASu9B,EAAiBjqC,EAAajQ,EAASg4C,GAG9C,MAAoB,YAAhBA,EACK,0BAA0B/nC,EAAYL,sBAAsB5P,EAAQoR,SAAS+5B,eAC3D,YAAhB6M,EACF,uBAAuB/nC,EAAYL,OAEnC,eAAeK,EAAYL,WAAW5P,EAAQoR,SAAS+5B,eAClE,CAEA,SAASsT,EAAoBxuC,EAAajQ,GACxC,MAAM6iD,EAAU,IAAItlD,KACdoP,EAAQ3M,EAAQs4C,KAAKvyC,MAAM,KAGjC,OAFA88C,EAAQp+C,SAASC,OAAOC,SAASgI,EAAM,KACvCk2C,EAAQpiD,WAAWwP,EAAYoD,QAAU3O,OAAOC,SAASgI,EAAM,KACxD,GACLk2C,EAAQnX,WAAa,GAAK,IAAMmX,EAAQnX,WAAamX,EAAQnX,cAE7DmX,EAAQniD,aAAe,GACnB,IAAMmiD,EAAQniD,aACdmiD,EAAQniD,cAEhB,CAEA,SAASo+C,EAA0B7uC,EAAa8uC,GAC9C,MAAM8D,EAAU,IAAItlD,KAAKwhD,EAAa/7C,WAEtC,OADA6/C,EAAQpiD,WAAWwP,EAAYoD,QAAUwvC,EAAQniD,cAC1C,GACLmiD,EAAQnX,WAAa,GAAK,IAAMmX,EAAQnX,WAAamX,EAAQnX,cAE7DmX,EAAQniD,aAAe,GACnB,IAAMmiD,EAAQniD,aACdmiD,EAAQniD,cAEhB,CAcAtG,eAAewqB,EAAkBk+B,GAC/B,MAyCM7mD,QAAiBoU,IAAIC,QACzBC,YA1CmC,q1BA0CF,CAC/B+V,OAAQw8B,EAAGj+B,OACXpmB,OAAQ,CAAElJ,UAAW,CAAEyZ,GAAI8zC,EAAGh+B,eAMlC,OAFE7oB,EAASyU,KAAKwM,eAAe/e,OAASlC,EAASyU,KAAKwM,eAAe/e,MAAM,EAG7E,CAEA,MAAM4kD,EAAkB3oD,UAAsC,IAA/B,OAAEyqB,EAAM,cAAEm+B,GAAenhD,EACtD,MAIMohD,QAA+B5kD,YAAkB,CACrDjC,GAAIihB,IACJlhB,OAAQ,sBACR5E,GAAI,CAAE+uB,OAAQzB,GACdtmB,KAAM,CACJ2kD,gCAAiC,CAC/B1kD,WAAY,CAAEmR,cAAeqzC,KAGjCvkD,OAba,CACbqM,IAAK,CAAC,CAAEtP,OAAQ,CAAEmD,IAAI,IAAW,CAAEhE,OAAQ,CAAEqU,GAAI,WAajDzP,MAAO,KAET,OAAI0jD,EAAuBzmC,MAClB,GAEFymC,EAAuB9kD,MAC1B8kD,EAAuB9kD,MAAMM,QAC1B0kD,GAAOA,EAAGC,gBAAkBD,EAAGR,eAElC,EAAE,EAGFU,EAA8BjpD,UAAgC,IAAzB,IAAEsoD,EAAG,WAAEY,GAAYjgD,EAE5D,MACEqN,MAAQ0M,iBAAkBzmB,UAClB0Z,IAAIC,QACZC,YAAiB6M,IAAkB,CACjC7lB,GAAImrD,EAAInrD,MAGNorD,EAAehsD,EACjBA,EAAcgsD,aAAeW,EAC7BZ,EAAIC,aAAeW,EACjBhnD,EAAQ,CACZ/E,GAAImrD,EAAInrD,GACRoY,cAAe+yC,EAAI/yC,cACnBizC,UAAWF,EAAIE,UACfjmC,UAAW+lC,EAAI/lC,UACfgmC,gBAOF,aALuBzmD,YAAU,CAC/BC,OAAQ,sBACRC,GAAIod,IACJld,SAEa,EAGXinD,EAAqCnpD,eAC5BopD,EACXC,EACA,eACA,CACErJ,SAAU,EACVC,iBAAkB,EAClB1iC,MAAO,EACP2iC,OAAQ,GAEV,MAGEoJ,EAA+BtpD,MACnCqpD,EACAxL,EACA0L,UAEaH,EAAkBC,EAAS,YAAaxL,EAAe0L,GAEhEC,EAA0BxpD,MAAOqpD,EAASxL,EAAe0L,UAChDH,EAAkBC,EAAS,OAAQxL,EAAe0L,GAK3DH,EAAoBppD,MAAOqpD,EAAS9oD,EAAQs9C,EAAe0L,UAQlDznD,YAAU,CACrBC,OAAQ,cACRC,GAT6B,8HAU7BE,MAAO,CACL/E,GAAIksD,EACJ9oD,YACIgpD,EACA,CACEE,aAAcF,GAEhB,CAAC,KACD1L,EACA,CACEmC,SAAUnC,EAAcmC,SACxBziC,MAAOsgC,EAActgC,MACrB0iC,iBAAkBpC,EAAcoC,iBAChCC,OAAQrC,EAAcqC,QAExB,CAAC,KAKLwJ,EAAwB1pD,MAAOosB,EAAUu9B,UAMhC7nD,YAAU,CACrBC,OAAQ,eACRC,GAPmB,+GAQnBE,MAAO,CACL/E,GAAIivB,EACJ4I,eAAgB20B,KA4ChBC,EAAsB5pD,UAC1B,MAAM,SACJvB,EAAQ,QACR4Z,EAAO,MACPrb,EAAK,QACL4I,EAAO,OACPilB,EAAM,KACN7sB,EAAI,YACJ9B,EAAW,cACX2hD,GACE37C,EACE2nD,EAAK7nC,IACL8nC,EAAWvoD,KAAKC,UAAU,CAC9BrG,UAAWkd,EAAQlb,GACnB+jC,QAASlkC,EAAMG,GACfghC,UAAWv4B,EAAQzI,GACnB+uB,OAAQluB,EAAKb,GACb4sD,iBAAkB/rD,EAAKX,aACvBoB,SAAUA,EACV6jC,iBAAkBzX,EAAOyX,iBACzBlW,SAAUvB,EAAO1tB,GACjByY,gBAAiB1Z,EAAYsZ,KAC7Bw0C,mBAAoBpkD,EAAQg8B,YAC5BqoB,gBAAiBrkD,EAAQoT,UACzBkxC,UAAWL,EACXhM,kBAGIsM,EAAS,CACbhvD,UAAWkd,EAAQlb,GACnBitD,SAAU,IAAIjnD,KACd5C,OAAQ,SACR+V,KAAMwzC,GAGR,IACE,MAAMO,QAAWvoD,YAAU,CACzBC,OAAQ,wBACRC,GAAIyd,IACJvd,MAAOioD,IAGT,OAAIE,GAAMA,EAAGjoC,MACJ,CACLA,MAAOioC,EAAGjoC,MACVmvB,SAAS,GAGJ,CAAEA,SAAS,EAEtB,CAAE,MAAO91C,GACP,MAAO,CAAE81C,SAAS,EAAOnvB,MAAO3mB,EAClC,GAEIumB,EAAiBA,IACdnH,IAAOoH,MAAMpd,OAAO,2BAGvBylD,EAA6BtqD,UACjC,IAAK,IAAIuqD,KAAM97B,EAAW,CACxB,MAAM+7B,EAASD,EAAGptD,GAAGwO,MAAM,YAErB7J,YAAU,CACdC,OAAQ,yBACRC,GAAI0d,IACJxd,MAAO,CACL/E,GAAIqtD,EAAO,GACXtpD,aAAcspD,EAAO,GACrBjqD,OAAQ,cAGd,GAGIiuB,EAAkBxuB,UACtB,IAAK,IAAIuqD,KAAM97B,EAAW,CACxB,MAAM+7B,EAASD,EAAGptD,GAAGwO,MAAM,YACrB7J,YAAU,CACdC,OAAQ,yBACRC,GAAI2d,IACJzd,MAAO,CACL/E,GAAIqtD,EAAO,GACXtpD,aAAcspD,EAAO,KAG3B,GAGFxqD,eAAeyqD,EAA+B75C,GAU1C,IAV2C,SAC7C9U,EAAQ,OACR+uB,EAAM,QACNxS,EAAO,YACPnc,EAAW,SACX2J,EAAQ,QACRw1C,EAAO,UACPC,EAAS,WACTC,EAAU,UACVC,GACD5qC,EACC,MAAM85C,QAA6BtP,EAA4B,CAC7Dt/C,WACA+uB,SACAxS,UACAnc,cACA2J,WACAw1C,UACAC,YACAC,aACAC,cAEEkP,EAAqBlmD,OAAS,SAC1ByzC,YACJ,wCAAwC5/B,EAAQ7C,iBAAiB6lC,IACjEqP,EACA,CAAC5uD,EAASuB,cACV,GACA,GACAgb,EAAQ8kB,kBACR9kB,EAAQ7C,KAEd,CAEAxV,eAAe2qD,EAAiBzpB,GAC9B,UACQjrB,IAAI4C,KAAK,aAAc,yBAA0B,CACrDC,KAAM,CAAEooB,YAEZ,CAAE,MAAOzlC,GACPC,QAAQC,IAAI,iCAAkCF,EAChD,CACF,CAEAuE,eAAe4qD,EAAkB5sD,EAAMnC,GACrC,IACE,MAAMysD,EAAMzsD,EAAaqhD,cAEzB,IAAIh7C,EAAQ,CACV/G,UAAWU,EAAawc,QAAQlb,GAChC+uB,OAAQluB,EAAKZ,SACb+uB,oBAAqBnuB,EAAKZ,SAC1BytD,2BAA4BhvD,EAAaK,YAAYiB,GACrDivB,SAAUvwB,EAAagvB,OAAO1tB,GAC9B2tD,sBAAuBjvD,EAAagvB,OAAO1tB,GAC3CoY,cAAe1Z,EAAaK,YAAYiB,GACxC4tD,uBAAwBzC,EAAInrD,GAC5BqrD,UAAWF,EAAInrD,GACf6rD,gBAAiBV,EAAIlC,SACrBmC,aAAc,EACdhoD,OAAQ,UACRa,QAAQ,EACRmhB,WAAW,IAAIpf,MAAOmY,eAMxB,MAAO,CACLi2B,SAAS,EACT+W,WANmBryC,IAAIC,QACvBC,YAAiBgJ,IAAqB,CAAEjd,YAK5BoU,KAAK6I,oBAErB,CAAE,MAAO6J,GAEP,OADAttB,QAAQC,IAAI,wBACL,CACL41C,SAAS,EAEb,CACF,CAEAvxC,eAAegrD,EAAc7vD,EAAW8vD,GAGtC,IAAIC,QAAyBjnD,YAAkB,CAC7ClC,OAAQ,mBACRC,GAAIwe,IACJrjB,GAAI,CAAEhC,UAAWA,GACjBgJ,KAAM,CACJgnD,uBAAwB,CACtB/mD,WAAY,CACVmR,cAAe01C,KAIrB5mD,OAAQ,CACNqM,IAAK,CAAC,CAAEtP,OAAQ,CAAEmD,IAAI,IAAW,CAAED,QAAS,CAAEC,IAAI,MAEpD4hB,cAAe,SAMjB,OAHI+kC,EAAiBnnD,OAASmnD,EAAiBnnD,MAAMS,OAAS,GAC5D0mD,EAAiBnnD,MAAM+L,MAAK,CAACwM,EAAIC,IAAOD,EAAG8pC,SAAW7pC,EAAG6pC,WAEpD8E,EAAiBnnD,KAC1B,CAEA/D,eAAeorD,EAAWjwD,EAAWkwD,GACnC,MAAMC,QAAaN,EAAc7vD,EAAWkwD,GAC5C,OAAKC,IAASA,EAAK9mD,MAErB,CAEAxE,eAAeurD,GAAqBpwD,EAAW8vD,GAc7C,aAXoChnD,YAAkB,CACpDlC,OAAQ,sCACRC,GAAIue,IACJpjB,GAAI,CAAEhC,UAAWA,GACjBgJ,KAAM,CAAEoR,cAAe,CAAEX,GAAIq2C,IAC7B5mD,OAAQ,CACNqM,IAAK,CAAC,CAAEtP,OAAQ,CAAEmD,IAAI,IAAW,CAAED,QAAS,CAAEC,IAAI,MAEpD4hB,cAAe,UAGcpiB,KACjC,CAGA/D,eAAewrD,GAAS3vD,EAAcK,GACpC,MAAM++B,EAAQ/+B,EAAY++B,MAG1B,GAAIp/B,EAAaM,UAAW,OAAO8+B,EAEnC,MAAMwwB,QAAeF,GACnB1vD,EAAawc,QAAQlb,GACrBjB,EAAYiB,IAGd,IAAIS,EAAU/B,EAAaG,iBACvBH,EAAagoD,0BACbhoD,EAAaqoD,aACbwH,EAAO7vD,EAAaG,iBACpBH,EAAa+nD,mBACb/nD,EAAaooD,SACbH,EAAajoD,EAAaG,iBAC1BH,EAAakoD,wBACbloD,EAAaioD,WAGb6H,EAAgBF,EAAOpnD,QAAQunD,GAAwB,YAAlBA,EAAEC,cACvCC,EAAaL,EAAOpnD,QAAQunD,GAAwB,aAAlBA,EAAEC,cACpCE,EAAeN,EAAOpnD,QAAQunD,GAAwB,eAAlBA,EAAEC,cAY1C,OAVI/H,IACFiI,EAAeA,EAAa1nD,QAAQunD,GAClCA,EAAEI,YAAY5mD,MACXuY,GACCA,EAAEm+B,QAAQ,OAAQ,IAAIl/B,gBACtBknC,EAAWhI,QAAQ,OAAQ,IAAIl/B,mBAKnCknC,GAAciI,EAAavnD,OACtBunD,EAAa,GAAG9wB,MAIvB6wB,EAAWtnD,QACXsnD,EAAW1mD,MAAMwmD,GAAMA,EAAE3H,SAASrzB,SAAW86B,IAEtCI,EAAW1mD,MAAMwmD,GAAMA,EAAE3H,SAASrzB,SAAW86B,IAAMzwB,MAI1D0wB,EAAcnnD,QACdmnD,EAAcvmD,MAAMwmD,GAAMA,EAAEhuD,QAAQgzB,SAAWhzB,IAExC+tD,EAAcvmD,MAAMwmD,GAAMA,EAAEhuD,QAAQgzB,SAAWhzB,IAASq9B,MAIxDA,CAEX,CAGA,SAASgxB,GAAehkD,EAAKgzB,EAAOx8B,GAElC,GAAKwJ,EAAI+4B,KAAK17B,SAAS,aAAgB2C,EAAI+4B,KAAK17B,SAAS,WAEpD,IAAwB,WAApB2C,EAAIk+C,YACX,OAAOl+C,EAAI+4B,KACR8a,QAAQ,OAAQ,IAChBA,QACC,UACA,GAAGoQ,GAAkBztD,MAAawJ,EAAIgzB,MAAQhzB,EAAIm+C,UAAU+F,QAAQ,MAEnE,GAAwB,eAApBlkD,EAAIk+C,YAA8B,CAC3C,IAAIiG,EACDnkD,EAAIm+C,SAAWnrB,GAAS,EAAIhzB,EAAIo+C,SAAW,KAAQp+C,EAAIm+C,SAC1D,OAAOn+C,EAAI+4B,KACR8a,QAAQ,OAAQ,IAChBA,QACC,UACA,GAAGoQ,GAAkBztD,KAAY2tD,EAAgBD,QAAQ,KAE/D,CACE,MAAO,sBACT,CAnBE,OAAOlkD,EAAI+4B,IAoBf,CAEAhhC,eAAeqsD,GAAqBpsD,GAIlC,aAHqCgW,IAAIC,QACvCC,YAAiBiN,IAAoB,CAAEjmB,GAAI8C,MAEfqW,KAAK8M,kBACrC,CAEA,SAASmf,GAAgB+pB,GACvB,IAAIC,GAA+B,IAAlB5qB,WAAW2qB,IAAYrgD,WACxC,MAAMugD,EAAcD,EAAU1jD,QAAQ,KACtC,IAAqB,IAAjB2jD,EACF,OAAOjiD,SAASgiD,GACX,CACL,MAAME,EAAcF,EAAUnwB,OAAOowB,EAAc,GACnD,GAAIjiD,SAASkiD,IAAgB,EAC3B,OAAOliD,SAASgiD,GAAa,EACxB,GAAIhiD,SAASkiD,GAAe,EACjC,OAAOliD,SAASgiD,EAEpB,CACF,CAEA,MAAMG,GAAqB1sD,MACzBnE,EACAgvB,EACA8hC,KACI,IAADC,EAAAC,EAAAC,EAAAC,EAEH,IAAKliC,EAAQ,CAKXA,QAJyBL,EAAkB,CACzCC,OAAQ5uB,EAAa+xC,YAAYxwC,SACjCstB,UAAW7uB,EAAawc,QAAQlb,IAGpC,CACA,IAAI6vD,EAAgC,GAChCC,EAA6B,GACjC,GACEpxD,EAAamxD,+BACbnxD,EAAamxD,8BAA8BxoD,OAAS,EACpD,CACA,IAAI0oD,EAAW,GAEbA,EADErxD,EAAamxD,8BAA8BxoD,OAAS,GAC3C3I,EAAamxD,8BAA8BviD,MAAM,EAAG,IAC/C5O,EAAamxD,8BAC/BA,EAAgCE,EAASpmD,KAAK6W,IAAO,IAADwvC,EAClD,MAAO,CACLhwD,GAAIwgB,EAAExgB,GACNI,UAAWogB,EAAEpgB,UACbC,SAAUmgB,EAAEngB,SACZ4D,OAAQuc,EAAEvc,OACVgsD,cAAezvC,EAAEyvC,cACjB/vD,aAAcsgB,EAAEtgB,aAChBgwD,MAAO1vC,EAAE0vC,MACTzuB,aAAcjhB,EAAEihB,aAChB0uB,qBAAsB3vC,EAAE2vC,qBACxBC,OAAQ5vC,EAAE4vC,OACVnrD,IAAU,QAAL+qD,EAAAxvC,EAAEvb,WAAG,IAAA+qD,GAALA,EAAO3oD,OACRmZ,EAAEvb,IAAI0E,KAAK0mD,IACF,CACLttD,UAAWstD,EAAGttD,UACdC,QAASqtD,EAAGrtD,QACZC,UAAWotD,EAAGptD,UACdC,QAASmtD,EAAGntD,QACZI,SAAU+sD,EAAG/sD,aAGjB,GACJqO,SAAU6O,EAAE7O,SACb,GAEL,CAEA,GACEjT,EAAaoxD,4BACbpxD,EAAaoxD,2BAA2BzoD,OAAS,EACjD,CACA,IAAI0oD,EAAW,GAEbA,EADErxD,EAAaoxD,2BAA2BzoD,OAAS,GACxC3I,EAAaoxD,2BAA2BxiD,MAAM,EAAG,IAC5C5O,EAAaoxD,2BAE/BA,EAA6BC,EAASpmD,KAAK6W,IAAO,IAAD8vC,EAC/C,MAAO,CACLtwD,GAAIwgB,EAAExgB,GACNI,UAAWogB,EAAEpgB,UACbC,SAAUmgB,EAAEngB,SACZ4D,OAAQuc,EAAEvc,OACVgsD,cAAezvC,EAAEyvC,cACjB/vD,aAAcsgB,EAAEtgB,aAChBgwD,MAAO1vC,EAAE0vC,MACTzuB,aAAcjhB,EAAEihB,aAChB0uB,qBAAsB3vC,EAAE2vC,qBACxBC,OAAQ5vC,EAAE4vC,OACVnrD,IAAU,QAALqrD,EAAA9vC,EAAEvb,WAAG,IAAAqrD,GAALA,EAAOjpD,OACRmZ,EAAEvb,IAAI0E,KAAK0mD,IACF,CACLttD,UAAWstD,EAAGttD,UACdC,QAASqtD,EAAGrtD,QACZC,UAAWotD,EAAGptD,UACdC,QAASmtD,EAAGntD,QACZI,SAAU+sD,EAAG/sD,aAGjB,GACJqO,SAAU6O,EAAE7O,SACb,GAEL,CAEA,IAAI4+C,EAAK,CACP7sD,OAAQhF,EAAaG,iBACjBH,EAAa8c,yBACb9c,EAAa6mD,2BACb7mD,EAAa6mD,2BACb,KACJlF,UAAW3hD,EAAa2hD,UACxBC,YAAa5hD,EAAa4hD,YAC1BkQ,uBAAwB9xD,EAAa8xD,uBAErC/yB,eAAgB8iB,EAAkB7hD,GAClCI,SAAUJ,EAAaI,SACvBgE,WAAYpE,EAAaoE,WACzBnD,mBAAmBjB,EAAa+xD,sBAE5B/xD,EAAaiB,kBACjB2B,SAAU5C,EAAa4C,SACvBosB,SACAgjC,IAAK,CACHC,aAAcd,EACde,UAAWd,GAEb9xD,UAAWU,EAAawc,QAAQlb,GAChCjB,YAAa,CACXiB,GAAItB,EAAaK,YAAYiB,GAC7BqY,KAAM3Z,EAAaK,YAAYsZ,KAC/BylB,MAAOp/B,EAAaK,YAAY++B,MAChChiB,QAASpd,EAAaK,YAAY+c,SAEpC2tC,YAAa/qD,EAAa+qD,YAC1BC,YAAahrD,EAAagrD,YAC1BC,YAAajrD,EAAairD,YAC1B1rD,aAAcS,EAAaT,aAC3BC,aAAcQ,EAAaR,aAC3BC,aAAcO,EAAaP,aAC3B0C,KAAM6sB,EAAO7sB,KACb0iB,QAAS7kB,EAAa6kB,QACtBvkB,UAAWN,EAAaM,UACxBH,iBAAkBH,EAAaG,iBAC/BI,oBAAqBP,EAAaO,oBAClCL,WAAYF,EAAaE,WACzBD,SAAU,CACRqB,GAAItB,EAAaC,SAASqB,GAC1BE,aAAcxB,EAAaC,SAASuB,aACpCE,UAAW1B,EAAaC,SAASyB,UACjCC,SAAU3B,EAAaC,SAAS0B,SAChC6vD,MAAOxxD,EAAaC,SAASuxD,MAC7BzuB,aAAc/iC,EAAaC,SAAS8iC,aACpC0uB,qBAAsBzxD,EAAaC,SAASwxD,qBAC5CC,OAAQ1xD,EAAaC,SAASyxD,OAC9BS,UAAWnyD,EAAaC,SAASkyD,UAC7BnyD,EAAaC,SAASkyD,UACtB,GACJ5rD,IAAKvG,EAAaC,SAASsG,IAAI0E,KAAK0mD,IAC3B,CACLttD,UAAWstD,EAAGttD,UACdC,QAASqtD,EAAGrtD,QACZC,UAAWotD,EAAGptD,UACdC,QAASmtD,EAAGntD,QACZI,SAAU+sD,EAAG/sD,aAGjBqO,SAAUjT,EAAaC,SAASgT,UAElCm/C,aAAc,CACZ9wD,GAAItB,EAAaC,SAASqB,GAC1BE,aAAcxB,EAAaC,SAASuB,aACpCE,UAAW1B,EAAaC,SAASyB,UACjCC,SAAU3B,EAAaC,SAAS0B,SAChC6vD,MAAOxxD,EAAaC,SAASuxD,MAC7BC,qBAAsBzxD,EAAaC,SAASwxD,qBAC5CC,OAAQ1xD,EAAaC,SAASyxD,OAC9Bz+C,SAAUjT,EAAaC,SAASgT,UAElClS,aAAc,IACTf,EAAae,aAChBoN,IAAKnO,EAAae,aAAaqK,KAAK6B,SACpCpI,GAAI7E,EAAa2hD,WAEnB7uC,SAAU9S,EAAa8S,SACvBC,QAAS/S,EAAa+S,QACtBg0C,WAAY/mD,EAAa+mD,WACzBjmD,uBAAqD,QAA/BiwD,EAAA/wD,EAAa8a,0BAAkB,IAAAi2C,IAA/BA,EAAiCpoD,SAEnD3I,EAAac,qBACjB+xB,kBAAkD,QAA/Bm+B,EAAAhxD,EAAa8a,0BAAkB,IAAAk2C,GAA/BA,EAAiCroD,OAChD3I,EAAa8a,mBAAmBlM,MAAM,GACtC5O,EAAa6yB,kBACjBm0B,MAAOhnD,EAAagnD,MAAQhnD,EAAagnD,MAAQ,GACjDqL,eAAgBryD,EAAaqhD,cACzBrhD,EAAashD,aAAahgD,GAC1B,GACJ+/C,cAAerhD,EAAaqhD,cAC5BE,cAAevhD,EAAauhD,cAC5B5gD,IAAKX,EAAaW,IAElBwhD,IAAKniD,EAAamiD,IAClBF,IAAKjiD,EAAaiiD,IAClBrvB,UACE5yB,EAAa4yB,WAAa5yB,EAAa4yB,UAAUjqB,OAC7C3I,EAAa4yB,UAAU3nB,KAAKyjD,IACnB,CACLptD,GAAIotD,EAAGptD,GACP+D,aAAcqpD,EAAGrpD,aACjBhB,UAAWqqD,EAAGrqD,UACdC,QAASoqD,EAAGpqD,QACZC,UAAWmqD,EAAGnqD,UACdC,QAASkqD,EAAGlqD,QACZkiB,UAAWgoC,EAAGhoC,UACd5hB,OAAQ4pD,EAAG5pD,OACXD,GAAI6pD,EAAG7pD,OAGkB,QAA7BosD,EAAAjxD,EAAa6a,wBAAgB,IAAAo2C,GAA7BA,EAA+BtoD,OAC/B3I,EAAa6a,iBAAiB5P,KAAKyjD,IAC1B,CACLptD,GAAIotD,EAAGptD,GACP+D,aAAcqpD,EAAGrpD,aACjBhB,UAAWqqD,EAAGrqD,UACdC,QAASoqD,EAAGpqD,QACZC,UAAWmqD,EAAGnqD,UACdC,QAASkqD,EAAGlqD,QACZkiB,UAAWgoC,EAAGhoC,UACd5hB,OAAQ4pD,EAAG5pD,OACXD,GAAI6pD,EAAG7pD,GACPswC,aAAcuZ,EAAGvZ,iBAGrB,GACNmd,gBAAiBtyD,EAAasyD,gBAC9B91C,SA2DyBA,EA3DIxc,EAAawc,QA4DrC,CACLlb,GAAIkb,EAAQlb,GACZqY,KAAM6C,EAAQ7C,KACd44C,YAAa/1C,EAAQ+1C,YACrB/wD,aAAcgb,EAAQhb,aACtB8/B,kBAAmB9kB,EAAQ8kB,kBAC3B1+B,SAAU4Z,EAAQ5Z,SAClB4vD,wBAAyBh2C,EAAQg2C,wBACjCC,eAAgBj2C,EAAQi2C,eACxBC,OAAQl2C,EAAQk2C,OAChB7wD,KAAM2a,EAAQ3a,KACdC,MAAO0a,EAAQ1a,MACfC,QAASya,EAAQza,QACjBC,WAAYwa,EAAQxa,WACpB+D,UAAWyW,EAAQzW,UACnBF,SAAU2W,EAAQ3W,SAClB8sD,yBAA0Bn2C,EAAQm2C,yBAClCngB,UAAWh2B,EAAQg2B,UACnBc,QAAS92B,EAAQ82B,QACjB7R,QAASjlB,EAAQilB,QACjBmxB,YAAap2C,EAAQo2C,YACrBC,UAAWr2C,EAAQq2C,UACnBlxB,aAAcnlB,EAAQmlB,aACtByqB,cAAe5vC,EAAQ4vC,cACvBC,eAAgB7vC,EAAQ6vC,eACxBC,iBAAkB9vC,EAAQ8vC,iBAC1B/H,QAAS/nC,EAAQ+nC,QACjB59C,WAAY6V,EAAQ7V,WACpB07B,sBAAuB7lB,EAAQ6lB,sBAC/BywB,qBAAsBt2C,EAAQs2C,qBAC9BC,kBAAmBv2C,EAAQu2C,kBAC3BC,qBAAsBx2C,EAAQw2C,qBAC9BC,SAAUC,GAA6B12C,EAAQy2C,UAC/CE,eAAgB32C,EAAQ22C,eACxBvsD,iBAAkB4V,EAAQ5V,iBAAmB4V,EAAQ5V,iBAAmB,GACxE+/B,cAAenqB,EAAQmqB,cACvBC,qBAAsBpqB,EAAQoqB,uBA/F9BwsB,oBAAqBpzD,EAAaozD,oBAC9B5rD,YAAW,IAAIF,KAAKtH,EAAaozD,sBACjC,GACJzT,UAAW3/C,EAAa2/C,UACxB6B,gBAAexhD,EAAayhD,gBAC5BqB,UAAW9iD,EAAa8iD,UACxBuQ,sBAAuBrzD,EAAaqzD,sBACpCtQ,WAAY/iD,EAAaqsC,cACrBrd,EAAO7sB,KACP,IAAsB,QAApB+uD,EAAGlxD,EAAamC,YAAI,IAAA+uD,OAAA,EAAjBA,EAAmBnjC,YAC5BulC,uBACEtzD,EAAac,sBACbd,EAAauzD,0BA8CnB,IAA6B/2C,EA3CvBs0C,IACFe,EAAG2B,kBAAoB1C,GAGzB,MAAMxvD,EAAK,MAAM0tB,EAAO1tB,KAElBmZ,EAAO/U,KAAKC,UAAUksD,GAEtB4B,EAAS,CACbnyD,KACAoyD,WAAY,OAAOpsD,KAAKs7B,QACxB79B,WAAY/E,EAAaC,SAASqB,GAClCqyD,UAAU,EACVjvD,OAAQ,YACR+V,QAGF,IACE,MAAMo3C,QAAW5rD,YAAU,CACzBC,OAAQ,uBACRC,GAAI+d,IACJ7d,MAAOotD,IAGT,OAAI5B,GAAMA,EAAGtrC,MACJ,CACLA,MAAOsrC,EAAGtrC,MACVmvB,SAAS,UAGLgQ,GAAqB,CACzBhE,YAAa1hD,EAAa0hD,YAC1BiE,UAAW,cACXrmD,UAAWU,EAAawc,QAAQlb,KAElCJ,YAAoBlB,EAAc,CAAC,GAC5B,CAAE01C,SAAS,GAEtB,CAAE,MAAO91C,GACP,MAAO,CAAE81C,SAAS,EAAOnvB,MAAO3mB,EAClC,GA4CF,SAASszD,GAA6BU,GACpC,IAAIX,EAAW,CAAEY,UAAW,IAC5B,GAAID,GAAgBA,EAAajrD,OAAQ,CACvC,IAAImrD,EAAcpuD,KAAK4S,MAAMs7C,GACzBE,GAAeA,EAAYD,YAC7BZ,EAASY,UAAYC,EAAYD,WAC/BC,GAAeA,EAAYC,uBAC7Bd,EAASc,qBAAuBD,EAAYC,sBAC1CD,GAAeA,EAAYE,uBAC7Bf,EAASe,qBAAuBF,EAAYE,qBAChD,CACA,OAAOf,CACT,CAaA9uD,eAAe8vD,GAAYj0D,GACzB,GAAIA,EAAawc,QAAQg2C,wBAAyB,CAChD,IAAI9nC,EAEFA,EADuC,WAArC1qB,EAAaO,oBACDP,EAAagoD,0BAEbhoD,EAAaqoD,aAG7B,IAAIzlD,QApBRuB,eAA4BumB,GAC1B,MAAMpX,QAAe8G,IAAIC,QACvBC,YAAiBqN,IAAY,CAC3BI,QAAS,WACTC,QAAS0C,KAKb,OAFUpX,EAAOmH,KAAKkN,WAAarU,EAAOmH,KAAKkN,WAAWiD,SAAW,IAGvE,CAUyBspC,CAAaxpC,GAClC,OAAI9nB,GACQ5C,EAAawc,QAAQ5Z,QACnC,CAAO,OAAO5C,EAAawc,QAAQ5Z,QACrC,CAEA,MAAMytD,GAAqB8D,GAElB,QADCA,EAEG,OAQA,IAmCb,SAASC,GAAmBnL,GAC1B,OAAuB,IAAnBA,EAAGoL,YACEpL,EAAG2B,sBAAwB3B,EAAG8B,YAEhB,IAAnB9B,EAAGoL,YAEHpL,EAAG2B,sBAAwB3B,EAAG8B,YAC9B9B,EAAG4B,sBAAwB5B,EAAG+B,YAGX,IAAnB/B,EAAGoL,YAEHpL,EAAG2B,sBAAwB3B,EAAG8B,YAC9B9B,EAAG4B,sBAAwB5B,EAAG+B,YAC9B/B,EAAG6B,sBAAwB7B,EAAGgC,iBAJlC,CAOF,CAEA,SAASxB,GAAmBR,EAAIzsC,GAC9B,MAAM83C,EAAkB,CAAE5pC,YAAa,GAAI8+B,UAAW,IAStD,MAR+B,WAA3BP,EAAG1oD,sBACL+zD,EAAgB5pC,YAAcu+B,EAAGjB,0BACjCsM,EAAgB9K,UAAYP,EAAGlB,oBAEF,UAA3BkB,EAAG1oD,sBACL+zD,EAAgB5pC,YAAclO,EAAQ6lB,sBACtCiyB,EAAgB9K,UAAYhtC,EAAQ1a,OAE/BwyD,CACT,CAEA,SAASC,GAAUtL,EAAIzsC,GACrB,MAAM2lC,EAAM,CAAE/d,KAAM,IACpB,IAAIowB,EAAmB,EACnBvS,EAAM,CAAC,EACPxhD,EAAgBwoD,EAAG5H,cAEvB,GAAe,YAAX4H,EAAGtoD,IAAmB,CAAC,IAAD8zD,EACxB,MAAMC,EAAkC,QAArBD,EAAAxL,EAAGnuC,0BAAkB,IAAA25C,GAArBA,EAAuB9rD,OACtCsgD,EAAGnuC,mBAAmBnS,OACtB,EACEgsD,EAAiB1L,EAAG2L,mBAiB1B,GAhBI3L,EAAG1H,gBACLY,EAAI/d,KAAKx2B,KAAK,CACZsb,QAAS,uBAAuB+/B,EAAG1H,cAAc4L,2BACjD0H,IAAK,GAAGH,QACNzL,EAAG1H,cAAc4L,gBAAkBlE,EAAG1H,cAAcmL,4BAEtDttB,MAAO,GAAGixB,GAAkBpH,GAAMx6C,OAAOq3B,WAAW,GAAGwqB,QAAQ,KAC/DwE,WAAY,GAAG7L,EAAG1H,cAAcmL,gBAAgBzD,EAAG1H,cAAc4L,wEACjEzmC,UAAWuiC,EAAG1H,cAAc76B,YAE9Bu7B,EAAMqH,EAAuB,EAAG9sC,GAAS,EAAMysC,GAC/CuL,EACEvL,EAAG1H,cAAc4L,gBACjBlE,EAAG1H,cAAcmL,aACjBgI,GAEAj0D,EAAe,CAKjB,MAAM0jD,EAC0B,WAA9B1jD,EAAc6pD,YACV7pD,EAAc2+B,MACd3+B,EAAc8pD,SACdtB,EAAGiB,sBACF,EAAIzpD,EAAc+pD,SAAW,KAC9B1jB,EAAcspB,GAClB3vD,EACAwoD,EAAGiB,qBACHjB,EAAGrmD,UAGLu/C,EAAI/d,KAAKx2B,KAAK,CACZsb,QAAS4d,EACT+tB,IAAK,GAAGF,OAAoBl0D,EAAc8pD,8BAC1CnrB,MAAO,GACLixB,GAAkBpH,GAAMx6C,OAAOq3B,WAAWqe,GAAUmM,QAAQ,OAGhErO,EAAMqH,EAAuBnF,EAAU3nC,GAAS,EAAOysC,EACzD,CACF,KAAO,CAEL,MAAM//B,EAAU+/B,EAAG5oD,YAAYsZ,KACzBk7C,EAAM,EACZ,IAAIz1B,EAAQ,GACVixB,GAAkBpH,GAClBx6C,OAAOq3B,WAAWmjB,EAAGiB,qBAAuB2K,GAAKvE,QAAQ,KAE3DlxB,EAAQwhB,EAAcqI,EAAGrmD,SAAUqmD,EAAGiB,sBACtC/H,EAAI/d,KAAKx2B,KAAK,CAAEsb,UAAS2rC,MAAKz1B,UAE9B6iB,EAAMqH,EACJL,EAAGiB,qBAAuB2K,EAC1Br4C,GACA,EACAysC,EAEJ,CAQmB,IAAD8L,EAAAC,GANlB7S,EAAc,SAAIvB,EAAcqI,EAAGrmD,SAAUq/C,EAAIkC,UACjDhC,EAAgB,WAAIvB,EAAcqI,EAAGrmD,SAAUq/C,EAAImC,kBACnDjC,EAAa,QAAIF,EAAIsC,QACrBpC,EAAe,UAAIvB,EAAcqI,EAAGrmD,SAAUq/C,EAAIoC,QAClDlC,EAAW,MAAIvB,EAAcqI,EAAGrmD,SAAUq/C,EAAIvgC,OAC9CygC,EAAa,QAAIvB,EAAcqI,EAAGrmD,SAAUq/C,EAAIsK,YAC5CtK,EAAIuI,YACNrI,EAAc,SAAIvB,EAAcqI,EAAGrmD,SAAUq/C,EAAIuI,UACjDrI,EAAe,UAAI,CACjBxoC,KAAkB,QAAdo7C,EAAE9L,EAAGnG,iBAAS,IAAAiS,OAAA,EAAZA,EAAcp7C,KACpBs7C,UAAuB,QAAdD,EAAE/L,EAAGnG,iBAAS,IAAAkS,OAAA,EAAZA,EAAcC,YAM7B,OAHAhM,EAAG9G,IAAMA,EACT8G,EAAGhH,IAAMA,EAEF,CACLiT,GAAI/S,EACJqS,mBACAW,aAAclT,EAAIsK,aAAetK,EAAIkC,SAEzC,CAEAhgD,eAAeixD,GAAoBnM,GACjC,GAAuB,IAAnBA,EAAGoL,aAAwC,IAAnBpL,EAAG8B,YAC7B,MAAO,IACF9B,EAAG1pD,aACN81D,MAAOpM,EAAG8B,aAId,GACG9B,EAAGzsC,QAAQ84C,kBAAoBrM,EAAGoL,YAAc,GAChDpL,EAAGzsC,QAAQ+4C,aAAetM,EAAG8B,YAAc,EAC5C,CACA,MAAMyK,EAAU,GACZvM,EAAG1pD,cACLi2D,EAAQ5nD,KAAK,IAAKq7C,EAAG1pD,aAAc81D,MAAOpM,EAAG8B,cAC3C9B,EAAGzpD,cACLg2D,EAAQ5nD,KAAK,IAAKq7C,EAAGzpD,aAAc61D,MAAOpM,EAAG+B,cAC3C/B,EAAGxpD,cACL+1D,EAAQ5nD,KAAK,IAAKq7C,EAAGxpD,aAAc41D,MAAOpM,EAAGgC,cAE/C,IACIwK,EACAC,EACAC,EACAC,EAJAC,EAAmB,GAKnBL,EAAQ7sD,OAAS,GACnB6sD,EAAQvhD,MAAK,CAACoL,EAAIC,KAChB,MAAMw2C,EAAK,IAAIxuD,KAAK+X,EAAGqH,WAAW3Z,UAC5BgpD,EAAK,IAAIzuD,KAAKgY,EAAGoH,WAAW3Z,UAClC,OAAI+oD,EAAKC,GAAY,EACjBD,EAAKC,EAAW,EACb,CAAC,IAGW,IAAnB9M,EAAGoL,cACLwB,EAAmB,GAAGL,EAAQ,GAAGl0D,MAAMk0D,EAAQ,GAAGH,SAC7B,IAAnBpM,EAAGoL,cACLwB,EAAmB,GAAGL,EAAQ,GAAGl0D,MAAMk0D,EAAQ,GAAGH,SAASG,EAAQ,GAAGl0D,MAAMk0D,EAAQ,GAAGH,SAClE,IAAnBpM,EAAGoL,cACLwB,EAAmB,GAAGL,EAAQ,GAAGl0D,MAAMk0D,EAAQ,GAAGH,SAASG,EAAQ,GAAGl0D,MAAMk0D,EAAQ,GAAGH,SAASG,EAAQ,GAAGl0D,MAAMk0D,EAAQ,GAAGH,SAE9HK,EAAaF,EAAQ,GAAG9rC,SACpB8rC,EAAQ,GAAG9rC,SAASpoB,GACpBk0D,EAAQ,GAAGE,WACfC,EAAeH,EAAQ,GAAG9rC,SACtB8rC,EAAQ,GAAG9rC,SAAS/P,KACpB67C,EAAQ,GAAGG,aACQ,IAAnBH,EAAQ7sD,SACV8sD,EAAc,GAAGD,EAAQ,GAAGH,WAAWG,EAAQ,GAAG77C,OAElDi8C,EAAiBJ,EAAQ,GAAGp4C,QAAUo4C,EAAQ,GAAGH,OAE5B,IAAnBG,EAAQ7sD,SACV8sD,EAAc,GAAGD,EAAQ,GAAGH,WAAWG,EAAQ,GAAG77C,YAAY67C,EAAQ,GAAGH,WAAWG,EAAQ,GAAG77C,OAE/Fi8C,EACEJ,EAAQ,GAAGp4C,QAAUo4C,EAAQ,GAAGH,MAChCG,EAAQ,GAAGp4C,QAAUo4C,EAAQ,GAAGH,OAEb,IAAnBG,EAAQ7sD,SACV8sD,EAAc,GAAGD,EAAQ,GAAGH,WAAWG,EAAQ,GAAG77C,SAAS67C,EAAQ,GAAGH,WAAWG,EAAQ,GAAG77C,aAAa67C,EAAQ,GAAGH,WAAWG,EAAQ,GAAG77C,OAC1Ii8C,EACEJ,EAAQ,GAAGp4C,QAAUo4C,EAAQ,GAAGH,MAChCG,EAAQ,GAAGp4C,QAAUo4C,EAAQ,GAAGH,MAChCG,EAAQ,GAAGp4C,QAAUo4C,EAAQ,GAAGH,OAKpC,MAAM/hD,QAAe8G,IAAIC,QACvBC,YAAiBmK,IAA0B,CACzCnlB,UAAW2pD,EAAGzsC,QAAQlb,GACtBu0D,iBAAkB,CAAE98C,GAAI88C,MAG5B,GACEviD,GACAA,EAAOmH,KAAKgK,yBAAyBvc,MAAMS,QAC3C2K,EAAOmH,KAAKgK,yBAAyBvc,MAAM,GAE3C,MAAO,IACFoL,EAAOmH,KAAKgK,yBAAyBvc,MAAM,GAC9CmtD,MAAO,EACPW,kBAAmBR,GAGvB,GAAIliD,IAAWA,EAAOmH,KAAKgK,yBAAyBvc,MAAMS,OAAQ,CAEhE,IAAItC,EAAQ,CACVsT,KAAM87C,EACNr4C,QAASw4C,EACTx2B,MAAO6pB,EAAGiB,qBACV/kB,KAAM,kBACN5/B,QAAQ,EACR0wD,qBAAsBhN,EAAGzsC,QAAQlb,GACjChC,UAAW2pD,EAAGzsC,QAAQlb,GACtB40D,sBAAuBR,EACvBA,WAAYA,EACZC,aAAcA,EACdltD,SAAS,EACTotD,iBAAkBA,EAClB1sC,WAAW,EACXgtC,kBAAkB,GAGpB,MAAMC,QAA0Bh8C,IAAIC,QAClCC,YAAiB6I,IAAmB,CAAE9c,WAExC,OAAI+vD,GAAqBA,EAAkB37C,KAAK0I,kBACvC,IACFizC,EAAkB37C,KAAK0I,kBAC1BkyC,MAAO,EACPW,kBAAmBR,GAEX,IACd,CACF,CACA,OAAOvM,EAAG1pD,YACZ,CAEA,SAAS82D,GAAwBr2D,GAC/B,IAAIs2D,EAAet2D,EAAau2D,oBAEhC,OAAIjvD,KAAKs7B,MAAQ0zB,EAAavpD,UAAY,GAE5C,CAEA5I,eAAeqyD,GAAmBC,GAChC,aAAa/Q,GAAqB+Q,EACpC,CAEAtyD,eAAeuhD,GAAoB5tC,GAAyC,IAAxC,UAAE6tC,EAAS,UAAErmD,EAAS,YAAEoiD,GAAa5pC,EACvE,IACE,IAAIzR,EAAQ,CACVqwD,YAAa/Q,EACbrmD,UAAWA,GAGToiD,IAAar7C,EAAQ,IAAKA,EAAO/E,GAAIogD,IAEzC,MAAMiV,QAA0Bv8C,IAAIC,QAClCC,YAAiByJ,IAAiB,CAAE1d,WAEtC,OAAIswD,GAAqBA,EAAkBl8C,KAAKsJ,gBACvC4yC,EAAkBl8C,KAAKsJ,gBAAgBziB,GACpC,IACd,CAAE,MAAO1B,GACPC,QAAQC,IAAI,kCAAmC6lD,EACjD,CACF,CAEAxhD,eAAeyyD,GAA2B52D,GAAe,IAAD62D,EACtD,GAAmC,QAAnCA,EAAI72D,EAAa8a,0BAAkB,IAAA+7C,IAA/BA,EAAiCluD,OA4B9B,OAAO,EA3BZ,IACE,MAAMmuD,EACJ92D,EAAa8a,mBAAmBnS,OAE5B2K,QAAe8G,IAAIC,QACvBC,YAAiB6M,IAAkB,CACjC7lB,GAAItB,EAAauhD,cAAcjgD,MAGnC,SAAIgS,GAAUA,EAAOmH,MAAQnH,EAAOmH,KAAK0M,oBAErC7T,EAAOmH,KAAK0M,iBAAiBgmC,gBAC3B75C,EAAOmH,KAAK0M,iBAAiBulC,cAC/BoK,UAEM1J,EAA4B,CAChCX,IAAKzsD,EAAauhD,cAClB8L,WAAYyJ,KAEP,GAKb,CAAE,MAAOl3D,GACP,OAAO,CACT,CAEJ,CAEA,SAASm3D,GAAgB92D,GACvB,GAAIA,EAAS+2D,iBAAkB,CAC7B,IAC2C,kBAA9B/2D,EAAS+2D,mBAClB/2D,EAAS+2D,iBAAmBtxD,KAAK4S,MAAMrY,EAAS+2D,kBACpD,CAAE,MAAOp3D,GACP,OAAO,CACT,CACA,OACEK,EAAS+2D,iBAAiBC,QAC1Bh3D,EAAS+2D,iBAAiBC,OAAOC,KAG9B,IADIj3D,EAAS+2D,iBAAiBC,OAAOC,IAAIC,yBAExC,EACAl3D,EAAS+2D,iBAAiBC,OAAOC,IAAIC,yBAChCl3D,EAAS+2D,iBAAiBE,KACgC,IAA5Dj3D,EAAS+2D,iBAAiBE,IAAIC,yBACjC,EACAl3D,EAAS+2D,iBAAiBE,IAAIC,yBACtB,CAChB,CAAO,OAAO,CAChB,CAEA,SAASC,GAAgBn3D,GACvB,GAAIA,EAAS+2D,iBAAkB,CAC7B,IAC2C,kBAA9B/2D,EAAS+2D,mBAClB/2D,EAAS+2D,iBAAmBtxD,KAAK4S,MAAMrY,EAAS+2D,kBACpD,CAAE,MAAOp3D,GACP,OAAO,CACT,CACA,IAAIs3D,EAAMj3D,EAAS+2D,iBAAiBC,OAChCh3D,EAAS+2D,iBAAiBC,OAAOC,IACjCj3D,EAAS+2D,iBAAiBE,IAC9B,IAAKA,EAAK,MAAO,GACjB,IAAIG,EAAWH,EAAII,aACnB,IAAkB,IAAdD,EAWF,MAAO,gBAXY,CACnB,GAAIA,GAAY,GAAI,MAAO,gBAC3B,GAAIA,EAAW,IAAMA,GAAY,GAAI,MAAO,iBAC5C,IAAIjhD,EAAQ9S,KAAKC,MAAM8zD,EAAW,IAClC,GAAIjhD,EAAQ,EAAG,MAAO,oBACtB,GAAIA,GAAS,EAAG,MAAO,GAAGA,UAC1B,GAAIA,EAAQ,GAAI,CAEd,MAAO,GADI9S,KAAKC,MAAM6S,EAAQ,UAEhC,CACF,CAGF,CACA,MAAO,EACT,CAEAjS,eAAeozD,GAAsBl/C,GAGjC,IAHkC,YACpC05B,EAAW,QACXv1B,GACDnE,EACC,IACE,MAAMm/C,QAA+BjX,EAAmB,CACtDC,iBAAkBzO,EAAYrwC,UAC9B++C,gBAAiB1O,EAAYpwC,SAC7B++C,aAAc3O,EAAYvwC,aAC1BlC,UAAWkd,EAAQlb,GACnBkb,YAEIS,EAAO,WACTu6C,UAWJ,aATMpb,YACJ,4CACAn/B,EACA,CAAC80B,EAAYvwC,cACb,GACA,GACAgb,EAAQ8kB,kBACR9kB,EAAQ7C,MAEH69C,CACT,CAAE,MAAOrqC,GACPttB,QAAQ0mB,MAAM,8CACd1mB,QAAQ0mB,MAAM4G,EAChB,CACF,C,kCEz7EA,0YAYAhpB,eAAeszD,IACb,MAAMC,QAAqBrb,cACvBqb,GACFC,IAASC,OAAOC,IAAI,CAClBr2D,aAAck2D,EAAal2D,aAC3BmY,KAAM+9C,EAAah2D,UAAY,IAAMg2D,EAAa/1D,WAEhD+1D,EAAal2D,aACfm2D,IAASG,SAASJ,EAAal2D,cAE/Bm2D,IAASG,SAAS,2BAGpBH,IAASC,OAAOC,IAAI,CAAEr2D,aAAc,GAAImY,KAAM,eAC9Cg+C,IAASG,SAAS,yBAEtB,CAGA,SAASC,EAAsBC,GAC7BL,IAASh4D,MAAM,oBAAqBq4D,GACpCP,GACF,CAGA,SAAS14D,EAAoBi5D,GAC3BL,IAASh4D,MAAM,kBAAmBq4D,GAClCP,GACF,CAGA,SAAS13D,EAAuBi4D,GAC9BL,IAASh4D,MAAM,qBAAsBq4D,GACrCP,GACF,CAGA,SAASj3D,EAAsBw3D,GAC7BL,IAASh4D,MAAM,oBAAqBq4D,GACpCP,GACF,CAGA,SAAS52D,EAAuBm3D,GAC9BL,IAASh4D,MAAM,qBAAsBq4D,GACrCP,GACF,CAGA,SAASz2D,EAAyBg3D,GAChCL,IAASh4D,MAAM,oBAAqBq4D,GACpCP,GACF,CAGA,SAASQ,EAAwBD,GAC/BL,IAASh4D,MAAM,uBAAwBq4D,GACvCP,GACF,CAGA,SAASv1D,EAAW81D,GAClBL,IAASh4D,MAAM,uBAAwBq4D,GACvCP,GACF,CAGA,SAASr2D,EAAkB42D,GACzBL,IAASh4D,MAAM,8BAA+Bq4D,GAC9CP,GACF,CAGA,SAASr1D,EAAsB41D,GAC7BL,IAASh4D,MAAM,oBAAqBq4D,GACpCP,GACF,CAGA,SAASv2D,EAAoB82D,GAC3BL,IAASh4D,MAAM,kBAAmBq4D,GAClCP,GACF,CA3FAE,IAAS1mB,KAAKl5B,mCAAsC,CAClDgoB,OAAO,EACPm4B,YAAY,G,kCCLd,kRA0Be,SAAStnC,EAAW3F,GACjC,MAAOktC,EAAUC,GAAe7sC,mBAAS,KAClC8sC,EAAUC,GAAejsC,IAAMd,SAAS,OACxCgtC,EAAqBC,GAA0BjtC,mBAAS,MAC/D,IAAIgC,EAAUkrC,cAEd,MAAMv8B,EAAS,IAAIhW,IAAO,cACpBwyC,EACJnwC,OAAOowC,aAAe,OAASpwC,OAAOqwC,YAAc,MAChD,OACA,uBAmCN,SAASC,IACP,IAAIC,EASJ,OARI7tC,GAASA,EAAMzO,QACjBs8C,EAAc7tC,EAAMzO,QAAQ7C,MAE5BuiB,EAAO6D,MACL,8DAEF+4B,EAAc,aAETA,CACT,CAEA,SAASC,IACP,IAAIt3B,EAOJ,OANIxW,GAASA,EAAMzO,QACjBilB,EAAUxW,EAAMzO,QAAQilB,SAExBvF,EAAO6D,MAAM,6CACb0B,EAAU,IAELA,CACT,CAEA,SAASu3B,IACP,MAAM72D,EAAO8rB,IAAMqW,QAAQ,QAC3B,SAAIniC,IAAQA,EAAKF,QAEb45C,IAASI,kBAAoB95C,EAAKF,MAClC45C,IAASG,gBAAkB75C,EAAKF,MAChC45C,IAASK,yBAA2B/5C,EAAKF,KAG/C,CAlEA4jB,qBAAU,KAkBJoF,IACEA,EAAM4F,UAAWunC,EAAY,SAlBnCj0D,iBACE,GAAI8mB,GAASA,EAAM9oB,KAAM,CACvB,MAAMsY,QAAaL,IAAIC,QACrBC,YAAiBsM,IAAS,CACxBtlB,GAAI2pB,EAAM9oB,KAAKZ,YAIfkZ,GAAQA,EAAKA,MAAQA,EAAKA,KAAKmM,UAC7BnM,EAAKA,KAAKmM,QAAQllB,WAAa+Y,EAAKA,KAAKmM,QAAQjlB,SACnDy2D,EACE,GAAG39C,EAAKA,KAAKmM,QAAQllB,aAAa+Y,EAAKA,KAAKmM,QAAQjlB,YAEnDy2D,EAAY39C,EAAKA,KAAKmM,QAAQplB,cAEvC,CACF,CAGOy3D,GACP,GACC,IAEHpzC,qBAAU,KAAO,IAADqzC,GACTX,GAA4B,OAALttC,QAAK,IAALA,GAAyB,QAApBiuC,EAALjuC,EAAOiG,0BAAkB,IAAAgoC,GAAzBA,EAA2B/pB,oBACrDqpB,EAAuB,IAClBvtC,EAAMiG,mBAAmBie,mBACzBC,0BACHI,cAAc,GAElB,GACC,CAACvkB,EAAOstC,IAmCX,MAAMY,EAAW90B,aAAaC,QAAQ,aAClCD,aAAaC,QAAQ,aACrB,SAEE80B,EAAmBA,KACnBnuC,EAAMzO,QAAQ68C,SAChB9wC,OAAO+a,KAAKrY,EAAMzO,QAAQ68C,SAAU,UAAUC,QAE9C/wC,OAAO+a,KAAKvrB,8BAAqC,UAAUuhD,OAC7D,EAsBF,SAASC,IACP,OAAItuC,GAASA,EAAMzO,UAAYyO,EAAMzO,QAAQg9C,gBAEzCzzC,cAAC+M,IAAU,CACTf,GAAI,CACFQ,MAAO4mC,EACPlnC,WAA+B,OAAnBsmC,QAAmB,IAAnBA,KAAqB9oB,SAAW,OAAS,IACrD9a,WAAY,IACZxB,SAAU,OACVimB,WAAY,OACZqgB,OAAQ,IACRn0C,SAEDuzC,MAIE,EAEX,CAEA10D,eAAeu1D,IAEb,GADApB,EAAY,MACRrtC,GAASA,EAAM4F,UAEjBtD,EAAQ3f,KAAK,SAAU,CAAE4f,SAAUvC,EAAM8F,mBAGzC,IAEE9C,IAAMC,WAAW,QACjBjD,EAAM6F,WACR,CAAE,MAAO3D,GACP+O,EAAO3V,MAAM,yBAA0B4G,EACzC,CAEJ,CAEA,MAAMwsC,EAAcA,KAClBrB,EAAY,KAAK,EAEbh1B,EAAOkZ,QAAQ6b,GACf/2D,EAAKgiC,EAAO,mBAAgB92B,EAElC,SAASotD,EAAqBC,GACF,cAAtBA,EAAI7kC,eACNzM,OAAO+a,KAAK,8BAA+B,UAGnB,SAAtBu2B,EAAI7kC,eACNzM,OAAO+a,KAAK,mCAAoC,UAGxB,YAAtBu2B,EAAI7kC,eACNzM,OAAO+a,KAAK,yCAA0C,SAE1D,CAGA,MAAM0M,EAAe3L,aAAaC,QAAQ,gBACpC2L,EAAe5L,aAAaC,QAAQ,gBACpCw1B,EAAcrtC,YAAc,qBAAuB,KAAO,KAC1DstC,EAAattC,YAAc,qBAAuB,GAAK,GACvDutC,EAAoBvtC,YAAc,qBAExC,SAASwtC,IACP,OACEC,OAAkC,OAAnB3B,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB1oB,iBACnC5kB,EAAMohB,gBAGJphB,EAAM9oB,KAET4jB,cAAA,OAAKoL,MAAO,CAAEc,WAAY,QAAS3M,SAChC2F,GAASA,EAAMohB,cACdtmB,cAAC+L,IAAM,CAACI,QAAQ,YAAYK,MAAM,YAAWjN,SAAC,UAG5C2F,EAAM4F,UACR9K,cAAC+L,IAAM,CACLxwB,GAAG,eACH4wB,QAAQ,YACRK,MAAM,YACNC,QAASknC,EAAYp0C,SACtB,WAIDqL,eAAAqC,WAAA,CAAA1N,SAAA,CACES,cAAC+L,IAAM,CACLxwB,GAAG,eACHywB,GAAI,CACFuB,gBAAiB,eACjBoR,YAAa,MACbC,YAAa,QACbC,YAAa,eACb,UAAW,CACTtR,gBAAiB,eACjBsI,OAAQ,kBACR8b,UAAW,SAGf,mBAAkBp2C,EAClB4wB,QAAQ,YACRK,MAAM,YACNC,QAAU5yB,GAAM04D,EAAY14D,EAAEu6D,eAC9BC,QAASr0C,cAACs0C,IAAqB,IAAI/0C,SAEnCqL,eAACmC,IAAU,CACTZ,QAAQ,QACRH,GAAI,CAAE6nB,cAAe,aAAcjlB,WAAY,KAAMrP,SAAA,CACtD,SACQ,IACPS,cAAA,QACEoL,MAAO,CACLwD,WAAY,IACZQ,WAAY,SACZykB,cAAe,cACft0B,SAED6yC,SAIPpyC,cAACu0C,IAAO,CACNC,WAAY,CACVppC,MAAO,CAAErG,MAAO,QAAS2G,QAAS,SAEpCnwB,GAAIA,EACJgiC,KAAMA,EACN+0B,SAAUA,EACV70B,QAASm2B,EACTx2B,aAAc,CACZC,SAAU,SACVC,WAAY,SAEdm3B,gBAAiB,CACfp3B,SAAU,MACVC,WAAY,SACZ/d,SAEFqL,eAAC8pC,IAAI,CAAAn1C,SAAA,CACHS,cAAC20C,IAAY,CACXvpC,MAAO,CACL+B,aAAc,OACdlB,OAAQ,WAEVQ,QAASA,IAAMonC,EAAqB,aAAat0C,SAClD,cAGA0zC,KACCjzC,cAAC20C,IAAY,CACXvpC,MAAO,CAAE+B,aAAc,OAAQlB,OAAQ,WACvCQ,QAASA,IAAMonC,EAAqB,QAAQt0C,SAC7C,gBAKHS,cAAC40C,IAAO,CAACxpC,MAAO,CAAE+B,aAAc,OAAQpI,MAAO,UAE/C/E,cAAC20C,IAAY,CACXp5D,GAAG,gBACHoyC,UAAWknB,IACXzpC,MAAO,CAAE+B,aAAc,OAAQlB,OAAQ,WACvCQ,QAASknC,EAAYp0C,SACtB,WAIDS,cAAC20C,IAAY,CACXvpC,MAAO,CACL+B,aAAc,OACdX,MAAO,mBACPjN,SAEFS,cAAA,QAAMoL,MAAO,CAAEgC,SAAU,OAAQgC,WAAY,UAAW7P,SAAC,kCA3G9DS,cAAA,OAAKoL,MAAO,CAAEc,WAAY,SAqHrC,CAqNQ,IAAD4oC,EAAAC,GAAAC,GAAAC,GAAAC,GArBP,OACGhwC,EAAMgG,QACLsnC,GAA0C,OAAnBA,QAAmB,IAAnBA,KAAqBlpB,WAqB5C1e,eAACsC,IAAG,CACFlB,GAAI,CACF0S,WAAiB,OAALxZ,QAAK,IAALA,GAAyB,QAApB4vC,EAAL5vC,EAAOiG,0BAAkB,IAAA2pC,GAAoB,QAApBC,GAAzBD,EAA2B1rB,0BAAkB,IAAA2rB,IAA7CA,GACR1rB,0BACK,OAALnkB,QAAK,IAALA,GAAyB,QAApB8vC,GAAL9vC,EAAOiG,0BAAkB,IAAA6pC,IAAoB,QAApBC,GAAzBD,GAA2B5rB,0BAAkB,IAAA6rB,IAChB,QADgBC,GAA7CD,GACI5rB,iCAAyB,IAAA6rB,QADxB,EAALA,GAC+B3nC,gBAC/B,UACJ4nC,SAAU,OACV3oC,MAAO8R,aAAaC,QAAQ,aACxBD,aAAaC,QAAQ,aACrBrZ,EAAMilB,UACViD,UAAW,QACXvd,OAAQ,QACRygB,UAAW,SACXpa,IAAK,EACLtI,SAAU,WACVvC,QAAS,OACTE,cAAe,SACfD,WAAY,aACZO,eAAgB,aAChBH,QAASinC,EAET,YAAa,CACXpiB,QAAS,KACT3iB,SAAU,WACVsI,IAAK,EACLsa,MAAO,EACPC,OAAQ,EACRC,KAAM,EACNnH,QAASipB,EAAsBA,EAAoBjpB,QAAU,GAE7DqH,gBAAiB,QACftS,aAAaC,QAAQ,oBACjBD,aAAaC,QAAQ,oBACrBrZ,EAAMiG,mBAAmB6e,uBAE/B6G,eAAgB,QAChBC,mBAAoB,SACpBC,iBAAkB,YAClBvkB,MAAO8R,aAAaC,QAAQ,aACxBD,aAAaC,QAAQ,aACrBrZ,EAAMilB,YAEZ5qB,SAAA,CAED20C,IAEDtpC,eAACe,IAAI,CACHC,WAAS,EACTI,GAAI,CAAEV,WAAY,UAClBD,QAA6B,OAAnBmnC,QAAmB,IAAnBA,KAAqB9oB,SAAoB,OAAT,OAAgBnqB,SAAA,CAE1DS,cAAA,OACEoL,MAAO,CACLsoC,OAAQ,GACRznC,OAAQ,UACRqI,aAAck+B,EAAoBhpB,cAAgB,MAClD4rB,UAAW5C,EAAoBhpB,cAAgB,QAC/C3Z,OAAQ2iC,EAAoBhpB,aAAe,OAASwqB,GAEtDtlB,IAAKokB,IACLtkB,IAAKwkB,IACLvmC,QAAS4mC,IAEVG,OAGFhB,GACCA,EAAoB/oB,gBACnB+oB,EAAoBnuC,eAAe,mBAChCmuC,EAAoB6C,iBAEtBr1C,cAAC+M,IAAU,CACT3B,MAAO,CACLK,UAAW,SACX0B,aAAc,SACdX,MAAOtH,EAAMiG,mBAAmBgf,UAC5BjlB,EAAMiG,mBAAmBgf,UACzB,UACJle,OAAQ,UACRynC,OAAQ,KACRtkC,WAAY,GACVojC,EACIA,EAAoB7oB,sBACpB,oBAENvc,SAAUolC,EACLyB,EAECzB,EAAoB8C,gBADpB,UAEFrB,EACA,UACA,WAEN9nC,QAAS4nC,EACTtnC,QAAS4mC,EAAiB9zC,SAGzBizC,EACGA,EAAoB5oB,YACpB,oDAIT4oB,GACCA,EAAoB/oB,gBACnB+oB,EAAoBnuC,eAAe,mBAChCmuC,EAAoB+C,iBAEtBv1C,cAAC+M,IAAU,CACT3B,MAAO,CACLoB,MAAOtH,EAAMiG,mBAAmBgf,UAC5BjlB,EAAMiG,mBAAmBgf,UACzB,UACJhd,aAAc,SAEdiC,WAAY,GACVojC,EACIA,EAAoB7oB,sBACpB,oBAENvc,SAAUolC,EACLyB,EAECzB,EAAoBgD,gBADpB,OAEDvB,EAED,SADA,OAEJP,OAAQ,IACRn0C,SAED0qB,GAEG,oDAGTuoB,GACCA,EAAoB/oB,gBACnB+oB,EAAoBnuC,eAAe,qBAChCmuC,EAAoBiD,mBAEtBz1C,cAAC+M,IAAU,CACTf,GAAI,CACFQ,MAAOtH,EAAMiG,mBAAmBgf,UAC5BjlB,EAAMiG,mBAAmBgf,UACzB,UACJ/a,WAAY,GACVojC,EACIA,EAAoB7oB,sBACpB,oBAENvc,SAAUolC,EACLyB,EAECzB,EAAoBkD,gBADpB,SAEDzB,EAED,OADA,SAEJP,OAAQ,IACRn0C,SAED2qB,GAEG,uDArLZlqB,cAAC21C,IAAM,CACLvqC,MAAO,CACLyE,OAAQ,OACRnE,QAAUuoC,EAAkC,WAAd,YAC9B5oC,QAAS,OACTQ,eAAiBooC,EAA+B,eAAX,UAEvC2B,UAAW,EAAEr2C,SAEbqL,eAACirC,IAAO,CAAAt2C,SAAA,CA5Zd,WACE,MAAMu2C,EAAO9C,IACb,GAAuB,OAAnBR,QAAmB,IAAnBA,KAAqB9oB,SACvB,OACE1pB,cAAA,OAAAT,SACGu2C,GACC91C,cAAA,OACE6P,OAAQmkC,EACRxlB,IAAKsnB,EACLpnB,IAAKokB,IACLrmC,QAAS4mC,KAMrB,CA6YS0C,GACAvC,IACCS,EAAgDC,KA7MtDC,OAAkC,OAAnB3B,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB1oB,iBACnC5kB,EAAMohB,gBAGJphB,EAAM9oB,KAGT4jB,cAAA,OAAKoL,MAAO,CAAEc,WAAY,QAAS3M,SAChC2F,GAASA,EAAMohB,cACd1b,eAAAqC,WAAA,CAAA1N,SAAA,CACG,IACDS,cAAC6N,IAAU,CACTzB,KAAK,SACLhB,MAAO,CACLsT,WAAY,kBACZ3Z,MAAO,OACP8K,OAAQ,OACRyE,aAAc,OAEhBnI,QAAQ,YACRK,MAAM,YACNC,QAAU5yB,GAAM04D,EAAY14D,EAAEu6D,eAAe70C,SAE7CS,cAACg2C,IAAQ,CAAC5qC,MAAO,CAAEM,QAAS,EAAGc,MAAO,YAExCxM,cAACu0C,IAAO,CACNC,WAAY,CACVppC,MAAO,CAAErG,MAAO,QAAS2G,QAAS,YAEpCnwB,GAAIA,EACJgiC,KAAMA,EACN+0B,SAAUA,EACV70B,QAASm2B,EACTx2B,aAAc,CACZC,SAAU,SACVC,WAAY,SAEdm3B,gBAAiB,CACfp3B,SAAU,MACVC,WAAY,SACZ/d,SAEFS,cAAC00C,IAAI,CAAAn1C,SACHS,cAAC20C,IAAY,CACXvpC,MAAO,CACL+B,aAAc,SACdlB,OAAQ,WACR1M,SACH,0BAML2F,EAAM4F,UACRF,eAAAqC,WAAA,CAAA1N,SAAA,CACES,cAAC6N,IAAU,CACTzB,KAAK,SACLhB,MAAO,CACLsT,WAAY,kBACZ3Z,MAAO,OACP8K,OAAQ,OACRyE,aAAc,OAEhBnI,QAAQ,YACRK,MAAM,YACNC,QAAU5yB,GAAM04D,EAAY14D,EAAEu6D,eAAe70C,SAE7CS,cAACg2C,IAAQ,CAAC5qC,MAAO,CAAEM,QAAS,EAAGc,MAAO,YAExCxM,cAACu0C,IAAO,CACNC,WAAY,CACVppC,MAAO,CAAErG,MAAO,QAAS2G,QAAS,YAEpCnwB,GAAIA,EACJgiC,KAAMA,EACN+0B,SAAUA,EACV70B,QAASm2B,EACTx2B,aAAc,CACZC,SAAU,SACVC,WAAY,SAEdm3B,gBAAiB,CACfp3B,SAAU,MACVC,WAAY,SACZ/d,SAEFS,cAAC00C,IAAI,CAAAn1C,SACHS,cAAC20C,IAAY,CACXvpC,MAAO,CACL+B,aAAc,SACdlB,OAAQ,WAEVQ,QAASknC,EAAYp0C,SACtB,iBAOPqL,eAAAqC,WAAA,CAAA1N,SAAA,CACES,cAAC6N,IAAU,CACTzB,KAAK,SACLhB,MAAO,CAAErG,MAAO,OAAQ8K,OAAQ,OAAQyE,aAAc,OACtD,mBAAkB/4B,EAClBkxB,QAAU5yB,GAAM04D,EAAY14D,EAAEu6D,eAAe70C,SAE7CS,cAACg2C,IAAQ,CAAC5qC,MAAO,CAAEM,QAAS,EAAGc,MAAO4mC,OAExCpzC,cAACu0C,IAAO,CACNC,WAAY,CACVppC,MAAO,CAAErG,MAAO,QAAS2G,QAAS,YAEpCnwB,GAAIA,EACJgiC,KAAMA,EACN+0B,SAAUA,EACV70B,QAASm2B,EACTx2B,aAAc,CACZC,SAAU,SACVC,WAAY,SAEdm3B,gBAAiB,CACfp3B,SAAU,MACVC,WAAY,SACZ/d,SAEFqL,eAAC8pC,IAAI,CAAAn1C,SAAA,CACHS,cAAC20C,IAAY,CAAAp1C,SACXqL,eAACmC,IAAU,CACT3B,MAAO,CACL+B,aAAc,SACdyB,WAAY,KAEdzC,QAAQ,QAAO5M,SAAA,CAChB,SACQ,IACPS,cAAA,QAAMoL,MAAO,CAAEwD,WAAY,IAAKQ,WAAY,UAAW7P,SACpD6yC,SAIPpyC,cAAC40C,IAAO,CAACxpC,MAAO,CAAE+B,aAAc,OAAQpI,MAAO,UAC/C/E,cAAC20C,IAAY,CACXvpC,MAAO,CACL+B,aAAc,OACdlB,OAAQ,WAEVQ,QAASA,IAAMonC,EAAqB,aAAat0C,SAClD,cAGA0zC,KACCjzC,cAAC20C,IAAY,CACXvpC,MAAO,CAAE+B,aAAc,OAAQlB,OAAQ,WACvCQ,QAASA,IAAMonC,EAAqB,QAAQt0C,SAC7C,gBAIHS,cAAC40C,IAAO,CAACxpC,MAAO,CAAE+B,aAAc,OAAQpI,MAAO,UAE/C/E,cAAC20C,IAAY,CACXhnB,UAAWknB,IACXzpC,MAAO,CAAE+B,aAAc,OAAQlB,OAAQ,WACvCQ,QAASknC,EAAYp0C,SACtB,WAIDS,cAAC20C,IAAY,CACXvpC,MAAO,CACL+B,aAAc,OACdX,MAAO,mBACPjN,SAEFS,cAAA,QAAMoL,MAAO,CAAEgC,SAAU,OAAQgC,WAAY,UAAW7P,SAAC,kCA7K9DS,cAAA,OAAKoL,MAAO,CAAEc,WAAY,cAyXvC,C,kCCnsBA,wZAAO,MAAM+pC,EAAmB,CAC9B,MACA,MACA,MACA,MACA,MACA,MACA,OAGWC,EAAiB,CAC5BC,IAAK,SACLC,IAAK,UACLC,IAAK,YACLC,IAAK,WACLC,IAAK,SACLC,IAAK,WACLC,IAAK,UAGMC,EAAa,CACxBP,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,GAGMrQ,EAAoB,WAEpBuQ,EAAwB,GAExBC,EAA0B,IAAIC,OADV,CAAC,KAAM,KAAM,MAE1B13D,KAAK,QAEZ23D,EAAyC,EACzCC,EAA4B,WAG5B9yB,EAAmB,cACnB+yB,EAAc,CACzB,0BACA,yBACA,yBACA,yBACA,0BACA,2BACA,0BACA,yBACA,yBACA,yBACA,0BACA,4BAEWC,EAA8B,CAAC,EAAG,EAAG,EAAG,EAAG,GAE3CrkB,EAAmB,S,kCC1DhC,wIAAO,MAAMskB,EAAmB,mBAEnB/C,EAAa,aAEnB,SAASgD,EAAkBhsC,GAChC,GAAIA,EAAoB,CAAC,IAADisC,EAAAC,EACtB,MAAMC,EACc,OAAlBnsC,QAAkB,IAAlBA,GAAsC,QAApBisC,EAAlBjsC,EAAoBie,0BAAkB,IAAAguB,GAA2B,QAA3BC,EAAtCD,EAAwC/tB,iCAAyB,IAAAguB,OAA/C,EAAlBA,EACIvtB,eACN,GAAIwtB,GAAa,OAAPA,EAAa,OAAOA,CAChC,CAEA,OAAOJ,CACT,CAEO,SAAS1nC,EAAuBrE,GAAqB,IAADosC,EAAAC,EAMzD,GALA19D,QAAQC,IACN,0BACkB,OAAlBoxB,QAAkB,IAAlBA,GAAsC,QAApBosC,EAAlBpsC,EAAoBie,0BAAkB,IAAAmuB,GAA2B,QAA3BC,EAAtCD,EAAwCluB,iCAAyB,IAAAmuB,OAA/C,EAAlBA,EACI1tB,gBAEF3e,EAAoB,CAAC,IAADssC,EAAAC,EACtB,MAAMJ,EACc,OAAlBnsC,QAAkB,IAAlBA,GAAsC,QAApBssC,EAAlBtsC,EAAoBie,0BAAkB,IAAAquB,GAA2B,QAA3BC,EAAtCD,EAAwCpuB,iCAAyB,IAAAquB,OAA/C,EAAlBA,EACI5tB,eACN,IAAKwtB,EAAI,OAAO,EAChB,GAAIJ,IAAqBI,GAAMnD,IAAemD,EAAI,OAAO,CAC3D,CACA,OAAO,CACT,CAEO,SAAS5oC,EAAoBvD,GAClC,GAAIA,EAAoB,CAAC,IAADwsC,EAAAC,EACtB,MAAMN,EACc,OAAlBnsC,QAAkB,IAAlBA,GAAsC,QAApBwsC,EAAlBxsC,EAAoBie,0BAAkB,IAAAuuB,GAA2B,QAA3BC,EAAtCD,EAAwCtuB,iCAAyB,IAAAuuB,OAA/C,EAAlBA,EACI9tB,eACN,GAAIqqB,IAAemD,EAAI,OAAO,CAChC,CACA,OAAO,CACT,C,kCCvCA,qPAKO,MA2DMv4B,EAA8BtoB,GAGlC,QAFiBA,EAAQ5Z,SAGrB,OAQA,IAIA4V,EAAsB,eAACpU,EAAU6X,UAAAtT,OAAA,QAAA6D,IAAAyP,UAAA,GAAAA,UAAA,GAAG,GAAE,OACvC,OAAV7X,QAAU,IAAVA,OAAU,EAAVA,EAAY67C,QAAQ0c,IAAyB,GAAI,EAMtCzsD,EAAMA,CAAC0tD,EAAG57C,KAAQ47C,EAAI57C,EAAKA,GAAKA,EAChC67C,EAAaD,IAAOlT,MAAM5kB,WAAW83B,KAAOjT,SAASiT,GAC3D,SAAS5E,IACd,MAAM72D,EAAO8rB,IAAMqW,QAAQ,QAC3B,SAAIniC,IAAQA,EAAKF,QAEb45C,IAASI,kBAAoB95C,EAAKF,MAClC45C,IAASG,gBAAkB75C,EAAKF,MAChC45C,IAASK,yBAA2B/5C,EAAKF,KAG/C,CACO,MAAMqmC,EAAY,SACvBw1B,GAGI,IAFJC,EAAY9hD,UAAAtT,OAAA,QAAA6D,IAAAyP,UAAA,GAAAA,UAAA,QAAGzP,EACfwxD,EAAc/hD,UAAAtT,OAAA,QAAA6D,IAAAyP,UAAA,GAAAA,UAAA,GAAG,qBAEjB,IACE,OAAOvW,KAAK4S,MAAMwlD,EACpB,CAAE,MAEA,OADAj+D,QAAQC,IAAIk+D,GACLD,CACT,CACF,C","file":"static/js/main.609e91e4.chunk.js","sourcesContent":["import * as track from \"../utils/Common/Mixpanel\";\n\nexport function trackProviderSearch({\n searchParams,\n selectedFromDate,\n selectedToDate,\n selectedTod,\n selectedSkillsNames,\n companyId,\n serviceType1,\n serviceType2,\n serviceType3,\n}) {\n if (searchParams) {\n try {\n let eventprops = {\n searchParams,\n selectedFromDate,\n selectedToDate,\n selectedTod,\n selectedSkillsNames,\n companyId,\n serviceType1,\n serviceType2,\n serviceType3,\n };\n track.trackProviderSearch(eventprops);\n } catch (e) {\n console.log(e);\n }\n }\n}\n\nexport function trackProviderSelection(bookingState, selectedSkillsNames) {\n if (bookingState) {\n try {\n let {\n provider,\n datefilter,\n companyId,\n isRemoteLocation,\n location,\n serviceType,\n isVirtual,\n appointmentLocation,\n } = bookingState;\n let eventprops = {\n ...datefilter,\n provider,\n selectedSkillsNames,\n companyId,\n isRemoteLocation,\n location,\n serviceType,\n isVirtual,\n appointmentLocation,\n };\n track.trackProviderSelection(eventprops);\n } catch (e) {\n console.log(e);\n }\n }\n}\n\nexport function trackPackageSelection(bookingState) {\n try {\n let {\n boughtPackage,\n clientPackage,\n sdt,\n pkgsdt,\n companyId,\n provider,\n datefilter,\n isRemoteLocation,\n location,\n serviceType,\n isVirtual,\n appointmentLocation,\n } = bookingState;\n track.trackPackageSelection({\n boughtPackage,\n clientPackage,\n sdt,\n pkgsdt,\n companyId,\n provider,\n datefilter,\n isRemoteLocation,\n location,\n serviceType,\n isVirtual,\n appointmentLocation,\n });\n } catch (e) {\n console.log(e);\n }\n}\n\nexport function trackTimeslotSelection(bookingState) {\n try {\n let {\n boughtPackage,\n clientPackage,\n sdt,\n pkgsdt,\n companyId,\n provider,\n datefilter,\n isRemoteLocation,\n location,\n serviceType,\n isVirtual,\n appointmentLocation,\n repeatingAppointment,\n selectedslot,\n } = bookingState;\n track.trackTimeslotSelection({\n boughtPackage,\n clientPackage,\n sdt,\n pkgsdt,\n companyId,\n provider,\n datefilter,\n isRemoteLocation,\n location,\n serviceType,\n isVirtual,\n appointmentLocation,\n repeatingAppointment,\n selectedslot,\n });\n } catch (e) {\n console.log(e);\n }\n}\n\nexport function trackBookingConfirmation(bookingState) {\n try {\n let {\n boughtPackage,\n clientPackage,\n sdt,\n pkgsdt,\n companyId,\n provider,\n datefilter,\n isRemoteLocation,\n location,\n serviceType,\n isVirtual,\n appointmentLocation,\n repeatingAppointment,\n selectedslot,\n tryOtherProviders,\n } = bookingState;\n track.trackBookingConfirmation({\n boughtPackage,\n clientPackage,\n sdt,\n pkgsdt,\n companyId,\n provider,\n datefilter,\n isRemoteLocation,\n location,\n serviceType,\n isVirtual,\n appointmentLocation,\n repeatingAppointment,\n selectedslot,\n tryOtherProviders,\n });\n } catch (e) {\n console.log(e);\n }\n}\n\nexport function trackOrderCompleted(bookingState, order) {\n if (bookingState && order) {\n try {\n let {\n boughtPackage,\n clientPackage,\n sdt,\n pkgsdt,\n companyId,\n provider,\n datefilter,\n isRemoteLocation,\n location,\n serviceType,\n isVirtual,\n appointmentLocation,\n repeatingAppointment,\n selectedslot,\n tryOtherProviders,\n } = bookingState;\n track.trackOrderCompleted({\n boughtPackage,\n clientPackage,\n sdt,\n pkgsdt,\n companyId,\n provider,\n datefilter,\n isRemoteLocation,\n location,\n serviceType,\n isVirtual,\n appointmentLocation,\n repeatingAppointment,\n selectedslot,\n tryOtherProviders,\n order,\n });\n } catch (e) {\n console.log(e);\n }\n }\n}\n\nexport function trackOrderSummaryViewed(bookingState) {\n if (bookingState) {\n try {\n let {\n boughtPackage,\n clientPackage,\n sdt,\n pkgsdt,\n companyId,\n provider,\n datefilter,\n isRemoteLocation,\n location,\n serviceType,\n isVirtual,\n appointmentLocation,\n repeatingAppointment,\n selectedslot,\n tryOtherProviders,\n } = bookingState;\n track.trackOrderSummaryViewed({\n boughtPackage,\n clientPackage,\n sdt,\n pkgsdt,\n companyId,\n provider,\n datefilter,\n isRemoteLocation,\n location,\n serviceType,\n isVirtual,\n appointmentLocation,\n repeatingAppointment,\n selectedslot,\n tryOtherProviders,\n });\n } catch (e) {\n console.log(e);\n }\n }\n}\n\nexport function trackRegistration(newUser) {\n if (newUser) {\n try {\n let {\n id,\n username,\n emailaddress,\n registered,\n firstname,\n lastname,\n phonepref,\n city,\n state,\n country,\n postalcode,\n role,\n companyId,\n } = newUser;\n track.trackRegistration({\n id,\n username,\n emailaddress,\n registered,\n firstname,\n lastname,\n phonepref,\n city,\n state,\n country,\n postalcode,\n role,\n companyId,\n });\n } catch (e) {\n console.log(e);\n }\n }\n}\n\nexport function trackLogin(user) {\n if (user) {\n try {\n let {\n id,\n username,\n emailaddress,\n registered,\n firstname,\n lastname,\n phonepref,\n city,\n state,\n country,\n postalcode,\n role,\n companyId,\n } = user;\n track.trackLogin({\n id,\n username,\n emailaddress,\n registered,\n firstname,\n lastname,\n phonepref,\n city,\n state,\n country,\n postalcode,\n role,\n companyId,\n });\n } catch (e) {\n console.log(e);\n }\n }\n}\nexport function trackPaymentProcessed(bookingState, chargeInfo) {\n if (bookingState) {\n try {\n let useDifferentCard = chargeInfo && chargeInfo.useDifferentCard;\n let amount = chargeInfo && chargeInfo.charge.amount;\n let brand = chargeInfo && chargeInfo.charge.source.brand;\n let currency = chargeInfo && chargeInfo.charge.source.currency;\n let trackCharge = {\n useDifferentCard,\n amount,\n brand,\n currency,\n };\n console.log(\"trackCharge\", trackCharge);\n track.trackPaymentProcessed(trackCharge);\n } catch (e) {\n console.log(e);\n }\n }\n}\n\n/*\ntrackProviderSearch\ntrackProviderSelection\ntrackPackageSelection\ntrackTimeslotSelection\ntrackBookingConfirmation\ntrackOrderSummaryViewed\ntrackLogin\ntrackRegistration\ntrackPaymentProcessed\ntrackOrderCompleted\n*/\n","export const listAllScheduleItems = /* GraphQL */ `\n query listProviderSchedules(\n $id: ID\n $scheduleinfo: ModelStringKeyConditionInput\n $filter: ModelProviderScheduleFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listProviderSchedules(\n id: $id\n scheduleinfo: $scheduleinfo\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n scheduleinfo\n companyId\n providerId\n active\n startDate\n endDate\n startTime\n endTime\n type\n status\n weeksToRepeat\n weekDays\n locations\n tz\n }\n nextToken\n }\n }\n`;\n\nexport const listTimeblocks = /* GraphQL */ `\n query listProviderSchedules(\n $id: ID\n $scheduleinfo: ModelStringKeyConditionInput\n $filter: ModelProviderScheduleFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listProviderSchedules(\n id: $id\n scheduleinfo: $scheduleinfo\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n scheduleinfo\n startDate\n endDate\n startTime\n endTime\n type\n status\n weeksToRepeat\n weekDays\n active\n sdtutc\n tz\n latitude\n longitude\n }\n nextToken\n }\n }\n`;\n\nexport const providerDataForScheduleQuery = /* GraphQL */ `\n query GetProvider($id: ID!) {\n getProvider(id: $id) {\n servicetypes {\n items {\n servicetype {\n id\n name\n }\n }\n nextToken\n }\n locations {\n items {\n id\n name\n maxtraveltype\n traveldistance\n traveldistanceunit\n }\n nextToken\n }\n }\n }\n`;\n","import API, { graphqlOperation } from \"@aws-amplify/api\";\nimport moment from \"moment\";\nimport {\n execRead,\n execWrite,\n execReadBySortkey,\n execReadByPK,\n} from \"./DBService\";\nimport * as scheduleQueries from \"./ScheduleQueries\";\nimport * as queries from \"../graphql/queries\";\nimport { utcToZonedTime, zonedTimeToUtc, format, toDate } from \"date-fns-tz\";\nimport { createProviderSchedule } from \"../graphql/mutations\";\nimport { v4 as uuid } from \"uuid\";\nimport { stripLocationPrefix } from \"../utils\";\nimport { addDays } from \"date-fns\";\nimport { uniq, sortBy, min } from \"lodash\";\nimport { mod } from \"../utils\";\n//TODO: Timezone has to be Location timezone or defaule timezone at company level\n//TODO: Move date functions to its own DateUtil module\n//The dates passed into the ScheduleService will be considered to be Location Timezone or Company Timezone\nconst SLOTSINADAY = 288;\nconst SLOTUNITMINS = 5;\nconst SLOTSINHOUR = 12;\nconst TIMEMAP = buildTimeMap();\nconst SCHEDPKSKSPLITAT = \"::\";\nconst NOTRAVELTIMERADIUS = 1000; //in meters\nconst EARTHRADIUS = 6371e3; //in meters\nconst ALLDAYSARRAY = [0, 1, 2, 3, 4, 5, 6];\nexport const DEFAULT_LOOKAHEAD_DAYS_FOR_CLUSTERING = 7;\nconst DEFAULT_MAX_NUM_OF_SUGGESTED_SLOTS_TO_DISPALY = 10;\n\nfunction weekdaysString(wdArray) {\n return \"\" + wdArray.join(\"\");\n}\n// use API\nconst createTimeblock = async ({\n companyId,\n locationId,\n startDate,\n endDate,\n startTime,\n endTime,\n type,\n status,\n weeksToRepeat,\n weekDays,\n tz,\n sdtutc,\n providerId,\n geoLoc,\n}) => {\n const weekdaysStr = weekDays ? weekdaysString(weekDays) : weekDays;\n\n const timeblockData = {\n id: getProviderScheduleId(companyId, providerId),\n scheduleinfo: `BK|${startDate} ${startTime}|${locationId}|${uuid()}`,\n companyId,\n startDate,\n endDate,\n startTime,\n endTime,\n type,\n status,\n tz,\n active: true,\n providerId,\n providerScheduleProviderId: providerId,\n ...(weekdaysStr && { weekDays: weekdaysStr }),\n ...(weeksToRepeat && { weeksToRepeat }),\n sdtutc,\n locations: JSON.stringify([`${locationId}`]),\n ...(geoLoc?.lat && { latitude: geoLoc.lat }),\n ...(geoLoc?.lng && { longitude: geoLoc.lng }),\n };\n let response = await execWrite({\n opname: \"createProviderSchedule\",\n op: createProviderSchedule,\n input: timeblockData,\n });\n if (response) {\n response = {\n ...response,\n id: `${response.id}${SCHEDPKSKSPLITAT}${response.scheduleinfo}`,\n };\n }\n return response;\n};\nconst getSlotsForSbs = async ({\n SBs,\n startDate, // TODO: change the format to regular date from aws date\n numberOfDays,\n bookingIntervalMinutes,\n serviceDuration,\n travelTime,\n geoLoc,\n bookingIncrement,\n providerTz,\n locationTz,\n companyId,\n providerId,\n addStats = false,\n returnUnreadable = false,\n}) => {\n const timeZoneAdjustedScheduleBlocks = adjustScheduleBlocksToLocationTz(\n providerTz,\n locationTz,\n SBs\n );\n const nowInLocalTimeZone = utcToZonedTime(new Date(), locationTz);\n const startingDate = startDate ? startDate : getAWSDate(nowInLocalTimeZone);\n const endingDate = getEndingDate(startingDate, numberOfDays);\n const primaryKey = getProviderScheduleId(companyId, providerId);\n\n const { items: BUTs } = await execReadBySortkey({\n opname: \"listProviderSchedules\",\n op: scheduleQueries.listAllScheduleItems,\n id: { id: primaryKey },\n skey: { scheduleinfo: { beginsWith: `BUT|` } },\n filter: { deleted: { ne: true } },\n });\n\n if (BUTs && BUTs.length)\n adjustBUTimesForBookingLocationTimezone(BUTs, providerTz, locationTz);\n\n const bookedResp = await execReadBySortkey({\n opname: \"listProviderSchedules\",\n op: scheduleQueries.listTimeblocks,\n id: { id: primaryKey },\n skey: {\n scheduleinfo: { between: [`BK|${startingDate}`, `BK|${endingDate}`] },\n },\n filter: { status: { ne: \"CANCELLED\" } },\n limit: 500,\n });\n if (bookedResp && bookedResp.items) {\n const found = bookedResp.items.find((bk) =>\n bk.scheduleinfo.includes(\"|CL-\")\n );\n if (found) {\n //booking at company location found, so get geoLocs of the company locations\n const companyLocations = await getCompanyLocations(companyId);\n for (const companyLoc of companyLocations) {\n for (const booking of bookedResp.items) {\n if (\n booking.scheduleinfo.includes(companyLoc.id) &&\n companyLoc.latitude &&\n companyLoc.longitude\n ) {\n if (!booking.latitude && !booking.longitude) {\n booking.latitude = companyLoc.latitude;\n booking.longitude = companyLoc.longitude;\n }\n }\n }\n }\n }\n }\n\n if (bookedResp && bookedResp.items) {\n // let locationTz = \"America/Vancouver\";\n adjustGlobalBookingTimesForBookingLocationTimezone(\n locationTz,\n bookedResp.items,\n serviceDuration\n );\n }\n\n const unreadableSlots = computeAvailableSlots(\n [...timeZoneAdjustedScheduleBlocks, ...BUTs],\n bookedResp.items,\n awsDateToJsDate(startingDate),\n numberOfDays,\n bookingIncrement,\n travelTime,\n geoLoc,\n locationTz\n );\n\n const readableSlots = toReadableSlots(\n null,\n unreadableSlots.filter((urs) => urs.hasavail),\n bookingIncrement,\n serviceDuration\n );\n\n const futureSlotsOnly = filterOutTodaysPastSlots(\n readableSlots,\n bookingIntervalMinutes,\n nowInLocalTimeZone\n );\n return returnUnreadable\n ? [unreadableSlots, futureSlotsOnly, bookedResp.items]\n : futureSlotsOnly;\n};\n\nasync function getCompanyLocations(companyId) {\n try {\n let locationData = await execReadByPK({\n opname: \"companyLocationByCompany\",\n op: /* GraphQL */ `\n query CompanyLocationByCompany(\n $companyId: String\n $locationnameCreatedAt: ModelCompanyLocationByCompanyCompositeKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelCompanyLocationFilterInput\n $limit: Int\n $nextToken: String\n ) {\n companyLocationByCompany(\n companyId: $companyId\n locationnameCreatedAt: $locationnameCreatedAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n locationname\n longitude\n latitude\n timezone\n virtual\n active\n deleted\n }\n nextToken\n }\n }\n `,\n id: {\n companyId,\n },\n limit: 500,\n });\n\n if (locationData?.items && locationData?.items.length > 0) {\n return locationData.items;\n }\n return [];\n } catch (e) {\n console.log(\"error in ScheduleService getCompanyLocations\", e);\n return [];\n }\n}\n\nconst adjustScheduleBlocksToLocationTz = (fromTz, targetTz, blocks) =>\n targetTz !== fromTz\n ? blocks.map(\n ({ startTime, startDate, endDate, endTime, weekDays, ...rest }) => {\n // make dates in the original tz\n const startDateTimeInScheduleTz = toDate(\n `${startDate}T${startTime}`,\n {\n timeZone: fromTz,\n }\n );\n const endDateTimeInScheduleTz = toDate(`${endDate}T${endTime}`, {\n timeZone: fromTz,\n });\n // convert to target tz\n const startDateTimeInLocationTz = utcToZonedTime(\n startDateTimeInScheduleTz,\n targetTz\n );\n const endDateTimeInLocationTz = utcToZonedTime(\n endDateTimeInScheduleTz,\n targetTz\n );\n //format\n const startDateInLocationTz = format(\n startDateTimeInLocationTz,\n \"yyyy-MM-dd\"\n );\n const startTimeInLocationTz = format(\n startDateTimeInLocationTz,\n \"HH:mm\"\n );\n\n const endDateInLocationTz = format(\n endDateTimeInLocationTz,\n \"yyyy-MM-dd\"\n );\n const endTimeInLocationTz = format(endDateTimeInLocationTz, \"HH:mm\");\n\n const adjustedWeekDays =\n endTimeInLocationTz < startTimeInLocationTz //straddle two days case\n ? uniq(\n weekDays\n .split(\"\")\n .reduce(\n (agr, dayNum) =>\n agr.concat(\n mod(\n parseInt(dayNum) +\n 1 * (compareTimezones(targetTz, fromTz) ? 1 : -1),\n 7\n ).toString()\n ),\n weekDays\n )\n ).join(\"\")\n : startDateInLocationTz !== startDate\n ? uniq(\n // move case\n weekDays\n .split(\"\")\n .map((dayNum) =>\n mod(\n parseInt(dayNum) +\n 1 * (compareTimezones(targetTz, fromTz) ? 1 : -1),\n 7\n ).toString()\n )\n ).join(\"\")\n : weekDays;\n return {\n ...rest,\n weekDays: adjustedWeekDays,\n startTime: startTimeInLocationTz,\n startDate: startDateInLocationTz,\n endTime: endTimeInLocationTz,\n endDate: endDateInLocationTz,\n };\n }\n )\n : blocks;\n\nfunction adjustGlobalBookingTimesForBookingLocationTimezone(\n locationTz,\n bookings\n) {\n for (let b of bookings) {\n if (b.sdtutc && b.startTime && b.endTime) {\n const bookedMinutes = calculateBookedMinutes(b.startTime, b.endTime);\n const startDateUTC = new Date(b.sdtutc);\n const startDateInLocZone = utcToZonedTime(startDateUTC, locationTz);\n b.startDate = format(startDateInLocZone, \"yyyy-MM-dd\", {\n timeZone: locationTz,\n });\n b.startTime = format(startDateInLocZone, \"HH:mm\", {\n timeZone: locationTz,\n });\n const endDateUTC = new Date(startDateInLocZone);\n endDateUTC.setMinutes(endDateUTC.getMinutes() + bookedMinutes);\n b.endTime = format(endDateUTC, \"HH:mm\", locationTz);\n }\n }\n}\n\nfunction adjustBUTimesForBookingLocationTimezone(BUTs, providerTz, locationTz) {\n for (let sbu of BUTs) {\n const startDateTimeinUtc = zonedTimeToUtc(\n `${sbu.startDate}T${sbu.startTime}:00`,\n providerTz\n );\n const startDateTimeInBookingLoc = utcToZonedTime(\n startDateTimeinUtc,\n locationTz\n );\n sbu.startDate = format(startDateTimeInBookingLoc, \"yyyy-MM-dd\");\n sbu.startTime = format(startDateTimeInBookingLoc, \"HH:mm\");\n\n const endDateTimeinUtc = zonedTimeToUtc(\n `${sbu.endDate}T${sbu.endTime}:00`,\n providerTz\n );\n const endDateTimeInBookingLoc = utcToZonedTime(\n endDateTimeinUtc,\n locationTz\n );\n sbu.endDate = format(endDateTimeInBookingLoc, \"yyyy-MM-dd\");\n sbu.endTime = format(endDateTimeInBookingLoc, \"HH:mm\");\n }\n}\n\nfunction calculateBookedMinutes(bkstartTime, bkendTime) {\n //this works only if start and end times are within the same date\n //Jan 10th 11pm to Jan 11th 1am won't work.\n const startHHMM = bkstartTime.split(\":\");\n const endHHMM = bkendTime.split(\":\");\n const startTime = new Date(2000, 1, 1, startHHMM[0], startHHMM[1]);\n const endTime = new Date(2000, 1, 1, endHHMM[0], endHHMM[1]);\n const diff = endTime.valueOf() - startTime.valueOf();\n const bookedMinutes = diff / (1000 * 60);\n return bookedMinutes;\n}\n\nfunction filterOutTodaysPastSlots(\n slots,\n bookingIntervalMinutes,\n nowInLocalTimeZone\n) {\n const checkDateTime = new Date(\n nowInLocalTimeZone.getTime() + bookingIntervalMinutes * 60 * 1000\n );\n slots.forEach((day) => {\n day.slots = day.slots.filter((slot) =>\n isFutureSlot_v3(slot, day.date, checkDateTime)\n );\n });\n\n return slots;\n}\n\nfunction filterByTimesofday(slots, timesofday) {\n slots.forEach((day) => {\n day.slots = day.slots.filter((slot) => timesofday[slot.tfd]);\n });\n\n return slots;\n}\n\nfunction isFutureSlot_v3(slot, dayDate, checkDateTime) {\n //Calculate millis of the slot\n const dayDateMillis = dayDate.getTime();\n let slotDate = new Date(dayDateMillis);\n slotDate.setHours(Number.parseInt(slot.start24.slice(0, 2)));\n slotDate.setMinutes(Number.parseInt(slot.start24.slice(-2)));\n return slotDate.getTime() > checkDateTime.getTime();\n}\n\nfunction computeAvailableSlots(\n timeBlocks,\n booked,\n selectedStartDateTime,\n nd,\n bookingIncrement,\n travelTime,\n geoLoc,\n locationTz\n) {\n travelTime = travelTime ? travelTime : 0;\n\n //Create the placeholder array of by-date slots objects for asked numdays\n //For earch day create slots array based on step (15,30,60 mins)\n let slotMapObjects = new Array(nd).fill(null).map((a, dayIndex) => ({\n date: addDays(selectedStartDateTime, dayIndex),\n hasavail: false,\n slotmap: Array.from({ length: SLOTSINADAY }),\n availableIntervals: [],\n }));\n\n //iterate over the AVAILABLE timeblocks\n // for each AVAILABLE timeblock\n // based on startTime and endTime (and step), calculate start index and stop index to be marked as 1 (meaning available)\n // [TBD: it is possible to have this number higher than 1 indicating that multiple booking is possible but need to design the feature end-to-end]\n // Once start and stop indices are calculated, for each day in the slotMapArray which falls within the AVAILABLE timeblock's range\n // and it is the workingday of the provider, fill the availability in each day's slotmap\n\n timeBlocks\n .filter((timeblock) => timeblock.type === \"AVAILABLE\")\n .forEach(({ weekDays, startTime, startDate, endDate, endTime }) => {\n slotMapObjects\n .filter((slotMapObject) => {\n return (\n slotMapObject.date >= awsDateToJsDate(startDate) &&\n slotMapObject.date <= awsDateToJsDate(endDate) &&\n worksonday(slotMapObject.date, weekDays)\n );\n })\n .forEach((slotMapObject) => {\n slotMapObject.hasavail = true;\n const availableIntervalsForCurrentBlock =\n endTime >= startTime\n ? [\n // regular interval from start time to end time\n [getIndexByTime(startTime), getIndexByTime(endTime)],\n ]\n : [\n // schedule is split between two days because of time zone so two intervals from start of day till end time (the piece from last day)\n // and from start time till end of day\n ...(workedTheDayBefore(slotMapObject.date, weekDays)\n ? [[0, getIndexByTime(endTime)]]\n : []),\n ...(workedTheDayAfter(slotMapObject.date, weekDays)\n ? [[getIndexByTime(startTime), SLOTSINADAY]]\n : []),\n ];\n // create the map from available intervals\n const slotsForCurrentBlock = Array.from(\n { length: SLOTSINADAY },\n (val, index) =>\n availableIntervalsForCurrentBlock.some(\n (availableInterval) =>\n index >= availableInterval[0] && index <= availableInterval[1]\n )\n ? 1\n : undefined\n );\n // merge current block slots into the slots array for that day\n slotMapObject.slotmap = slotMapObject.slotmap.map((val, i) =>\n val === undefined && slotsForCurrentBlock[i] === undefined\n ? undefined\n : val || slotsForCurrentBlock[i]\n );\n slotMapObject.availableIntervals =\n slotMapObject.availableIntervals.concat(\n availableIntervalsForCurrentBlock\n );\n });\n });\n\n //TODO: do we need to check for UNAVAILABLE?\n timeBlocks\n .filter((timeblock) => timeblock.type === \"UNAVAILABLE\")\n .forEach((timeblock) => {\n slotMapObjects\n .filter(\n (slotMapObject) =>\n slotMapObject.hasavail &&\n hasUnavailability(\n slotMapObject.date,\n awsDateToJsDate(timeblock.startDate),\n awsDateToJsDate(timeblock.endDate),\n timeblock.weekDays\n )\n )\n .forEach((slotMapObject) => {\n markUnAvailability(\n slotMapObject.slotmap,\n getIndexByTime(timeblock.startTime),\n getIndexByTime(timeblock.endTime),\n 0, //Travel timee zero for\n null,\n null,\n bookingIncrement\n );\n });\n });\n // iterate over BOOKED blocks (appointments already booked)\n // For each booked appointment,\n // compute start and stop index based on the start and end time of the appointment\n // get the date of the appointment\n // find the day in slotMapArray that matches the appointment date\n // for the matched day in the slotMapArray, mark the slotmap's elements as booked (i.e. unavailable)\n booked\n .filter(({ type }) => type === \"BOOKED\")\n .forEach((timeblock) => {\n slotMapObjects\n .filter(\n (slotmap) =>\n slotmap.hasavail &&\n slotmap.date.getTime() ===\n awsDateToJsDate(timeblock.startDate).getTime()\n )\n .forEach((slotmap) => {\n markUnAvailability(\n slotmap.slotmap,\n getIndexByTime(timeblock.startTime),\n getIndexByTime(timeblock.endTime),\n travelTime,\n timeblock,\n geoLoc,\n bookingIncrement\n );\n });\n });\n return slotMapObjects;\n}\n\nfunction hasUnavailability(\n slotmapDate,\n unavStartDate,\n unavEndDate,\n unavWeekDays\n) {\n // if SBU block has weekdays, weekday must match\n // otherwise only date match is required\n\n if (\n slotmapDate.getTime() >= unavStartDate.getTime() &&\n slotmapDate.getTime() <= unavEndDate.getTime()\n ) {\n if (unavWeekDays && unavWeekDays.length) {\n let unavaOnWeekday =\n unavWeekDays.indexOf(slotmapDate.getDay()) !== -1 ? true : false;\n if (!unavaOnWeekday) return false;\n }\n return true;\n } else return false;\n}\n//sma slotMapArray, step 15, 30, 60 mins\nfunction toReadableSlots(schedule, sma, step, serviceDuration) {\n const readableArray = [];\n sma.forEach((d) => {\n readableArray.push({\n // schid: schedule.id,\n date: d.date,\n slots: toReableArray(\n d.slotmap,\n step,\n d.date,\n d.availableIntervals,\n serviceDuration\n ),\n });\n });\n return readableArray;\n}\n//slotmap array of 0s and 1s indicating the availability\n//convert info in the slotmap into the start times of the available slots\nfunction toReableArray(\n slotmap,\n step,\n date,\n availableIntervals,\n serviceDuration\n) {\n const readableSlots = [];\n const displaybleSlots = displaySlotsByStep2(\n step,\n slotmap,\n TIMEMAP,\n serviceDuration,\n availableIntervals\n );\n if (displaybleSlots.length > 0) {\n displaybleSlots.forEach((ds) => {\n const datetime = new Date(date.getTime());\n datetime.setHours(ds.hr);\n datetime.setMinutes(ds.mins);\n readableSlots.push({\n len: step,\n start24: ds.tstr24,\n start12: ds.tstr12,\n datetime,\n tfd: ds.tfd,\n hr: ds.hr,\n });\n });\n }\n\n return readableSlots;\n}\n\nfunction getAWSDate(date) {\n let oy = { year: \"numeric\" };\n let YYYY = date.toLocaleDateString(\"en-US\", oy);\n let om = { month: \"2-digit\" };\n let MM = date.toLocaleDateString(\"en-US\", om);\n let od = { day: \"2-digit\" };\n let DD = date.toLocaleDateString(\"en-US\", od);\n return `${YYYY}-${MM}-${DD}`;\n}\n\nfunction getEndingDate(sd, nd) {\n const ed = awsDateToJsDate(sd);\n ed.setDate(ed.getDate() + nd);\n return getAWSDate(ed);\n}\n\nfunction awsDateToJsDate(awsDate) {\n // from YYYY-MM-DD to local timezone\n const dateparts = awsDate.split(\"-\");\n return new Date(\n parseInt(dateparts[0]),\n parseInt(dateparts[1] - 1),\n parseInt(dateparts[2])\n ); //yes, local time\n}\n\nfunction awsDateToJsEndDate(awsDate) {\n const d = awsDateToJsDate(awsDate);\n d.setHours(23);\n d.setMinutes(59);\n d.setSeconds(59);\n d.setMilliseconds(999);\n return d;\n}\n\nfunction worksonday(sample, range) {\n if (range && sample) {\n return range.indexOf(sample.getDay()) !== -1 ? true : false;\n } else return true; //no range, so weekday does not matter.\n}\nconst workedTheDayBefore = (day, shceduleWeekday) =>\n shceduleWeekday.indexOf(mod(day.getDay() - 1, 7)) !== -1;\n\nconst workedTheDayAfter = (day, shceduleWeekday) =>\n shceduleWeekday.indexOf(mod(day.getDay() + 1, 7)) !== -1;\n\nfunction areSame(d1, d2) {\n return (\n d1 &&\n d2 &&\n d1.getDate() === d2.getDate() &&\n d1.getMonth() === d2.getMonth() &&\n d1.getFullYear() === d2.getFullYear()\n );\n}\n// aDate - appointment date and time to check for validity\n// dayCount - number associated with the unit in dayType\n// dayType - days, weeks, months\nconst validateApptDate = async (\n aDate,\n scheduleIds,\n dayCount,\n dayType,\n bookingIntervalMinutes,\n serviceDuration,\n travelTime,\n geoLoc,\n bookingIncrement,\n selectedLocation,\n companyId,\n provider\n) => {\n travelTime = travelTime ? travelTime : 0;\n const { id: providerId, timezone: providerTz } = provider;\n //Get timeblocks\n const availableTBs = await getSBsByScheduleInfo(\n getProviderScheduleId(companyId, providerId),\n scheduleIds\n );\n //if apptDate's day has the schedule\n const doesworkondate = isScheduleAvailableOnApptDate(aDate, availableTBs);\n if (doesworkondate.result) {\n //provider works on the booking date\n /////....... start of new Code\n const slotsByDate = await getSlotsForSbs({\n SBs: availableTBs,\n startDate: getAWSDate(aDate),\n numberOfDays: 1,\n bookingIntervalMinutes,\n serviceDuration,\n travelTime,\n geoLoc,\n bookingIncrement,\n selectedLocation,\n companyId,\n providerId,\n providerTz,\n locationTz: selectedLocation.timezone,\n });\n const apptTime24hr = get24hrTime(aDate);\n for (const day of slotsByDate) {\n if (day && areSame(day.date, aDate))\n for (const slot of day.slots) {\n if (slot.start24 === apptTime24hr) {\n return {\n isValid: true,\n hasAlternate: false,\n alternateSlot: {},\n originalSlot: aDate,\n dateInSchedule: doesworkondate.dateInSchedule,\n };\n }\n }\n }\n for (const day of slotsByDate) {\n if (day && areSame(day.date, aDate)) {\n if (day && day.slots && day.slots.length) {\n for (const slot of day.slots) {\n slot.diff = Math.abs(slot.datetime.getTime() - aDate.getTime());\n }\n day.slots.sort(function (a, b) {\n return a.diff - b.diff;\n });\n return {\n isValid: false,\n hasAlternate: true,\n alternateSlot: { date: day.date, slot: day.slots[0] },\n originalSlot: aDate,\n dateInSchedule: doesworkondate.dateInSchedule,\n };\n } else {\n return {\n isValid: false,\n hasAlternate: false,\n alternateSlot: {},\n originalSlot: aDate,\n dateInSchedule: doesworkondate.dateInSchedule,\n };\n }\n }\n }\n ///// End of new Code.....................\n } else {\n //suggest alternate\n\n //Get slots for one week\n const slotSearchDateRange = decideAlternateSlotSearchDateRange(\n aDate,\n dayCount,\n dayType\n );\n if (slotSearchDateRange.result === false) {\n return {\n isValid: false,\n hasAlternate: false,\n alternateSlot: {},\n originalSlot: aDate,\n dateInSchedule: doesworkondate.dateInSchedule,\n };\n }\n const slotsBySchedule = await getSlotsForSbs({\n SBs: availableTBs,\n startDate: getAWSDate(aDate),\n numberOfDays: 1,\n bookingIntervalMinutes,\n serviceDuration,\n travelTime,\n geoLoc,\n bookingIncrement,\n selectedLocation,\n companyId,\n providerId,\n providerTz,\n locationTz: selectedLocation.timezone,\n });\n const slotsByDate = slotsBySchedule[0]?.slots;\n const apptTime24hr = get24hrTime(aDate);\n if (slotsByDate && slotsByDate.length) {\n for (const day of slotsByDate) {\n for (const slot of day.slots) {\n if (slot.start24 === apptTime24hr) {\n return {\n isValid: false,\n hasAlternate: true,\n alternateSlot: { date: day.date, slot: slot },\n originalSlot: aDate,\n dateInSchedule: doesworkondate.dateInSchedule,\n };\n }\n }\n }\n }\n }\n return {\n isValid: false,\n hasAlternate: false,\n alternateSlot: {},\n originalSlot: aDate,\n dateInSchedule: doesworkondate.dateInSchedule,\n };\n};\n\nconst decideAlternateSlotSearchDateRange = (apptDate, dayCount, dayType) => {\n if (dayType === \"days\" && dayCount === 1) {\n //No alternate slot can be searched\n return { result: false };\n }\n if (dayType === \"days\") {\n return {\n result: true,\n startDate: addDays(apptDate, 1),\n numdays: dayCount === 2 ? 0 : dayCount - 1,\n };\n }\n if (dayType === \"weeks\") {\n return {\n result: true,\n startDate: addDays(apptDate, 1),\n numdays: dayCount === 1 ? 3 : (dayCount * 7) / 2,\n };\n }\n if (dayType === \"months\") {\n return {\n result: true,\n startDate: addDays(apptDate, 1),\n numdays: dayCount === 1 ? 14 : (dayCount * 30) / 2,\n };\n }\n return {\n result: false,\n };\n};\n\nconst isScheduleAvailableOnApptDate = (aDate, avTBs) => {\n const ret = {\n result: false,\n dosuggestalternate: false,\n dateInSchedule: false,\n };\n let dateInSchedule = false;\n for (let tb of avTBs) {\n if (\n aDate >= awsDateToJsDate(tb.startDate) &&\n aDate <= awsDateToJsEndDate(tb.endDate)\n ) {\n dateInSchedule = true;\n }\n }\n ret.dateInSchedule = dateInSchedule;\n for (let tb of avTBs) {\n if (\n aDate >= awsDateToJsDate(tb.startDate) &&\n aDate <= awsDateToJsEndDate(tb.endDate)\n ) {\n if (worksonday(aDate, tb.weekDays)) {\n ret.result = true;\n ret.dosuggestalternate = false;\n } else {\n if (!ret.result) {\n ret.result = false;\n ret.dosuggestalternate = true;\n }\n }\n } else {\n if (!ret.result) {\n ret.result = false;\n ret.dosuggestalternate = false;\n }\n }\n }\n return ret;\n};\n\nconst getSBsByScheduleInfo = async (pk, schInfos) => {\n const { items: scheduleBlocks } = await execReadBySortkey({\n opname: \"listProviderSchedules\",\n op: scheduleQueries.listTimeblocks,\n id: { id: pk },\n skey: { scheduleinfo: { beginsWith: `SB|` } },\n filter: {\n and: [{ active: { ne: false } }, { deleted: { ne: true } }],\n },\n limit: 20,\n });\n const filteredBlocks = scheduleBlocks.filter(({ scheduleinfo }) =>\n schInfos.some((schInfos) => scheduleinfo.indexOf(schInfos) !== -1)\n );\n if (filteredBlocks) {\n for (let tb of filteredBlocks) {\n createScheduleDescription(tb);\n }\n }\n return filteredBlocks;\n};\n\nfunction createScheduleDescription(tb) {\n tb.timeRange = `${withAMPM(tb.startTime)} — ${withAMPM(tb.endTime)}`;\n tb.dateRange = `${formatted(tb.startDate)} — ${formatted(tb.endDate)}`;\n const weekDaysArr =\n tb?.weekDays === \"\" ? ALLDAYSARRAY : tb.weekDays.split(\"\");\n if (weekDaysArr) {\n weekDaysArr.sort();\n let repeat = \"\";\n if (weekDaysArr.length === 7) {\n repeat = \"Every day\";\n } else if (weekDaysArr.length === 5 && isWeekdaysOnly(weekDaysArr)) {\n repeat = \"Every weekday\";\n } else {\n const weeks = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n const sortedWeekDays = [...new Set(weekDaysArr)].sort((a, b) => a - b);\n if (sortedWeekDays.length === 1) {\n repeat = `${weeks[sortedWeekDays[0]]}`;\n } else if (sortedWeekDays.length === 7) {\n repeat = `Every day`;\n } else {\n const firstDay = weeks[sortedWeekDays[0]];\n const lastDay = weeks[sortedWeekDays[sortedWeekDays.length - 1]];\n repeat = `${firstDay} — ${lastDay},`;\n }\n }\n tb.repeat = repeat;\n }\n}\n\nconst sortScheduleDisplayOrder = (schedules) => {\n const allDays = \"0123456\";\n const allWeekDays = \"12345\";\n return sortBy(schedules, [\n (schedule) =>\n schedule.weekDays === allWeekDays || schedule.weekDays === allDays\n ? -1\n : 1, //move \"Every weekday\" or \"Every day\" to the top\n (schedule) => {\n const days = schedule.weekDays.split(\"\").map(Number);\n return min(days.map((day) => (day === 0 ? 7 : day))); //treat Sunday (0) as 7 for sorting\n },\n \"startTime\", //sort by start time if days are the same\n ]);\n};\n\nfunction isWeekdaysOnly(wa) {\n wa.sort();\n for (let i = 0; i <= 4; i++) {\n if (!(parseInt(wa[i]) === i + 1)) return false;\n }\n return true;\n}\nfunction formatted(d) {\n return new Date(d).toLocaleDateString(\"en-US\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n });\n}\n\nfunction withAMPM(t) {\n if (!t) return \"\";\n const [hh, mm] = t.split(\":\");\n let hours = parseInt(hh, 10);\n const ampm = hours < 12 ? \"AM\" : \"PM\";\n hours = hours % 12 || 12;\n return `${hours}:${mm} ${ampm}`;\n}\n\nconst getProviderLocation = async (id) => {\n const data = await API.graphql(\n graphqlOperation(\n `query GetProviderLocation($id: ID!) {\n getProviderLocation(id: $id) {\n id\n name \n timezone\n }\n }`,\n {\n id,\n }\n )\n );\n return data.data.getProviderLocation;\n};\n\nconst getCompanyLocationGeoCoordinates = async (scheduleinfo) => {\n try {\n if (scheduleinfo && scheduleinfo.includes(\"|CL-\")) {\n const parts = scheduleinfo.split(\"|\");\n const locationId = parts[1].slice(3);\n const companyLocation = await getCompanyLocation(locationId);\n if (companyLocation) {\n return {\n lat: companyLocation.latitude,\n lng: companyLocation.longitude,\n };\n }\n }\n return null;\n } catch (e) {\n return null;\n }\n};\nconst getCompanyLocation = async (id) => {\n const data = await API.graphql(\n graphqlOperation(\n `query GetCompanyLocation($id: ID!) {\n getCompanyLocation(id: $id) {\n id\n locationname \n timezone\n latitude\n longitude\n }\n }`,\n {\n id,\n }\n )\n );\n return data.data.getCompanyLocation;\n};\n\nconst get24hrTime = (aDate) => {\n return aDate\n ? aDate.toLocaleTimeString(\"en-US\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n hourCycle: \"h24\",\n })\n : \"\";\n};\nfunction getIndexByTime(t) {\n const parts = t.split(\":\");\n const h = parseInt(parts[0]);\n const m = parseInt(parts[1]);\n const index = (h * 60 + m) / SLOTUNITMINS;\n return index;\n}\n\nfunction markUnAvailability(\n sm,\n si,\n ei,\n travelTime,\n tb,\n geoLoc,\n bookingIncrement\n) {\n if (tb && tb.latitude && tb.longitude && geoLoc) {\n if (!includeTravelTime(tb, geoLoc)) travelTime = 0;\n }\n if (travelTime && travelTime > 0) {\n let ttIndLen = travelTime / SLOTUNITMINS;\n si = si - ttIndLen;\n ei = ei + ttIndLen;\n let clawbackInd = ei % (bookingIncrement / SLOTUNITMINS);\n if (clawbackInd <= 1) {\n //10 mins into the next half an hour like 10:10 or 10:40\n ei = ei - clawbackInd;\n }\n }\n //in above block ei could correspond to endTime 00:00 i.e. ei=0 (or near midnight like 11:50pm), and hence its travel time adjusted ei could be between 0 and 5 of the NEXT DAY.\n // we have no way of storing and presenting this fact to users so reset the endTime back 00:00\n if (ei < si) ei = SLOTSINADAY;\n\n for (let s = si; s <= ei - 1; s++) {\n sm[s] = 0;\n }\n}\n\nfunction includeTravelTime(tb, geoLoc) {\n if (tb && tb.latitude && tb.longitude && geoLoc) {\n const tbLat = Number(tb.latitude);\n const tbLng = Number(tb.longitude);\n const bookLat = Number(geoLoc.lat);\n const bookLng = Number(geoLoc.lng);\n const lat = tbLat - bookLat;\n const lng = tbLng - bookLng;\n const dLat = (lat * Math.PI) / 180;\n const dLng = (lng * Math.PI) / 180;\n const bookLatRad = (bookLat * Math.PI) / 180;\n const tbLatRad = (tbLat * Math.PI) / 180;\n\n let a =\n Math.sin(dLat / 2) * Math.sin(dLat / 2) +\n Math.cos(bookLatRad) *\n Math.cos(tbLatRad) *\n Math.sin(dLng / 2) *\n Math.sin(dLng / 2);\n let c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n let d = EARTHRADIUS * c;\n if (d < NOTRAVELTIMERADIUS) return false;\n }\n return true;\n}\n\nfunction calcDist(fromGeo, toGeo) {\n try {\n if (\n fromGeo.latitude &&\n fromGeo.longitude &&\n toGeo.latitude &&\n toGeo.longitude\n ) {\n if (\n isNaN(fromGeo.latitude) ||\n isNaN(fromGeo.longitude) ||\n isNaN(toGeo.latitude) ||\n isNaN(toGeo.longitude)\n )\n return { km: 0, miles: 0, usable: false };\n const fromLat = Number(fromGeo.latitude);\n const fromLng = Number(fromGeo.longitude);\n const toLat = Number(toGeo.latitude);\n const toLng = Number(toGeo.longitude);\n const lat = fromLat - toLat;\n const lng = fromLng - toLng;\n const dLat = (lat * Math.PI) / 180;\n const dLng = (lng * Math.PI) / 180;\n const toLatRad = (toLat * Math.PI) / 180;\n const fromLatRad = (fromLat * Math.PI) / 180;\n\n let a =\n Math.sin(dLat / 2) * Math.sin(dLat / 2) +\n Math.cos(toLatRad) *\n Math.cos(fromLatRad) *\n Math.sin(dLng / 2) *\n Math.sin(dLng / 2);\n let c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n let d = EARTHRADIUS * c;\n if (d === 0) return { km: 0, miles: 0, usable: false };\n let km = round(Number(d / 1000), 1);\n let miles = round(Number((d / 1000) * 0.621371), 1);\n return { km, miles, usable: true };\n } else {\n return { km: 0, miles: 0, usable: false };\n }\n } catch (e) {\n console.log(\"error while calculating distance\", e);\n return { km: 0, miles: 0, usable: false };\n }\n}\n\nfunction round(value, precision) {\n var multiplier = Math.pow(10, precision || 0);\n return Math.round(value * multiplier) / multiplier;\n}\n\nfunction displaySlotsByStep2(\n step,\n sm,\n tmap,\n serviceDuration,\n availableIntervals\n) {\n let stepstarted = false;\n const steplen = step / SLOTUNITMINS;\n const serviceDurationlen = serviceDuration / SLOTUNITMINS;\n let returnStartTimes = [];\n\n availableIntervals.forEach((availableInterval) => {\n const foundStartTimes = [];\n let referenceStartIndex = availableInterval[0];\n for (let s = availableInterval[0]; s < availableInterval[1]; s++) {\n if (sm[s] === 1) {\n if (stepstarted) {\n //existing step\n for (let fst of foundStartTimes) {\n if (fst.live) fst.uc += 1;\n }\n if ((s - referenceStartIndex) % steplen === 0) {\n foundStartTimes.push({ st: tmap[s], uc: 1, live: true });\n stepstarted = true;\n referenceStartIndex = s;\n }\n } else {\n //new step started\n foundStartTimes.push({ st: tmap[s], uc: 1, live: true });\n stepstarted = true;\n referenceStartIndex = s;\n }\n } else {\n for (let fst of foundStartTimes) {\n fst.live = false;\n }\n stepstarted = false;\n }\n }\n returnStartTimes = returnStartTimes.concat(\n foundStartTimes\n .filter((fst) => fst.uc >= serviceDurationlen)\n .map((fst) => fst.st)\n );\n });\n return returnStartTimes;\n}\n\nfunction buildTimeMap() {\n const tmap = new Array(SLOTSINADAY);\n for (let s = 0; s < SLOTSINADAY; s++) {\n const hr = Math.floor(s / SLOTSINHOUR);\n const mins = (s % SLOTSINHOUR) * SLOTUNITMINS;\n const tstr24 = `${hr < 10 ? \"0\" : \"\"}${hr}:${mins < 10 ? \"0\" : \"\"}${mins}`;\n const tfd =\n hr > 6 && hr < 12\n ? 1\n : hr > 11 && hr < 17\n ? 2\n : hr > 16 && hr <= 23\n ? 3\n : 4;\n const tstr12 = `${hr < 13 ? hr : hr - 12}:${mins < 10 ? \"0\" : \"\"}${mins} ${\n hr > 11 ? \"PM\" : \"AM\"\n }`;\n tmap[s] = { tstr24, tstr12, tfd, hr, mins };\n }\n return tmap;\n}\n\n//For UI : _getSchedules\nconst _getSchedules = async ({ companyId, providerId }) => {\n const response = await execReadBySortkey({\n opname: \"listProviderSchedules\",\n op: scheduleQueries.listAllScheduleItems,\n id: { id: getProviderScheduleId(companyId, providerId) },\n skey: { scheduleinfo: { beginsWith: \"S\" } },\n filter: { and: [{ active: { ne: false } }, { deleted: { ne: true } }] },\n limit: process.env.REACT_APP_LISTLIMIT,\n });\n\n //TODO: check if no items in the response\n\n const allSchedules = response.items.filter((schitem) =>\n schitem.scheduleinfo.startsWith(\"SC|\")\n );\n\n const allLocationIds = allSchedules.reduce(\n (agrigate, { locations = \"[]\" }) => [\n ...agrigate,\n ...JSON.parse(locations).map((lc) => stripLocationPrefix(lc)),\n ],\n []\n );\n\n const uniqueLocations = uniq(allLocationIds);\n\n const allServices = response.items.filter((schitem) =>\n schitem.scheduleinfo.startsWith(\"SR|\")\n );\n const allSBs = response.items.filter((schitem) =>\n schitem.scheduleinfo.startsWith(\"SB|\")\n );\n\n //Get Locations\n const ORlocations = uniqueLocations.map((lId) => {\n return {\n id: {\n eq: lId,\n },\n };\n });\n const locationsFilter = {\n or: ORlocations,\n };\n const companyLocations = await execRead({\n opname: \"listCompanyLocations\",\n op: queries.listCompanyLocations,\n filter: locationsFilter,\n limit: process.env.REACT_APP_LISTLIMIT,\n });\n\n const pd = await getProviderDataForSchedules(providerId);\n\n const returnSchedules = allSchedules.map((schedule) => {\n const scheduleLocationIds = JSON.parse(schedule.locations).map((id) =>\n id.substring(3)\n );\n return {\n ...schedule,\n id: schedule.id + SCHEDPKSKSPLITAT + schedule.scheduleinfo, //to support DataTableWrapper\n SBs: allSBs\n .filter((tb) => tb.scheduleinfo.includes(schedule.scheduleinfo))\n .map((tb) => {\n createScheduleDescription(tb);\n return {\n ...tb,\n id: tb.id + SCHEDPKSKSPLITAT + tb.scheduleinfo,\n };\n }),\n companyLocations: companyLocations.items.filter(({ id }) =>\n scheduleLocationIds.includes(id)\n ),\n services: allServices\n .filter(\n (serv) =>\n serv.scheduleinfo.endsWith(schedule.scheduleinfo) ||\n serv.scheduleinfo.includes(schedule.scheduleinfo.split(\"|\")[1])\n )\n .map((serv) => {\n const servicetypeId = serv.scheduleinfo.split(\"|\")[1];\n return {\n scheduleinfo: serv.scheduleinfo,\n servicetypeId,\n name: getServiceName(pd.servicetypes, servicetypeId),\n };\n }),\n };\n });\n return returnSchedules;\n};\n\nfunction getServiceName(providerServices, servicetypeId) {\n let serviceTypeName = null;\n providerServices.forEach((st) => {\n if (servicetypeId === st.servicetype.id) {\n serviceTypeName = st.servicetype.name;\n }\n });\n return serviceTypeName;\n}\nexport function getProviderScheduleId(cid, pid) {\n return `C-${cid}|P-${pid}`;\n}\n\nconst getProviderDataForSchedules = async (providerid) => {\n const providerData = await API.graphql(\n graphqlOperation(scheduleQueries.providerDataForScheduleQuery, {\n id: providerid,\n })\n );\n\n let providerDataForSchedule = {};\n\n if (\n providerData &&\n providerData.data &&\n providerData.data.getProvider &&\n providerData.data.getProvider.servicetypes &&\n providerData.data.getProvider.servicetypes.items\n ) {\n providerDataForSchedule = {\n ...providerDataForSchedule,\n servicetypes: providerData.data.getProvider.servicetypes.items.filter(\n (s) => !(true === s.servicetype.deleted)\n ),\n };\n }\n if (\n providerData &&\n providerData.data &&\n providerData.data.getProvider &&\n providerData.data.getProvider.locations &&\n providerData.data.getProvider.locations.items\n ) {\n providerDataForSchedule = {\n ...providerDataForSchedule,\n locations: providerData.data.getProvider.locations.items.filter(\n (pl) => !(true === pl.deleted)\n ),\n };\n }\n\n return providerDataForSchedule;\n};\n\nasync function checkPackageBookedSlotsValid(bookingState) {\n const slots = bookingState.heldPackageSlots;\n const bookings = bookingState.packageBookedSlots;\n if (slots?.length !== bookings?.length) {\n return false;\n }\n //if each slot exists in the db\n for (let slot of slots) {\n const idsplit = slot.id.split(SCHEDPKSKSPLITAT);\n const result = await API.graphql(\n graphqlOperation(\n /* GraphQL */ `\n query GetProviderSchedule($id: ID!, $scheduleinfo: String!) {\n getProviderSchedule(id: $id, scheduleinfo: $scheduleinfo) {\n id\n scheduleinfo\n }\n }\n `,\n {\n id: idsplit[0],\n scheduleinfo: idsplit[1],\n }\n )\n );\n return result.data.getProviderSchedule?.scheduleinfo === slot.scheduleinfo;\n }\n // check if order of slots and bookings match in the respective arrays\n let index = 0;\n for (let b of bookings) {\n if (b.dateInfo.dtstamp_str !== slots[index]?.sdtutc) {\n return false;\n }\n index = index + 1;\n }\n return true;\n}\nasync function checkSelectedSlotStillAvailable(bookingState) {\n const pksk = getProviderScheduleId(\n bookingState.companyId,\n bookingState.provider.id\n );\n let startDate = new Date(bookingState.selectedslot.date);\n startDate = getAWSDate(startDate);\n let startTime = bookingState.selectedslot.label;\n const bookedResp = await execReadBySortkey({\n opname: \"listProviderSchedules\",\n op: scheduleQueries.listTimeblocks,\n id: { id: pksk },\n skey: {\n scheduleinfo: { beginsWith: `BK|${startDate} ${startTime}` },\n },\n filter: { status: { ne: \"CANCELLED\" } },\n limit: 500,\n });\n\n if (bookedResp && bookedResp.items) {\n if (bookedResp.items.length) {\n const locationTz = bookingState.serviceLocationObj.timezone;\n\n let allSlotsHaveTz = true;\n let slotTzMatch = false;\n\n for (let slot of bookedResp.items) {\n if (!slot.tz) allSlotsHaveTz = false;\n if (slot.tz === locationTz) {\n slotTzMatch = true;\n }\n }\n if (allSlotsHaveTz) return !slotTzMatch;\n\n return false;\n }\n }\n return true;\n}\n\nasync function checkSlotStillAvailablePkgBkgFlow(\n selectedslot,\n pk,\n { timezone: locationTz }\n) {\n let startDate = new Date(selectedslot.date);\n startDate = getAWSDate(startDate);\n let startTime = selectedslot.label;\n const bookedResp = await execReadBySortkey({\n opname: \"listProviderSchedules\",\n op: scheduleQueries.listTimeblocks,\n id: { id: pk },\n skey: {\n scheduleinfo: { beginsWith: `BK|${startDate} ${startTime}` },\n },\n filter: { status: { ne: \"CANCELLED\" } },\n limit: 500,\n });\n\n if (bookedResp && bookedResp.items) {\n if (bookedResp.items.length) {\n let allSlotsHaveTz = true;\n let slotTzMatch = false;\n\n for (let slot of bookedResp.items) {\n if (!slot.tz) allSlotsHaveTz = false;\n if (slot.tz === locationTz) {\n slotTzMatch = true;\n }\n }\n if (allSlotsHaveTz) return !slotTzMatch;\n\n return false;\n }\n }\n return true;\n}\n\nfunction getPhysicalLocationGeoLoc(serviceLocationObj) {\n if (serviceLocationObj) {\n let locObj = serviceLocationObj;\n if (locObj.latitude && locObj.longitude) {\n return {\n lat: locObj.latitude,\n lng: locObj.longitude,\n };\n }\n }\n return;\n}\n\nasync function getClusteredSlots(\n bookingState,\n lookAheadDays = DEFAULT_LOOKAHEAD_DAYS_FOR_CLUSTERING,\n startDate = new Date(),\n includeFullDayAnyTimeSlots = false,\n locationTz,\n forceBookingTimeWithPackageBookingTime\n) {\n try {\n let timeSuggestionsEnabled = false;\n let firstBookingAnchorTime;\n let maxTravelTimeMinutes;\n if (bookingState && bookingState.company?.SuggestionConfig) {\n const suggestionConfigObj = JSON.parse(\n bookingState.company.SuggestionConfig\n );\n timeSuggestionsEnabled = suggestionConfigObj.isEnabled;\n firstBookingAnchorTime = suggestionConfigObj.timeOfFirstBookingOfTheDay;\n maxTravelTimeMinutes = suggestionConfigObj.maxTravelTimeMinutes;\n }\n if (bookingState.provider.maxTravelTime)\n maxTravelTimeMinutes = bookingState.provider.maxTravelTime;\n if (timeSuggestionsEnabled) {\n let geoLoc = bookingState.isRemoteLocation\n ? bookingState.remoteAddressCoordinates\n : getPhysicalLocationGeoLoc(bookingState.serviceLocationObj);\n const timeZoneAdjustedScheduleBlocks = adjustScheduleBlocksToLocationTz(\n bookingState.provider.timezone,\n locationTz,\n bookingState.provider.SBs\n );\n if (geoLoc) {\n const clusteredSlotsResponse = await API.post(\n \"bookingapi\",\n \"/clusteredslots\",\n {\n body: {\n companyId: bookingState.company.id,\n providerId: bookingState.provider.id,\n providerSBs: timeZoneAdjustedScheduleBlocks,\n startdate: getAWSDate(startDate),\n numdays: lookAheadDays,\n bookingIntervalMinutes:\n bookingState.company.bookingIntervalMinutes,\n serviceDuration: bookingState.serviceType.minutes,\n maxTravelTime: maxTravelTimeMinutes, // Provider.maxTravelTime (when becomes available) or company.SuggestionConfig.maxTravelTimeMinutes\n geoLoc,\n bookingIncrement: 15,\n BROWSER_TZ: Intl.DateTimeFormat().resolvedOptions().timeZone, //BROWSER_TZ\n firstBookingAnchorTime: firstBookingAnchorTime,\n includeFullDayAnyTimeSlots,\n locationTz,\n forceBookingTime: forceBookingTimeWithPackageBookingTime\n ? forceBookingTimeWithPackageBookingTime\n : \"\",\n },\n }\n );\n //ensure unique slots\n if (clusteredSlotsResponse && clusteredSlotsResponse.clusteredslots) {\n if (clusteredSlotsResponse.clusteredslots.slots?.length) {\n const seenDates = new Set();\n clusteredSlotsResponse.clusteredslots.slots =\n clusteredSlotsResponse.clusteredslots.slots.filter((obj) => {\n if (seenDates.has(obj.clusteredReadableSlot.datetime)) {\n return false;\n } else {\n seenDates.add(obj.clusteredReadableSlot.datetime);\n return true;\n }\n });\n }\n }\n return clusteredSlotsResponse;\n }\n }\n } catch (e) {\n console.log(\"getClusteredSlots error:\", e);\n }\n}\nasync function getTimeSuggestions(\n locationTz,\n bookingState,\n lookAheadDays = DEFAULT_LOOKAHEAD_DAYS_FOR_CLUSTERING,\n startDate = new Date(),\n maxNumberOfSlots = DEFAULT_MAX_NUM_OF_SUGGESTED_SLOTS_TO_DISPALY\n) {\n try {\n const result = await getClusteredSlots(\n bookingState,\n lookAheadDays,\n startDate,\n false,\n locationTz\n );\n if (result) {\n if (result && result.clusteredslots) {\n // sort first\n result.clusteredslots.slots.sort((slot1, slot2) => {\n const slot1DateTime = new Date(\n slot1.clusteredReadableSlot?.datetime\n ).valueOf();\n const slot2DateTime = new Date(\n slot2.clusteredReadableSlot?.datetime\n ).valueOf();\n if (slot1DateTime > slot2DateTime) return 1;\n else if (slot1DateTime < slot2DateTime) return -1;\n else return 0;\n });\n if (result.clusteredslots.slots?.length > maxNumberOfSlots)\n result.clusteredslots.slots = result.clusteredslots.slots.slice(\n 0,\n maxNumberOfSlots\n );\n return result.clusteredslots;\n }\n } else {\n return {\n slots: [],\n fullDays: [],\n };\n }\n } catch (e) {\n console.log(e);\n return {\n slots: [],\n fullDays: [],\n };\n }\n}\n\nasync function getPackageSuggestedTimes(apptDates, bookingState, locationTz) {\n try {\n const suggestedPackageDates = [];\n for (let apptDate of apptDates) {\n // apptDate.date's date/time part is important, the date object itself has browser timezine.\n const forceBookingTimeWithPackageBookingTime =\n apptDate.date.toLocaleTimeString(\"en-US\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n hour12: false,\n });\n const result = await getClusteredSlots(\n bookingState,\n 1,\n apptDate.date,\n false,\n locationTz, // Intl.DateTimeFormat().resolvedOptions().timeZone // locationTz,\n forceBookingTimeWithPackageBookingTime\n );\n if (result) {\n if (result && result.clusteredslots) {\n if (result.clusteredslots.fullDays.length === 1) {\n // check YYYY-MM-DD of apptDate.date with fullDays[0].date's YYYY-MM-DD\n if (\n moment(apptDate.date).format(\"YYYY-MM-DD\") ===\n moment(result.clusteredslots.fullDays[0].date).format(\n \"YYYY-MM-DD\"\n )\n )\n suggestedPackageDates.push(apptDate); //display date info is already there\n }\n if (result.clusteredslots.slots?.length) {\n const milisecondsOfCurrentApptDate = new Date(\n apptDate.date\n ).valueOf();\n for (let suggestedSlot of result.clusteredslots.slots) {\n suggestedSlot.clusteredReadableSlot.datetime = new Date(\n suggestedSlot.date\n );\n suggestedSlot.clusteredReadableSlot.datetime.setHours(\n suggestedSlot.clusteredReadableSlot.hr\n );\n suggestedSlot.clusteredReadableSlot.datetime.setMinutes(\n suggestedSlot.clusteredReadableSlot.mins\n );\n\n const clusteredApptMilisconds = new Date(\n suggestedSlot.clusteredReadableSlot.datetime\n ).valueOf();\n suggestedSlot.clusteredReadableSlot.diffToUserSelectedDateTime =\n Math.abs(\n clusteredApptMilisconds - milisecondsOfCurrentApptDate\n );\n }\n result.clusteredslots.slots.sort((s1, s2) => {\n if (\n s1.clusteredReadableSlot.diffToUserSelectedDateTime >\n s2.clusteredReadableSlot.diffToUserSelectedDateTime\n )\n return 1;\n else if (\n s1.clusteredReadableSlot.diffToUserSelectedDateTime <\n s2.clusteredReadableSlot.diffToUserSelectedDateTime\n )\n return -1;\n else return 0;\n });\n const suggestedSlotToBePresented =\n result.clusteredslots.slots[0].clusteredReadableSlot;\n\n suggestedPackageDates.push({\n date: suggestedSlotToBePresented.datetime,\n key: suggestedSlotToBePresented.datetime.toISOString(),\n selected: true,\n validity: {\n isValid:\n suggestedSlotToBePresented.diffToUserSelectedDateTime === 0\n ? true\n : false,\n hasAlternate:\n suggestedSlotToBePresented.diffToUserSelectedDateTime === 0\n ? false\n : true,\n originalSlot: apptDate.date,\n dateInSchedule: true,\n ...(suggestedSlotToBePresented.diffToUserSelectedDateTime && {\n alternateSlot: {\n date: suggestedSlotToBePresented.datetime,\n slot: suggestedSlotToBePresented,\n },\n }),\n },\n });\n }\n }\n }\n }\n return suggestedPackageDates;\n } catch (e) {\n console.log(\"error in getPackageSuggestedTimes\", e);\n }\n}\nexport const searchProviderSchedulesByAddress = async (\n coords,\n providerId,\n serviceTypeIds,\n companyId\n) => {\n try {\n let result = await API.get(\"searchapi\", \"/providers\", {\n queryStringParameters: {\n providerId,\n lng: coords.lng,\n lat: coords.lat,\n stids: serviceTypeIds,\n companyId,\n },\n });\n\n if (result && result.length > 0) {\n return result.map((esr) => {\n return {\n id: esr.id,\n active: esr.active,\n scheduleinfo: esr.scheduleinfo,\n };\n });\n } else return [];\n } catch (ex) {\n console.log(\"error\", ex);\n return [];\n }\n};\n\nexport const compareTimezones = (tz1, tz2) => {\n const nowDate = new Date();\n console.log(\n utcToZonedTime(nowDate, tz1) > utcToZonedTime(nowDate, tz2),\n utcToZonedTime(nowDate, tz1) < utcToZonedTime(nowDate, tz2)\n );\n return utcToZonedTime(nowDate, tz1) > utcToZonedTime(nowDate, tz2);\n};\n\nexport function sortProvidersByRating(providers) {\n return providers.sort((p1, p2) => {\n let r1 = p1.ratingstarsavg ? p1.ratingstarsavg : 0;\n let r2 = p2.ratingstarsavg ? p2.ratingstarsavg : 0;\n if (r1 > r2) return -1;\n if (r1 < r2) return 1;\n let n1 = `${p1.firstname}${p1.lastname}`.toUpperCase();\n let n2 = `${p2.firstname}${p2.lastname}`.toUpperCase();\n if (n1 > n2) return 1;\n if (n1 < n2) return -1;\n return 0;\n });\n}\n\nfunction calculateDailyPossibleMaxAvailability(availableIntervals) {\n if (availableIntervals) {\n let counti = 0;\n for (let interval of availableIntervals) {\n counti += interval[1] - interval[0];\n }\n return counti * SLOTUNITMINS;\n }\n return 0;\n}\nexport function calculateDailyStats(unreadables) {\n let dailyStats = [];\n if (unreadables) {\n for (let d of unreadables) {\n if (d.hasavail) {\n let tfd = new Set();\n let slotlengths = d.slotmap.reduce(\n function (sl, s, i) {\n if (s) {\n sl.currLen++;\n sl.total++;\n sl.live = true;\n tfd.add(TIMEMAP[i].tfd);\n } else {\n if (sl.live) {\n if (sl.currLen > sl.currMaxLen) {\n sl.currMaxLen = sl.currLen;\n }\n if (sl.currMinLen > sl.currLen) {\n sl.currMinLen = sl.currLen;\n }\n sl.currLen = 0;\n sl.live = false;\n }\n }\n return sl;\n },\n { currLen: 0, currMinLen: 288, currMaxLen: 0, total: 0, live: false }\n );\n const dailyPossibleMaxAvil = calculateDailyPossibleMaxAvailability(\n d.availableIntervals\n );\n dailyStats.push({\n d: moment(d.date).format(\"YYYY-MM-DD\"),\n p:\n dailyPossibleMaxAvil === 0\n ? 0\n : ((slotlengths.total * SLOTUNITMINS) / dailyPossibleMaxAvil) *\n 100,\n sxl: slotlengths.currMaxLen * SLOTUNITMINS,\n m: tfd.has(1) ? 1 : 0,\n a: tfd.has(2) ? 1 : 0,\n e: tfd.has(3) ? 1 : 0,\n stl: slotlengths.total * SLOTUNITMINS,\n });\n }\n }\n }\n return dailyStats;\n}\n\nexport {\n createTimeblock,\n awsDateToJsDate, // turns YYYY-MM-DD formated date into JS date object of browser local TZ\n getAWSDate, //returns a given date in YYYY-MM-DD format\n validateApptDate,\n _getSchedules,\n SCHEDPKSKSPLITAT,\n getSBsByScheduleInfo,\n getCompanyLocation,\n checkSelectedSlotStillAvailable,\n checkSlotStillAvailablePkgBkgFlow,\n calcDist,\n checkPackageBookedSlotsValid,\n getSlotsForSbs,\n calculateBookedMinutes,\n getEndingDate,\n getTimeSuggestions,\n getPackageSuggestedTimes,\n getPhysicalLocationGeoLoc,\n sortScheduleDisplayOrder,\n};\n","import { logSystemError } from \"../../modules/SystemErrorService\";\n\nasync function loadData(url, companyId) {\n let response = await fetch(url);\n if (response.ok) {\n let text = await response.text(); // read response body as text\n return text;\n } else {\n await logSystemError(\n companyId,\n \"ERROR\",\n `status code ${response.status} ${response.statusText} - while loading url ${url}`,\n 0,\n {}\n );\n console.log(\"loadData\", response);\n return \"Error\";\n }\n}\n\n/**\n * Function to check if a company has an uploaded Terms of Service file.\n * @param {*} companyId\n * @returns hasTos - boolean\n */\nconst checkCompanyHasTosFile = async (companyId) => {\n try {\n let hasTos = false;\n const tosPdfUrl = `${process.env.REACT_APP_TOS_DOC_URL}${companyId}-tos.pdf`;\n const pdfExists = await loadData(tosPdfUrl, companyId);\n\n const tosHtmlUrl = `${process.env.REACT_APP_TOS_DOC_URL}${companyId}-tos.html`;\n const htmlExists = await loadData(tosHtmlUrl, companyId);\n\n if (pdfExists !== \"Error\") {\n hasTos = true;\n } else if (htmlExists !== \"Error\") {\n hasTos = true;\n }\n\n return hasTos;\n } catch (e) {\n console.log(\"error loading terms.\");\n }\n};\n\nexport { loadData, checkCompanyHasTosFile };\n","/* eslint-disable */\n// this is an auto generated file. This will be overwritten\n\nexport const createUserRegistration = /* GraphQL */ `\n mutation CreateUserRegistration($input: CreateUserRegistrationInput!) {\n createUserRegistration(input: $input) {\n id\n emailaddress\n registrationInfo\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateUserRegistration = /* GraphQL */ `\n mutation UpdateUserRegistration($input: UpdateUserRegistrationInput!) {\n updateUserRegistration(input: $input) {\n id\n emailaddress\n registrationInfo\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteUserRegistration = /* GraphQL */ `\n mutation DeleteUserRegistration($input: DeleteUserRegistrationInput!) {\n deleteUserRegistration(input: $input) {\n id\n emailaddress\n registrationInfo\n createdAt\n updatedAt\n }\n }\n`;\nexport const createCompanyPublicSite = /* GraphQL */ `\n mutation CreateCompanyPublicSite($input: CreateCompanyPublicSiteInput!) {\n createCompanyPublicSite(input: $input) {\n id\n companyId\n backgroundImageUrl\n heading1Text\n heading2Text\n textColor\n buttonColor\n StyleCustomization\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const updateCompanyPublicSite = /* GraphQL */ `\n mutation UpdateCompanyPublicSite($input: UpdateCompanyPublicSiteInput!) {\n updateCompanyPublicSite(input: $input) {\n id\n companyId\n backgroundImageUrl\n heading1Text\n heading2Text\n textColor\n buttonColor\n StyleCustomization\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const deleteCompanyPublicSite = /* GraphQL */ `\n mutation DeleteCompanyPublicSite($input: DeleteCompanyPublicSiteInput!) {\n deleteCompanyPublicSite(input: $input) {\n id\n companyId\n backgroundImageUrl\n heading1Text\n heading2Text\n textColor\n buttonColor\n StyleCustomization\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const createUser = /* GraphQL */ `\n mutation CreateUser($input: CreateUserInput!) {\n createUser(input: $input) {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const updateUser = /* GraphQL */ `\n mutation UpdateUser($input: UpdateUserInput!) {\n updateUser(input: $input) {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const deleteUser = /* GraphQL */ `\n mutation DeleteUser($input: DeleteUserInput!) {\n deleteUser(input: $input) {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const createUserRemoteAddress = /* GraphQL */ `\n mutation CreateUserRemoteAddress($input: CreateUserRemoteAddressInput!) {\n createUserRemoteAddress(input: $input) {\n id\n userId\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n active\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n }\n }\n`;\nexport const updateUserRemoteAddress = /* GraphQL */ `\n mutation UpdateUserRemoteAddress($input: UpdateUserRemoteAddressInput!) {\n updateUserRemoteAddress(input: $input) {\n id\n userId\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n active\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n }\n }\n`;\nexport const deleteUserRemoteAddress = /* GraphQL */ `\n mutation DeleteUserRemoteAddress($input: DeleteUserRemoteAddressInput!) {\n deleteUserRemoteAddress(input: $input) {\n id\n userId\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n active\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n }\n }\n`;\nexport const createUserInvitation = /* GraphQL */ `\n mutation CreateUserInvitation($input: CreateUserInvitationInput!) {\n createUserInvitation(input: $input) {\n id\n emailaddress\n invitecode\n role\n active\n companyId\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateUserInvitation = /* GraphQL */ `\n mutation UpdateUserInvitation($input: UpdateUserInvitationInput!) {\n updateUserInvitation(input: $input) {\n id\n emailaddress\n invitecode\n role\n active\n companyId\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteUserInvitation = /* GraphQL */ `\n mutation DeleteUserInvitation($input: DeleteUserInvitationInput!) {\n deleteUserInvitation(input: $input) {\n id\n emailaddress\n invitecode\n role\n active\n companyId\n createdAt\n updatedAt\n }\n }\n`;\nexport const createCompany = /* GraphQL */ `\n mutation CreateCompany($input: CreateCompanyInput!) {\n createCompany(input: $input) {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateCompany = /* GraphQL */ `\n mutation UpdateCompany($input: UpdateCompanyInput!) {\n updateCompany(input: $input) {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteCompany = /* GraphQL */ `\n mutation DeleteCompany($input: DeleteCompanyInput!) {\n deleteCompany(input: $input) {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n`;\nexport const createPendingCompany = /* GraphQL */ `\n mutation CreatePendingCompany($input: CreatePendingCompanyInput!) {\n createPendingCompany(input: $input) {\n id\n name\n contactname\n emailaddress\n subdomain\n publishableStripeKey\n subscriptionLevel\n estimatedNumOfProviders\n status\n PaymentSettings\n createdAt\n updatedAt\n }\n }\n`;\nexport const updatePendingCompany = /* GraphQL */ `\n mutation UpdatePendingCompany($input: UpdatePendingCompanyInput!) {\n updatePendingCompany(input: $input) {\n id\n name\n contactname\n emailaddress\n subdomain\n publishableStripeKey\n subscriptionLevel\n estimatedNumOfProviders\n status\n PaymentSettings\n createdAt\n updatedAt\n }\n }\n`;\nexport const deletePendingCompany = /* GraphQL */ `\n mutation DeletePendingCompany($input: DeletePendingCompanyInput!) {\n deletePendingCompany(input: $input) {\n id\n name\n contactname\n emailaddress\n subdomain\n publishableStripeKey\n subscriptionLevel\n estimatedNumOfProviders\n status\n PaymentSettings\n createdAt\n updatedAt\n }\n }\n`;\nexport const createProvider = /* GraphQL */ `\n mutation CreateProvider($input: CreateProviderInput!) {\n createProvider(input: $input) {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n items {\n id\n providerId\n companyId\n locationpath\n name\n desc\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n maxtraveltype\n traveldistance\n traveldistanceunit\n travelregions\n active\n deleted\n createdAt\n updatedAt\n }\n nextToken\n }\n servicetypes {\n items {\n id\n createdAt\n updatedAt\n }\n nextToken\n }\n skills {\n items {\n id\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\nexport const updateProvider = /* GraphQL */ `\n mutation UpdateProvider($input: UpdateProviderInput!) {\n updateProvider(input: $input) {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n items {\n id\n providerId\n companyId\n locationpath\n name\n desc\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n maxtraveltype\n traveldistance\n traveldistanceunit\n travelregions\n active\n deleted\n createdAt\n updatedAt\n }\n nextToken\n }\n servicetypes {\n items {\n id\n createdAt\n updatedAt\n }\n nextToken\n }\n skills {\n items {\n id\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\nexport const deleteProvider = /* GraphQL */ `\n mutation DeleteProvider($input: DeleteProviderInput!) {\n deleteProvider(input: $input) {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n items {\n id\n providerId\n companyId\n locationpath\n name\n desc\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n maxtraveltype\n traveldistance\n traveldistanceunit\n travelregions\n active\n deleted\n createdAt\n updatedAt\n }\n nextToken\n }\n servicetypes {\n items {\n id\n createdAt\n updatedAt\n }\n nextToken\n }\n skills {\n items {\n id\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\nexport const createProviderLocation = /* GraphQL */ `\n mutation CreateProviderLocation($input: CreateProviderLocationInput!) {\n createProviderLocation(input: $input) {\n id\n providerId\n companyId\n locationpath\n name\n desc\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n maxtraveltype\n traveldistance\n traveldistanceunit\n travelregions\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const updateProviderLocation = /* GraphQL */ `\n mutation UpdateProviderLocation($input: UpdateProviderLocationInput!) {\n updateProviderLocation(input: $input) {\n id\n providerId\n companyId\n locationpath\n name\n desc\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n maxtraveltype\n traveldistance\n traveldistanceunit\n travelregions\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const deleteProviderLocation = /* GraphQL */ `\n mutation DeleteProviderLocation($input: DeleteProviderLocationInput!) {\n deleteProviderLocation(input: $input) {\n id\n providerId\n companyId\n locationpath\n name\n desc\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n maxtraveltype\n traveldistance\n traveldistanceunit\n travelregions\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const createProviderPhotos = /* GraphQL */ `\n mutation CreateProviderPhotos($input: CreateProviderPhotosInput!) {\n createProviderPhotos(input: $input) {\n id\n providerId\n name\n desc\n s3key\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const updateProviderPhotos = /* GraphQL */ `\n mutation UpdateProviderPhotos($input: UpdateProviderPhotosInput!) {\n updateProviderPhotos(input: $input) {\n id\n providerId\n name\n desc\n s3key\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const deleteProviderPhotos = /* GraphQL */ `\n mutation DeleteProviderPhotos($input: DeleteProviderPhotosInput!) {\n deleteProviderPhotos(input: $input) {\n id\n providerId\n name\n desc\n s3key\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const createProviderRatings = /* GraphQL */ `\n mutation CreateProviderRatings($input: CreateProviderRatingsInput!) {\n createProviderRatings(input: $input) {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const updateProviderRatings = /* GraphQL */ `\n mutation UpdateProviderRatings($input: UpdateProviderRatingsInput!) {\n updateProviderRatings(input: $input) {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const deleteProviderRatings = /* GraphQL */ `\n mutation DeleteProviderRatings($input: DeleteProviderRatingsInput!) {\n deleteProviderRatings(input: $input) {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const createProviderServiceType = /* GraphQL */ `\n mutation CreateProviderServiceType($input: CreateProviderServiceTypeInput!) {\n createProviderServiceType(input: $input) {\n id\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n }\n }\n`;\nexport const updateProviderServiceType = /* GraphQL */ `\n mutation UpdateProviderServiceType($input: UpdateProviderServiceTypeInput!) {\n updateProviderServiceType(input: $input) {\n id\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n }\n }\n`;\nexport const deleteProviderServiceType = /* GraphQL */ `\n mutation DeleteProviderServiceType($input: DeleteProviderServiceTypeInput!) {\n deleteProviderServiceType(input: $input) {\n id\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n }\n }\n`;\nexport const createProviderSkill = /* GraphQL */ `\n mutation CreateProviderSkill($input: CreateProviderSkillInput!) {\n createProviderSkill(input: $input) {\n id\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n skill {\n id\n name\n importance\n companyId\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n }\n }\n }\n`;\nexport const updateProviderSkill = /* GraphQL */ `\n mutation UpdateProviderSkill($input: UpdateProviderSkillInput!) {\n updateProviderSkill(input: $input) {\n id\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n skill {\n id\n name\n importance\n companyId\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n }\n }\n }\n`;\nexport const deleteProviderSkill = /* GraphQL */ `\n mutation DeleteProviderSkill($input: DeleteProviderSkillInput!) {\n deleteProviderSkill(input: $input) {\n id\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n skill {\n id\n name\n importance\n companyId\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n }\n }\n }\n`;\nexport const createServiceType = /* GraphQL */ `\n mutation CreateServiceType($input: CreateServiceTypeInput!) {\n createServiceType(input: $input) {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n items {\n id\n createdAt\n updatedAt\n }\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n packages {\n items {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\nexport const updateServiceType = /* GraphQL */ `\n mutation UpdateServiceType($input: UpdateServiceTypeInput!) {\n updateServiceType(input: $input) {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n items {\n id\n createdAt\n updatedAt\n }\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n packages {\n items {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\nexport const deleteServiceType = /* GraphQL */ `\n mutation DeleteServiceType($input: DeleteServiceTypeInput!) {\n deleteServiceType(input: $input) {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n items {\n id\n createdAt\n updatedAt\n }\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n packages {\n items {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\nexport const createServiceTypeCategory = /* GraphQL */ `\n mutation CreateServiceTypeCategory($input: CreateServiceTypeCategoryInput!) {\n createServiceTypeCategory(input: $input) {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const updateServiceTypeCategory = /* GraphQL */ `\n mutation UpdateServiceTypeCategory($input: UpdateServiceTypeCategoryInput!) {\n updateServiceTypeCategory(input: $input) {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const deleteServiceTypeCategory = /* GraphQL */ `\n mutation DeleteServiceTypeCategory($input: DeleteServiceTypeCategoryInput!) {\n deleteServiceTypeCategory(input: $input) {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const createRegionalPricing = /* GraphQL */ `\n mutation CreateRegionalPricing($input: CreateRegionalPricingInput!) {\n createRegionalPricing(input: $input) {\n id\n servicetypeId\n pricingtype\n country\n countryName\n province\n postalcodes\n price\n notes\n companyId\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n }\n }\n`;\nexport const updateRegionalPricing = /* GraphQL */ `\n mutation UpdateRegionalPricing($input: UpdateRegionalPricingInput!) {\n updateRegionalPricing(input: $input) {\n id\n servicetypeId\n pricingtype\n country\n countryName\n province\n postalcodes\n price\n notes\n companyId\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n }\n }\n`;\nexport const deleteRegionalPricing = /* GraphQL */ `\n mutation DeleteRegionalPricing($input: DeleteRegionalPricingInput!) {\n deleteRegionalPricing(input: $input) {\n id\n servicetypeId\n pricingtype\n country\n countryName\n province\n postalcodes\n price\n notes\n companyId\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n }\n }\n`;\nexport const createClient = /* GraphQL */ `\n mutation CreateClient($input: CreateClientInput!) {\n createClient(input: $input) {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const updateClient = /* GraphQL */ `\n mutation UpdateClient($input: UpdateClientInput!) {\n updateClient(input: $input) {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const deleteClient = /* GraphQL */ `\n mutation DeleteClient($input: DeleteClientInput!) {\n deleteClient(input: $input) {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const createSkill = /* GraphQL */ `\n mutation CreateSkill($input: CreateSkillInput!) {\n createSkill(input: $input) {\n id\n name\n importance\n companyId\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n items {\n id\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\nexport const updateSkill = /* GraphQL */ `\n mutation UpdateSkill($input: UpdateSkillInput!) {\n updateSkill(input: $input) {\n id\n name\n importance\n companyId\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n items {\n id\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\nexport const deleteSkill = /* GraphQL */ `\n mutation DeleteSkill($input: DeleteSkillInput!) {\n deleteSkill(input: $input) {\n id\n name\n importance\n companyId\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n items {\n id\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\nexport const createPackage = /* GraphQL */ `\n mutation CreatePackage($input: CreatePackageInput!) {\n createPackage(input: $input) {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n }\n }\n`;\nexport const updatePackage = /* GraphQL */ `\n mutation UpdatePackage($input: UpdatePackageInput!) {\n updatePackage(input: $input) {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n }\n }\n`;\nexport const deletePackage = /* GraphQL */ `\n mutation DeletePackage($input: DeletePackageInput!) {\n deletePackage(input: $input) {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n }\n }\n`;\nexport const createClientPackage = /* GraphQL */ `\n mutation CreateClientPackage($input: CreateClientPackageInput!) {\n createClientPackage(input: $input) {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n package {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n }\n orders {\n items {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\nexport const updateClientPackage = /* GraphQL */ `\n mutation UpdateClientPackage($input: UpdateClientPackageInput!) {\n updateClientPackage(input: $input) {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n package {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n }\n orders {\n items {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\nexport const deleteClientPackage = /* GraphQL */ `\n mutation DeleteClientPackage($input: DeleteClientPackageInput!) {\n deleteClientPackage(input: $input) {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n package {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n }\n orders {\n items {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\nexport const createPromotion = /* GraphQL */ `\n mutation CreatePromotion($input: CreatePromotionInput!) {\n createPromotion(input: $input) {\n id\n name\n desc\n companyId\n amount\n promotiontype\n active\n deleted\n startdate\n enddate\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n package {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n }\n }\n }\n`;\nexport const updatePromotion = /* GraphQL */ `\n mutation UpdatePromotion($input: UpdatePromotionInput!) {\n updatePromotion(input: $input) {\n id\n name\n desc\n companyId\n amount\n promotiontype\n active\n deleted\n startdate\n enddate\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n package {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n }\n }\n }\n`;\nexport const deletePromotion = /* GraphQL */ `\n mutation DeletePromotion($input: DeletePromotionInput!) {\n deletePromotion(input: $input) {\n id\n name\n desc\n companyId\n amount\n promotiontype\n active\n deleted\n startdate\n enddate\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n package {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n }\n }\n }\n`;\nexport const createPromo = /* GraphQL */ `\n mutation CreatePromo($input: CreatePromoInput!) {\n createPromo(input: $input) {\n id\n recordType\n Details\n companyId\n promocode\n active\n terminated\n allPackages\n allServices\n discountType\n discountValue\n onePerClient\n startDate\n endDate\n name\n numOfRedemptions\n maxNumOfRedemptions\n hasExpiryDate\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const updatePromo = /* GraphQL */ `\n mutation UpdatePromo($input: UpdatePromoInput!) {\n updatePromo(input: $input) {\n id\n recordType\n Details\n companyId\n promocode\n active\n terminated\n allPackages\n allServices\n discountType\n discountValue\n onePerClient\n startDate\n endDate\n name\n numOfRedemptions\n maxNumOfRedemptions\n hasExpiryDate\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const deletePromo = /* GraphQL */ `\n mutation DeletePromo($input: DeletePromoInput!) {\n deletePromo(input: $input) {\n id\n recordType\n Details\n companyId\n promocode\n active\n terminated\n allPackages\n allServices\n discountType\n discountValue\n onePerClient\n startDate\n endDate\n name\n numOfRedemptions\n maxNumOfRedemptions\n hasExpiryDate\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const createBooking = /* GraphQL */ `\n mutation CreateBooking($input: CreateBookingInput!) {\n createBooking(input: $input) {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n cancelledBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n noshowBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n bookedBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n rating {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n }\n }\n`;\nexport const updateBooking = /* GraphQL */ `\n mutation UpdateBooking($input: UpdateBookingInput!) {\n updateBooking(input: $input) {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n cancelledBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n noshowBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n bookedBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n rating {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n }\n }\n`;\nexport const deleteBooking = /* GraphQL */ `\n mutation DeleteBooking($input: DeleteBookingInput!) {\n deleteBooking(input: $input) {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n cancelledBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n noshowBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n bookedBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n rating {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n }\n }\n`;\nexport const createBookingStatus = /* GraphQL */ `\n mutation CreateBookingStatus($input: CreateBookingStatusInput!) {\n createBookingStatus(input: $input) {\n companyId\n status\n bookingId\n createdAt\n updatedAt\n booking {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n cancelledBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n noshowBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n bookedBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n rating {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n }\n }\n`;\nexport const updateBookingStatus = /* GraphQL */ `\n mutation UpdateBookingStatus($input: UpdateBookingStatusInput!) {\n updateBookingStatus(input: $input) {\n companyId\n status\n bookingId\n createdAt\n updatedAt\n booking {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n cancelledBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n noshowBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n bookedBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n rating {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n }\n }\n`;\nexport const deleteBookingStatus = /* GraphQL */ `\n mutation DeleteBookingStatus($input: DeleteBookingStatusInput!) {\n deleteBookingStatus(input: $input) {\n companyId\n status\n bookingId\n createdAt\n updatedAt\n booking {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n cancelledBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n noshowBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n bookedBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n rating {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n }\n }\n`;\nexport const createOrder = /* GraphQL */ `\n mutation CreateOrder($input: CreateOrderInput!) {\n createOrder(input: $input) {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n package {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n }\n orders {\n nextToken\n }\n }\n bookings {\n items {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\nexport const updateOrder = /* GraphQL */ `\n mutation UpdateOrder($input: UpdateOrderInput!) {\n updateOrder(input: $input) {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n package {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n }\n orders {\n nextToken\n }\n }\n bookings {\n items {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\nexport const deleteOrder = /* GraphQL */ `\n mutation DeleteOrder($input: DeleteOrderInput!) {\n deleteOrder(input: $input) {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n package {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n }\n orders {\n nextToken\n }\n }\n bookings {\n items {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\nexport const createClientCharge = /* GraphQL */ `\n mutation CreateClientCharge($input: CreateClientChargeInput!) {\n createClientCharge(input: $input) {\n id\n clientId\n companyId\n orderId\n billingtransactionId\n description\n status\n stripechargeid\n stripepaymentmethod\n stripe_payment_method_details\n stripe_refund_charge\n stripe_status\n amount\n amount_refunded\n balance_transaction\n currency\n createdAt\n updatedAt\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n billingtransaction {\n id\n orderId\n addservicetypeid\n amount\n creatorId\n clientId\n companyId\n desc\n credit\n approved\n createdAt\n updatedAt\n creator {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n addservicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n }\n }\n`;\nexport const updateClientCharge = /* GraphQL */ `\n mutation UpdateClientCharge($input: UpdateClientChargeInput!) {\n updateClientCharge(input: $input) {\n id\n clientId\n companyId\n orderId\n billingtransactionId\n description\n status\n stripechargeid\n stripepaymentmethod\n stripe_payment_method_details\n stripe_refund_charge\n stripe_status\n amount\n amount_refunded\n balance_transaction\n currency\n createdAt\n updatedAt\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n billingtransaction {\n id\n orderId\n addservicetypeid\n amount\n creatorId\n clientId\n companyId\n desc\n credit\n approved\n createdAt\n updatedAt\n creator {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n addservicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n }\n }\n`;\nexport const deleteClientCharge = /* GraphQL */ `\n mutation DeleteClientCharge($input: DeleteClientChargeInput!) {\n deleteClientCharge(input: $input) {\n id\n clientId\n companyId\n orderId\n billingtransactionId\n description\n status\n stripechargeid\n stripepaymentmethod\n stripe_payment_method_details\n stripe_refund_charge\n stripe_status\n amount\n amount_refunded\n balance_transaction\n currency\n createdAt\n updatedAt\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n billingtransaction {\n id\n orderId\n addservicetypeid\n amount\n creatorId\n clientId\n companyId\n desc\n credit\n approved\n createdAt\n updatedAt\n creator {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n addservicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n }\n }\n`;\nexport const createBillingProgress = /* GraphQL */ `\n mutation CreateBillingProgress($input: CreateBillingProgressInput!) {\n createBillingProgress(input: $input) {\n companyId\n dateTime\n status\n data\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateBillingProgress = /* GraphQL */ `\n mutation UpdateBillingProgress($input: UpdateBillingProgressInput!) {\n updateBillingProgress(input: $input) {\n companyId\n dateTime\n status\n data\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteBillingProgress = /* GraphQL */ `\n mutation DeleteBillingProgress($input: DeleteBillingProgressInput!) {\n deleteBillingProgress(input: $input) {\n companyId\n dateTime\n status\n data\n createdAt\n updatedAt\n }\n }\n`;\nexport const createCompanyLocation = /* GraphQL */ `\n mutation CreateCompanyLocation($input: CreateCompanyLocationInput!) {\n createCompanyLocation(input: $input) {\n id\n companyId\n locationname\n locationdesc\n locationpath\n addressoneline\n street\n city\n state\n country\n countrycode3166alpha2\n postalcode\n longitude\n latitude\n timezone\n phone\n virtual\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const updateCompanyLocation = /* GraphQL */ `\n mutation UpdateCompanyLocation($input: UpdateCompanyLocationInput!) {\n updateCompanyLocation(input: $input) {\n id\n companyId\n locationname\n locationdesc\n locationpath\n addressoneline\n street\n city\n state\n country\n countrycode3166alpha2\n postalcode\n longitude\n latitude\n timezone\n phone\n virtual\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const deleteCompanyLocation = /* GraphQL */ `\n mutation DeleteCompanyLocation($input: DeleteCompanyLocationInput!) {\n deleteCompanyLocation(input: $input) {\n id\n companyId\n locationname\n locationdesc\n locationpath\n addressoneline\n street\n city\n state\n country\n countrycode3166alpha2\n postalcode\n longitude\n latitude\n timezone\n phone\n virtual\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const createCompanyReminder = /* GraphQL */ `\n mutation CreateCompanyReminder($input: CreateCompanyReminderInput!) {\n createCompanyReminder(input: $input) {\n id\n companyId\n reminderType\n reminderDays\n reminderHours\n reminderMinutes\n recipientType\n emailSubjectText\n emailHTMLFile\n smsText\n smsCallerId\n maxSendTime\n priority\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const updateCompanyReminder = /* GraphQL */ `\n mutation UpdateCompanyReminder($input: UpdateCompanyReminderInput!) {\n updateCompanyReminder(input: $input) {\n id\n companyId\n reminderType\n reminderDays\n reminderHours\n reminderMinutes\n recipientType\n emailSubjectText\n emailHTMLFile\n smsText\n smsCallerId\n maxSendTime\n priority\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const deleteCompanyReminder = /* GraphQL */ `\n mutation DeleteCompanyReminder($input: DeleteCompanyReminderInput!) {\n deleteCompanyReminder(input: $input) {\n id\n companyId\n reminderType\n reminderDays\n reminderHours\n reminderMinutes\n recipientType\n emailSubjectText\n emailHTMLFile\n smsText\n smsCallerId\n maxSendTime\n priority\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const createReminder = /* GraphQL */ `\n mutation CreateReminder($input: CreateReminderInput!) {\n createReminder(input: $input) {\n id\n remSendDateTimeUTC\n remSendDate\n companyId\n reminderType\n recipientType\n sendDateTime\n status\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n booking {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n cancelledBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n noshowBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n bookedBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n rating {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n }\n }\n`;\nexport const updateReminder = /* GraphQL */ `\n mutation UpdateReminder($input: UpdateReminderInput!) {\n updateReminder(input: $input) {\n id\n remSendDateTimeUTC\n remSendDate\n companyId\n reminderType\n recipientType\n sendDateTime\n status\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n booking {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n cancelledBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n noshowBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n bookedBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n rating {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n }\n }\n`;\nexport const deleteReminder = /* GraphQL */ `\n mutation DeleteReminder($input: DeleteReminderInput!) {\n deleteReminder(input: $input) {\n id\n remSendDateTimeUTC\n remSendDate\n companyId\n reminderType\n recipientType\n sendDateTime\n status\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n booking {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n cancelledBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n noshowBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n bookedBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n rating {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n }\n }\n`;\nexport const createScheduleTimeblock = /* GraphQL */ `\n mutation CreateScheduleTimeblock($input: CreateScheduleTimeblockInput!) {\n createScheduleTimeblock(input: $input) {\n id\n scheduleinfo\n companyId\n providerId\n locationId\n servicetypeId\n active\n internal\n slotStartStep\n instructions\n postBookingInstructions\n startDate\n sdtutc\n tz\n endDate\n startTime\n endTime\n type\n status\n weeksToRepeat\n weekDays\n deleted\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const updateScheduleTimeblock = /* GraphQL */ `\n mutation UpdateScheduleTimeblock($input: UpdateScheduleTimeblockInput!) {\n updateScheduleTimeblock(input: $input) {\n id\n scheduleinfo\n companyId\n providerId\n locationId\n servicetypeId\n active\n internal\n slotStartStep\n instructions\n postBookingInstructions\n startDate\n sdtutc\n tz\n endDate\n startTime\n endTime\n type\n status\n weeksToRepeat\n weekDays\n deleted\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const deleteScheduleTimeblock = /* GraphQL */ `\n mutation DeleteScheduleTimeblock($input: DeleteScheduleTimeblockInput!) {\n deleteScheduleTimeblock(input: $input) {\n id\n scheduleinfo\n companyId\n providerId\n locationId\n servicetypeId\n active\n internal\n slotStartStep\n instructions\n postBookingInstructions\n startDate\n sdtutc\n tz\n endDate\n startTime\n endTime\n type\n status\n weeksToRepeat\n weekDays\n deleted\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const createProviderSchedule = /* GraphQL */ `\n mutation CreateProviderSchedule($input: CreateProviderScheduleInput!) {\n createProviderSchedule(input: $input) {\n id\n scheduleinfo\n companyId\n providerId\n locations\n services\n active\n startDate\n sdtutc\n tz\n endDate\n startTime\n endTime\n type\n status\n weeksToRepeat\n weekDays\n deleted\n rrule\n latitude\n longitude\n notes\n MetaData\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const updateProviderSchedule = /* GraphQL */ `\n mutation UpdateProviderSchedule($input: UpdateProviderScheduleInput!) {\n updateProviderSchedule(input: $input) {\n id\n scheduleinfo\n companyId\n providerId\n locations\n services\n active\n startDate\n sdtutc\n tz\n endDate\n startTime\n endTime\n type\n status\n weeksToRepeat\n weekDays\n deleted\n rrule\n latitude\n longitude\n notes\n MetaData\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const deleteProviderSchedule = /* GraphQL */ `\n mutation DeleteProviderSchedule($input: DeleteProviderScheduleInput!) {\n deleteProviderSchedule(input: $input) {\n id\n scheduleinfo\n companyId\n providerId\n locations\n services\n active\n startDate\n sdtutc\n tz\n endDate\n startTime\n endTime\n type\n status\n weeksToRepeat\n weekDays\n deleted\n rrule\n latitude\n longitude\n notes\n MetaData\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const createUISession = /* GraphQL */ `\n mutation CreateUISession($input: CreateUISessionInput!) {\n createUISession(input: $input) {\n id\n sessionItem\n SessionItemData\n companyId\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateUISession = /* GraphQL */ `\n mutation UpdateUISession($input: UpdateUISessionInput!) {\n updateUISession(input: $input) {\n id\n sessionItem\n SessionItemData\n companyId\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteUISession = /* GraphQL */ `\n mutation DeleteUISession($input: DeleteUISessionInput!) {\n deleteUISession(input: $input) {\n id\n sessionItem\n SessionItemData\n companyId\n createdAt\n updatedAt\n }\n }\n`;\nexport const createScheduleAvailability = /* GraphQL */ `\n mutation CreateScheduleAvailability(\n $input: CreateScheduleAvailabilityInput!\n ) {\n createScheduleAvailability(input: $input) {\n schId\n statsKey\n availJson\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateScheduleAvailability = /* GraphQL */ `\n mutation UpdateScheduleAvailability(\n $input: UpdateScheduleAvailabilityInput!\n ) {\n updateScheduleAvailability(input: $input) {\n schId\n statsKey\n availJson\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteScheduleAvailability = /* GraphQL */ `\n mutation DeleteScheduleAvailability(\n $input: DeleteScheduleAvailabilityInput!\n ) {\n deleteScheduleAvailability(input: $input) {\n schId\n statsKey\n availJson\n createdAt\n updatedAt\n }\n }\n`;\nexport const createAdditionalCharge = /* GraphQL */ `\n mutation CreateAdditionalCharge($input: CreateAdditionalChargeInput!) {\n createAdditionalCharge(input: $input) {\n id\n amount\n desc\n note\n bookingId\n orderId\n companyId\n clientId\n creatorId\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n creator {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n }\n }\n`;\nexport const updateAdditionalCharge = /* GraphQL */ `\n mutation UpdateAdditionalCharge($input: UpdateAdditionalChargeInput!) {\n updateAdditionalCharge(input: $input) {\n id\n amount\n desc\n note\n bookingId\n orderId\n companyId\n clientId\n creatorId\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n creator {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n }\n }\n`;\nexport const deleteAdditionalCharge = /* GraphQL */ `\n mutation DeleteAdditionalCharge($input: DeleteAdditionalChargeInput!) {\n deleteAdditionalCharge(input: $input) {\n id\n amount\n desc\n note\n bookingId\n orderId\n companyId\n clientId\n creatorId\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n creator {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n }\n }\n`;\nexport const createRepeatApptCharge = /* GraphQL */ `\n mutation CreateRepeatApptCharge($input: CreateRepeatApptChargeInput!) {\n createRepeatApptCharge(input: $input) {\n orderId\n bookingId\n companyId\n subtotal\n servicechargeamt\n taxamt\n total\n taxrate\n status\n chargeSummary\n chargeReceipt\n createdAt\n updatedAt\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n }\n }\n`;\nexport const updateRepeatApptCharge = /* GraphQL */ `\n mutation UpdateRepeatApptCharge($input: UpdateRepeatApptChargeInput!) {\n updateRepeatApptCharge(input: $input) {\n orderId\n bookingId\n companyId\n subtotal\n servicechargeamt\n taxamt\n total\n taxrate\n status\n chargeSummary\n chargeReceipt\n createdAt\n updatedAt\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n }\n }\n`;\nexport const deleteRepeatApptCharge = /* GraphQL */ `\n mutation DeleteRepeatApptCharge($input: DeleteRepeatApptChargeInput!) {\n deleteRepeatApptCharge(input: $input) {\n orderId\n bookingId\n companyId\n subtotal\n servicechargeamt\n taxamt\n total\n taxrate\n status\n chargeSummary\n chargeReceipt\n createdAt\n updatedAt\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n }\n }\n`;\nexport const createBillingTransaction = /* GraphQL */ `\n mutation CreateBillingTransaction($input: CreateBillingTransactionInput!) {\n createBillingTransaction(input: $input) {\n id\n orderId\n addservicetypeid\n amount\n creatorId\n clientId\n companyId\n desc\n credit\n approved\n createdAt\n updatedAt\n creator {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n addservicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n }\n }\n`;\nexport const updateBillingTransaction = /* GraphQL */ `\n mutation UpdateBillingTransaction($input: UpdateBillingTransactionInput!) {\n updateBillingTransaction(input: $input) {\n id\n orderId\n addservicetypeid\n amount\n creatorId\n clientId\n companyId\n desc\n credit\n approved\n createdAt\n updatedAt\n creator {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n addservicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n }\n }\n`;\nexport const deleteBillingTransaction = /* GraphQL */ `\n mutation DeleteBillingTransaction($input: DeleteBillingTransactionInput!) {\n deleteBillingTransaction(input: $input) {\n id\n orderId\n addservicetypeid\n amount\n creatorId\n clientId\n companyId\n desc\n credit\n approved\n createdAt\n updatedAt\n creator {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n addservicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n }\n }\n`;\nexport const createTaxRates = /* GraphQL */ `\n mutation CreateTaxRates($input: CreateTaxRatesInput!) {\n createTaxRates(input: $input) {\n id\n countrycode\n provstatecode\n rate\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateTaxRates = /* GraphQL */ `\n mutation UpdateTaxRates($input: UpdateTaxRatesInput!) {\n updateTaxRates(input: $input) {\n id\n countrycode\n provstatecode\n rate\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteTaxRates = /* GraphQL */ `\n mutation DeleteTaxRates($input: DeleteTaxRatesInput!) {\n deleteTaxRates(input: $input) {\n id\n countrycode\n provstatecode\n rate\n createdAt\n updatedAt\n }\n }\n`;\nexport const createRepeatApptCreation = /* GraphQL */ `\n mutation CreateRepeatApptCreation($input: CreateRepeatApptCreationInput!) {\n createRepeatApptCreation(input: $input) {\n id\n datakey\n repeatCount\n repeatUnit\n numOfApptsCreated\n active\n processedStatus\n currentEndDate\n originalStartDate\n originalEndDate\n extented\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateRepeatApptCreation = /* GraphQL */ `\n mutation UpdateRepeatApptCreation($input: UpdateRepeatApptCreationInput!) {\n updateRepeatApptCreation(input: $input) {\n id\n datakey\n repeatCount\n repeatUnit\n numOfApptsCreated\n active\n processedStatus\n currentEndDate\n originalStartDate\n originalEndDate\n extented\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteRepeatApptCreation = /* GraphQL */ `\n mutation DeleteRepeatApptCreation($input: DeleteRepeatApptCreationInput!) {\n deleteRepeatApptCreation(input: $input) {\n id\n datakey\n repeatCount\n repeatUnit\n numOfApptsCreated\n active\n processedStatus\n currentEndDate\n originalStartDate\n originalEndDate\n extented\n createdAt\n updatedAt\n }\n }\n`;\nexport const createEnvt = /* GraphQL */ `\n mutation CreateEnvt($input: CreateEnvtInput!) {\n createEnvt(input: $input) {\n id\n name\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateEnvt = /* GraphQL */ `\n mutation UpdateEnvt($input: UpdateEnvtInput!) {\n updateEnvt(input: $input) {\n id\n name\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteEnvt = /* GraphQL */ `\n mutation DeleteEnvt($input: DeleteEnvtInput!) {\n deleteEnvt(input: $input) {\n id\n name\n createdAt\n updatedAt\n }\n }\n`;\nexport const createBookingRequest = /* GraphQL */ `\n mutation CreateBookingRequest($input: CreateBookingRequestInput!) {\n createBookingRequest(input: $input) {\n id\n recordType\n data\n providerId\n accepted\n acceptedBy\n status\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateBookingRequest = /* GraphQL */ `\n mutation UpdateBookingRequest($input: UpdateBookingRequestInput!) {\n updateBookingRequest(input: $input) {\n id\n recordType\n data\n providerId\n accepted\n acceptedBy\n status\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteBookingRequest = /* GraphQL */ `\n mutation DeleteBookingRequest($input: DeleteBookingRequestInput!) {\n deleteBookingRequest(input: $input) {\n id\n recordType\n data\n providerId\n accepted\n acceptedBy\n status\n createdAt\n updatedAt\n }\n }\n`;\nexport const createRequestMessages = /* GraphQL */ `\n mutation CreateRequestMessages($input: CreateRequestMessagesInput!) {\n createRequestMessages(input: $input) {\n id\n recordType\n bookingRequestId\n providerId\n data\n msg\n seqNum\n status\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateRequestMessages = /* GraphQL */ `\n mutation UpdateRequestMessages($input: UpdateRequestMessagesInput!) {\n updateRequestMessages(input: $input) {\n id\n recordType\n bookingRequestId\n providerId\n data\n msg\n seqNum\n status\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteRequestMessages = /* GraphQL */ `\n mutation DeleteRequestMessages($input: DeleteRequestMessagesInput!) {\n deleteRequestMessages(input: $input) {\n id\n recordType\n bookingRequestId\n providerId\n data\n msg\n seqNum\n status\n createdAt\n updatedAt\n }\n }\n`;\nexport const createSystemErrorLog = /* GraphQL */ `\n mutation CreateSystemErrorLog($input: CreateSystemErrorLogInput!) {\n createSystemErrorLog(input: $input) {\n companyId\n createdAt\n severity\n source\n line\n error\n updatedAt\n }\n }\n`;\nexport const updateSystemErrorLog = /* GraphQL */ `\n mutation UpdateSystemErrorLog($input: UpdateSystemErrorLogInput!) {\n updateSystemErrorLog(input: $input) {\n companyId\n createdAt\n severity\n source\n line\n error\n updatedAt\n }\n }\n`;\nexport const deleteSystemErrorLog = /* GraphQL */ `\n mutation DeleteSystemErrorLog($input: DeleteSystemErrorLogInput!) {\n deleteSystemErrorLog(input: $input) {\n companyId\n createdAt\n severity\n source\n line\n error\n updatedAt\n }\n }\n`;\nexport const createPublicAccessToken = /* GraphQL */ `\n mutation CreatePublicAccessToken($input: CreatePublicAccessTokenInput!) {\n createPublicAccessToken(input: $input) {\n id\n role\n expiryDate\n createdAt\n updatedAt\n }\n }\n`;\nexport const updatePublicAccessToken = /* GraphQL */ `\n mutation UpdatePublicAccessToken($input: UpdatePublicAccessTokenInput!) {\n updatePublicAccessToken(input: $input) {\n id\n role\n expiryDate\n createdAt\n updatedAt\n }\n }\n`;\nexport const deletePublicAccessToken = /* GraphQL */ `\n mutation DeletePublicAccessToken($input: DeletePublicAccessTokenInput!) {\n deletePublicAccessToken(input: $input) {\n id\n role\n expiryDate\n createdAt\n updatedAt\n }\n }\n`;\nexport const createRefData = /* GraphQL */ `\n mutation CreateRefData($input: CreateRefDataInput!) {\n createRefData(input: $input) {\n refType\n refName\n refValue\n refInt\n overrideValue\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateRefData = /* GraphQL */ `\n mutation UpdateRefData($input: UpdateRefDataInput!) {\n updateRefData(input: $input) {\n refType\n refName\n refValue\n refInt\n overrideValue\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteRefData = /* GraphQL */ `\n mutation DeleteRefData($input: DeleteRefDataInput!) {\n deleteRefData(input: $input) {\n refType\n refName\n refValue\n refInt\n overrideValue\n createdAt\n updatedAt\n }\n }\n`;\nexport const createStatistic = /* GraphQL */ `\n mutation CreateStatistic($input: CreateStatisticInput!) {\n createStatistic(input: $input) {\n id\n dataPoint\n amount\n count\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateStatistic = /* GraphQL */ `\n mutation UpdateStatistic($input: UpdateStatisticInput!) {\n updateStatistic(input: $input) {\n id\n dataPoint\n amount\n count\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteStatistic = /* GraphQL */ `\n mutation DeleteStatistic($input: DeleteStatisticInput!) {\n deleteStatistic(input: $input) {\n id\n dataPoint\n amount\n count\n createdAt\n updatedAt\n }\n }\n`;\nexport const createProspect = /* GraphQL */ `\n mutation CreateProspect($input: CreateProspectInput!) {\n createProspect(input: $input) {\n companyId\n prospectId\n emailaddress\n firstname\n lastname\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n pageUrl\n message\n SearchParamsInfo\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateProspect = /* GraphQL */ `\n mutation UpdateProspect($input: UpdateProspectInput!) {\n updateProspect(input: $input) {\n companyId\n prospectId\n emailaddress\n firstname\n lastname\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n pageUrl\n message\n SearchParamsInfo\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteProspect = /* GraphQL */ `\n mutation DeleteProspect($input: DeleteProspectInput!) {\n deleteProspect(input: $input) {\n companyId\n prospectId\n emailaddress\n firstname\n lastname\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n pageUrl\n message\n SearchParamsInfo\n createdAt\n updatedAt\n }\n }\n`;\nexport const createManualBooking = /* GraphQL */ `\n mutation CreateManualBooking($input: CreateManualBookingInput!) {\n createManualBooking(input: $input) {\n companyId\n recordId\n emailaddress\n firstname\n lastname\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n message\n MetadataInfo\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateManualBooking = /* GraphQL */ `\n mutation UpdateManualBooking($input: UpdateManualBookingInput!) {\n updateManualBooking(input: $input) {\n companyId\n recordId\n emailaddress\n firstname\n lastname\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n message\n MetadataInfo\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteManualBooking = /* GraphQL */ `\n mutation DeleteManualBooking($input: DeleteManualBookingInput!) {\n deleteManualBooking(input: $input) {\n companyId\n recordId\n emailaddress\n firstname\n lastname\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n message\n MetadataInfo\n createdAt\n updatedAt\n }\n }\n`;\nexport const createAudit = /* GraphQL */ `\n mutation CreateAudit($input: CreateAuditInput!) {\n createAudit(input: $input) {\n companyIdUserId\n datetime\n compResId\n resType\n companyId\n userFN\n userLN\n userEmail\n userRole\n userAction\n data\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateAudit = /* GraphQL */ `\n mutation UpdateAudit($input: UpdateAuditInput!) {\n updateAudit(input: $input) {\n companyIdUserId\n datetime\n compResId\n resType\n companyId\n userFN\n userLN\n userEmail\n userRole\n userAction\n data\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteAudit = /* GraphQL */ `\n mutation DeleteAudit($input: DeleteAuditInput!) {\n deleteAudit(input: $input) {\n companyIdUserId\n datetime\n compResId\n resType\n companyId\n userFN\n userLN\n userEmail\n userRole\n userAction\n data\n createdAt\n updatedAt\n }\n }\n`;\nexport const createIntegrationToken = /* GraphQL */ `\n mutation CreateIntegrationToken($input: CreateIntegrationTokenInput!) {\n createIntegrationToken(input: $input) {\n companyIdProviderId\n serviceName\n TokenInfo\n companyId\n createdAt\n updatedAt\n }\n }\n`;\nexport const updateIntegrationToken = /* GraphQL */ `\n mutation UpdateIntegrationToken($input: UpdateIntegrationTokenInput!) {\n updateIntegrationToken(input: $input) {\n companyIdProviderId\n serviceName\n TokenInfo\n companyId\n createdAt\n updatedAt\n }\n }\n`;\nexport const deleteIntegrationToken = /* GraphQL */ `\n mutation DeleteIntegrationToken($input: DeleteIntegrationTokenInput!) {\n deleteIntegrationToken(input: $input) {\n companyIdProviderId\n serviceName\n TokenInfo\n companyId\n createdAt\n updatedAt\n }\n }\n`;\n","// custom listBookingsQuery\n// needed to add second level of nesting for user.lastname, user.firstname\nexport const listBookingsQuery = /* GraphQL */ `\n query ListBookings(\n $filter: ModelBookingFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listBookings(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n desc\n order {\n id\n desc\n orderNo\n companyId\n clientId\n providerId\n amount\n status\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n }\n provider {\n id\n firstname\n lastname\n emailaddress\n }\n providerId\n client {\n id\n userId\n user {\n firstname\n lastname\n }\n }\n clientId\n startdate\n minutes\n company {\n id\n name\n emailaddress\n }\n companyId\n status\n timeblockid\n cancelledAt\n cancelledBy {\n id\n username\n emailaddress\n }\n noshowAt\n noshowBy {\n id\n username\n emailaddress\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\n\nexport const servicesOfCompany = /* GraphQL */ `\n query ServiceTypeByCompany(\n $companyId: String\n $categoryNameName: ModelServiceTypeByCompanySortedByCategoryNameNameCompositeKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelServiceTypeFilterInput\n $limit: Int\n $nextToken: String\n ) {\n serviceTypeByCompany(\n companyId: $companyId\n categoryNameName: $categoryNameName\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n name\n desc\n categoryId\n categoryName\n category {\n id\n name\n ordinal\n }\n locations\n minutes\n price\n active\n isVisible\n taxexempt\n TaxOverride\n ordinal\n deleted\n companyId\n behavior\n }\n nextToken\n }\n }\n`;\n\nexport const skillByCompany = /* GraphQL */ `\n query SkillByCompany(\n $companyId: String\n $name: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelSkillFilterInput\n $limit: Int\n $nextToken: String\n ) {\n skillByCompany(\n companyId: $companyId\n name: $name\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n name\n importance\n companyId\n active\n deleted\n }\n nextToken\n }\n }\n`;\n\nexport const bundledServicesByCompany = /* GraphQL */ `\n query BundledServicesByCompany(\n $companyId: String\n $includedServices: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelServiceTypeFilterInput\n $limit: Int\n $nextToken: String\n ) {\n bundledServicesByCompany(\n companyId: $companyId\n includedServices: $includedServices\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n name\n desc\n categoryId\n categoryName\n category {\n id\n name\n }\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n TaxOverride\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const regionalPricingByCompanyServiceType = /* GraphQL */ `\n query RegionalPricingByCompanyServiceType(\n $companyId: String\n $servicetypeId: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelRegionalPricingFilterInput\n $limit: Int\n $nextToken: String\n ) {\n regionalPricingByCompanyServiceType(\n companyId: $companyId\n servicetypeId: $servicetypeId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n servicetypeId\n pricingtype\n country\n countryName\n province\n postalcodes\n price\n notes\n companyId\n active\n deleted\n createdAt\n updatedAt\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n }\n }\n nextToken\n }\n }\n`;\n\nexport const packageByCompany = /* GraphQL */ `\n query PackageByCompany(\n $companyId: String\n $servicetypeIdCreatedAt: ModelPackageByCompanyCompositeKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelPackageFilterInput\n $limit: Int\n $nextToken: String\n ) {\n packageByCompany(\n companyId: $companyId\n servicetypeIdCreatedAt: $servicetypeIdCreatedAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\n","const BROWSER_TZ = Intl.DateTimeFormat().resolvedOptions().timeZone;\nconst initialState = {\n bookingState: {\n company: {},\n companyId: \"\",\n serviceType: \"\",\n provider: \"\",\n address: \"\",\n location: \"\",\n },\n BROWSER_TZ,\n};\n\nconst types = {\n SET_BOOKING_STATE: \"SET_BOOKING_STATE\",\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case types.SET_BOOKING_STATE:\n return {\n ...state,\n bookingState: action.payload,\n };\n default:\n throw new Error(\"Unexpected action\");\n }\n};\nexport { initialState, types, reducer };\n","import React, { createContext, useReducer, useEffect, useContext } from \"react\";\nimport { initialState, reducer } from \"./reducers\";\nimport { useActions } from \"./actions\";\n\nconst StoreContext = createContext(initialState);\nconst StoreProvider = ({ children }) => {\n // Get state and dispatch from Reacts new API useReducer.\n const [state, dispatch] = useReducer(reducer, initialState);\n // Get actions from useActions and pass it to Context\n const actions = useActions(state, dispatch);\n\n // Log new state\n useEffect(() => {\n console.log(\"******Store Context State*****\");\n console.log({ newState: state });\n }, [state]);\n\n // Render state, dispatch and special case actions\n return (\n <StoreContext.Provider value={{ state, dispatch, actions }}>\n {children}\n </StoreContext.Provider>\n );\n};\n\nexport function useBookingState() {\n const { state } = useContext(StoreContext);\n return state;\n}\nexport { StoreContext, StoreProvider };\n","import { types } from \"./reducers\";\n\nexport const useActions = (state, dispatch) => {\n // this stores the booking state selected in the booking flow\n function setBookingState(bookingState) {\n dispatch({ type: types.SET_BOOKING_STATE, payload: bookingState });\n let stringifyBookingState = JSON.stringify(bookingState);\n console.log(\"****Booking State Context****\");\n console.log(JSON.parse(stringifyBookingState));\n //console.log(\"bookingState = \" + JSON.stringify(bookingState));\n }\n\n return {\n setBookingState,\n };\n};\n","// *******************************************************\n// Service module to handle error logging functionality //\n// *******************************************************\n\nimport { Logger } from \"@aws-amplify/core\";\nimport API, { graphqlOperation } from \"@aws-amplify/api\";\nimport { createSystemErrorLog } from \"../graphql/mutations\";\nimport moment from \"moment\";\n\nconst logger = new Logger(\"SystemError\");\n\nconst getCurrentDate = () => {\n return moment.utc().format(\"YYYY-MM-DDTHH:mm:ss.SSS[Z]\");\n};\n\nasync function logSystemError(companyId, severity, source, line, error) {\n const input = {\n companyId,\n severity,\n source,\n // error.lineNumber this does not work\n line: error.stack,\n //stack: error.stack,\n error: error.message,\n createdAt: getCurrentDate(),\n };\n\n const result = await API.graphql(\n graphqlOperation(createSystemErrorLog, { input })\n );\n\n // logger.debug(\"In logSystemError, result = \" + JSON.stringify(result));\n}\n\nexport { logSystemError };\n","/* eslint-disable */\n// this is an auto generated file. This will be overwritten\n\nexport const getUserRegistration = /* GraphQL */ `\n query GetUserRegistration($id: ID!) {\n getUserRegistration(id: $id) {\n id\n emailaddress\n registrationInfo\n createdAt\n updatedAt\n }\n }\n`;\nexport const listUserRegistrations = /* GraphQL */ `\n query ListUserRegistrations(\n $filter: ModelUserRegistrationFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listUserRegistrations(\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n emailaddress\n registrationInfo\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getCompanyPublicSite = /* GraphQL */ `\n query GetCompanyPublicSite($id: ID!) {\n getCompanyPublicSite(id: $id) {\n id\n companyId\n backgroundImageUrl\n heading1Text\n heading2Text\n textColor\n buttonColor\n StyleCustomization\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const listCompanyPublicSites = /* GraphQL */ `\n query ListCompanyPublicSites(\n $filter: ModelCompanyPublicSiteFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listCompanyPublicSites(\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n companyId\n backgroundImageUrl\n heading1Text\n heading2Text\n textColor\n buttonColor\n StyleCustomization\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const publicsiteByCompany = /* GraphQL */ `\n query PublicsiteByCompany(\n $companyId: String\n $sortDirection: ModelSortDirection\n $filter: ModelCompanyPublicSiteFilterInput\n $limit: Int\n $nextToken: String\n ) {\n publicsiteByCompany(\n companyId: $companyId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n companyId\n backgroundImageUrl\n heading1Text\n heading2Text\n textColor\n buttonColor\n StyleCustomization\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const getUser = /* GraphQL */ `\n query GetUser($id: ID!) {\n getUser(id: $id) {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const listUsers = /* GraphQL */ `\n query ListUsers(\n $filter: ModelUserFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listUsers(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const userByCompany = /* GraphQL */ `\n query UserByCompany(\n $companyId: String\n $roleEmailaddress: ModelUserByCompanyCompositeKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelUserFilterInput\n $limit: Int\n $nextToken: String\n ) {\n userByCompany(\n companyId: $companyId\n roleEmailaddress: $roleEmailaddress\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const searchByName = /* GraphQL */ `\n query SearchByName(\n $companyId: String\n $lc_name: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelUserFilterInput\n $limit: Int\n $nextToken: String\n ) {\n searchByName(\n companyId: $companyId\n lc_name: $lc_name\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const searchByLastName = /* GraphQL */ `\n query SearchByLastName(\n $companyId: String\n $lc_ln: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelUserFilterInput\n $limit: Int\n $nextToken: String\n ) {\n searchByLastName(\n companyId: $companyId\n lc_ln: $lc_ln\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const userByProviderId = /* GraphQL */ `\n query UserByProviderId(\n $companyId: String\n $providerId: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelUserFilterInput\n $limit: Int\n $nextToken: String\n ) {\n userByProviderId(\n companyId: $companyId\n providerId: $providerId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const searchUsers = /* GraphQL */ `\n query SearchUsers(\n $filter: SearchableUserFilterInput\n $sort: SearchableUserSortInput\n $limit: Int\n $nextToken: String\n $from: Int\n ) {\n searchUsers(\n filter: $filter\n sort: $sort\n limit: $limit\n nextToken: $nextToken\n from: $from\n ) {\n items {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n nextToken\n total\n }\n }\n`;\nexport const getUserRemoteAddress = /* GraphQL */ `\n query GetUserRemoteAddress($id: ID!) {\n getUserRemoteAddress(id: $id) {\n id\n userId\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n active\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n }\n }\n`;\nexport const listUserRemoteAddresss = /* GraphQL */ `\n query ListUserRemoteAddresss(\n $filter: ModelUserRemoteAddressFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listUserRemoteAddresss(\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n userId\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n active\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const getUserInvitation = /* GraphQL */ `\n query GetUserInvitation($id: ID!) {\n getUserInvitation(id: $id) {\n id\n emailaddress\n invitecode\n role\n active\n companyId\n createdAt\n updatedAt\n }\n }\n`;\nexport const listUserInvitations = /* GraphQL */ `\n query ListUserInvitations(\n $filter: ModelUserInvitationFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listUserInvitations(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n emailaddress\n invitecode\n role\n active\n companyId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const searchUserInvitations = /* GraphQL */ `\n query SearchUserInvitations(\n $filter: SearchableUserInvitationFilterInput\n $sort: SearchableUserInvitationSortInput\n $limit: Int\n $nextToken: String\n $from: Int\n ) {\n searchUserInvitations(\n filter: $filter\n sort: $sort\n limit: $limit\n nextToken: $nextToken\n from: $from\n ) {\n items {\n id\n emailaddress\n invitecode\n role\n active\n companyId\n createdAt\n updatedAt\n }\n nextToken\n total\n }\n }\n`;\nexport const getCompany = /* GraphQL */ `\n query GetCompany($id: ID!) {\n getCompany(id: $id) {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n`;\nexport const listCompanys = /* GraphQL */ `\n query ListCompanys(\n $filter: ModelCompanyFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listCompanys(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const companyBySubdomain = /* GraphQL */ `\n query CompanyBySubdomain(\n $subdomain: String\n $sortDirection: ModelSortDirection\n $filter: ModelCompanyFilterInput\n $limit: Int\n $nextToken: String\n ) {\n companyBySubdomain(\n subdomain: $subdomain\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const searchCompanys = /* GraphQL */ `\n query SearchCompanys(\n $filter: SearchableCompanyFilterInput\n $sort: SearchableCompanySortInput\n $limit: Int\n $nextToken: String\n $from: Int\n ) {\n searchCompanys(\n filter: $filter\n sort: $sort\n limit: $limit\n nextToken: $nextToken\n from: $from\n ) {\n items {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n nextToken\n total\n }\n }\n`;\nexport const getPendingCompany = /* GraphQL */ `\n query GetPendingCompany($id: ID!) {\n getPendingCompany(id: $id) {\n id\n name\n contactname\n emailaddress\n subdomain\n publishableStripeKey\n subscriptionLevel\n estimatedNumOfProviders\n status\n PaymentSettings\n createdAt\n updatedAt\n }\n }\n`;\nexport const listPendingCompanys = /* GraphQL */ `\n query ListPendingCompanys(\n $filter: ModelPendingCompanyFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listPendingCompanys(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n name\n contactname\n emailaddress\n subdomain\n publishableStripeKey\n subscriptionLevel\n estimatedNumOfProviders\n status\n PaymentSettings\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const companyByEmailAddress = /* GraphQL */ `\n query CompanyByEmailAddress(\n $emailaddress: AWSEmail\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelPendingCompanyFilterInput\n $limit: Int\n $nextToken: String\n ) {\n companyByEmailAddress(\n emailaddress: $emailaddress\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n name\n contactname\n emailaddress\n subdomain\n publishableStripeKey\n subscriptionLevel\n estimatedNumOfProviders\n status\n PaymentSettings\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getProvider = /* GraphQL */ `\n query GetProvider($id: ID!) {\n getProvider(id: $id) {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n items {\n id\n providerId\n companyId\n locationpath\n name\n desc\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n maxtraveltype\n traveldistance\n traveldistanceunit\n travelregions\n active\n deleted\n createdAt\n updatedAt\n }\n nextToken\n }\n servicetypes {\n items {\n id\n createdAt\n updatedAt\n }\n nextToken\n }\n skills {\n items {\n id\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\nexport const listProviders = /* GraphQL */ `\n query ListProviders(\n $filter: ModelProviderFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listProviders(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const providerByCompany = /* GraphQL */ `\n query ProviderByCompany(\n $companyId: String\n $firstnameLastnameCreatedAt: ModelProviderByCompanyCompositeKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelProviderFilterInput\n $limit: Int\n $nextToken: String\n ) {\n providerByCompany(\n companyId: $companyId\n firstnameLastnameCreatedAt: $firstnameLastnameCreatedAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const providerByPermalink = /* GraphQL */ `\n query ProviderByPermalink(\n $companyId: String\n $permalink: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelProviderFilterInput\n $limit: Int\n $nextToken: String\n ) {\n providerByPermalink(\n companyId: $companyId\n permalink: $permalink\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const searchByFirstName = /* GraphQL */ `\n query SearchByFirstName(\n $companyId: String\n $lc_fn: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelProviderFilterInput\n $limit: Int\n $nextToken: String\n ) {\n searchByFirstName(\n companyId: $companyId\n lc_fn: $lc_fn\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const searchProviderByLastName = /* GraphQL */ `\n query SearchProviderByLastName(\n $companyId: String\n $lc_ln: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelProviderFilterInput\n $limit: Int\n $nextToken: String\n ) {\n searchProviderByLastName(\n companyId: $companyId\n lc_ln: $lc_ln\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const searchProviders = /* GraphQL */ `\n query SearchProviders(\n $filter: SearchableProviderFilterInput\n $sort: SearchableProviderSortInput\n $limit: Int\n $nextToken: String\n $from: Int\n ) {\n searchProviders(\n filter: $filter\n sort: $sort\n limit: $limit\n nextToken: $nextToken\n from: $from\n ) {\n items {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n nextToken\n total\n }\n }\n`;\nexport const getProviderLocation = /* GraphQL */ `\n query GetProviderLocation($id: ID!) {\n getProviderLocation(id: $id) {\n id\n providerId\n companyId\n locationpath\n name\n desc\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n maxtraveltype\n traveldistance\n traveldistanceunit\n travelregions\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const listProviderLocations = /* GraphQL */ `\n query ListProviderLocations(\n $filter: ModelProviderLocationFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listProviderLocations(\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n providerId\n companyId\n locationpath\n name\n desc\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n maxtraveltype\n traveldistance\n traveldistanceunit\n travelregions\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const locationByProvider = /* GraphQL */ `\n query LocationByProvider(\n $providerId: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelProviderLocationFilterInput\n $limit: Int\n $nextToken: String\n ) {\n locationByProvider(\n providerId: $providerId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n providerId\n companyId\n locationpath\n name\n desc\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n maxtraveltype\n traveldistance\n traveldistanceunit\n travelregions\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const providerLocationPathByCompany = /* GraphQL */ `\n query ProviderLocationPathByCompany(\n $companyId: String\n $locationpath: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelProviderLocationFilterInput\n $limit: Int\n $nextToken: String\n ) {\n providerLocationPathByCompany(\n companyId: $companyId\n locationpath: $locationpath\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n providerId\n companyId\n locationpath\n name\n desc\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n maxtraveltype\n traveldistance\n traveldistanceunit\n travelregions\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const searchProviderLocations = /* GraphQL */ `\n query SearchProviderLocations(\n $filter: SearchableProviderLocationFilterInput\n $sort: SearchableProviderLocationSortInput\n $limit: Int\n $nextToken: String\n $from: Int\n ) {\n searchProviderLocations(\n filter: $filter\n sort: $sort\n limit: $limit\n nextToken: $nextToken\n from: $from\n ) {\n items {\n id\n providerId\n companyId\n locationpath\n name\n desc\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n maxtraveltype\n traveldistance\n traveldistanceunit\n travelregions\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n nextToken\n total\n }\n }\n`;\nexport const getProviderPhotos = /* GraphQL */ `\n query GetProviderPhotos($id: ID!) {\n getProviderPhotos(id: $id) {\n id\n providerId\n name\n desc\n s3key\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const listProviderPhotoss = /* GraphQL */ `\n query ListProviderPhotoss(\n $filter: ModelProviderPhotosFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listProviderPhotoss(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n providerId\n name\n desc\n s3key\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const providerPhotosByProvider = /* GraphQL */ `\n query ProviderPhotosByProvider(\n $providerId: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelProviderPhotosFilterInput\n $limit: Int\n $nextToken: String\n ) {\n providerPhotosByProvider(\n providerId: $providerId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n providerId\n name\n desc\n s3key\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const searchProviderPhotoss = /* GraphQL */ `\n query SearchProviderPhotoss(\n $filter: SearchableProviderPhotosFilterInput\n $sort: SearchableProviderPhotosSortInput\n $limit: Int\n $nextToken: String\n $from: Int\n ) {\n searchProviderPhotoss(\n filter: $filter\n sort: $sort\n limit: $limit\n nextToken: $nextToken\n from: $from\n ) {\n items {\n id\n providerId\n name\n desc\n s3key\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n nextToken\n total\n }\n }\n`;\nexport const getProviderRatings = /* GraphQL */ `\n query GetProviderRatings($id: ID!) {\n getProviderRatings(id: $id) {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const listProviderRatingss = /* GraphQL */ `\n query ListProviderRatingss(\n $filter: ModelProviderRatingsFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listProviderRatingss(\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const providerRatingsByProvider = /* GraphQL */ `\n query ProviderRatingsByProvider(\n $providerId: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelProviderRatingsFilterInput\n $limit: Int\n $nextToken: String\n ) {\n providerRatingsByProvider(\n providerId: $providerId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const providerRatingsByCompany = /* GraphQL */ `\n query ProviderRatingsByCompany(\n $companyId: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelProviderRatingsFilterInput\n $limit: Int\n $nextToken: String\n ) {\n providerRatingsByCompany(\n companyId: $companyId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const searchProviderRatingss = /* GraphQL */ `\n query SearchProviderRatingss(\n $filter: SearchableProviderRatingsFilterInput\n $sort: SearchableProviderRatingsSortInput\n $limit: Int\n $nextToken: String\n $from: Int\n ) {\n searchProviderRatingss(\n filter: $filter\n sort: $sort\n limit: $limit\n nextToken: $nextToken\n from: $from\n ) {\n items {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n nextToken\n total\n }\n }\n`;\nexport const getServiceType = /* GraphQL */ `\n query GetServiceType($id: ID!) {\n getServiceType(id: $id) {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n items {\n id\n createdAt\n updatedAt\n }\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n packages {\n items {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\nexport const listServiceTypes = /* GraphQL */ `\n query ListServiceTypes(\n $filter: ModelServiceTypeFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listServiceTypes(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const serviceTypeByCompany = /* GraphQL */ `\n query ServiceTypeByCompany(\n $companyId: String\n $categoryNameName: ModelServiceTypeByCompanySortedByCategoryNameNameCompositeKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelServiceTypeFilterInput\n $limit: Int\n $nextToken: String\n ) {\n serviceTypeByCompany(\n companyId: $companyId\n categoryNameName: $categoryNameName\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const bundledServicesByCompany = /* GraphQL */ `\n query BundledServicesByCompany(\n $companyId: String\n $includedServices: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelServiceTypeFilterInput\n $limit: Int\n $nextToken: String\n ) {\n bundledServicesByCompany(\n companyId: $companyId\n includedServices: $includedServices\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const searchServiceTypes = /* GraphQL */ `\n query SearchServiceTypes(\n $filter: SearchableServiceTypeFilterInput\n $sort: SearchableServiceTypeSortInput\n $limit: Int\n $nextToken: String\n $from: Int\n ) {\n searchServiceTypes(\n filter: $filter\n sort: $sort\n limit: $limit\n nextToken: $nextToken\n from: $from\n ) {\n items {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n nextToken\n total\n }\n }\n`;\nexport const getServiceTypeCategory = /* GraphQL */ `\n query GetServiceTypeCategory($id: ID!) {\n getServiceTypeCategory(id: $id) {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const listServiceTypeCategorys = /* GraphQL */ `\n query ListServiceTypeCategorys(\n $filter: ModelServiceTypeCategoryFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listServiceTypeCategorys(\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const serviceTypeCategoryByCompany = /* GraphQL */ `\n query ServiceTypeCategoryByCompany(\n $companyId: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelServiceTypeCategoryFilterInput\n $limit: Int\n $nextToken: String\n ) {\n serviceTypeCategoryByCompany(\n companyId: $companyId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const searchServiceTypeCategorys = /* GraphQL */ `\n query SearchServiceTypeCategorys(\n $filter: SearchableServiceTypeCategoryFilterInput\n $sort: SearchableServiceTypeCategorySortInput\n $limit: Int\n $nextToken: String\n $from: Int\n ) {\n searchServiceTypeCategorys(\n filter: $filter\n sort: $sort\n limit: $limit\n nextToken: $nextToken\n from: $from\n ) {\n items {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n nextToken\n total\n }\n }\n`;\nexport const getRegionalPricing = /* GraphQL */ `\n query GetRegionalPricing($id: ID!) {\n getRegionalPricing(id: $id) {\n id\n servicetypeId\n pricingtype\n country\n countryName\n province\n postalcodes\n price\n notes\n companyId\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n }\n }\n`;\nexport const listRegionalPricings = /* GraphQL */ `\n query ListRegionalPricings(\n $filter: ModelRegionalPricingFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listRegionalPricings(\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n servicetypeId\n pricingtype\n country\n countryName\n province\n postalcodes\n price\n notes\n companyId\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const regionalPricingByCompanyServiceType = /* GraphQL */ `\n query RegionalPricingByCompanyServiceType(\n $companyId: String\n $servicetypeId: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelRegionalPricingFilterInput\n $limit: Int\n $nextToken: String\n ) {\n regionalPricingByCompanyServiceType(\n companyId: $companyId\n servicetypeId: $servicetypeId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n servicetypeId\n pricingtype\n country\n countryName\n province\n postalcodes\n price\n notes\n companyId\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const getClient = /* GraphQL */ `\n query GetClient($id: ID!) {\n getClient(id: $id) {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const listClients = /* GraphQL */ `\n query ListClients(\n $filter: ModelClientFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listClients(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const clientByUserId = /* GraphQL */ `\n query ClientByUserId(\n $userId: String\n $id: ModelIDKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelClientFilterInput\n $limit: Int\n $nextToken: String\n ) {\n clientByUserId(\n userId: $userId\n id: $id\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const clientByCompany = /* GraphQL */ `\n query ClientByCompany(\n $companyId: String\n $id: ModelIDKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelClientFilterInput\n $limit: Int\n $nextToken: String\n ) {\n clientByCompany(\n companyId: $companyId\n id: $id\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const searchClients = /* GraphQL */ `\n query SearchClients(\n $filter: SearchableClientFilterInput\n $sort: SearchableClientSortInput\n $limit: Int\n $nextToken: String\n $from: Int\n ) {\n searchClients(\n filter: $filter\n sort: $sort\n limit: $limit\n nextToken: $nextToken\n from: $from\n ) {\n items {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n nextToken\n total\n }\n }\n`;\nexport const getSkill = /* GraphQL */ `\n query GetSkill($id: ID!) {\n getSkill(id: $id) {\n id\n name\n importance\n companyId\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n items {\n id\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\nexport const listSkills = /* GraphQL */ `\n query ListSkills(\n $filter: ModelSkillFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listSkills(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n name\n importance\n companyId\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const skillByCompany = /* GraphQL */ `\n query SkillByCompany(\n $companyId: String\n $name: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelSkillFilterInput\n $limit: Int\n $nextToken: String\n ) {\n skillByCompany(\n companyId: $companyId\n name: $name\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n name\n importance\n companyId\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const searchSkills = /* GraphQL */ `\n query SearchSkills(\n $filter: SearchableSkillFilterInput\n $sort: SearchableSkillSortInput\n $limit: Int\n $nextToken: String\n $from: Int\n ) {\n searchSkills(\n filter: $filter\n sort: $sort\n limit: $limit\n nextToken: $nextToken\n from: $from\n ) {\n items {\n id\n name\n importance\n companyId\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n }\n nextToken\n total\n }\n }\n`;\nexport const getPackage = /* GraphQL */ `\n query GetPackage($id: ID!) {\n getPackage(id: $id) {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n }\n }\n`;\nexport const listPackages = /* GraphQL */ `\n query ListPackages(\n $filter: ModelPackageFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listPackages(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const packageByCompany = /* GraphQL */ `\n query PackageByCompany(\n $companyId: String\n $servicetypeIdCreatedAt: ModelPackageByCompanyCompositeKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelPackageFilterInput\n $limit: Int\n $nextToken: String\n ) {\n packageByCompany(\n companyId: $companyId\n servicetypeIdCreatedAt: $servicetypeIdCreatedAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const searchPackages = /* GraphQL */ `\n query SearchPackages(\n $filter: SearchablePackageFilterInput\n $sort: SearchablePackageSortInput\n $limit: Int\n $nextToken: String\n $from: Int\n ) {\n searchPackages(\n filter: $filter\n sort: $sort\n limit: $limit\n nextToken: $nextToken\n from: $from\n ) {\n items {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n }\n nextToken\n total\n }\n }\n`;\nexport const getClientPackage = /* GraphQL */ `\n query GetClientPackage($id: ID!) {\n getClientPackage(id: $id) {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n package {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n }\n orders {\n items {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\nexport const listClientPackages = /* GraphQL */ `\n query ListClientPackages(\n $filter: ModelClientPackageFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listClientPackages(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n package {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n }\n orders {\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const clientPackageByUser = /* GraphQL */ `\n query ClientPackageByUser(\n $userId: String\n $servicetypeIdPackageIdCreatedAt: ModelClientPackageByUserCompositeKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelClientPackageFilterInput\n $limit: Int\n $nextToken: String\n ) {\n clientPackageByUser(\n userId: $userId\n servicetypeIdPackageIdCreatedAt: $servicetypeIdPackageIdCreatedAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n package {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n }\n orders {\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const clientPackageByCompany = /* GraphQL */ `\n query ClientPackageByCompany(\n $companyId: String\n $createdAtId: ModelClientPackageByCompanyCompositeKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelClientPackageFilterInput\n $limit: Int\n $nextToken: String\n ) {\n clientPackageByCompany(\n companyId: $companyId\n createdAtId: $createdAtId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n package {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n }\n orders {\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const searchClientPackages = /* GraphQL */ `\n query SearchClientPackages(\n $filter: SearchableClientPackageFilterInput\n $sort: SearchableClientPackageSortInput\n $limit: Int\n $nextToken: String\n $from: Int\n ) {\n searchClientPackages(\n filter: $filter\n sort: $sort\n limit: $limit\n nextToken: $nextToken\n from: $from\n ) {\n items {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n package {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n }\n orders {\n nextToken\n }\n }\n nextToken\n total\n }\n }\n`;\nexport const getPromotion = /* GraphQL */ `\n query GetPromotion($id: ID!) {\n getPromotion(id: $id) {\n id\n name\n desc\n companyId\n amount\n promotiontype\n active\n deleted\n startdate\n enddate\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n package {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n }\n }\n }\n`;\nexport const listPromotions = /* GraphQL */ `\n query ListPromotions(\n $filter: ModelPromotionFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listPromotions(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n name\n desc\n companyId\n amount\n promotiontype\n active\n deleted\n startdate\n enddate\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n package {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const searchPromotions = /* GraphQL */ `\n query SearchPromotions(\n $filter: SearchablePromotionFilterInput\n $sort: SearchablePromotionSortInput\n $limit: Int\n $nextToken: String\n $from: Int\n ) {\n searchPromotions(\n filter: $filter\n sort: $sort\n limit: $limit\n nextToken: $nextToken\n from: $from\n ) {\n items {\n id\n name\n desc\n companyId\n amount\n promotiontype\n active\n deleted\n startdate\n enddate\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n package {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n }\n }\n nextToken\n total\n }\n }\n`;\nexport const getPromo = /* GraphQL */ `\n query GetPromo($id: ID!, $recordType: String!) {\n getPromo(id: $id, recordType: $recordType) {\n id\n recordType\n Details\n companyId\n promocode\n active\n terminated\n allPackages\n allServices\n discountType\n discountValue\n onePerClient\n startDate\n endDate\n name\n numOfRedemptions\n maxNumOfRedemptions\n hasExpiryDate\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const listPromos = /* GraphQL */ `\n query ListPromos(\n $id: ID\n $recordType: ModelStringKeyConditionInput\n $filter: ModelPromoFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listPromos(\n id: $id\n recordType: $recordType\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n recordType\n Details\n companyId\n promocode\n active\n terminated\n allPackages\n allServices\n discountType\n discountValue\n onePerClient\n startDate\n endDate\n name\n numOfRedemptions\n maxNumOfRedemptions\n hasExpiryDate\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const promocodeByCompany = /* GraphQL */ `\n query PromocodeByCompany(\n $companyId: String\n $promocodeId: ModelPromoByCompanyPromocodeCompositeKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelPromoFilterInput\n $limit: Int\n $nextToken: String\n ) {\n promocodeByCompany(\n companyId: $companyId\n promocodeId: $promocodeId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n recordType\n Details\n companyId\n promocode\n active\n terminated\n allPackages\n allServices\n discountType\n discountValue\n onePerClient\n startDate\n endDate\n name\n numOfRedemptions\n maxNumOfRedemptions\n hasExpiryDate\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const promocodeRecordTypeByCompany = /* GraphQL */ `\n query PromocodeRecordTypeByCompany(\n $companyId: String\n $promocodeRecordType: ModelPromoByCompanyPromocodeRecordtypeCompositeKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelPromoFilterInput\n $limit: Int\n $nextToken: String\n ) {\n promocodeRecordTypeByCompany(\n companyId: $companyId\n promocodeRecordType: $promocodeRecordType\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n recordType\n Details\n companyId\n promocode\n active\n terminated\n allPackages\n allServices\n discountType\n discountValue\n onePerClient\n startDate\n endDate\n name\n numOfRedemptions\n maxNumOfRedemptions\n hasExpiryDate\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const promoByCompany = /* GraphQL */ `\n query PromoByCompany(\n $companyId: String\n $idRecordType: ModelPromoByCompanyPromosCompositeKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelPromoFilterInput\n $limit: Int\n $nextToken: String\n ) {\n promoByCompany(\n companyId: $companyId\n idRecordType: $idRecordType\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n recordType\n Details\n companyId\n promocode\n active\n terminated\n allPackages\n allServices\n discountType\n discountValue\n onePerClient\n startDate\n endDate\n name\n numOfRedemptions\n maxNumOfRedemptions\n hasExpiryDate\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const promoSettingsByCompany = /* GraphQL */ `\n query PromoSettingsByCompany(\n $companyId: String\n $recordTypeId: ModelPromoByCompanyPromoSettingsCompositeKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelPromoFilterInput\n $limit: Int\n $nextToken: String\n ) {\n promoSettingsByCompany(\n companyId: $companyId\n recordTypeId: $recordTypeId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n recordType\n Details\n companyId\n promocode\n active\n terminated\n allPackages\n allServices\n discountType\n discountValue\n onePerClient\n startDate\n endDate\n name\n numOfRedemptions\n maxNumOfRedemptions\n hasExpiryDate\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const getBooking = /* GraphQL */ `\n query GetBooking($id: ID!) {\n getBooking(id: $id) {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n cancelledBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n noshowBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n bookedBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n rating {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n }\n }\n`;\nexport const listBookings = /* GraphQL */ `\n query ListBookings(\n $filter: ModelBookingFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listBookings(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n cancelledBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n noshowBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n bookedBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n rating {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const bookingByProvider = /* GraphQL */ `\n query BookingByProvider(\n $providerId: String\n $startdateTimeblockid: ModelBookingByProviderCompositeKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelBookingFilterInput\n $limit: Int\n $nextToken: String\n ) {\n bookingByProvider(\n providerId: $providerId\n startdateTimeblockid: $startdateTimeblockid\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n cancelledBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n noshowBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n bookedBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n rating {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const bookingByCompany = /* GraphQL */ `\n query BookingByCompany(\n $companyId: String\n $startdateTimeblockid: ModelBookingByCompanyCompositeKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelBookingFilterInput\n $limit: Int\n $nextToken: String\n ) {\n bookingByCompany(\n companyId: $companyId\n startdateTimeblockid: $startdateTimeblockid\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n cancelledBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n noshowBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n bookedBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n rating {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const bookingByOrder = /* GraphQL */ `\n query BookingByOrder(\n $orderId: String\n $startdateTimeblockid: ModelBookingByOrderCompositeKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelBookingFilterInput\n $limit: Int\n $nextToken: String\n ) {\n bookingByOrder(\n orderId: $orderId\n startdateTimeblockid: $startdateTimeblockid\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n cancelledBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n noshowBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n bookedBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n rating {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const bookingByClient = /* GraphQL */ `\n query BookingByClient(\n $clientId: String\n $startdateTimeblockid: ModelBookingByClientCompositeKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelBookingFilterInput\n $limit: Int\n $nextToken: String\n ) {\n bookingByClient(\n clientId: $clientId\n startdateTimeblockid: $startdateTimeblockid\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n cancelledBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n noshowBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n bookedBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n rating {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const bookingByServiceType = /* GraphQL */ `\n query BookingByServiceType(\n $serviceTypeId: String\n $sortDirection: ModelSortDirection\n $filter: ModelBookingFilterInput\n $limit: Int\n $nextToken: String\n ) {\n bookingByServiceType(\n serviceTypeId: $serviceTypeId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n cancelledBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n noshowBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n bookedBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n rating {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const searchBookings = /* GraphQL */ `\n query SearchBookings(\n $filter: SearchableBookingFilterInput\n $sort: SearchableBookingSortInput\n $limit: Int\n $nextToken: String\n $from: Int\n ) {\n searchBookings(\n filter: $filter\n sort: $sort\n limit: $limit\n nextToken: $nextToken\n from: $from\n ) {\n items {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n cancelledBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n noshowBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n bookedBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n rating {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n nextToken\n total\n }\n }\n`;\nexport const getBookingStatus = /* GraphQL */ `\n query GetBookingStatus($companyId: ID!, $status: String!) {\n getBookingStatus(companyId: $companyId, status: $status) {\n companyId\n status\n bookingId\n createdAt\n updatedAt\n booking {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n cancelledBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n noshowBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n bookedBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n rating {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n }\n }\n`;\nexport const listBookingStatuss = /* GraphQL */ `\n query ListBookingStatuss(\n $companyId: ID\n $status: ModelStringKeyConditionInput\n $filter: ModelBookingStatusFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listBookingStatuss(\n companyId: $companyId\n status: $status\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n companyId\n status\n bookingId\n createdAt\n updatedAt\n booking {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const statusByBooking = /* GraphQL */ `\n query StatusByBooking(\n $bookingId: String\n $status: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelBookingStatusFilterInput\n $limit: Int\n $nextToken: String\n ) {\n statusByBooking(\n bookingId: $bookingId\n status: $status\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n companyId\n status\n bookingId\n createdAt\n updatedAt\n booking {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const getOrder = /* GraphQL */ `\n query GetOrder($id: ID!) {\n getOrder(id: $id) {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n package {\n id\n desc\n companyId\n servicetypeId\n packagetype\n price\n discount\n quantity\n active\n deleted\n createdAt\n updatedAt\n }\n orders {\n nextToken\n }\n }\n bookings {\n items {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\nexport const listOrders = /* GraphQL */ `\n query ListOrders(\n $filter: ModelOrderFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listOrders(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const ordersByCompanyOrderNo = /* GraphQL */ `\n query OrdersByCompanyOrderNo(\n $companyId: String\n $orderNo: ModelIntKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelOrderFilterInput\n $limit: Int\n $nextToken: String\n ) {\n ordersByCompanyOrderNo(\n companyId: $companyId\n orderNo: $orderNo\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const ordersByClientCreatedAt = /* GraphQL */ `\n query OrdersByClientCreatedAt(\n $clientId: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelOrderFilterInput\n $limit: Int\n $nextToken: String\n ) {\n ordersByClientCreatedAt(\n clientId: $clientId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const ordersByProviderCreatedAt = /* GraphQL */ `\n query OrdersByProviderCreatedAt(\n $providerId: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelOrderFilterInput\n $limit: Int\n $nextToken: String\n ) {\n ordersByProviderCreatedAt(\n providerId: $providerId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const searchOrders = /* GraphQL */ `\n query SearchOrders(\n $filter: SearchableOrderFilterInput\n $sort: SearchableOrderSortInput\n $limit: Int\n $nextToken: String\n $from: Int\n ) {\n searchOrders(\n filter: $filter\n sort: $sort\n limit: $limit\n nextToken: $nextToken\n from: $from\n ) {\n items {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n nextToken\n total\n }\n }\n`;\nexport const getClientCharge = /* GraphQL */ `\n query GetClientCharge($id: ID!) {\n getClientCharge(id: $id) {\n id\n clientId\n companyId\n orderId\n billingtransactionId\n description\n status\n stripechargeid\n stripepaymentmethod\n stripe_payment_method_details\n stripe_refund_charge\n stripe_status\n amount\n amount_refunded\n balance_transaction\n currency\n createdAt\n updatedAt\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n billingtransaction {\n id\n orderId\n addservicetypeid\n amount\n creatorId\n clientId\n companyId\n desc\n credit\n approved\n createdAt\n updatedAt\n creator {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n addservicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n }\n }\n`;\nexport const listClientCharges = /* GraphQL */ `\n query ListClientCharges(\n $filter: ModelClientChargeFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listClientCharges(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n clientId\n companyId\n orderId\n billingtransactionId\n description\n status\n stripechargeid\n stripepaymentmethod\n stripe_payment_method_details\n stripe_refund_charge\n stripe_status\n amount\n amount_refunded\n balance_transaction\n currency\n createdAt\n updatedAt\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n billingtransaction {\n id\n orderId\n addservicetypeid\n amount\n creatorId\n clientId\n companyId\n desc\n credit\n approved\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const clientChargeByOrder = /* GraphQL */ `\n query ClientChargeByOrder(\n $orderId: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelClientChargeFilterInput\n $limit: Int\n $nextToken: String\n ) {\n clientChargeByOrder(\n orderId: $orderId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n clientId\n companyId\n orderId\n billingtransactionId\n description\n status\n stripechargeid\n stripepaymentmethod\n stripe_payment_method_details\n stripe_refund_charge\n stripe_status\n amount\n amount_refunded\n balance_transaction\n currency\n createdAt\n updatedAt\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n billingtransaction {\n id\n orderId\n addservicetypeid\n amount\n creatorId\n clientId\n companyId\n desc\n credit\n approved\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const clientChargeByCompany = /* GraphQL */ `\n query ClientChargeByCompany(\n $companyId: String\n $createdAtId: ModelClientChargeByCompanyCompositeKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelClientChargeFilterInput\n $limit: Int\n $nextToken: String\n ) {\n clientChargeByCompany(\n companyId: $companyId\n createdAtId: $createdAtId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n clientId\n companyId\n orderId\n billingtransactionId\n description\n status\n stripechargeid\n stripepaymentmethod\n stripe_payment_method_details\n stripe_refund_charge\n stripe_status\n amount\n amount_refunded\n balance_transaction\n currency\n createdAt\n updatedAt\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n billingtransaction {\n id\n orderId\n addservicetypeid\n amount\n creatorId\n clientId\n companyId\n desc\n credit\n approved\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const searchClientCharges = /* GraphQL */ `\n query SearchClientCharges(\n $filter: SearchableClientChargeFilterInput\n $sort: SearchableClientChargeSortInput\n $limit: Int\n $nextToken: String\n $from: Int\n ) {\n searchClientCharges(\n filter: $filter\n sort: $sort\n limit: $limit\n nextToken: $nextToken\n from: $from\n ) {\n items {\n id\n clientId\n companyId\n orderId\n billingtransactionId\n description\n status\n stripechargeid\n stripepaymentmethod\n stripe_payment_method_details\n stripe_refund_charge\n stripe_status\n amount\n amount_refunded\n balance_transaction\n currency\n createdAt\n updatedAt\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n billingtransaction {\n id\n orderId\n addservicetypeid\n amount\n creatorId\n clientId\n companyId\n desc\n credit\n approved\n createdAt\n updatedAt\n }\n }\n nextToken\n total\n }\n }\n`;\nexport const getBillingProgress = /* GraphQL */ `\n query GetBillingProgress($companyId: String!, $dateTime: AWSDateTime!) {\n getBillingProgress(companyId: $companyId, dateTime: $dateTime) {\n companyId\n dateTime\n status\n data\n createdAt\n updatedAt\n }\n }\n`;\nexport const listBillingProgresss = /* GraphQL */ `\n query ListBillingProgresss(\n $companyId: String\n $dateTime: ModelStringKeyConditionInput\n $filter: ModelBillingProgressFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listBillingProgresss(\n companyId: $companyId\n dateTime: $dateTime\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n companyId\n dateTime\n status\n data\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getCompanyLocation = /* GraphQL */ `\n query GetCompanyLocation($id: ID!) {\n getCompanyLocation(id: $id) {\n id\n companyId\n locationname\n locationdesc\n locationpath\n addressoneline\n street\n city\n state\n country\n countrycode3166alpha2\n postalcode\n longitude\n latitude\n timezone\n phone\n virtual\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const listCompanyLocations = /* GraphQL */ `\n query ListCompanyLocations(\n $filter: ModelCompanyLocationFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listCompanyLocations(\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n companyId\n locationname\n locationdesc\n locationpath\n addressoneline\n street\n city\n state\n country\n countrycode3166alpha2\n postalcode\n longitude\n latitude\n timezone\n phone\n virtual\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const companyLocationByCompany = /* GraphQL */ `\n query CompanyLocationByCompany(\n $companyId: String\n $locationnameCreatedAt: ModelCompanyLocationByCompanyCompositeKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelCompanyLocationFilterInput\n $limit: Int\n $nextToken: String\n ) {\n companyLocationByCompany(\n companyId: $companyId\n locationnameCreatedAt: $locationnameCreatedAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n companyId\n locationname\n locationdesc\n locationpath\n addressoneline\n street\n city\n state\n country\n countrycode3166alpha2\n postalcode\n longitude\n latitude\n timezone\n phone\n virtual\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const companyLocationPathByCompany = /* GraphQL */ `\n query CompanyLocationPathByCompany(\n $companyId: String\n $locationpath: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelCompanyLocationFilterInput\n $limit: Int\n $nextToken: String\n ) {\n companyLocationPathByCompany(\n companyId: $companyId\n locationpath: $locationpath\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n companyId\n locationname\n locationdesc\n locationpath\n addressoneline\n street\n city\n state\n country\n countrycode3166alpha2\n postalcode\n longitude\n latitude\n timezone\n phone\n virtual\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const searchCompanyLocations = /* GraphQL */ `\n query SearchCompanyLocations(\n $filter: SearchableCompanyLocationFilterInput\n $sort: SearchableCompanyLocationSortInput\n $limit: Int\n $nextToken: String\n $from: Int\n ) {\n searchCompanyLocations(\n filter: $filter\n sort: $sort\n limit: $limit\n nextToken: $nextToken\n from: $from\n ) {\n items {\n id\n companyId\n locationname\n locationdesc\n locationpath\n addressoneline\n street\n city\n state\n country\n countrycode3166alpha2\n postalcode\n longitude\n latitude\n timezone\n phone\n virtual\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n nextToken\n total\n }\n }\n`;\nexport const getCompanyReminder = /* GraphQL */ `\n query GetCompanyReminder($id: ID!) {\n getCompanyReminder(id: $id) {\n id\n companyId\n reminderType\n reminderDays\n reminderHours\n reminderMinutes\n recipientType\n emailSubjectText\n emailHTMLFile\n smsText\n smsCallerId\n maxSendTime\n priority\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const listCompanyReminders = /* GraphQL */ `\n query ListCompanyReminders(\n $filter: ModelCompanyReminderFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listCompanyReminders(\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n companyId\n reminderType\n reminderDays\n reminderHours\n reminderMinutes\n recipientType\n emailSubjectText\n emailHTMLFile\n smsText\n smsCallerId\n maxSendTime\n priority\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const searchCompanyReminders = /* GraphQL */ `\n query SearchCompanyReminders(\n $filter: SearchableCompanyReminderFilterInput\n $sort: SearchableCompanyReminderSortInput\n $limit: Int\n $nextToken: String\n $from: Int\n ) {\n searchCompanyReminders(\n filter: $filter\n sort: $sort\n limit: $limit\n nextToken: $nextToken\n from: $from\n ) {\n items {\n id\n companyId\n reminderType\n reminderDays\n reminderHours\n reminderMinutes\n recipientType\n emailSubjectText\n emailHTMLFile\n smsText\n smsCallerId\n maxSendTime\n priority\n active\n deleted\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n nextToken\n total\n }\n }\n`;\nexport const getReminder = /* GraphQL */ `\n query GetReminder($id: ID!) {\n getReminder(id: $id) {\n id\n remSendDateTimeUTC\n remSendDate\n companyId\n reminderType\n recipientType\n sendDateTime\n status\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n booking {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n cancelledBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n noshowBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n bookedBy {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n rating {\n id\n providerId\n companyId\n ratingstars\n ratingtext\n ratinguserId\n active\n createdAt\n updatedAt\n }\n servicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n }\n }\n`;\nexport const listReminders = /* GraphQL */ `\n query ListReminders(\n $filter: ModelReminderFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listReminders(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n remSendDateTimeUTC\n remSendDate\n companyId\n reminderType\n recipientType\n sendDateTime\n status\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n booking {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const byReminderSendDate = /* GraphQL */ `\n query ByReminderSendDate(\n $remSendDate: AWSDate\n $remSendDateTimeUTCId: ModelReminderByReminderSendDateCompositeKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelReminderFilterInput\n $limit: Int\n $nextToken: String\n ) {\n byReminderSendDate(\n remSendDate: $remSendDate\n remSendDateTimeUTCId: $remSendDateTimeUTCId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n remSendDateTimeUTC\n remSendDate\n companyId\n reminderType\n recipientType\n sendDateTime\n status\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n booking {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const remindersByCompanyStatusReminderTypeSendDate = /* GraphQL */ `\n query RemindersByCompanyStatusReminderTypeSendDate(\n $companyId: String\n $statusReminderTypeSendDateTime: ModelReminderByCompanyReminderStatusCompositeKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelReminderFilterInput\n $limit: Int\n $nextToken: String\n ) {\n remindersByCompanyStatusReminderTypeSendDate(\n companyId: $companyId\n statusReminderTypeSendDateTime: $statusReminderTypeSendDateTime\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n remSendDateTimeUTC\n remSendDate\n companyId\n reminderType\n recipientType\n sendDateTime\n status\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n booking {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const searchReminders = /* GraphQL */ `\n query SearchReminders(\n $filter: SearchableReminderFilterInput\n $sort: SearchableReminderSortInput\n $limit: Int\n $nextToken: String\n $from: Int\n ) {\n searchReminders(\n filter: $filter\n sort: $sort\n limit: $limit\n nextToken: $nextToken\n from: $from\n ) {\n items {\n id\n remSendDateTimeUTC\n remSendDate\n companyId\n reminderType\n recipientType\n sendDateTime\n status\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n booking {\n id\n desc\n orderId\n serviceTypeId\n providerId\n clientId\n startdate\n minutes\n totalAddChg\n location\n companyId\n status\n timeblockid\n cancelledAt\n noshowAt\n virtualMeetingInfo\n timezone\n TimeDisplayInfo\n orderType\n isVirtual\n manualBooking\n Notes\n MetaData\n createdAt\n updatedAt\n }\n }\n nextToken\n total\n }\n }\n`;\nexport const getScheduleTimeblock = /* GraphQL */ `\n query GetScheduleTimeblock($id: ID!, $scheduleinfo: String!) {\n getScheduleTimeblock(id: $id, scheduleinfo: $scheduleinfo) {\n id\n scheduleinfo\n companyId\n providerId\n locationId\n servicetypeId\n active\n internal\n slotStartStep\n instructions\n postBookingInstructions\n startDate\n sdtutc\n tz\n endDate\n startTime\n endTime\n type\n status\n weeksToRepeat\n weekDays\n deleted\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const listScheduleTimeblocks = /* GraphQL */ `\n query ListScheduleTimeblocks(\n $id: ID\n $scheduleinfo: ModelStringKeyConditionInput\n $filter: ModelScheduleTimeblockFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listScheduleTimeblocks(\n id: $id\n scheduleinfo: $scheduleinfo\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n scheduleinfo\n companyId\n providerId\n locationId\n servicetypeId\n active\n internal\n slotStartStep\n instructions\n postBookingInstructions\n startDate\n sdtutc\n tz\n endDate\n startTime\n endTime\n type\n status\n weeksToRepeat\n weekDays\n deleted\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const schedulesByLocation = /* GraphQL */ `\n query SchedulesByLocation(\n $locationId: String\n $scheduleinfo: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelScheduleTimeblockFilterInput\n $limit: Int\n $nextToken: String\n ) {\n schedulesByLocation(\n locationId: $locationId\n scheduleinfo: $scheduleinfo\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n scheduleinfo\n companyId\n providerId\n locationId\n servicetypeId\n active\n internal\n slotStartStep\n instructions\n postBookingInstructions\n startDate\n sdtutc\n tz\n endDate\n startTime\n endTime\n type\n status\n weeksToRepeat\n weekDays\n deleted\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const schedulesByCompany = /* GraphQL */ `\n query SchedulesByCompany(\n $companyId: String\n $scheduleinfo: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelScheduleTimeblockFilterInput\n $limit: Int\n $nextToken: String\n ) {\n schedulesByCompany(\n companyId: $companyId\n scheduleinfo: $scheduleinfo\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n scheduleinfo\n companyId\n providerId\n locationId\n servicetypeId\n active\n internal\n slotStartStep\n instructions\n postBookingInstructions\n startDate\n sdtutc\n tz\n endDate\n startTime\n endTime\n type\n status\n weeksToRepeat\n weekDays\n deleted\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const getProviderSchedule = /* GraphQL */ `\n query GetProviderSchedule($id: ID!, $scheduleinfo: String!) {\n getProviderSchedule(id: $id, scheduleinfo: $scheduleinfo) {\n id\n scheduleinfo\n companyId\n providerId\n locations\n services\n active\n startDate\n sdtutc\n tz\n endDate\n startTime\n endTime\n type\n status\n weeksToRepeat\n weekDays\n deleted\n rrule\n latitude\n longitude\n notes\n MetaData\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n locations {\n nextToken\n }\n servicetypes {\n nextToken\n }\n skills {\n nextToken\n }\n }\n }\n }\n`;\nexport const listProviderSchedules = /* GraphQL */ `\n query ListProviderSchedules(\n $id: ID\n $scheduleinfo: ModelStringKeyConditionInput\n $filter: ModelProviderScheduleFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listProviderSchedules(\n id: $id\n scheduleinfo: $scheduleinfo\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n scheduleinfo\n companyId\n providerId\n locations\n services\n active\n startDate\n sdtutc\n tz\n endDate\n startTime\n endTime\n type\n status\n weeksToRepeat\n weekDays\n deleted\n rrule\n latitude\n longitude\n notes\n MetaData\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const providerScheduleByCompany = /* GraphQL */ `\n query ProviderScheduleByCompany(\n $companyId: String\n $scheduleinfo: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelProviderScheduleFilterInput\n $limit: Int\n $nextToken: String\n ) {\n providerScheduleByCompany(\n companyId: $companyId\n scheduleinfo: $scheduleinfo\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n scheduleinfo\n companyId\n providerId\n locations\n services\n active\n startDate\n sdtutc\n tz\n endDate\n startTime\n endTime\n type\n status\n weeksToRepeat\n weekDays\n deleted\n rrule\n latitude\n longitude\n notes\n MetaData\n createdAt\n updatedAt\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const getUISession = /* GraphQL */ `\n query GetUISession($id: ID!, $sessionItem: String!) {\n getUISession(id: $id, sessionItem: $sessionItem) {\n id\n sessionItem\n SessionItemData\n companyId\n createdAt\n updatedAt\n }\n }\n`;\nexport const listUISessions = /* GraphQL */ `\n query ListUISessions(\n $id: ID\n $sessionItem: ModelStringKeyConditionInput\n $filter: ModelUISessionFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listUISessions(\n id: $id\n sessionItem: $sessionItem\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n sessionItem\n SessionItemData\n companyId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getScheduleAvailability = /* GraphQL */ `\n query GetScheduleAvailability($schId: ID!, $statsKey: String!) {\n getScheduleAvailability(schId: $schId, statsKey: $statsKey) {\n schId\n statsKey\n availJson\n createdAt\n updatedAt\n }\n }\n`;\nexport const listScheduleAvailabilitys = /* GraphQL */ `\n query ListScheduleAvailabilitys(\n $schId: ID\n $statsKey: ModelStringKeyConditionInput\n $filter: ModelScheduleAvailabilityFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listScheduleAvailabilitys(\n schId: $schId\n statsKey: $statsKey\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n schId\n statsKey\n availJson\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getAdditionalCharge = /* GraphQL */ `\n query GetAdditionalCharge($id: ID!) {\n getAdditionalCharge(id: $id) {\n id\n amount\n desc\n note\n bookingId\n orderId\n companyId\n clientId\n creatorId\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n creator {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n }\n }\n`;\nexport const listAdditionalCharges = /* GraphQL */ `\n query ListAdditionalCharges(\n $filter: ModelAdditionalChargeFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listAdditionalCharges(\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n amount\n desc\n note\n bookingId\n orderId\n companyId\n clientId\n creatorId\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n creator {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const additionalChargesByOrderId = /* GraphQL */ `\n query AdditionalChargesByOrderId(\n $orderId: String\n $id: ModelIDKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelAdditionalChargeFilterInput\n $limit: Int\n $nextToken: String\n ) {\n additionalChargesByOrderId(\n orderId: $orderId\n id: $id\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n amount\n desc\n note\n bookingId\n orderId\n companyId\n clientId\n creatorId\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n creator {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const additionalChargesByCompany = /* GraphQL */ `\n query AdditionalChargesByCompany(\n $companyId: String\n $createdAtId: ModelAdditionalChargeByCompanyCompositeKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelAdditionalChargeFilterInput\n $limit: Int\n $nextToken: String\n ) {\n additionalChargesByCompany(\n companyId: $companyId\n createdAtId: $createdAtId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n amount\n desc\n note\n bookingId\n orderId\n companyId\n clientId\n creatorId\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n creator {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const getRepeatApptCharge = /* GraphQL */ `\n query GetRepeatApptCharge($orderId: ID!, $bookingId: String!) {\n getRepeatApptCharge(orderId: $orderId, bookingId: $bookingId) {\n orderId\n bookingId\n companyId\n subtotal\n servicechargeamt\n taxamt\n total\n taxrate\n status\n chargeSummary\n chargeReceipt\n createdAt\n updatedAt\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n }\n }\n`;\nexport const listRepeatApptCharges = /* GraphQL */ `\n query ListRepeatApptCharges(\n $orderId: ID\n $bookingId: ModelStringKeyConditionInput\n $filter: ModelRepeatApptChargeFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listRepeatApptCharges(\n orderId: $orderId\n bookingId: $bookingId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n orderId\n bookingId\n companyId\n subtotal\n servicechargeamt\n taxamt\n total\n taxrate\n status\n chargeSummary\n chargeReceipt\n createdAt\n updatedAt\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const getBillingTransaction = /* GraphQL */ `\n query GetBillingTransaction($id: ID!) {\n getBillingTransaction(id: $id) {\n id\n orderId\n addservicetypeid\n amount\n creatorId\n clientId\n companyId\n desc\n credit\n approved\n createdAt\n updatedAt\n creator {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n addservicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n providers {\n nextToken\n }\n category {\n id\n name\n desc\n companyId\n deleted\n ordinal\n createdAt\n updatedAt\n }\n packages {\n nextToken\n }\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n prevproviders {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n provider {\n id\n firstname\n lc_fn\n lastname\n lc_ln\n emailaddress\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n timezone\n bio\n pictures3key\n maxtraveltype\n companyId\n numberofschedules\n offersMobileServices\n active\n deleted\n ratingstarsavg\n numberofratings\n offersVirtualServices\n virtualMeetingUserId\n vmlink\n permalink\n AcceptanceRatios\n userId\n maxTravelTime\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n clientpackage {\n id\n companyId\n clientId\n userId\n servicetypeId\n packageId\n initialQuantity\n usedQuantity\n status\n active\n createdAt\n updatedAt\n }\n bookings {\n nextToken\n }\n }\n }\n }\n`;\nexport const listBillingTransactions = /* GraphQL */ `\n query ListBillingTransactions(\n $filter: ModelBillingTransactionFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listBillingTransactions(\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n orderId\n addservicetypeid\n amount\n creatorId\n clientId\n companyId\n desc\n credit\n approved\n createdAt\n updatedAt\n creator {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n role\n companyId\n providerId\n active\n deleted\n contactconsent\n contactconsentdatetime\n LoginInfo\n SalesInfo\n PNInfo\n lc_name\n lc_emailaddress\n lc_ln\n createdAt\n updatedAt\n }\n company {\n id\n name\n contactname\n emailaddress\n currency\n currencyBasedOnLocation\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n clientcanselectprovider\n active\n offersRemoteServices\n offersOnPremiseServices\n offersVirtualServices\n providerMustAcceptAppt\n useAnonymousPermalink\n multipleServices\n multipleQty\n ApptAcceptanceFlowConfig\n collectpayment\n subdomain\n tagline\n logoUrl\n billingMode\n iframeURL\n primaryColor\n addServiceFee\n serviceFeeType\n serviceFeeAmount\n taxrate\n travelTime\n bookingIntervalMinutes\n countrycode3166alpha2\n publishableStripeKey\n displayOnlyLogo\n sendratingTipMsg\n ratingTipTextMsg\n offersPackagesOnly\n forceRepeatingPackages\n offersForeverAppt\n singleApptOnly\n virtualMeetingConfig\n DashboardInfo\n BccLists\n maskeddomain\n replyemailaddress\n homepage\n clientnotesheading\n hideRatingsFromClients\n subscriptionLevel\n cancelPolicyMinsBefore\n bookingIncrement\n providerCanCancelAppt\n noProviderMsg\n displayProviderRatios\n PaymentSettings\n stripeConnectEnabled\n stripeAccount\n setupCompleted\n clientCanReschedule\n providerCanReschedule\n ProvAgnoFlowConfig\n SuggestionConfig\n ProviderRestrictionConfig\n clientMayCreateAccount\n createdAt\n updatedAt\n }\n addservicetype {\n id\n name\n desc\n categoryId\n categoryName\n minutes\n price\n active\n deleted\n companyId\n s3key\n imagedesc\n offeredremote\n offeredonpremise\n isBundledService\n isVisible\n includedServices\n behavior\n ordinal\n taxexempt\n TaxOverride\n locations\n CourseSettings\n Classification\n createdAt\n updatedAt\n }\n client {\n id\n userId\n currency\n accountbalance\n stripeCustomerId\n companyId\n defaultpartialcc\n ClientInfo\n Notes\n createdAt\n updatedAt\n }\n order {\n id\n desc\n type\n orderNo\n companyId\n clientId\n providerId\n currency\n subtotal\n servicechargeamt\n taxamt\n total\n providerPayAmt\n status\n orderSummary\n orderReceipt\n taxrate\n bookingAddress\n legaltermsAcceptedAt\n clientnotes\n Notes\n bookedByAdmin\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const getTaxRates = /* GraphQL */ `\n query GetTaxRates($id: ID!) {\n getTaxRates(id: $id) {\n id\n countrycode\n provstatecode\n rate\n createdAt\n updatedAt\n }\n }\n`;\nexport const listTaxRatess = /* GraphQL */ `\n query ListTaxRatess(\n $filter: ModelTaxRatesFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listTaxRatess(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n countrycode\n provstatecode\n rate\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getRepeatApptCreation = /* GraphQL */ `\n query GetRepeatApptCreation($id: ID!, $datakey: String!) {\n getRepeatApptCreation(id: $id, datakey: $datakey) {\n id\n datakey\n repeatCount\n repeatUnit\n numOfApptsCreated\n active\n processedStatus\n currentEndDate\n originalStartDate\n originalEndDate\n extented\n createdAt\n updatedAt\n }\n }\n`;\nexport const listRepeatApptCreations = /* GraphQL */ `\n query ListRepeatApptCreations(\n $id: ID\n $datakey: ModelStringKeyConditionInput\n $filter: ModelRepeatApptCreationFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listRepeatApptCreations(\n id: $id\n datakey: $datakey\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n datakey\n repeatCount\n repeatUnit\n numOfApptsCreated\n active\n processedStatus\n currentEndDate\n originalStartDate\n originalEndDate\n extented\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getEnvt = /* GraphQL */ `\n query GetEnvt($id: ID!) {\n getEnvt(id: $id) {\n id\n name\n createdAt\n updatedAt\n }\n }\n`;\nexport const listEnvts = /* GraphQL */ `\n query ListEnvts(\n $filter: ModelEnvtFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listEnvts(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n name\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getBookingRequest = /* GraphQL */ `\n query GetBookingRequest($id: ID!, $recordType: String!) {\n getBookingRequest(id: $id, recordType: $recordType) {\n id\n recordType\n data\n providerId\n accepted\n acceptedBy\n status\n createdAt\n updatedAt\n }\n }\n`;\nexport const listBookingRequests = /* GraphQL */ `\n query ListBookingRequests(\n $id: ID\n $recordType: ModelStringKeyConditionInput\n $filter: ModelBookingRequestFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listBookingRequests(\n id: $id\n recordType: $recordType\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n recordType\n data\n providerId\n accepted\n acceptedBy\n status\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getRequestMessages = /* GraphQL */ `\n query GetRequestMessages($id: ID!, $recordType: String!) {\n getRequestMessages(id: $id, recordType: $recordType) {\n id\n recordType\n bookingRequestId\n providerId\n data\n msg\n seqNum\n status\n createdAt\n updatedAt\n }\n }\n`;\nexport const listRequestMessagess = /* GraphQL */ `\n query ListRequestMessagess(\n $id: ID\n $recordType: ModelStringKeyConditionInput\n $filter: ModelRequestMessagesFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listRequestMessagess(\n id: $id\n recordType: $recordType\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n recordType\n bookingRequestId\n providerId\n data\n msg\n seqNum\n status\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getSystemErrorLog = /* GraphQL */ `\n query GetSystemErrorLog($companyId: String!, $createdAt: AWSDateTime!) {\n getSystemErrorLog(companyId: $companyId, createdAt: $createdAt) {\n companyId\n createdAt\n severity\n source\n line\n error\n updatedAt\n }\n }\n`;\nexport const listSystemErrorLogs = /* GraphQL */ `\n query ListSystemErrorLogs(\n $companyId: String\n $createdAt: ModelStringKeyConditionInput\n $filter: ModelSystemErrorLogFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listSystemErrorLogs(\n companyId: $companyId\n createdAt: $createdAt\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n companyId\n createdAt\n severity\n source\n line\n error\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getPublicAccessToken = /* GraphQL */ `\n query GetPublicAccessToken($id: ID!) {\n getPublicAccessToken(id: $id) {\n id\n role\n expiryDate\n createdAt\n updatedAt\n }\n }\n`;\nexport const listPublicAccessTokens = /* GraphQL */ `\n query ListPublicAccessTokens(\n $filter: ModelPublicAccessTokenFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listPublicAccessTokens(\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n role\n expiryDate\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getRefData = /* GraphQL */ `\n query GetRefData($refType: ID!, $refName: String!) {\n getRefData(refType: $refType, refName: $refName) {\n refType\n refName\n refValue\n refInt\n overrideValue\n createdAt\n updatedAt\n }\n }\n`;\nexport const listRefDatas = /* GraphQL */ `\n query ListRefDatas(\n $refType: ID\n $refName: ModelStringKeyConditionInput\n $filter: ModelRefDataFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listRefDatas(\n refType: $refType\n refName: $refName\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n refType\n refName\n refValue\n refInt\n overrideValue\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getStatistic = /* GraphQL */ `\n query GetStatistic($id: ID!, $dataPoint: String!) {\n getStatistic(id: $id, dataPoint: $dataPoint) {\n id\n dataPoint\n amount\n count\n createdAt\n updatedAt\n }\n }\n`;\nexport const listStatistics = /* GraphQL */ `\n query ListStatistics(\n $id: ID\n $dataPoint: ModelStringKeyConditionInput\n $filter: ModelStatisticFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listStatistics(\n id: $id\n dataPoint: $dataPoint\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n id\n dataPoint\n amount\n count\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getProspect = /* GraphQL */ `\n query GetProspect($companyId: ID!, $prospectId: String!) {\n getProspect(companyId: $companyId, prospectId: $prospectId) {\n companyId\n prospectId\n emailaddress\n firstname\n lastname\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n pageUrl\n message\n SearchParamsInfo\n createdAt\n updatedAt\n }\n }\n`;\nexport const listProspects = /* GraphQL */ `\n query ListProspects(\n $companyId: ID\n $prospectId: ModelStringKeyConditionInput\n $filter: ModelProspectFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listProspects(\n companyId: $companyId\n prospectId: $prospectId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n companyId\n prospectId\n emailaddress\n firstname\n lastname\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n pageUrl\n message\n SearchParamsInfo\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const searchProspects = /* GraphQL */ `\n query SearchProspects(\n $filter: SearchableProspectFilterInput\n $sort: SearchableProspectSortInput\n $limit: Int\n $nextToken: String\n $from: Int\n ) {\n searchProspects(\n filter: $filter\n sort: $sort\n limit: $limit\n nextToken: $nextToken\n from: $from\n ) {\n items {\n companyId\n prospectId\n emailaddress\n firstname\n lastname\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n longitude\n latitude\n pageUrl\n message\n SearchParamsInfo\n createdAt\n updatedAt\n }\n nextToken\n total\n }\n }\n`;\nexport const getManualBooking = /* GraphQL */ `\n query GetManualBooking($companyId: ID!, $recordId: String!) {\n getManualBooking(companyId: $companyId, recordId: $recordId) {\n companyId\n recordId\n emailaddress\n firstname\n lastname\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n message\n MetadataInfo\n createdAt\n updatedAt\n }\n }\n`;\nexport const listManualBookings = /* GraphQL */ `\n query ListManualBookings(\n $companyId: ID\n $recordId: ModelStringKeyConditionInput\n $filter: ModelManualBookingFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listManualBookings(\n companyId: $companyId\n recordId: $recordId\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n companyId\n recordId\n emailaddress\n firstname\n lastname\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n message\n MetadataInfo\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const searchManualBookings = /* GraphQL */ `\n query SearchManualBookings(\n $filter: SearchableManualBookingFilterInput\n $sort: SearchableManualBookingSortInput\n $limit: Int\n $nextToken: String\n $from: Int\n ) {\n searchManualBookings(\n filter: $filter\n sort: $sort\n limit: $limit\n nextToken: $nextToken\n from: $from\n ) {\n items {\n companyId\n recordId\n emailaddress\n firstname\n lastname\n phone\n addressoneline\n street\n city\n state\n country\n postalcode\n message\n MetadataInfo\n createdAt\n updatedAt\n }\n nextToken\n total\n }\n }\n`;\nexport const getAudit = /* GraphQL */ `\n query GetAudit($companyIdUserId: String!, $datetime: AWSDateTime!) {\n getAudit(companyIdUserId: $companyIdUserId, datetime: $datetime) {\n companyIdUserId\n datetime\n compResId\n resType\n companyId\n userFN\n userLN\n userEmail\n userRole\n userAction\n data\n createdAt\n updatedAt\n }\n }\n`;\nexport const listAudits = /* GraphQL */ `\n query ListAudits(\n $companyIdUserId: String\n $datetime: ModelStringKeyConditionInput\n $filter: ModelAuditFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listAudits(\n companyIdUserId: $companyIdUserId\n datetime: $datetime\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n companyIdUserId\n datetime\n compResId\n resType\n companyId\n userFN\n userLN\n userEmail\n userRole\n userAction\n data\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const auditByResource = /* GraphQL */ `\n query AuditByResource(\n $compResId: String\n $datetime: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelAuditFilterInput\n $limit: Int\n $nextToken: String\n ) {\n auditByResource(\n compResId: $compResId\n datetime: $datetime\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n companyIdUserId\n datetime\n compResId\n resType\n companyId\n userFN\n userLN\n userEmail\n userRole\n userAction\n data\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const auditByCompany = /* GraphQL */ `\n query AuditByCompany(\n $companyId: String\n $datetime: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelAuditFilterInput\n $limit: Int\n $nextToken: String\n ) {\n auditByCompany(\n companyId: $companyId\n datetime: $datetime\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n companyIdUserId\n datetime\n compResId\n resType\n companyId\n userFN\n userLN\n userEmail\n userRole\n userAction\n data\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getIntegrationToken = /* GraphQL */ `\n query GetIntegrationToken(\n $companyIdProviderId: String!\n $serviceName: String!\n ) {\n getIntegrationToken(\n companyIdProviderId: $companyIdProviderId\n serviceName: $serviceName\n ) {\n companyIdProviderId\n serviceName\n TokenInfo\n companyId\n createdAt\n updatedAt\n }\n }\n`;\nexport const listIntegrationTokens = /* GraphQL */ `\n query ListIntegrationTokens(\n $companyIdProviderId: String\n $serviceName: ModelStringKeyConditionInput\n $filter: ModelIntegrationTokenFilterInput\n $limit: Int\n $nextToken: String\n $sortDirection: ModelSortDirection\n ) {\n listIntegrationTokens(\n companyIdProviderId: $companyIdProviderId\n serviceName: $serviceName\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n sortDirection: $sortDirection\n ) {\n items {\n companyIdProviderId\n serviceName\n TokenInfo\n companyId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const integrationTokensByCompany = /* GraphQL */ `\n query IntegrationTokensByCompany(\n $companyId: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelIntegrationTokenFilterInput\n $limit: Int\n $nextToken: String\n ) {\n integrationTokensByCompany(\n companyId: $companyId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n companyIdProviderId\n serviceName\n TokenInfo\n companyId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\n","import * as queries from \"../graphql/queries\";\n\nimport API, { graphqlOperation } from \"@aws-amplify/api\";\n\n/**\n * Function to trigger all hooks associated with the id and hookName\n * @param {Object} data - The data to be sent to an endpoint\n * @param {string} id - Used to retrieve integration refData - integration|${id}\n * @param {string} hookName - Used to reference the appropriate hook\n * @returns {bool}\n */\nasync function TriggerManager(data, id, hookName) {\n console.log(\"this is the data from TriggerManager\", data);\n console.log(\"this is the hookName\", hookName);\n\n //function to send data to a list of urls\n function invokeTrigger(urlList, data) {\n let urls = urlList;\n for (let i = 0; i < urls.length; i++) {\n window\n .fetch(urls[i], {\n mode: \"no-cors\",\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(data),\n })\n .then((response) => {\n console.log(\"Performed hook for url\", urls[i]);\n })\n .catch((error) => {\n console.error(\"Error performing hook for url\", urls[i], error);\n });\n }\n }\n\n try {\n const exists = await API.graphql(\n graphqlOperation(queries.getRefData, {\n refType: `integration|${id}`,\n refName: \"data-integration\",\n })\n );\n console.log(\"exists from TriggerManager\", exists);\n\n //check to see if refData exists\n if (exists.data.getRefData) {\n console.log(\n \"overrideValue from TriggerManager\",\n JSON.parse(exists.data.getRefData.overrideValue)\n );\n let overrideValue = JSON.parse(exists.data.getRefData.overrideValue);\n\n //check to see if a hook with the hookName exists\n if (overrideValue.hooks && overrideValue.hooks[hookName]) {\n console.log(\n \"found hook name!\",\n hookName,\n overrideValue.hooks[hookName]\n );\n let hook = overrideValue.hooks[hookName];\n let hookUrls = [];\n for (let i = 0; i < hook.length; i++) {\n hookUrls.push(hook[i].url);\n }\n console.log(\"hookUrls from TriggerManager\", hookUrls);\n invokeTrigger(hookUrls, data);\n } else {\n console.log(\"unable to find hook\", hookName);\n return;\n }\n } else {\n console.log(\"integration refData does not exist for id\", id);\n return;\n }\n } catch (e) {\n console.log(\"error in getting refdata\", e);\n }\n}\n\nexport { TriggerManager };\n","import { atom } from \"jotai\";\n\nexport const selectedProviderAtom = atom(null);\n\nexport const selectedProviderServicesAtom = atom((get) => {\n const provider = get(selectedProviderAtom);\n if (provider && provider.servicetypes && provider.servicetypes.items) {\n const providerServices = provider.servicetypes.items.map(\n (item) => item.servicetype\n );\n const activeProviderServices = providerServices.filter((service) => {\n return (\n service.active !== false &&\n service.deleted !== true &&\n service.isVisible !== false\n );\n });\n const sortedServices = activeProviderServices.sort((s1, s2) => {\n if (s1?.category?.ordinal > s2?.category?.ordinal) return 1;\n if (s1?.category?.ordinal < s2?.category?.ordinal) return -1;\n if (s1?.category?.id === s2?.category?.id) {\n if (s1.ordinal > s2.ordinal) return 1;\n if (s1.ordinal < s2.ordinal) return -1;\n return 0;\n }\n return 0;\n });\n\n return sortedServices;\n }\n\n return [];\n});\n\nexport const allServicesAtom = atom(null);\n\nexport const allActiveServicesAtom = atom((get) => {\n const allServices = get(allServicesAtom);\n if (!allServices || !Array.isArray(allServices)) {\n return [];\n }\n\n const activeServices = allServices.filter((service) => {\n return (\n service.active !== false &&\n service.deleted !== true &&\n service.isVisible !== false\n );\n });\n\n return activeServices;\n});\n\nexport const allPublicServicesAtom = atom((get) => {\n const activeServices = get(allActiveServicesAtom);\n if (!activeServices || !Array.isArray(activeServices)) {\n return [];\n }\n const publicServices = activeServices.filter(\n (service) => service.behavior !== \"INTERNAL\"\n );\n\n return publicServices;\n});\n","import API, { graphqlOperation } from \"@aws-amplify/api\";\n\nasync function execWrite(query) {\n try {\n const { opname, op, input } = query;\n const resp = await API.graphql(graphqlOperation(op, { input: input }));\n if (resp && resp.data && resp.data.hasOwnProperty(opname)) {\n return {\n ...resp.data[opname],\n };\n } else {\n return {\n error: \"something went wrong please try again later\",\n };\n }\n } catch (error) {\n return {\n error,\n };\n }\n}\n\nasync function execRead(query) {\n try {\n const { opname, op, filter, limit } = query;\n let resp = null;\n let nextToken = null;\n const items = [];\n do {\n resp = await API.graphql(\n graphqlOperation(op, {\n filter,\n ...(limit ? { limit } : { limit: 10 }),\n nextToken,\n })\n );\n if (resp && resp.data && resp.data.hasOwnProperty(opname)) {\n //TODO: check if hasOwnProperty should be used or [opname]\n items.push(...resp.data[opname].items);\n nextToken = resp.data[opname].nextToken;\n } else {\n return {\n error: \"something went wrong please try again later\",\n };\n }\n } while (nextToken);\n return {\n items,\n };\n } catch (error) {\n return {\n error,\n };\n }\n}\n\nasync function execReadBySortkey(query) {\n try {\n const { opname, op, id, skey, filter, limit, sortDirection } = query;\n let resp = null;\n let nextToken = null;\n const items = [];\n do {\n // console.log(\"nexttoken:\" + nextToken);\n resp = await API.graphql(\n graphqlOperation(op, {\n ...id,\n ...skey,\n filter,\n ...(limit ? { limit } : { limit: 10 }),\n ...(sortDirection ? { sortDirection } : { sortDirection: \"ASC\" }),\n nextToken,\n })\n );\n // console.log(resp);\n if (resp && resp.data && resp.data.hasOwnProperty(opname)) {\n //TODO: check if hasOwnProperty should be used or [opname]\n items.push(...resp.data[opname].items);\n nextToken = resp.data[opname].nextToken;\n } else {\n return {\n error: \"something went wrong please try again later\",\n };\n }\n } while (nextToken);\n return {\n items,\n };\n } catch (error) {\n return {\n error,\n };\n }\n}\n\nasync function execReadByPK(query) {\n try {\n const { opname, op, id, filter, limit, sortDirection } = query;\n let resp = null;\n let nextToken = null;\n const items = [];\n do {\n console.log(\"nexttoken:\" + nextToken);\n resp = await API.graphql(\n graphqlOperation(op, {\n ...id,\n filter,\n ...(limit ? { limit } : { limit: process.env.REACT_APP_LISTLIMIT }),\n ...(sortDirection ? { sortDirection } : { sortDirection: \"ASC\" }),\n nextToken,\n })\n );\n if (resp && resp.data && resp.data.hasOwnProperty(opname)) {\n //TODO: check if hasOwnProperty should be used or [opname]\n items.push(...resp.data[opname].items);\n nextToken = resp.data[opname].nextToken;\n } else {\n return {\n error: \"something went wrong please try again later\",\n };\n }\n } while (nextToken);\n return {\n items,\n };\n } catch (error) {\n return {\n error,\n };\n }\n}\n\nexport { execRead, execWrite, execReadBySortkey, execReadByPK };\n","// ************************************\n// Service module to handle messaging common functionality //\n// ************************************\n\nimport API, { graphqlOperation } from \"@aws-amplify/api\";\n\nasync function sendSms(to, msg, countryCode) {\n let from = await getSenderNumberByCountry(countryCode);\n const result = await API.post(\"messaging\", \"/send\", {\n body: {\n from,\n to,\n msg,\n },\n });\n console.log(JSON.stringify(result));\n}\n\nasync function getSenderNumberByCountry(countryCode) {\n const getRefData = /* GraphQL */ `\n query GetRefData($refType: ID!, $refName: String!) {\n getRefData(refType: $refType, refName: $refName) {\n refType\n refName\n refValue\n }\n }\n `;\n let resp = await API.graphql(\n graphqlOperation(getRefData, {\n refType: \"TWILIO_FROM_NUM\",\n refName: countryCode,\n })\n );\n if (resp.data.getRefData) return resp.data.getRefData.refValue;\n else {\n resp = await API.graphql(\n graphqlOperation(getRefData, {\n refType: \"TWILIO_FROM_NUM\",\n refName: \"DEFAULT\",\n })\n );\n if (resp.data.getRefData) return resp.data.getRefData.refValue;\n }\n return process.env.REACT_APP_TWILIO_SMS_SEND_NUMBER;\n}\n\nexport { sendSms, getSenderNumberByCountry };\n","import {\n Box,\n Button,\n FormControl,\n Grid,\n TextField,\n Typography,\n useMediaQuery,\n} from \"@mui/material\";\nimport React, { useEffect, useState } from \"react\";\nimport MainNavBar from \"../components/MainNavbar\";\nimport { withRouter } from \"react-router-dom\";\nimport Auth from \"@aws-amplify/auth\";\nimport API, { graphqlOperation } from \"@aws-amplify/api\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Visibility from \"@mui/icons-material/Visibility\";\nimport VisibilityOff from \"@mui/icons-material/VisibilityOff\";\nimport { trackRegistration, trackLogin } from \"../modules/Tracking\";\nimport Cache from \"@aws-amplify/cache\";\nimport {\n getUser,\n userByCompany,\n clientByUserId,\n clientPackageByUser,\n} from \"../graphql/queries\";\nimport {\n createUser,\n updateUser,\n updateClient,\n updateClientPackage,\n} from \"../graphql/mutations\";\nimport {\n getClientIfExists,\n createClientRecord,\n deleteHeldSlots,\n} from \"../modules/BookingService\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\nimport {\n isGuestCheckoutAllowed,\n isGuestOnlyCheckout,\n} from \"../user/checkoutOption\";\nimport { KeyboardArrowLeft } from \"@mui/icons-material\";\nimport { useContext } from \"react\";\nimport { StoreContext } from \"../context/StoreContext\";\n\nconst text_field_style = { width: \"100%\", maxWidth: \"300px\" };\n\nfunction SignIn(props) {\n const { actions, state } = useContext(StoreContext);\n const [email, setEmail] = useState(\"\");\n const [pasw, setPasw] = useState(\"\");\n const [loginClicked, setLoginClicked] = useState(false);\n const [errorMsg, setErrorMsg] = useState(\"\");\n const [newPaswRequired, setNewPaswRequired] = useState(false);\n const [newPasw, setNewPasW] = useState();\n const [user, setUser] = useState(\"\");\n const [showPassword, setShowPassword] = React.useState(false);\n const [showNewPassword, setShowNewPassword] = React.useState(false);\n const smallerScreen = useMediaQuery(\"(min-width:600px)\");\n\n useEffect(() => {\n console.log(\"Props to SignIN\", props);\n }, [props]);\n\n const handleClickShowNewPassword = () => setShowNewPassword((show) => !show);\n\n const handleMouseDownPassword = (event) => {\n event.preventDefault();\n };\n const handleClickShowPassword = () => setShowPassword((show) => !show);\n\n const backButtonHandler = async () => {\n console.log(\"Back button clicked\");\n if (props?.location?.state?.fromPath) {\n if (props.location.state.fromPath === \"/confirm-order\") {\n try {\n if (state.bookingState.sdt === \"package\") {\n if (state.bookingState.heldPackageSlots) {\n await deleteHeldSlots(state.bookingState.heldPackageSlots);\n state.bookingState.heldPackageSlots = [];\n if (state.bookingState.hasOwnProperty(\"packageBookedSlots\")) {\n state.bookingState.packageBookedSlots = [];\n }\n }\n }\n\n if (state.bookingState.sdt === \"forever\") {\n await deleteHeldSlots(state.bookingState.heldSlots);\n state.bookingState.heldSlots = [];\n state.bookingState.apptDates = [];\n state.bookingState.repeatingApptList = [];\n\n // state.bookingState.repeatStartDate = null;\n //Appears to be some degredation of information across here?\n }\n\n if (state.bookingState.sdt === \"single\") {\n await deleteHeldSlots(state.bookingState.heldSlots);\n state.bookingState.heldSlots = [];\n /* if (state.bookingState.hasOwnProperty(\"selectedslot\")) {\n state.bookingState.selectedslot = {};\n } */\n }\n } catch (e) {\n console.log(\"error while deleting the slots\");\n }\n props.history.push(\"/choose-timeslot\");\n return;\n }\n props.history.push(props.location.state.fromPath);\n }\n };\n\n async function handleChangePassword() {\n try {\n setLoginClicked(true);\n const userWithNewPassword = await Auth.completeNewPassword(user, newPasw);\n console.log(\"userWithNewPassword\", userWithNewPassword);\n await doPostSignInProcess();\n } catch (err) {\n setLoginClicked(false);\n setErrorMsg(\n err.message\n ? err.message\n : \"There was an error in processing your request.\"\n );\n }\n }\n\n const handleEnterKeyDown = (e) => {\n if (e.key === \"Enter\") {\n handleSignin();\n }\n };\n async function handleSignin() {\n setLoginClicked(true);\n try {\n const user = await Auth.signIn(email, pasw);\n setUser(user);\n if (user.challengeName === \"NEW_PASSWORD_REQUIRED\") {\n setNewPaswRequired(true);\n setLoginClicked(false);\n } else {\n await doPostSignInProcess();\n }\n } catch (err) {\n if (err.code === \"PasswordResetRequiredException\") {\n props.history.push(\"/forgot\", {\n fromPath: props.location.state?.fromPath\n ? props.location.state?.fromPath\n : \"/\",\n stage: 2,\n email,\n });\n }\n console.log(\"error\", err);\n setLoginClicked(false);\n setErrorMsg(`Login failed. ${err.message ? err.message : \"\"}`);\n return;\n }\n }\n\n async function doPostSignInProcess() {\n setLoginClicked(true);\n\n // look up user and store\n const authUser = await Auth.currentAuthenticatedUser({\n bypassCache: true,\n });\n if (authUser.attributes.email === process.env.REACT_APP_MB_GUEST_EMAIL) {\n console.log(\"non-guest user not logged in\");\n setLoginClicked(false);\n return;\n }\n const data = await API.graphql(\n graphqlOperation(getUser, {\n id: authUser.username,\n })\n );\n let clientRecord;\n if (data.data.getUser) {\n if (\n data.data.getUser.companyId !== props.company.id &&\n data.data.getUser.role !== \"MARKETBOX_ADMIN\"\n ) {\n setErrorMsg(\n \"Please create an account with different email address using the Sign Up link above.\"\n );\n Cache.removeItem(\"user\");\n // logout the user of different company\n await Auth.signOut();\n // log back the guest user in\n const user = await Auth.signIn(\n process.env.REACT_APP_MB_GUEST_EMAIL,\n process.env.REACT_APP_MB_GUEST_PWD\n );\n setLoginClicked(false);\n return;\n }\n trackLogin(data.data.getUser);\n const prevLoginInfo = JSON.parse(data.data.getUser.LoginInfo);\n const newLoginCount = prevLoginInfo ? ++prevLoginInfo.loginCount : 1;\n const loginInfo = {\n lastLoginDate: new Date(),\n loginCount: newLoginCount,\n };\n const LoginInfo = JSON.stringify(loginInfo);\n const updateMBUserInput = {\n role: data.data.getUser.role,\n emailaddress: data.data.getUser.emailaddress,\n id: authUser.username,\n LoginInfo,\n };\n await API.graphql(\n graphqlOperation(updateUser, { input: updateMBUserInput })\n );\n clientRecord = await getClientIfExists({\n userid: data.data.getUser.id,\n companyid: props.company.id,\n });\n if (!clientRecord) {\n const clientRecord = await createClientRecord(\n data.data.getUser,\n props.company\n );\n if (clientRecord && clientRecord.error) {\n setLoginClicked(false);\n return {\n error: clientRecord.error,\n };\n }\n props.setUser(authUser);\n props.setClient({\n isNewClient: true,\n client: clientRecord,\n });\n } else {\n props.setUser(authUser);\n props.setClient({\n isNewClient: false,\n client: clientRecord,\n });\n }\n } else {\n await handleNewUserLogin();\n }\n console.log(props);\n props.history.push(\n props.location.state?.fromPath ? props.location.state?.fromPath : \"/\"\n );\n }\n async function addUserRole(username, groupName, action) {\n const result = await API.post(\"changeuserrole\", \"/changeuserrole\", {\n body: {\n username,\n groupName,\n action,\n },\n });\n }\n\n async function handleNewUserLogin() {\n // console.log(\"signing in new user\");\n const newuser = await Auth.currentAuthenticatedUser({\n bypassCache: true,\n });\n if (newuser.attributes.email === process.env.REACT_APP_MB_GUEST_EMAIL) {\n console.log(\"new non-guest user login is unsuccessful\");\n setLoginClicked(false);\n return false;\n }\n await addUserRole(email, \"Client\", \"ADD\");\n await Auth.signOut();\n await Auth.signIn(email, pasw);\n const newloggedinuser = await Auth.currentAuthenticatedUser({\n bypassCache: true,\n });\n const loginInfo = {\n lastLoginDate: new Date(),\n loginCount: 1,\n };\n const LoginInfo = JSON.stringify(loginInfo);\n const newMBUserInput = {\n username: newloggedinuser.username,\n id: newloggedinuser.signInUserSession.idToken.payload.sub,\n emailaddress: newloggedinuser.signInUserSession.idToken.payload.email,\n firstname: newloggedinuser.signInUserSession.idToken.payload.given_name,\n lastname: newloggedinuser.signInUserSession.idToken.payload.family_name,\n registered: true,\n active: true,\n role: \"CLIENT\",\n companyId: props.company.id,\n userCompanyId: props.company.id,\n mobilephone:\n newloggedinuser.signInUserSession.idToken.payload.phone_number,\n LoginInfo,\n phonepref: \"MOBILE\",\n contactconsent: true,\n contactconsentdatetime: new Date().toISOString(),\n };\n const newMBUser = await API.graphql(\n graphqlOperation(createUser, { input: newMBUserInput })\n );\n trackRegistration(newMBUser && newMBUser.data && newMBUser.data.createUser);\n trackLogin(newMBUser && newMBUser.data && newMBUser.data.createUser);\n const usersByCompanyResult = await API.graphql(\n graphqlOperation(userByCompany, {\n companyId: props.company.id,\n roleEmailaddress: {\n beginsWith: {\n role: \"CLIENT\",\n emailaddress:\n newloggedinuser.signInUserSession.idToken.payload.email,\n },\n },\n filter: {\n and: [\n {\n emailaddress: {\n eq: newloggedinuser.signInUserSession.idToken.payload.email,\n },\n },\n { registered: { eq: false } },\n { deleted: { ne: true } },\n ],\n },\n limit: 1000,\n })\n );\n //console.log(\"users by company result register\", usersByCompanyResult);\n\n if (\n usersByCompanyResult &&\n usersByCompanyResult.data.userByCompany.items.length > 0\n ) {\n const clientData = usersByCompanyResult.data.userByCompany.items[0];\n const clientPackagesResult = await API.graphql(\n graphqlOperation(clientPackageByUser, {\n userId: clientData.id,\n })\n );\n // console.log(\"client packages\", clientPackagesResult);\n\n if (\n clientPackagesResult &&\n clientPackagesResult.data.clientPackageByUser.items.length > 0\n ) {\n clientPackagesResult.data.clientPackageByUser.items.map(\n async (item) => {\n const updateClientPackageResult = await API.graphql(\n graphqlOperation(updateClientPackage, {\n input: {\n id: item.id,\n userId: newloggedinuser.signInUserSession.idToken.payload.sub,\n clientPackageUserId:\n newloggedinuser.signInUserSession.idToken.payload.sub,\n },\n })\n );\n // console.log(\"update package result\", updateClientPackageResult);\n }\n );\n }\n const deleteOldUserProfile = await API.graphql(\n graphqlOperation(updateUser, {\n input: { id: clientData.id, deleted: true },\n })\n );\n\n // console.log(\"delete result\", deleteOldUserProfile);\n const clientProfile = await API.graphql(\n graphqlOperation(clientByUserId, {\n userId: clientData.id,\n })\n );\n const clientId = clientProfile.data.clientByUserId.items[0].id;\n // console.log(\"existing client profile\", clientProfile);\n\n const updateClientResult = await API.graphql(\n graphqlOperation(updateClient, {\n input: {\n id: clientId,\n userId: newloggedinuser.signInUserSession.idToken.payload.sub,\n clientUserId: newloggedinuser.signInUserSession.idToken.payload.sub,\n },\n })\n );\n // console.log(\"update client result: \", updateClientResult);\n props.setUser(newloggedinuser);\n props.setClient({\n isNewClient: false,\n client: updateClientResult.data.updateClient,\n });\n setLoginClicked(false);\n return true;\n }\n const clientRecord = await createClientRecord(\n newMBUser.data.createUser,\n props.company\n );\n props.setUser(newloggedinuser);\n props.setClient({\n isNewClient: true,\n client: clientRecord,\n });\n setLoginClicked(false);\n return true;\n }\n return (\n <div>\n <MainNavBar\n company={props.company}\n user={null}\n guestUser={true}\n signOutOp={props.signOutOp}\n currentPath={props.location.pathname}\n banner={false}\n publicsitesettings={props.publicsitesettings}\n />\n <div\n style={{\n width: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n flexDirection: \"column\",\n gap: \"1rem\",\n marginTop: \"115px\",\n padding: \"0 1rem\",\n }}\n >\n <Grid container justifyContent=\"flex-start\">\n {smallerScreen && <Grid item xs={3}></Grid>}\n <Grid item>\n {/* component={Link} */}\n <Button\n sx={{\n cursor: \"pointer\",\n marginLeft: !smallerScreen ? \"-1.25rem\" : \"unset\",\n }}\n variant=\"text\"\n size=\"small\"\n startIcon={\n <KeyboardArrowLeft\n size=\"small\"\n style={{ marginRight: \"5px\" }}\n />\n }\n color=\"primary\"\n onClick={backButtonHandler}\n >\n Back\n </Button>\n </Grid>\n {smallerScreen && <Grid item xs={6}></Grid>}\n </Grid>\n\n <Typography variant=\"h3\" sx={{ textAlign: \"center\" }}>\n {`Welcome to ${props.company.name}`}\n </Typography>\n {newPaswRequired && (\n <>\n {errorMsg && (\n <Box\n style={{\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"0.5rem\",\n marginBottom: \"1rem\",\n }}\n >\n <Typography\n variant=\"body2\"\n sx={{ fontSize: \"1rem\" }}\n style={{ color: \"red\" }}\n >\n {errorMsg}\n </Typography>\n </Box>\n )}\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n\n gap: \"1rem\",\n width: \"100%\",\n }}\n >\n <TextField\n sx={{\n ...text_field_style,\n alignSelf: \"center\",\n maxWidth: !smallerScreen ? \"unset\" : \"300px\",\n backgroundColor: \"#fff\",\n \"&.Mui-focused\": {\n backgroundColor: \"#fff\",\n },\n \"&.Mui-focused .MuiInputAdornment-root\": {\n backgroundColor: \"#fff\",\n },\n }}\n type={showNewPassword ? \"text\" : \"password\"}\n InputProps={{\n disableUnderline: true,\n endAdornment: (\n <InputAdornment position=\"end\">\n <IconButton\n aria-label=\"toggle password visibility\"\n onClick={handleClickShowNewPassword}\n onMouseDown={handleMouseDownPassword}\n edge=\"end\"\n >\n {showNewPassword ? <VisibilityOff /> : <Visibility />}\n </IconButton>\n </InputAdornment>\n ),\n }}\n variant=\"outlined\"\n size=\"small\"\n id=\"newpassword\"\n label=\"New password\"\n onChange={(e) => {\n setNewPasW(e.target.value);\n if (errorMsg) setErrorMsg();\n }}\n />\n </Box>\n <Button\n variant=\"contained\"\n sx={{ ...text_field_style }}\n onClick={handleChangePassword}\n disabled={loginClicked}\n >\n Change password\n {loginClicked && (\n <CircularProgress size={12} style={{ color: \"#fff\" }} />\n )}\n </Button>\n </>\n )}\n {!newPaswRequired && !isGuestOnlyCheckout(props.publicsitesettings) && (\n <>\n <Box\n style={{\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"0.5rem\",\n marginBottom: \"1rem\",\n }}\n >\n <Typography variant=\"body2\" sx={{ fontSize: \"1rem\" }}>\n Log in to your account\n </Typography>\n {props.company?.clientMayCreateAccount ? (\n <Typography variant=\"body2\" sx={{ fontSize: \"1rem\" }}>\n Don't have an account?{\" \"}\n <Box\n sx={{\n display: \"inline\",\n fontWeight: 700,\n color: \"primary.main\",\n cursor: \"pointer\",\n }}\n onClick={(event) =>\n props.history.push(\"/signup\", {\n fromPath: props.location.state?.fromPath\n ? props.location.state?.fromPath\n : \"/\",\n })\n }\n >\n Sign up\n </Box>{\" \"}\n instead\n </Typography>\n ) : (\n <></>\n )}\n </Box>\n {errorMsg && (\n <Box\n style={{\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"0.5rem\",\n marginBottom: \"1rem\",\n }}\n >\n <Typography\n variant=\"body2\"\n sx={{ fontSize: \"1rem\" }}\n style={{ color: \"red\" }}\n >\n {errorMsg}\n </Typography>\n </Box>\n )}\n <TextField\n sx={{\n ...text_field_style,\n maxWidth: !smallerScreen ? \"unset\" : \"300px\",\n }}\n InputProps={{ disableUnderline: true }}\n variant=\"outlined\"\n size=\"small\"\n id=\"email\"\n label=\"Email\"\n onChange={(e) => {\n let ev = e.target.value;\n ev = ev.trim().toLowerCase();\n setEmail(ev);\n if (errorMsg) setErrorMsg();\n }}\n onKeyDown={handleEnterKeyDown}\n />\n\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n\n gap: \"6px\",\n width: \"100%\",\n }}\n >\n <TextField\n sx={{\n ...text_field_style,\n alignSelf: \"center\",\n maxWidth: !smallerScreen ? \"unset\" : \"300px\",\n }}\n type={showPassword ? \"text\" : \"password\"}\n InputProps={{\n disableUnderline: true,\n endAdornment: (\n <InputAdornment position=\"end\">\n <IconButton\n aria-label=\"toggle password visibility\"\n onClick={handleClickShowPassword}\n onMouseDown={handleMouseDownPassword}\n edge=\"end\"\n >\n {showPassword ? <VisibilityOff /> : <Visibility />}\n </IconButton>\n </InputAdornment>\n ),\n }}\n variant=\"outlined\"\n size=\"small\"\n id=\"password\"\n label=\"Password\"\n onChange={(e) => {\n setPasw(e.target.value);\n if (errorMsg) setErrorMsg();\n }}\n onKeyDown={handleEnterKeyDown}\n />\n\n <Box\n sx={{\n ...text_field_style,\n color: \"primary.main\",\n cursor: \"pointer\",\n alignSelf: \"center\",\n fontFamily: \"Roboto\",\n fontSize: \"1rem\",\n maxWidth: !smallerScreen ? \"unset\" : \"300px\",\n textDecoration: \"underline\",\n }}\n onClick={(event) =>\n props.history.push(\"/forgot\", {\n fromPath: props.location.state?.fromPath\n ? props.location.state?.fromPath\n : \"/\",\n })\n }\n >\n Forgot password?\n </Box>\n </Box>\n\n <Button\n variant=\"contained\"\n sx={{\n ...text_field_style,\n maxWidth: !smallerScreen ? \"unset\" : \"300px\",\n marginTop: \"1rem\",\n }}\n onClick={handleSignin}\n disabled={loginClicked}\n >\n {loginClicked ? (\n <CircularProgress size={12} sx={{ color: \"primary.main\" }} />\n ) : (\n \"Log In\"\n )}\n </Button>\n </>\n )}\n {props.company?.clientMayCreateAccount !== false &&\n isGuestCheckoutAllowed(props.publicsitesettings) && (\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"1rem\",\n width: \"100%\",\n }}\n >\n {!isGuestOnlyCheckout(props.publicsitesettings) && (\n <Typography variant=\"body2\" sx={{ fontSize: \"1rem\" }}>\n OR\n </Typography>\n )}\n <Button\n variant=\"outlined\"\n onClick={(event) =>\n props.history.push(\"/signup\", {\n fromPath: props.location.state?.fromPath\n ? props.location.state?.fromPath\n : \"/\",\n guestMode: true,\n })\n }\n sx={{\n ...text_field_style,\n maxWidth: !smallerScreen ? \"unset\" : \"300px\",\n }}\n >\n Continue as guest\n </Button>\n </Box>\n )}\n </div>\n </div>\n );\n}\n\nexport default withRouter(SignIn);\n","import {\n Box,\n Button,\n TextField,\n Typography,\n useMediaQuery,\n} from \"@mui/material\";\nimport React, { useState } from \"react\";\nimport MainNavBar from \"../components/MainNavbar\";\nimport { withRouter } from \"react-router-dom\";\nimport MuiPhoneNumber from \"material-ui-phone-number\";\nimport Auth from \"@aws-amplify/auth\";\nimport API, { graphqlOperation } from \"@aws-amplify/api\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Visibility from \"@mui/icons-material/Visibility\";\nimport VisibilityOff from \"@mui/icons-material/VisibilityOff\";\nimport { trackRegistration, trackLogin } from \"../modules/Tracking\";\nimport {\n userByCompany,\n clientByUserId,\n clientPackageByUser,\n getUser,\n} from \"../graphql/queries\";\nimport {\n createUser,\n updateUser,\n updateClient,\n updateClientPackage,\n createClient,\n} from \"../graphql/mutations\";\nimport { createClientRecord } from \"../modules/BookingService\";\nimport { v4 } from \"uuid\";\nimport { isGuestOnlyCheckout } from \"../user/checkoutOption\";\nimport { TriggerManager } from \"../modules/TriggerManager\";\n\nimport Cache from \"@aws-amplify/cache\";\nconst text_field_style = { width: \"100%\", maxWidth: \"300px\" };\nconst phone_field_style = {\n width: \"100%\",\n maxWidth: \"300px\",\n \"& svg\": { height: \"1em\" },\n};\n\nfunction SignUp(props) {\n const [guestMode, setGuestMode] = useState(\n isGuestOnlyCheckout(props.publicsitesettings)\n ? true\n : props.location?.state?.guestMode\n );\n const [firstName, setFirstName] = useState(\"\");\n const [lastName, setLastName] = useState(\"\");\n const [email, setEmail] = useState(\"\");\n const [pasw, setPasw] = useState(\"\");\n const [phoneNumber, setPhoneNumber] = useState(\"\");\n const [showConfirmationSection, setShowConfirmationSection] = useState(false);\n const [confirmationCode, setConfirmationCode] = useState(\"\");\n const [errorMsg, setErrorMsg] = useState(\"\");\n const [error, setError] = useState();\n const [signupClicked, setSignupClicked] = useState(false);\n const [codeIsResent, setCodeIsResent] = useState(false);\n const [showPassword, setShowPassword] = React.useState(false);\n\n const smallerScreen = useMediaQuery(\"(min-width:600px)\");\n\n const handleClickShowPassword = () => setShowPassword((show) => !show);\n\n const handleMouseDownPassword = (event) => {\n event.preventDefault();\n };\n function formNotValid() {\n if (!validEmail()) {\n setError(true);\n setErrorMsg(\"Please provide a valid email address\");\n return true;\n }\n if (!firstName) {\n setError(true);\n setErrorMsg(\"Please provide first name\");\n return true;\n } else if (!lastName) {\n setError(true);\n setErrorMsg(\"Please provide last name\");\n return true;\n } else if (!phoneNumber) {\n setError(true);\n setErrorMsg(\"Please provide a valid phone number\");\n return true;\n }\n return false;\n }\n\n function validEmail() {\n // var mailformat =\n // /^([A-Za-z0-9_\\-\\.])+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4})$/;\n var re =\n /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n if (email?.match(re)) {\n return true;\n } else {\n return false;\n }\n }\n\n async function checkAndhandleUnconfirmedAccount(email) {\n try {\n const { data: userDetails } = await API.get(\n \"changeuserrole\",\n \"/getuser\",\n {\n queryStringParameters: {\n username: email,\n },\n }\n );\n //FORCE_CHANGE_PASSWORD,RESET_REQUIRED,UNCONFIRMED\n if (userDetails?.UserStatus === \"UNCONFIRMED\") {\n // get user from db using userDetails.Username\n const {\n data: { getUser: mbUserInfo },\n } = await API.graphql(\n graphqlOperation(getUser, {\n id: userDetails.Username,\n })\n );\n if (!(mbUserInfo?.id === userDetails.Username)) {\n // if user does not exist in the db, delete cognito entry\n await API.post(\"changeuserrole\", \"/deleteuser\", {\n body: {\n username: userDetails.Username,\n },\n });\n await new Promise((resolve) => setTimeout(resolve, 1000)); // to give cognito some time to clear the record\n }\n }\n } catch (e) {\n console.log(e);\n }\n }\n async function createAccount() {\n try {\n setSignupClicked(true);\n if (formNotValid()) return;\n await checkAndhandleUnconfirmedAccount(email);\n setErrorMsg();\n setError();\n const cleanedPhonNumber = phoneNumber.match(/\\d+/g).join(\"\");\n console.log(phoneNumber, cleanedPhonNumber);\n\n const { codeDeliveryDetails } = await Auth.signUp({\n username: email,\n password: pasw,\n attributes: {\n email,\n phone_number: `+${cleanedPhonNumber}`,\n given_name: firstName,\n family_name: lastName,\n },\n });\n if (codeDeliveryDetails) {\n setShowConfirmationSection(true);\n setSignupClicked(false);\n }\n } catch (error) {\n console.log(\"Signup error\", error);\n setErrorMsg(error.message);\n setError(error);\n }\n }\n\n async function resendCode() {\n Auth.resendSignUp(email)\n .then(() => {\n setCodeIsResent(true);\n })\n .catch((err) => {\n setError(err);\n if (err.message) setErrorMsg(err.message);\n });\n }\n\n async function confirmSignup() {\n setSignupClicked(true);\n\n try {\n //sign out current user and remove from Cache\n await Auth.signOut();\n Cache.removeItem(\"user\");\n // confirm and sign in new user\n await Auth.confirmSignUp(email, confirmationCode);\n await Auth.signIn(email, pasw);\n // TODO: what to do if signup fails?\n await addUserRole(email, \"Client\", \"ADD\");\n\n // Get new Authenticated user - newLoggedinuser should be the same as 'user' above\n const newloggedinuser = await Auth.currentAuthenticatedUser({\n bypassCache: true,\n });\n // object loginStats\n const loginInfo = {\n lastLoginDate: new Date(),\n loginCount: 1,\n };\n const LoginInfo = JSON.stringify(loginInfo);\n // create MB User object for the newly signedup user\n const newMBUserInput = {\n username: newloggedinuser.username,\n id: newloggedinuser.signInUserSession.idToken.payload.sub,\n emailaddress: newloggedinuser.signInUserSession.idToken.payload.email,\n firstname: newloggedinuser.signInUserSession.idToken.payload.given_name,\n lastname: newloggedinuser.signInUserSession.idToken.payload.family_name,\n registered: true,\n active: true,\n role: \"CLIENT\",\n companyId: props.company.id,\n userCompanyId: props.company.id,\n mobilephone:\n newloggedinuser.signInUserSession.idToken.payload.phone_number,\n LoginInfo,\n phonepref: \"MOBILE\",\n contactconsent: true,\n contactconsentdatetime: new Date().toISOString(),\n };\n const newMBUser = await API.graphql(\n graphqlOperation(createUser, { input: newMBUserInput })\n );\n\n trackRegistration(\n newMBUser && newMBUser.data && newMBUser.data.createUser\n );\n trackLogin(newMBUser && newMBUser.data && newMBUser.data.createUser);\n // handle situation when previos MB User was created in DB by Admin and this MB User\n // did not have to cognito account\n\n const usersByCompanyResult = await API.graphql(\n graphqlOperation(userByCompany, {\n companyId: props.company.id,\n roleEmailaddress: {\n beginsWith: {\n role: \"CLIENT\",\n emailaddress:\n newloggedinuser.signInUserSession.idToken.payload.email,\n },\n },\n filter: {\n and: [\n {\n emailaddress: {\n eq: newloggedinuser.signInUserSession.idToken.payload.email,\n },\n },\n { registered: { eq: false } },\n { deleted: { ne: true } },\n ],\n },\n limit: 1000,\n })\n );\n\n if (\n usersByCompanyResult &&\n usersByCompanyResult.data.userByCompany.items.length > 0\n ) {\n // if a previously created user is found and has purchased packages, adjust the\n // index of client packages to point to the new MB User that has cognito profile\n const userData = usersByCompanyResult.data.userByCompany.items[0];\n const clientPackagesResult = await API.graphql(\n graphqlOperation(clientPackageByUser, {\n userId: userData.id,\n })\n );\n if (\n clientPackagesResult &&\n clientPackagesResult.data.clientPackageByUser.items.length > 0\n ) {\n clientPackagesResult.data.clientPackageByUser.items.map(\n async (item) => {\n const updateClientPackageResult = await API.graphql(\n graphqlOperation(updateClientPackage, {\n input: {\n id: item.id,\n userId:\n newloggedinuser.signInUserSession.idToken.payload.sub,\n clientPackageUserId:\n newloggedinuser.signInUserSession.idToken.payload.sub,\n },\n })\n );\n }\n );\n }\n // Delete the old MB User profile that did not have the cognito profile\n const deleteOldUserProfile = await API.graphql(\n graphqlOperation(updateUser, {\n input: { id: userData.id, deleted: true },\n })\n );\n\n const clientProfile = await API.graphql(\n graphqlOperation(clientByUserId, {\n userId: userData.id,\n })\n );\n const clientId = clientProfile.data.clientByUserId.items[0].id;\n // update existing client to point to the new MB User\n const updateClientResult = await API.graphql(\n graphqlOperation(updateClient, {\n input: {\n id: clientId,\n userId: newloggedinuser.signInUserSession.idToken.payload.sub,\n clientUserId:\n newloggedinuser.signInUserSession.idToken.payload.sub,\n },\n })\n );\n props.setUser(newloggedinuser);\n props.setClient({\n isNewClient: false,\n client: updateClientResult.data.updateClient,\n });\n } else {\n const clientRecord = await createClientRecord(\n newMBUser.data.createUser,\n props.company\n );\n /* Zapier Trigger - New Client (new-client-zapier)*/\n try {\n const date = new Date();\n const dateString = date.toLocaleString(\"en-US\");\n let clientData = {\n email: newMBUserInput.emailaddress,\n userType: \"Client\",\n phoneNumber: newMBUserInput.mobilephone,\n createdAt: dateString,\n firstName: newMBUserInput.firstname,\n lastName: newMBUserInput.lastname,\n };\n let hookName = \"new-client-zapier\";\n await TriggerManager(clientData, newMBUserInput.companyId, hookName);\n } catch (e) {\n console.log(\"ERROR: unable to perform triggerManager\", e);\n }\n props.setUser(newloggedinuser);\n props.setClient({\n isNewClient: true,\n client: clientRecord,\n });\n }\n\n props.history.push(\n props.location.state?.fromPath ? props.location.state.fromPath : \"/\"\n );\n } catch (error) {\n if (error.code === \"CodeMismatchException\") setErrorMsg(\"Invalid code\");\n console.log(\"Signup error\", JSON.stringify(error));\n setSignupClicked(false);\n }\n setSignupClicked(false);\n }\n\n async function addUserRole(username, groupName, action) {\n const result = await API.post(\"changeuserrole\", \"/changeuserrole\", {\n body: {\n username,\n groupName,\n action,\n },\n });\n }\n\n async function continueAsGuest() {\n try {\n const userByEmailResult = await API.graphql(\n graphqlOperation(userByCompany, {\n companyId: props.company.id,\n roleEmailaddress: {\n beginsWith: {\n role: \"CLIENT\",\n emailaddress: email,\n },\n },\n filter: { deleted: { ne: true } },\n\n limit: 1000,\n })\n );\n if (\n userByEmailResult &&\n userByEmailResult.data.userByCompany.items.length === 1\n ) {\n // save user\n props.setBookingUserInState(\n userByEmailResult.data.userByCompany.items[0]\n );\n props.history.push(props.location.state?.fromPath);\n return;\n }\n } catch (err) {\n console.log(\"error while reading user by email address\", err);\n }\n try {\n const newumbser = await addUserToDb();\n if (newumbser) {\n const clientData = {\n userId: newumbser.id,\n companyId: props.company.id,\n clientUserId: newumbser.id,\n currency: props.company.currency ? props.company.currency : \"CAD\",\n clientCompanyId: props.company.id,\n accountbalance: 0.0,\n };\n await addClient(clientData);\n props.setBookingUserInState(newumbser);\n props.history.push(props.location.state?.fromPath);\n }\n } catch (err) {\n console.log(err);\n }\n }\n\n async function addUserToDb() {\n try {\n const uuidValue = v4();\n const cleanPhone = phoneNumber.match(/\\d+/g).join(\"\");\n let registerUserInput = {\n id: uuidValue,\n username: uuidValue,\n emailaddress: email,\n firstname: firstName,\n lastname: lastName,\n registered: false,\n active: true,\n role: \"CLIENT\",\n companyId: props.company.id,\n userCompanyId: props.company.id,\n mobilephone: `+${cleanPhone}`,\n phonepref: \"MOBILE\",\n contactconsent: true,\n contactconsentdatetime: new Date().toISOString(),\n };\n const newUser = await API.graphql(\n graphqlOperation(createUser, { input: registerUserInput })\n );\n return newUser.data.createUser;\n //return uuidValue;\n } catch (err) {\n console.log(err);\n }\n }\n\n async function addClient(input) {\n let newClient = await API.graphql(\n graphqlOperation(createClient, { input })\n );\n return newClient;\n }\n\n const disableCreateBtn = () => {\n let disable = true;\n\n if (\n firstName.trim().length !== 0 &&\n lastName.trim().length !== 0 &&\n email.trim().length !== 0 &&\n phoneNumber.trim().length > 3 &&\n pasw.trim().length !== 0\n ) {\n disable = false;\n }\n return disable;\n };\n\n const disableConfirmationBtn = () => {\n let disable = true;\n if (confirmationCode.trim().length !== 0) {\n disable = false;\n }\n\n return disable;\n };\n\n const createAccountOnKeyDown = (e) => {\n if (e.key === \"Enter\") {\n setSignupClicked(true);\n createAccount();\n }\n };\n\n const confirmSignupOnKeyDown = (e) => {\n if (e.key === \"Enter\") {\n setSignupClicked(true);\n confirmSignup();\n }\n };\n\n return (\n <div>\n <MainNavBar\n company={props.company}\n user={null}\n guestUser={true}\n signOutOp={props.signOutOp}\n currentPath={props.location.pathname}\n banner={false}\n publicsitesettings={props.publicsitesettings}\n />\n <div\n style={{\n width: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n flexDirection: \"column\",\n gap: \"1rem\",\n marginTop: \"115px\",\n padding: \"0 1rem\",\n }}\n >\n <Typography variant=\"h3\" sx={{ textAlign: \"center\" }}>\n {`Welcome to ${props.company.name}`}\n </Typography>\n {showConfirmationSection ? (\n <>\n <Box\n style={{\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"0.5rem\",\n marginBottom: \"1rem\",\n }}\n >\n <Typography variant=\"body2\" sx={{ fontSize: \"1rem\" }}>\n {`We have sent a confirmation code to your email address`}\n </Typography>\n </Box>\n\n <TextField\n sx={{\n ...text_field_style,\n maxWidth: !smallerScreen ? \"unset\" : \"300px\",\n }}\n InputProps={{ disableUnderline: true }}\n variant=\"outlined\"\n size=\"small\"\n id=\"userenteredinfo\"\n label=\"Confirmation code\"\n value={confirmationCode ? confirmationCode : \"\"}\n onChange={(e) => {\n if (error && errorMsg) {\n setError(false);\n setErrorMsg(\"\");\n }\n setConfirmationCode(e.target.value);\n }}\n onKeyDown={confirmSignupOnKeyDown}\n />\n\n {errorMsg && (\n <Box\n style={{\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"0.5rem\",\n marginBottom: \"1rem\",\n }}\n >\n <Typography\n variant=\"body2\"\n sx={{ fontSize: \"1rem\" }}\n style={{ color: \"red\" }}\n >\n {errorMsg}\n </Typography>\n </Box>\n )}\n <Button\n variant=\"contained\"\n sx={{\n ...text_field_style,\n maxWidth: !smallerScreen ? \"unset\" : \"300px\",\n }}\n onClick={confirmSignup}\n disabled={signupClicked || disableConfirmationBtn()}\n >\n {signupClicked ? (\n <CircularProgress size={12} sx={{ color: \"#fff\" }} />\n ) : (\n \"Confirm code\"\n )}\n </Button>\n <Box\n style={{\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"0.5rem\",\n marginBottom: \"1rem\",\n }}\n >\n <Typography variant=\"body2\" sx={{ fontSize: \"1rem\" }}>\n Lost your code?{\" \"}\n <Box\n sx={{\n display: \"inline\",\n fontWeight: 700,\n color: \"primary.main\",\n cursor: \"pointer\",\n }}\n onClick={resendCode}\n >\n Resend code\n </Box>\n </Typography>\n </Box>\n {codeIsResent && (\n <Box\n style={{\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"0.5rem\",\n marginBottom: \"1rem\",\n }}\n >\n <Typography variant=\"body2\" sx={{ fontSize: \"1rem\" }}>\n We have sent you an email with the new code.\n </Typography>\n </Box>\n )}\n </>\n ) : (\n <>\n <Box\n style={{\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"0.5rem\",\n marginBottom: \"1rem\",\n }}\n >\n <Typography variant=\"body2\" sx={{ fontSize: \"1rem\" }}>\n {guestMode\n ? `Please provide contact information to continue as a guest`\n : `Create a new account`}\n </Typography>\n </Box>\n {errorMsg && (\n <Box\n style={{\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"0.5rem\",\n marginBottom: \"1rem\",\n }}\n >\n <Typography\n variant=\"body2\"\n sx={{ fontSize: \"1rem\" }}\n style={{ color: \"red\" }}\n >\n {errorMsg}\n </Typography>\n </Box>\n )}\n <TextField\n sx={{\n ...text_field_style,\n maxWidth: !smallerScreen ? \"unset\" : \"300px\",\n }}\n InputProps={{ disableUnderline: true }}\n variant=\"outlined\"\n size=\"small\"\n id=\"firstName\"\n label=\"First name\"\n value={firstName}\n onChange={(e) => {\n if (error) {\n setError(false);\n setErrorMsg(\"\");\n }\n setFirstName(e.target.value);\n\n //createAccountOnKeyDown(e);\n }}\n onKeyDown={createAccountOnKeyDown}\n />\n <TextField\n sx={{\n ...text_field_style,\n maxWidth: !smallerScreen ? \"unset\" : \"300px\",\n }}\n InputProps={{ disableUnderline: true }}\n variant=\"outlined\"\n size=\"small\"\n id=\"lastName\"\n label=\"Last name\"\n value={lastName}\n onChange={(e) => {\n if (error) {\n setError(false);\n setErrorMsg(\"\");\n }\n setLastName(e.target.value);\n }}\n onKeyDown={createAccountOnKeyDown}\n />\n <TextField\n sx={{\n ...text_field_style,\n maxWidth: !smallerScreen ? \"unset\" : \"300px\",\n }}\n InputProps={{ disableUnderline: true }}\n variant=\"outlined\"\n size=\"small\"\n id=\"email\"\n label=\"Email\"\n value={email}\n onChange={(e) => {\n if (error) {\n setError(false);\n setErrorMsg(\"\");\n }\n let ev = e.target.value;\n ev = ev.trim().toLowerCase();\n setEmail(ev);\n }}\n onKeyDown={createAccountOnKeyDown}\n />\n <MuiPhoneNumber\n sx={{\n ...phone_field_style,\n maxWidth: !smallerScreen ? \"unset\" : \"300px\",\n }}\n variant=\"outlined\"\n size=\"small\"\n InputProps={{ disableUnderline: true }}\n id=\"phoneNumber\"\n label=\"Phone\"\n defaultCountry={props.defaultCountry}\n value={phoneNumber}\n onChange={(val) => {\n if (error) {\n setError(false);\n setErrorMsg(\"\");\n }\n setPhoneNumber(val);\n }}\n onKeyDown={createAccountOnKeyDown}\n />\n {!guestMode && (\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n\n gap: \"1rem\",\n width: \"100%\",\n }}\n >\n <TextField\n sx={{\n ...text_field_style,\n alignSelf: \"center\",\n maxWidth: !smallerScreen ? \"unset\" : \"300px\",\n }}\n type={showPassword ? \"text\" : \"password\"}\n InputProps={{\n disableUnderline: true,\n endAdornment: (\n <InputAdornment position=\"end\">\n <IconButton\n aria-label=\"toggle password visibility\"\n onClick={handleClickShowPassword}\n onMouseDown={handleMouseDownPassword}\n edge=\"end\"\n >\n {showPassword ? <VisibilityOff /> : <Visibility />}\n </IconButton>\n </InputAdornment>\n ),\n }}\n variant=\"outlined\"\n size=\"small\"\n id=\"password\"\n label=\"Password\"\n value={pasw}\n onChange={(e) => {\n if (error) {\n setError(false);\n setErrorMsg(\"\");\n }\n setPasw(e.target.value);\n //createAccountOnKeyDown(e);\n }}\n onKeyDown={createAccountOnKeyDown}\n />\n </Box>\n )}\n {guestMode && (\n <Button\n id=\"guest-account\"\n variant=\"contained\"\n sx={{\n ...text_field_style,\n maxWidth: !smallerScreen ? \"unset\" : \"300px\",\n }}\n onClick={continueAsGuest}\n >\n Continue As Guest\n </Button>\n )}{\" \"}\n {!guestMode && (\n <Button\n id=\"create-account\"\n variant=\"contained\"\n sx={{\n ...text_field_style,\n maxWidth: !smallerScreen ? \"unset\" : \"300px\",\n }}\n disabled={signupClicked || disableCreateBtn()}\n onClick={createAccount}\n >\n {signupClicked ? (\n <CircularProgress size={12} sx={{ color: \"primary.main\" }} />\n ) : (\n \"Create account\"\n )}\n </Button>\n )}\n {!isGuestOnlyCheckout(props.publicsitesettings) && (\n <Box\n style={{\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"0.5rem\",\n marginBottom: \"1rem\",\n }}\n >\n <Typography variant=\"body2\" sx={{ fontSize: \"1rem\" }}>\n Have an account?{\" \"}\n <Box\n sx={{\n display: \"inline\",\n fontWeight: 700,\n color: \"primary.main\",\n cursor: \"pointer\",\n }}\n onClick={(event) =>\n props.history.push(\"/login\", {\n fromPath: props.location.state?.fromPath\n ? props.location.state?.fromPath\n : \"/\",\n })\n }\n >\n Sign in\n </Box>\n </Typography>\n </Box>\n )}\n </>\n )}\n </div>\n </div>\n );\n}\n\nexport default withRouter(SignUp);\n","import React, { useEffect, useContext } from \"react\";\nimport Container from \"@mui/material/Container\";\nimport MainNavBar from \"../components/MainNavbar\";\nimport Auth from \"@aws-amplify/auth\";\nimport { withRouter } from \"react-router-dom\";\nimport { UserContext } from \"../App\";\n\nfunction Logout(props) {\n const { user, guestUser } = useContext(UserContext);\n\n useEffect(() => {\n async function doLogout() {\n await Auth.signOut();\n props.setLoggedOut(true);\n // props.history.push(\"/\");\n }\n doLogout();\n }, []);\n\n return (\n <>\n <Container maxWidth=\"xl\">\n <MainNavBar company={props.company} />\n <br />\n <br />\n <br />\n Signed out\n </Container>\n </>\n );\n}\nexport default withRouter(Logout);\n","import { alpha } from \"@mui/material/styles\";\n\nimport makeStyles from \"@mui/styles/makeStyles\";\n\nexport const useStyles = makeStyles((theme) => ({\n grow: {\n flexGrow: 1,\n },\n menuButton: {\n marginRight: theme.spacing(2),\n },\n title: {\n display: \"none\",\n [theme.breakpoints.up(\"sm\")]: {\n display: \"block\",\n },\n },\n search: {\n position: \"relative\",\n borderRadius: theme.shape.borderRadius,\n backgroundColor: alpha(theme.palette.common.white, 0.15),\n marginRight: theme.spacing(2),\n marginLeft: 0,\n width: \"100%\",\n [theme.breakpoints.up(\"sm\")]: {\n marginLeft: theme.spacing(3),\n width: \"auto\",\n },\n grow: {\n flexGrow: 1,\n },\n },\n searchIcon: {\n width: theme.spacing(7),\n height: \"100%\",\n position: \"absolute\",\n pointerEvents: \"none\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n inputRoot: {\n color: \"inherit\",\n },\n inputInput: {\n padding: theme.spacing(1, 1, 1, 7),\n transition: theme.transitions.create(\"width\"),\n width: \"100%\",\n [theme.breakpoints.up(\"md\")]: {\n width: 200,\n },\n },\n sectionDesktop: {\n display: \"none\",\n [theme.breakpoints.up(\"md\")]: {\n display: \"flex\",\n },\n },\n sectionMobile: {\n display: \"flex\",\n [theme.breakpoints.up(\"md\")]: {\n display: \"none\",\n },\n },\n paper: {\n padding: 2,\n },\n root: {\n padding: theme.spacing(3, 2),\n },\n bigAvatar: {\n margin: 10,\n width: 300,\n height: 300,\n },\n noLabelselectmargin: {\n marginTop: \"15px\",\n marginLeft: \"5px\",\n },\n rating1: {\n width: 300,\n display: \"flex\",\n alignItems: \"center\",\n },\n container: {\n paddingTop: theme.spacing(6),\n },\n circleBox: {\n width: 75,\n height: 75,\n color: \"#ffffff\",\n backgroundColor: \"#000000\",\n borderRadius: \"50%\",\n margin: \"0 10px\",\n display: \"inline-flex\",\n border: \"1px solid #d5d5d6\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n topHeader: {\n backgroundColor: \"#000\",\n color: \"#fff\",\n padding: \"6px\",\n margin: \"-16px -8px 8px -8px\",\n fontSize: \"14px\",\n font: \"Arial\",\n [theme.breakpoints.up(\"sm\")]: {\n margin: \"-16px 0px 15px -0px\",\n padding: \"6px 15px\",\n },\n },\n btnHidden: {\n display: \"none\",\n },\n buttonProgress: {\n position: \"absolute\",\n top: \"30%\",\n marginTop: -1,\n marginLeft: -1,\n },\n}));\n","import React, { useState, useEffect } from \"react\";\nimport Rating from \"@mui/material/Rating\";\n// prettier-ignore\nimport { Logger } from \"@aws-amplify/core\";\nimport API, { graphqlOperation } from \"@aws-amplify/api\";\nimport Storage from \"@aws-amplify/storage\";\nimport * as queries from \"../../graphql/queries\";\nimport * as mutations from \"../../graphql/mutations\";\n// prettier-ignore\nimport { Paper, Dialog, DialogTitle, DialogActions, DialogContent, CircularProgress, InputAdornment, Grid, Avatar, TextField, Button, Container, Typography, useMediaQuery, Chip } from \"@mui/material\";\nimport { Box, Snackbar } from \"@mui/material\";\nimport { useStyles } from \"../../styles/ProviderAddEditStyles\";\nimport MainNavBar from \"../MainNavbar\";\nimport moment from \"moment\";\nimport { logSystemError } from \"../../modules/SystemErrorService\";\nimport { chargeCreditCard } from \"../../modules/BillingCommon\";\nimport { sendSms } from \"../../modules/MessagingService\";\nimport { getStripeAmount } from \"../../modules/BookingService\";\nimport { getCurrencySymbolByCompany, jsonParse } from \"../../utils\";\nimport { getCompanyAdmins } from \"../../user/UserCommon\";\nimport { execReadByPK } from \"../../modules/DBService\";\nimport { providerRatingsByProvider } from \"../../queries/CustomQueries\";\n\nconst logger = new Logger(\"TipPage\");\nconst limit = process.env.REACT_APP_LISTLIMIT; // global setting for list limits\n\nexport const TipPage = (props) => {\n const classes = useStyles();\n const paperclasses = useStyles();\n const [provider, setProvider] = useState();\n const [providerPic, setProviderPic] = useState(\"\");\n const [apptDate, setApptDate] = useState(\"\");\n const [serviceName, setServiceName] = useState(\"\");\n const [location, setLocation] = useState(\"\");\n const [rating, setRating] = useState(0);\n const [review, setReview] = useState(\"\");\n const [hover, setHover] = React.useState(-1);\n const [tipMsg, setTipMsg] = useState(\"Add a tip for \");\n const [tipAmt, setTipAmt] = useState(\"\");\n const [booking, setBooking] = useState();\n const [snackMsg, setSnackMsg] = useState(false);\n const [msgOpen, setMsgOpen] = useState(false);\n const [tipPercent, setTipPercent] = useState(0);\n const [customTipModel, setCustomTipModal] = useState(false);\n const [customTipAmt, setCustomTipAmt] = useState(\"\");\n const [customTip, setCustomTip] = useState(false);\n const [user, setUser] = useState(props.authuser);\n const limit = process.env.REACT_APP_LISTLIMIT; // global setting for list limits\n const [done, setDone] = useState(false);\n const [buttonText, setButtonText] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [tokenId, setTokenId] = useState(null);\n const [companyAdmins, setCompanyAdmins] = useState([]);\n const [tipText, setTipText] = useState(null);\n const [bookingAddress, setBookingAddress] = useState(\"\");\n const smallerWidthThanSixHundred = useMediaQuery(\"(min-width:600px)\");\n\n const labels = {\n 1: \"Unsatisfactory\",\n 2: \"OK\",\n 3: \"Good\",\n 4: \"Very good\",\n 5: \"Excellent\",\n };\n\n useEffect(() => {\n async function load() {\n await getOrderInfo();\n }\n load();\n }, []);\n\n async function getOrderInfo() {\n let bookingId, token;\n\n let search = window.location.search;\n let params = new URLSearchParams(search);\n\n if (params) {\n if (params.has(\"b\") && params.get(\"b\") !== \"\") {\n bookingId = params.get(\"b\");\n } else {\n // invalid URL\n window.location.href = \"/\";\n return;\n }\n if (params.has(\"t\") && params.get(\"t\") !== \"\") {\n token = params.get(\"t\");\n setTokenId(token);\n } else {\n // invalid URL\n window.location.href = \"/\";\n return;\n }\n }\n\n try {\n // validate token\n let input = {\n id: token,\n };\n\n let response = await API.graphql(\n graphqlOperation(queries.getPublicAccessToken, input)\n );\n\n let result = response.data.getPublicAccessToken;\n\n const expiryDate = new Date(result.expiryDate);\n const now = new Date();\n const role = result.role;\n\n // test if token is valid (has correct role and has not expired)\n if (expiryDate.getTime() > now.getTime() && role === \"TIPPAGE\") {\n // get booking info\n input = {\n id: bookingId,\n };\n response = await API.graphql(\n graphqlOperation(queries.getBooking, input)\n );\n result = response.data.getBooking;\n setBooking(result);\n const provider = result.provider;\n setProvider(provider);\n setButtonText(\"Rate \" + provider.firstname);\n setServiceName(result.servicetype.name);\n setApptDate(moment(result.startdate).format(\"MMM DD, YYYY\"));\n if (providerPic.length === 0) {\n const picresult = await Storage.get(provider.pictures3key);\n setProviderPic(picresult);\n }\n setLocation(result.location ? result.location : \"No Location\");\n } else {\n logger.error(\"Token invalid or expired\");\n window.location.href = \"/\";\n return;\n }\n } catch (err) {\n logger.error(\"*** an error occurred. The error was: \" + err.message);\n window.location.href = \"/\";\n return;\n }\n }\n\n useEffect(() => {\n console.log(\"Booking State Tip Page\");\n console.log(booking);\n }, [booking]);\n\n function setTipInfo(percent) {\n setTipPercent(percent);\n setTipMsg(percent + \"% tip added for \");\n setTipAmt(booking && (booking.servicetype.price * percent) / 100);\n }\n\n function handleClickOpt1() {\n const percent = 15;\n setTipInfo(percent);\n setTipText(\"15\");\n }\n\n function handleClickOpt2() {\n const percent = 20;\n setTipInfo(percent);\n setTipText(\"20\");\n }\n\n function handleClickOpt3() {\n const percent = 25;\n setTipInfo(percent);\n setTipText(\"25\");\n }\n\n function handleClickNoTip() {\n setTipMsg(\"No tip chosen for \");\n setTipPercent(0);\n setTipAmt(0);\n setTipText(\"none\");\n }\n\n function handleCustomTip() {\n setCustomTipModal(true);\n setTipText(\"custom\");\n }\n\n function saveCustomTip() {\n setTipAmt(customTipAmt);\n setCustomTip(true);\n //setTipMsg(\"Custom tip added for \");\n //setCustomTipModal(false);\n }\n\n async function saveRating() {\n let input = {\n providerRatingsProviderId: provider.id,\n providerId: provider.id,\n ratingstars: rating,\n ratingtext: review,\n active: true,\n ratinguserId: booking?.client?.user?.id\n ? booking?.client?.user?.id\n : user.id,\n companyId: booking?.company?.id,\n };\n logger.debug(\"input:\" + input);\n const newReview = await API.graphql(\n graphqlOperation(mutations.createProviderRatings, { input })\n );\n logger.debug(\"New review created = \");\n logger.debug(newReview);\n\n //If rating is low, send low rating notification\n if (rating < 3) {\n //Poor or Very Bad rating.\n await sendLowRatingEmailNotification(input);\n }\n\n // now recalcuate average stars\n const result = await execReadByPK({\n opname: \"providerRatingsByProvider\",\n op: providerRatingsByProvider,\n id: { providerId: provider.id },\n filter: {\n active: { eq: true },\n },\n sortDirection: \"DESC\",\n });\n\n let totalstars = 0,\n avgstars = 0;\n\n for (let i = 0; i < result.items.length; i++) {\n totalstars += result.items[i].ratingstars;\n }\n\n avgstars = totalstars / result.items.length;\n\n const numberofratings = !!provider.numberofratings\n ? provider.numberofratings + 1\n : 1;\n // save avgstars\n input = {\n id: provider.id,\n ratingstarsavg: avgstars,\n numberofratings,\n firstname: provider.firstname,\n lastname: provider.lastname,\n createdAt: provider.createdAt,\n };\n\n const newProvider = await API.graphql(\n graphqlOperation(mutations.updateProvider, { input })\n );\n\n // Adding rating to the booking itself\n const ratingInput = {\n id: booking.id,\n bookingRatingId: newReview.data.createProviderRatings.id,\n };\n const updateRatingResult = await API.graphql(\n graphqlOperation(mutations.updateBooking, { input: ratingInput })\n );\n }\n\n async function createAddCharge(billingDesc) {\n const dateNow = new Date();\n const options = { dateStyle: \"long\" };\n const dateNowString =\n dateNow.toLocaleDateString(\"en-US\", options) + // use en-US for now\n \" \" +\n dateNow.toLocaleTimeString();\n\n let input = {\n amount: tipAmt,\n desc:\n \"Tip for \" +\n provider.firstname +\n \" \" +\n provider.lastname +\n \". Tip processed on \" +\n dateNowString,\n note: billingDesc,\n bookingId: booking.id,\n orderId: booking.order.id,\n additionalChargeOrderId: booking.order.id,\n additionalChargeUserId: user.id,\n additionalChargeCompanyId: booking.company.id,\n companyId: booking.company.id,\n additionalChargeClientId: booking.client.id,\n clientId: booking.client.id,\n additionalChargeCreatorId: booking.client.user.id,\n creatorId: booking.client.user.id,\n };\n\n let result = await API.graphql(\n graphqlOperation(mutations.createAdditionalCharge, { input })\n );\n }\n\n async function updateBookingAddCharge() {\n const totalAddChg = (booking.totalAddChg || 0) + Number.parseFloat(tipAmt);\n const input = {\n id: booking.id,\n startdate: booking.startdate,\n timeblockid: booking.timeblockid,\n totalAddChg,\n };\n const result = await API.graphql(\n graphqlOperation(mutations.updateBooking, { input })\n );\n logger.debug(\"totalAddChgResult = \" + JSON.stringify(result));\n }\n\n async function createBillingTransaction(billingDesc) {\n let billingTransactionId = 0;\n\n let input = {\n billingTransactionClientId: booking.client.id,\n clientId: booking.client.id,\n amount: tipAmt,\n billingTransactionCreatorId: booking.client.user.id,\n creatorId: booking.client.user.id,\n billingTransactionCompanyId: booking.company.id,\n companyId: booking.company.id,\n desc: billingDesc,\n credit: false,\n };\n if (booking.order) {\n input = {\n ...input,\n billingTransactionOrderId: booking.order.id,\n orderId: booking.order.id,\n };\n }\n let result = await API.graphql(\n graphqlOperation(mutations.createBillingTransaction, { input })\n );\n\n if (result && result.data) {\n // create stripe payment for tip\n billingTransactionId = result.data.createBillingTransaction.id;\n }\n\n return billingTransactionId;\n }\n\n async function createStripePayment(billingDesc, billingTransactionId) {\n const emailaddress =\n booking.client.user && booking.client.user.emailaddress\n ? booking.client.user.emailaddress\n : \"stripe@gomarketbox.com\";\n\n let currency = booking.order.currency;\n if (!currency) currency = booking.company.currency;\n //const currency = booking.company.currency.toString();\n\n // charge via Stripe\n const stripe_result = await chargeCreditCard(\n booking.client.stripeCustomerId,\n getStripeAmount(tipAmt), // tipAmt * 100, // stripe integer value includes cents\n currency,\n emailaddress,\n false,\n 0,\n booking.company.id,\n booking.company.stripeAccount,\n booking.company.stripeConnectEnabled\n );\n logger.debug(\"stripe_result = \");\n logger.debug(stripe_result);\n\n // save the data to the ClientCharge table\n const dateNow = new Date();\n const options = { dateStyle: \"long\" };\n const dateNowString =\n dateNow.toLocaleDateString(\"en-US\", options) + // use en-US for now\n \" \" +\n dateNow.toLocaleTimeString();\n let input = {\n clientId: booking.client.id,\n clientChargeClientId: booking.client.id,\n companyId: booking.company.id,\n description: \"Client generated tip amount created on \" + dateNowString,\n status: \"created\",\n stripechargeid: stripe_result.charge.id,\n stripepaymentmethod: stripe_result.charge.payment_method,\n stripe_payment_method_details:\n stripe_result.charge.stripe_payment_method_details,\n balance_transaction: stripe_result.charge.balance_transaction,\n stripe_refund_charge: stripe_result.charge.id,\n stripe_status: stripe_result.charge.status,\n clientChargeBillingtransactionId: billingTransactionId,\n billingtransactionId: billingTransactionId,\n amount: tipAmt,\n amount_refunded: 0,\n currency: currency,\n };\n if (booking.order) {\n input = {\n ...input,\n clientChargeOrderId: booking.order.id,\n orderId: booking.order.id,\n };\n }\n let result = await API.graphql(\n graphqlOperation(mutations.createClientCharge, { input })\n );\n }\n\n async function sendLowRatingEmailNotification(input) {\n //Getting company Admins\n const companyAdminsList = await getCompanyAdmins(booking.company.id);\n let companyAdminsEmailList = [];\n for (let companyAdmin of companyAdminsList) {\n companyAdminsEmailList.push(companyAdmin.emailaddress);\n }\n const companyAdmins = companyAdminsEmailList;\n\n //Creating necessary values\n const clientName =\n booking.client.user.firstname +\n \" \" +\n booking.client.user.lastname.charAt(0) +\n \".\";\n const numStars = input.ratingstars;\n const providerName = provider.firstname + \" \" + provider.lastname.charAt(0);\n const serviceTypeName = booking.servicetype.name;\n\n //Creating Data object\n const dataObj = {\n client_name: clientName,\n num_stars: numStars,\n provider_name: providerName,\n servicetype_name: serviceTypeName,\n isRegisteredUser: true,\n };\n\n //Send email\n const result = await API.post(\n \"sendtwilioemail\",\n \"/sendtwilioemailtemplate\",\n {\n body: {\n templateName: \"low-rating-notification.html\",\n subject: `${numStars} Star Rating from ${clientName} for ${providerName}`,\n body: null,\n toAddresses: [provider.emailaddress],\n ccAddresses: [],\n bccAddresses: companyAdmins,\n replyTo: booking.company.replyemailaddress,\n companyName: booking.company.name,\n companyId: booking.company.id,\n company: booking.company,\n dataObj: dataObj,\n companyLogoUrl: booking.company.logoUrl,\n companyColor: booking.company.primaryColor,\n authSiteUrl: process.env.REACT_APP_AUTH_SITE_URL,\n },\n }\n );\n console.log(\"low rating notification email sent!\");\n }\n\n async function sendSMSPaymentNotification() {\n const from = process.env.REACT_APP_TWILIO_SMS_SEND_NUMBER;\n const to = booking.client.user.mobilephone;\n //const email = booking.client.user.emailaddress;\n const companyName = booking.company.name;\n const companyEmail = booking.company.emailaddress;\n const companyCode = booking.company.countrycode3166alpha2\n ? \"en-\" + booking.company.countrycode3166alpha2.toUpperCase()\n : \"en-CA\";\n logger.debug(\"companycode = \" + companyCode);\n const servicedesc = booking.desc;\n let currency = booking.order.currency;\n const encodedURIEmail = encodeURIComponent(companyEmail);\n if (!currency) currency = booking.company.currency;\n const total = tipAmt.toLocaleString(companyCode, {\n style: \"currency\",\n currency,\n minimumFractionDigits: 2,\n });\n\n const msg =\n \"Message from \" +\n companyName +\n \". A tip amount of \" +\n total +\n \" has been added to your service '\" +\n servicedesc +\n \"'. Thank you for your generosity. Please contact \" +\n encodedURIEmail +\n \" if this tip was made in error.\";\n logger.debug(\"msg to = \" + to);\n logger.debug(\"msg = \" + msg);\n const smsresult = await sendSms(to, msg, getCountryCodeForSms());\n logger.debug(\"smsresult = \" + JSON.stringify(smsresult));\n }\n\n async function sendProviderTipEmailNotification() {\n const canProviderSeeClientName = jsonParse(\n booking.company?.ProviderRestrictionConfig,\n {}\n )?.canProviderSeeClientName;\n const companyAdminsList = await getCompanyAdmins(booking.company.id);\n let companyAdminsEmailList = [];\n for (let companyAdmin of companyAdminsList) {\n companyAdminsEmailList.push(companyAdmin.emailaddress);\n }\n const companyAdmins = companyAdminsEmailList;\n\n //Generating values to replace tokens\n const companyCode = booking.company.countrycode3166alpha2\n ? \"en-\" + booking.company.countrycode3166alpha2.toUpperCase()\n : \"en-CA\";\n let currency = booking.order.currency;\n if (!currency) currency = booking.company.currency;\n const total = tipAmt.toLocaleString(companyCode, {\n style: \"currency\",\n currency,\n minimumFractionDigits: 2,\n });\n const clientName = canProviderSeeClientName\n ? booking.client.user.firstname + \" \" + booking.client.user.lastname\n : booking.client.user.firstname +\n \" \" +\n booking.client.user.lastname.charAt(0);\n\n //Data object with [token] : value pairs\n const dataObj = {\n provider_firstname: provider.firstname,\n dollars: total,\n client_name: clientName,\n company_name: booking.company.name,\n isRegisteredUser: true,\n };\n\n console.log(\"asdf provider:\", provider);\n\n //Send email\n const result = await API.post(\n \"sendtwilioemail\",\n \"/sendtwilioemailtemplate\",\n {\n body: {\n templateName: \"provider-tip-notification.html\",\n subject: `You’ve just received a tip from ${clientName}`,\n body: null,\n toAddresses: [provider.emailaddress],\n ccAddresses: [],\n bccAddresses: companyAdmins,\n replyTo: booking.company.replyemailaddress,\n companyName: booking.company.name,\n companyId: booking.company.id,\n company: booking.company,\n dataObj: dataObj,\n companyLogoUrl: booking.company.logoUrl,\n companyColor: booking.company.primaryColor,\n authSiteUrl: process.env.REACT_APP_AUTH_SITE_URL,\n },\n }\n );\n console.log(\"asdf result\");\n }\n\n async function sendProviderTipSMSNotification() {\n console.log(\"asdf booking info\", booking);\n const from = process.env.REACT_APP_TWILIO_SMS_SEND_NUMBER;\n const to = provider.phone;\n const companyName = booking.company.name;\n const companyCode = booking.company.countrycode3166alpha2\n ? \"en-\" + booking.company.countrycode3166alpha2.toUpperCase()\n : \"en-CA\";\n let currency = booking.order.currency;\n if (!currency) currency = booking.company.currency;\n const total = tipAmt.toLocaleString(companyCode, {\n style: \"currency\",\n currency,\n minimumFractionDigits: 2,\n });\n const clientName =\n booking.client.firstname + \" \" + booking.client.lastname.charAt(0);\n\n const msg =\n \"Message from \" +\n companyName +\n \". You have received a tip of \" +\n total +\n \" from \" +\n clientName +\n \" for your service '\" +\n serviceName +\n \"'. Keep up the great work!\";\n logger.debug(\"msg to = \" + to);\n logger.debug(\"msg = \" + msg);\n const smsresult = await sendSms(to, msg, getCountryCodeForSms());\n logger.debug(\"smsresult = \" + JSON.stringify(smsresult));\n }\n\n function getCountryCodeForSms() {\n if (booking.order.bookingAddress) {\n let addr = JSON.parse(booking.order.bookingAddress);\n return addr.countryCode;\n } else {\n return booking.company.countrycode3166alpha2;\n }\n }\n\n const handleRatingTip = async (data) => {\n // WE DO THE FOLLOWING:\n // 1. Create rating entry\n // 2. Create Additional Charge entry\n // 3. Create Billing Transaction entry\n // 4. Create Stripe payment\n // 5. Create ClientCharge entry\n // 6. Send SMS to client to notify of additional charge\n // 7. Send Email to Provider and Admins of Tip\n\n // if done, return to public site\n /*if (done) {\n window.location.href = \"/\";\n }*/\n\n if (!loading && !done) {\n setLoading(true);\n }\n\n if (rating === 0) {\n setSnackMsg(\n \"Please enter a rating (number of stars) for \" + provider.firstname\n );\n setMsgOpen(true);\n setLoading(false);\n return;\n }\n\n try {\n // save rating and re-calc stars\n await saveRating();\n\n const billingDesc =\n \"Tip specified by customer for \" +\n provider.firstname +\n \" \" +\n provider.lastname +\n \". Service provided: \" +\n serviceName +\n \". Location: \" +\n location +\n \" on \" +\n apptDate;\n\n // create additional charge\n if (tipAmt > 0) {\n await createAddCharge(billingDesc);\n await updateBookingAddCharge();\n // create billing transaction\n const billingTransactionId = await createBillingTransaction(\n billingDesc\n );\n\n // create stripe payment\n await createStripePayment(billingDesc, billingTransactionId);\n\n // Send SMS to client to notify of additional charge\n await sendSMSPaymentNotification();\n\n //Send Email to provider that they received money\n await sendProviderTipEmailNotification();\n console.log(\"asdf sent correctly!\");\n //Send SMS to provider that they received money\n // (Inactive, twilio bills too high. Uncomment to activate - please test)\n // await sendProviderTipSMSNotification();\n }\n\n let finalMsg;\n if (tipAmt > 0) {\n finalMsg =\n \"The review and tip for \" +\n provider.firstname +\n \" have been processed. Thank you.\";\n } else {\n finalMsg =\n \"The review for \" +\n provider.firstname +\n \" has been processed. Thank you.\";\n }\n\n // expire token\n const input = {\n id: tokenId,\n expiryDate: new Date(),\n };\n await API.graphql(\n graphqlOperation(mutations.updatePublicAccessToken, { input })\n );\n\n setSnackMsg(finalMsg);\n setMsgOpen(true);\n setDone(true);\n window.location.href = \"/\";\n } catch (err) {\n logger.error(\"*** an error occurred. The error was: \" + err.message);\n logger.error(err);\n const errorresult = await logSystemError(\n booking.company.id,\n \"ERROR\",\n \"Saving Rating and Tip on TipPage\",\n 0,\n err\n );\n logger.debug(errorresult);\n setSnackMsg(\n `Unable to save rating ` +\n `${tipAmt > 0 ? \"and tip\" : \"information.\"}\n `\n );\n setMsgOpen(true);\n setLoading(false);\n return;\n }\n };\n\n return (\n <>\n <Snackbar\n anchorOrigin={{\n vertical: \"top\",\n horizontal: \"center\",\n }}\n open={msgOpen}\n autoHideDuration={3000}\n onClose={() => setMsgOpen(false)}\n ContentProps={{\n \"aria-describedby\": \"message-id\",\n }}\n message={<span id=\"message-id\">{snackMsg}</span>}\n />\n <MainNavBar company={props.company} />\n {booking && (\n <Container maxWidth=\"lg\" style={{ marginTop: \"115px\" }}>\n {\n //if provider exists\n provider && (\n /* Image, Name and Bio */\n <Grid\n container\n direction=\"column\"\n justifyContent=\"flex-start\"\n rowSpacing={2}\n ></Grid>\n )\n }\n\n {/* Left Right Layout */}\n <Grid container spacing={smallerWidthThanSixHundred ? 7 : 0}>\n {/* Left Side */}\n <Grid item sm={12} md={8}>\n <Grid\n container\n item\n md={12}\n justifyContent=\"flex-start\"\n direction=\"column\"\n >\n <Typography\n style={{\n marginTop: !smallerWidthThanSixHundred ? \"1.5rem\" : \"60px\",\n marginBottom: \"1rem\",\n }}\n variant=\"h3\"\n >\n {`Leave a review for ${\n booking.provider.firstname\n } ${booking.provider.lastname.substring(0, 1)}. for ${\n serviceName ? serviceName : \"\"\n }`}\n </Typography>\n {/* <Typography variant=\"body1\">\n How satisfied were you with the service?\n </Typography> */}\n </Grid>\n\n {/* Stars */}\n <Grid\n container\n item\n md={12}\n justifyContent=\"flex-start\"\n direction=\"row\"\n alignItems={\"center\"}\n >\n <Rating\n style={{ color: props.selectedColor }}\n name=\"hover-side\"\n value={rating}\n onChangeActive={(event, newHover) => {\n setHover(newHover);\n }}\n onChange={(event, newValue) => {\n setRating(newValue);\n }}\n size=\"large\"\n />\n <Box ml={1} sx={{ marginTop: \"4px\" }}>\n {labels[hover !== -1 ? hover : rating]}\n </Box>\n </Grid>\n\n {/* Textbox */}\n <Grid\n container\n style={{ marginTop: \"1rem\" }}\n item\n md={12}\n justifyContent=\"flex-start\"\n direction=\"row\"\n >\n <TextField\n variant=\"outlined\"\n size=\"small\"\n style={{ width: \"100%\" }}\n id=\"outlined-multiline-static\"\n label=\"Review\"\n value={review}\n onChange={(event) => setReview(event.target.value)}\n InputProps={{ disableUnderline: true }}\n multiline\n rows=\"4\"\n />\n </Grid>\n\n {localStorage.getItem(\"showTipOption\") !== \"false\" && (\n /*Tip amount */\n <Grid\n container\n item\n md={12}\n justifyContent=\"flex-start\"\n direction=\"column\"\n >\n {provider && (\n <Typography\n style={{ marginTop: \"1rem\", marginBottom: \"1rem\" }}\n variant=\"body1\"\n >\n Add a tip for{\" \"}\n {`${provider.firstname} ${provider.lastname.substring(\n 0,\n 1\n )}.`}\n </Typography>\n )}\n\n <div\n style={{\n display: \"flex\",\n flexWrap: \"wrap\",\n }}\n >\n <div\n style={{\n display: \"flex\",\n flexWrap: \"nowrap\",\n gap: !smallerWidthThanSixHundred ? \"0.4rem\" : \"0.75rem\",\n width: !smallerWidthThanSixHundred ? \"100%\" : \"60%\",\n }}\n >\n <Chip\n variant={\n tipText && tipText === \"15\" ? \"filled\" : \"outlined\"\n }\n color=\"primary\"\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n /* flexGrow: 1, */\n cursor: \"pointer\",\n \"&.MuiChip-filled\": {\n background: props.selectedColor,\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"primary.main\",\n },\n \"&.MuiChip-outlined\": {\n borderColor: \"#808080\",\n color: \"#808080\",\n },\n fontFamily: \"Roboto\",\n fontSize: \"1rem\",\n width: \"23.5%\",\n }}\n onClick={handleClickOpt1}\n label={\"15%\"}\n />\n\n <Chip\n variant={\n tipText && tipText === \"20\" ? \"filled\" : \"outlined\"\n }\n color=\"primary\"\n sx={{\n width: \"23.5%\",\n\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n /* flexGrow: 1, */\n cursor: \"pointer\",\n \"&.MuiChip-filled\": {\n background: props.selectedColor,\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"primary.main\",\n },\n \"&.MuiChip-outlined\": {\n borderColor: \"#808080\",\n color: \"#808080\",\n },\n fontFamily: \"Roboto\",\n fontSize: \"1rem\",\n }}\n onClick={handleClickOpt2}\n label={\"20%\"}\n />\n\n <Chip\n variant={\n tipText && tipText === \"25\" ? \"filled\" : \"outlined\"\n }\n color=\"primary\"\n sx={{\n width: \"23.5%\",\n\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n /* flexGrow: 1, */\n cursor: \"pointer\",\n \"&.MuiChip-filled\": {\n background: props.selectedColor,\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"primary.main\",\n },\n \"&.MuiChip-outlined\": {\n borderColor: \"#808080\",\n color: \"#808080\",\n },\n fontFamily: \"Roboto\",\n fontSize: \"1rem\",\n }}\n onClick={handleClickOpt3}\n label={\"25%\"}\n />\n <Chip\n variant={\n tipText && tipText === \"custom\"\n ? \"filled\"\n : \"outlined\"\n }\n color=\"primary\"\n sx={{\n width: \"29.5%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n cursor: \"pointer\",\n \"&.MuiChip-filled\": {\n background: props.selectedColor,\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"primary.main\",\n },\n \"&.MuiChip-outlined\": {\n borderColor: \"#808080\",\n color: \"#808080\",\n },\n\n fontFamily: \"Roboto\",\n fontSize: \"1rem\",\n }}\n onClick={handleCustomTip}\n label={\"Custom\"}\n />\n </div>\n </div>\n\n {tipText && tipText === \"custom\" && (\n <TextField\n sx={{\n marginTop: \"1.5rem\",\n width: !smallerWidthThanSixHundred ? \"100%\" : \"300px\",\n //maxWidth: \"300px\"\n }}\n variant=\"outlined\"\n size=\"small\"\n type=\"number\"\n id=\"amount\"\n label=\"Custom amount\"\n InputProps={{\n disableUnderline: true,\n startAdornment: booking && (\n <InputAdornment position=\"start\">\n <strong>\n {getCurrencySymbolByCompany(booking.company)}\n </strong>\n </InputAdornment>\n ),\n }}\n value={tipAmt}\n onChange={(event) => {\n setTipAmt(event.target.value);\n //saveCustomTip();\n }}\n />\n )}\n </Grid>\n )}\n\n <Grid\n container\n item\n md={12}\n justifyContent=\"flex-start\"\n direction=\"column\"\n >\n {provider && (\n <Button\n style={{\n marginTop: \"1.5rem\",\n width: !smallerWidthThanSixHundred ? \"100%\" : \"300px\",\n //maxWidth: \"300px\"\n }}\n variant=\"contained\"\n onClick={handleRatingTip}\n disabled={loading || !rating}\n >\n {/* `Rate ${\" \"}${\n provider.firstname\n } ${provider.lastname.substring(0, 1)}.` */}\n {loading ? (\n <CircularProgress size={12} sx={{ color: \"#fff\" }} />\n ) : (\n `Submit Review`\n )}\n </Button>\n )}\n </Grid>\n </Grid>\n </Grid>\n </Container>\n )}\n </>\n );\n};\n","export default __webpack_public_path__ + \"static/media/MBLogo.289e8153.svg\";","import {\n Box,\n Button,\n FormControl,\n TextField,\n Typography,\n useMediaQuery,\n} from \"@mui/material\";\nimport React, { useEffect, useState } from \"react\";\nimport MainNavBar from \"../components/MainNavbar\";\nimport { withRouter } from \"react-router-dom\";\nimport Auth from \"@aws-amplify/auth\";\nconst text_field_style = { width: \"100%\", maxWidth: \"300px\" };\n\nfunction Forgot(props) {\n const [stage, setStage] = useState(1);\n const [email, setEmail] = useState(\"\");\n const [confirmationCode, setConfirmationCode] = useState(\"\");\n const [pasw, setPasw] = useState(\"\");\n const [errorMsg, setErrorMsg] = useState();\n const [error, setError] = useState();\n const smallerScreen = useMediaQuery(\"(min-width:600px)\");\n\n useEffect(() => {\n if (\n props.location.state &&\n props.location.state.stage &&\n props.location.state.email\n ) {\n setStage(props.location.state.stage);\n setEmail(props.location.state.email);\n }\n });\n\n async function sendCode() {\n if (email) {\n try {\n await forgotPassword();\n } catch (err) {\n console.log(\"error whole forgotpassword\");\n console.log(err);\n setErrorMsg(err.message);\n }\n } else {\n setErrorMsg(\"Please enter a valid email address\");\n }\n }\n const forgotPassword = async () => {\n Auth.forgotPassword(email)\n .then((data) => {\n console.log(data);\n setStage(2);\n })\n .catch((err) => setErrorMsg(err.message));\n };\n\n const resetPassword = async () => {\n Auth.forgotPasswordSubmit(email, confirmationCode, pasw)\n .then((data) => {\n console.log(\"resetPassword response\", data);\n props.history.push(\"/login\", {\n fromPath: props.location.state.fromPath,\n });\n })\n .catch((err) => {\n console.log(\"resetPassword error\", err);\n });\n };\n\n return (\n <div>\n <MainNavBar\n company={props.company}\n user={null}\n guestUser={true}\n signOutOp={props.signOutOp}\n currentPath={props.location.pathname}\n banner={false}\n publicsitesettings={props.publicsitesettings}\n />\n <div\n style={{\n width: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n flexDirection: \"column\",\n gap: \"1rem\",\n marginTop: \"115px\",\n padding: \"0 1rem\",\n }}\n >\n <Typography variant=\"h4\" sx={{ textAlign: \"center\" }}>\n {`Reset your password`}\n </Typography>\n {stage === 1 && (\n <Typography variant=\"body2\" sx={{ textAlign: \"center\" }}>\n {`Please enter your email address to receive the confirmation code.`}\n </Typography>\n )}\n {stage === 2 && (\n <Typography variant=\"body2\" sx={{ textAlign: \"center\" }}>\n {`Please enter your confirmation code and new password.`}\n </Typography>\n )}\n {errorMsg && (\n <Box\n style={{\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"0.5rem\",\n marginBottom: \"1rem\",\n }}\n >\n <Typography variant=\"body2\" style={{ color: \"red\" }}>\n {errorMsg}\n </Typography>\n </Box>\n )}\n {stage === 2 ? (\n <>\n <TextField\n sx={{\n ...text_field_style,\n maxWidth: !smallerScreen ? \"unset\" : \"300px\",\n }}\n InputProps={{ disableUnderline: true }}\n variant=\"outlined\"\n size=\"small\"\n id=\"userenteredinfo\"\n label=\"Confirmation code\"\n value={confirmationCode ? confirmationCode : \"\"}\n onChange={(e) => setConfirmationCode(e.target.value)}\n />\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n\n gap: \"1rem\",\n width: \"100%\",\n }}\n >\n <TextField\n sx={{\n ...text_field_style,\n alignSelf: \"center\",\n maxWidth: !smallerScreen ? \"unset\" : \"300px\",\n }}\n type=\"password\"\n InputProps={{ disableUnderline: true }}\n variant=\"outlined\"\n size=\"small\"\n id=\"password\"\n label=\"Password\"\n value={pasw}\n onChange={(e) => setPasw(e.target.value)}\n />\n </Box>\n\n <Button\n variant=\"contained\"\n sx={{\n ...text_field_style,\n maxWidth: !smallerScreen ? \"unset\" : \"300px\",\n }}\n onClick={resetPassword}\n disabled={\n confirmationCode.trim().length === 0 || pasw.trim().length === 0\n }\n >\n Reset password\n </Button>\n </>\n ) : (\n <>\n <TextField\n sx={{\n ...text_field_style,\n maxWidth: !smallerScreen ? \"unset\" : \"300px\",\n }}\n InputProps={{ disableUnderline: true }}\n variant=\"outlined\"\n size=\"small\"\n id=\"email\"\n label=\"Email\"\n value={email}\n onChange={(e) => {\n let ev = e.target.value;\n ev = ev.trim().toLowerCase();\n setEmail(ev);\n if (errorMsg) setErrorMsg();\n }}\n />\n <Button\n variant=\"contained\"\n sx={{\n ...text_field_style,\n maxWidth: !smallerScreen ? \"unset\" : \"300px\",\n }}\n onClick={sendCode}\n disabled={email.trim().length === 0}\n >\n Send code\n </Button>\n </>\n )}\n </div>\n </div>\n );\n}\n\nexport default withRouter(Forgot);\n","import API, { graphqlOperation } from \"@aws-amplify/api\";\nimport * as queries from \"../graphql/queries\";\n\nconst initializeGTM = (gtmId) => {\n const gtmScript = document.createElement(\"script\");\n gtmScript.innerHTML = `\n (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\n 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\n })(window,document,'script','dataLayer','${gtmId}');\n `;\n document.head.appendChild(gtmScript);\n};\n\nconst fetchGTMIds = async (companyId) => {\n try {\n const result = await API.graphql(\n graphqlOperation(queries.getRefData, {\n refType: `integration|${companyId}`,\n refName: \"data-integration\",\n })\n );\n let hookIds = null;\n\n if (result.data.getRefData) {\n let overrideValue = JSON.parse(result.data.getRefData.overrideValue);\n\n //check to see if a hook with the hookName exists\n if (overrideValue.hooks && overrideValue.hooks[\"google-tag-manager\"]) {\n let hooks = overrideValue.hooks[\"google-tag-manager\"];\n hookIds = hooks.map((hook) => hook.id);\n }\n }\n return hookIds;\n } catch (e) {\n console.log(\"Error: unable to fetchGTMId for companyId \", companyId);\n }\n};\n\nexport { initializeGTM, fetchGTMIds };\n","export default __webpack_public_path__ + \"static/media/WarningTriangleIcon.e50952e9.svg\";","import WarningTriangleIcon from \"../images/WarningTriangleIcon.svg\";\nimport { Box, Dialog, DialogTitle, DialogContent } from \"@mui/material\";\n\nconst MaintenanceDialog = () => {\n return (\n <>\n <Dialog open={true} headingIcon={WarningTriangleIcon}>\n <DialogTitle\n sx={{\n fontSize: \"1.5rem\",\n fontWeight: \"500\",\n display: \"flex\",\n alignItems: \"center\",\n gap: \"8px\",\n }}\n >\n <img\n src={WarningTriangleIcon}\n alt=\"Warning Triangle Icon\"\n style={{ height: \"24px\", width: \"24px\" }}\n />\n Ongoing maintenance\n </DialogTitle>\n <DialogContent\n sx={{ display: \"flex\", flexDirection: \"column\", gap: \"18px\" }}\n >\n <Box>SCHEDULED MAINTENANCE IN PROGRESS</Box>\n <Box>\n Our system will be temporarily unavailable on Tuesday, September 24,\n while we perform planned system maintenance\n </Box>\n </DialogContent>\n </Dialog>\n </>\n );\n};\n\nexport default MaintenanceDialog;\n","import React, {\n useState,\n useEffect,\n useContext,\n Suspense,\n lazy,\n useRef,\n} from \"react\";\nimport { Logger } from \"@aws-amplify/core\";\nimport API, { graphqlOperation } from \"@aws-amplify/api\";\nimport Auth from \"@aws-amplify/auth\";\nimport { StoreContext } from \"./context/StoreContext\";\nimport {\n Router,\n Route,\n withRouter,\n Redirect,\n useLocation,\n} from \"react-router-dom\";\nimport { createBrowserHistory } from \"history\";\nimport \"./App.css\";\nimport { Helmet } from \"react-helmet\";\nimport {\n publicsiteByCompany,\n companyBySubdomain,\n companyLocationByCompany,\n} from \"./graphql/queries\";\nimport {\n servicesOfCompany,\n skillByCompany,\n} from \"./queries/ListBookingsQueries\";\nimport { parse } from \"query-string\";\nimport { ThemeProvider, StyledEngineProvider } from \"@mui/material/styles\";\nimport { createTheme } from \"@mui/material/styles\";\nimport SignIn from \"./auth/SignIn\";\nimport SignUp from \"./auth/SignUp\";\nimport Logout from \"./auth/Logout\";\nimport { TipPage } from \"./components/tip/TipPage\";\nimport * as Sentry from \"@sentry/react\";\nimport { Integrations } from \"@sentry/tracing\";\nimport { Typography } from \"@mui/material\";\nimport mbLogo from \"../src/images/MBLogo.svg\";\nimport \"typeface-roboto\";\nimport \"typeface-raleway\";\nimport { buildMainTheme } from \"./styles/PublicSiteStyles\";\nimport Forgot from \"./auth/Forgot\";\nimport { fetchGTMIds, initializeGTM } from \"./modules/GoogleTagManager\";\nimport { checkCompanyHasTosFile } from \"./utils/Common/Template\";\nimport MaintenanceDialog from \"./components/MaintenanceDialog\";\nimport { SENTRY_POPUP_ENV } from \"./utils/Constants\";\nimport { useAtom } from \"jotai\";\nimport {\n allActiveServicesAtom,\n allPublicServicesAtom,\n allServicesAtom,\n selectedProviderAtom,\n selectedProviderServicesAtom,\n} from \"./atoms/atoms\";\nSentry.init({\n dsn: \"https://058cfe0ab69349feb230ca4b204f17e4@o435799.ingest.sentry.io/5428728\",\n beforeSend(event, hint) {\n // Check if it is an exception, and if so, show the report dialog\n if (\n process.env.REACT_APP_SENTRY_ENVT === SENTRY_POPUP_ENV &&\n event.exception\n ) {\n Sentry.showReportDialog({\n eventId: event.event_id,\n labelComments:\n \"What happened? Please tell us the steps that caused the issue.\",\n subtitle2:\n \"Please tell us the steps that you took that caused the issue. This will help us fix the problem. Thank you.\",\n });\n }\n return event;\n },\n environment: process.env.REACT_APP_SENTRY_ENVT,\n integrations: [new Integrations.BrowserTracing()],\n release: \"marketbox-public-site@\" + process.env.npm_package_version,\n tracesSampleRate: 1.0, // lower this in prod between 0 to 1\n});\n\nconst SelectService = lazy(() =>\n import(\"./components/booking/SelectService\").catch((e) =>\n window.location.reload()\n )\n);\nconst ProviderPermalink = lazy(() =>\n import(\"./components/ProviderPermalink\").catch((e) =>\n window.location.reload()\n )\n);\nconst ProviderDirectory = lazy(() =>\n import(\"./components/booking/ProviderDirectory\").catch((e) =>\n window.location.reload()\n )\n);\nconst Provider = lazy(() =>\n import(\"./components/booking/Provider\").catch((e) => window.location.reload())\n);\n\nconst ChooseTimeslot = lazy(() =>\n import(\"./components/booking/ChooseTimeslot\").catch((e) =>\n window.location.reload()\n )\n);\nconst AutoSelectProviderTimeSlot = lazy(() =>\n import(\"./components/booking/AutoSelectProviderTimeSlot\").catch((e) =>\n window.location.reload()\n )\n);\nconst ConfirmAppointmentDetail = lazy(() =>\n import(\"./components/booking/ConfirmAppointmentDetails\").catch((e) =>\n window.location.reload()\n )\n);\nconst OrderPayment = lazy(() =>\n import(\"./components/booking/OrderPayment\").catch((e) =>\n window.location.reload()\n )\n);\nconst ConfirmOrder = lazy(() =>\n import(\"./components/booking/ConfirmOrder\").catch((e) =>\n window.location.reload()\n )\n);\nconst ChoosePackage = lazy(() =>\n import(\"./components/booking/ChoosePackage\").catch((e) =>\n window.location.reload()\n )\n);\nconst BookingComplete = lazy(() =>\n import(\"./components/booking/BookingComplete\").catch((e) =>\n window.location.reload()\n )\n);\nconst NotFound = lazy(() =>\n import(\"./components/NotFound\").catch((e) => window.location.reload())\n);\nconst PageNotFound = lazy(() =>\n import(\"./components/PageNotFound\").catch((e) => window.location.reload())\n);\nconst MsgTest = lazy(() =>\n import(\"./components/booking/MsgTest\").catch((e) => window.location.reload())\n);\nconst ContactPage = lazy(() =>\n import(\"./components/booking/ContactPage\").catch((e) =>\n window.location.reload()\n )\n);\nconst logger = new Logger(\"App\");\nlet params;\nconst limit = process.env.REACT_APP_LISTLIMIT; // global setting for list limits\n\n// set default theme\nconst defaultButtonColor = \"#ff4400\";\nconst defaultButtonTextColor = \"white\";\nlet buttonColor = localStorage.getItem(\"buttonColor\") || defaultButtonColor;\nlet buttonTextColor =\n localStorage.getItem(\"buttonTextColor\") || defaultButtonTextColor;\n\nlet theme = createTheme({\n palette: {\n primary: {\n main: buttonColor,\n },\n },\n});\n\nexport const history = createBrowserHistory();\nexport const UserContext = React.createContext();\n\nfunction App(props) {\n const [user, setUser] = useState();\n const [guestUser, setGuestUser] = useState();\n const [guestCheckout, setGuestCheckout] = useState(false);\n const [userAttributes, setAttributes] = useState({});\n const [companyId, setCompanyId] = useState(\"\");\n const [company, setCompany] = useState();\n const [companyLocations, setCompanyLocations] = useState();\n const [skills, setSkills] = useState();\n const [publicSiteSettings, setPublicSiteSettings] = useState();\n const { state, actions } = useContext(StoreContext);\n const [serviceLoading, setServiceLoading] = useState(true);\n const [loading, setLoading] = useState(false);\n const [landingPage, setLandingPage] = useState(false);\n const [loggedOut, setLoggedOut] = useState(false);\n const currentPath = \"/\";\n const [showLoader, setShowLoader] = useState(true);\n const [selectedColor, setSelectedColor] = useState(null);\n const [provAgnoFlow, setProvAgnoFlow] = useState(false);\n const [defaultCountry, setDefaultCountry] = useState();\n let pathingInfo = {\n currentPathname: null,\n currentSearch: null,\n message: \"Please use the Previous and Next buttons to navigate.\",\n openMessage: false,\n };\n const [allServices, setAllServices] = useAtom(allServicesAtom);\n const [allActiveServices] = useAtom(allActiveServicesAtom);\n\n // return new theme, set primary color only for now\n const fetchSkillsData = async (compId) => {\n const response = await API.graphql(\n graphqlOperation(skillByCompany, {\n companyId: compId,\n filter: {\n and: [{ active: { ne: false } }, { deleted: { ne: true } }],\n },\n limit,\n })\n );\n const result = await response.data.skillByCompany.items;\n setSkills(result);\n };\n\n const fetchServiceTypeData = async (compId) => {\n const filter = {\n and: [\n { active: { ne: false } },\n { deleted: { ne: true } },\n { isVisible: { ne: false } },\n ],\n };\n const response = await API.graphql(\n graphqlOperation(servicesOfCompany, {\n companyId: compId,\n filter,\n limit,\n })\n );\n const result = await response.data.serviceTypeByCompany.items;\n\n setAllServices(sortByOrdinal(result));\n setServiceLoading(false);\n };\n\n const fetchCompanyLocations = async (companyId, offersRemoteServices) => {\n const filter = {\n and: [{ active: { ne: false } }, { deleted: { ne: true } }],\n };\n\n const response = await API.graphql(\n graphqlOperation(companyLocationByCompany, {\n companyId,\n filter,\n limit,\n })\n );\n let result = await response.data.companyLocationByCompany.items;\n // add \"My Address to the beginning of the array\"\n if (offersRemoteServices) {\n result.unshift({\n id: \"0\",\n locationname: \"My location\",\n });\n }\n setCompanyLocations(result);\n };\n\n const fetchCompanyPublicSettings = async (compId) => {\n let primaryColor = \"\";\n const response = await API.graphql(\n graphqlOperation(publicsiteByCompany, { companyId: compId })\n );\n let [settings] = response.data.publicsiteByCompany.items;\n let styleCustomization;\n if (\n settings?.StyleCustomization &&\n settings.StyleCustomization.length > 0\n ) {\n styleCustomization = JSON.parse(settings.StyleCustomization);\n setPublicSiteSettings({\n ...settings,\n StyleCustomization: styleCustomization,\n });\n } else {\n styleCustomization = {\n bookingFlowCustomizations: {\n showHeader: true,\n backgroundColor: publicSiteSettings.buttonColor,\n opacity: 0.2,\n circularLogo: false,\n showHeadings: true,\n showLogo: true,\n fontTypeForAllHeading: \"Raleway\",\n mainHeading: company?.name\n ? company.name\n : \"Please set Heading 1 in company public settings\",\n mandatoryNotes: false,\n checkoutOption: \"ACCOUNT_OR_GUEST\",\n },\n };\n setPublicSiteSettings({\n ...settings,\n StyleCustomization: styleCustomization,\n });\n }\n\n localStorage.setItem(\"backgroundImgUrl\", settings.backgroundImageUrl);\n localStorage.setItem(\"buttonColor\", settings.buttonColor);\n localStorage.setItem(\"heading1Text\", settings.heading1Text);\n localStorage.setItem(\"heading2Text\", settings.heading2Text);\n localStorage.setItem(\"textColor\", settings.textColor);\n localStorage.setItem(\n \"buttonTextColor\",\n styleCustomization?.bookingFlowCustomizations?.buttonTextColor ||\n defaultButtonTextColor\n );\n\n if (\n styleCustomization?.tipPageCustomizations?.showTipOption !== undefined\n ) {\n localStorage.setItem(\n \"showTipOption\",\n styleCustomization?.tipPageCustomizations.showTipOption\n );\n }\n theme = buildMainTheme(\n settings.buttonColor.trim(),\n buttonTextColor,\n settings?.textColor?.trim()\n );\n setSelectedColor(settings.buttonColor.trim());\n primaryColor = settings.buttonColor;\n primaryColor = primaryColor.trim(); // trim in case space added.\n setSelectedColor(primaryColor);\n };\n\n useEffect(() => {\n // get companyId passed in query string\n if (props && props.location && props.location.search) {\n params = parse(props.location.search);\n logger.debug(\"page = \" + params.p); // \"tippage\"\n if (params.p && params.p !== \"\") {\n setLandingPage(true);\n }\n }\n\n async function doFetch() {\n await init();\n }\n doFetch();\n }, [selectedColor]);\n\n useEffect(() => {\n async function doFetch() {\n setLoggedOut(false);\n history.push(\"/\");\n window.location.reload();\n }\n if (loggedOut) doFetch();\n }, [loggedOut]);\n\n function hideLoader() {\n const el = document.querySelector(\".loader-container\");\n if (el) {\n el.remove();\n setShowLoader(!showLoader);\n }\n }\n\n const historyListening = useRef(false);\n if (!historyListening.current) {\n historyListening.current = true;\n history.listen((newLocation, action) => {\n try {\n if (backPathingEnabled(newLocation)) {\n //In the case the backpathing should be enabled, return and do nothing.\n return;\n }\n\n if (action === \"PUSH\") {\n if (\n newLocation.pathname !== pathingInfo.currentPathname ||\n newLocation.search !== pathingInfo.currentSearch\n ) {\n pathingInfo.openMessage = false;\n state.bookingState.seenConfirmOrder = false;\n state.bookingState.seenOrderPayment = false;\n state.bookingState.seenBookingComplete = false;\n // Save new location\n pathingInfo.currentPathname = newLocation.pathname;\n pathingInfo.currentSearch = newLocation.search;\n // Clone location object and push it to history\n history.push({\n pathname: newLocation.pathname,\n search: newLocation.search,\n });\n }\n } else {\n // Send user back if they try to navigate back\n pathingInfo.openMessage = true;\n history.go(1);\n }\n } catch (e) {\n console.log(\"history listen error\", e);\n }\n });\n }\n\n function backPathingEnabled(path) {\n if (\n path === \"/\" ||\n path === \"/logout\" ||\n path === \"/login\" ||\n path === \"/notfound\" ||\n path === \"/msgtest\" ||\n path === \"/service\"\n ) {\n return true;\n } else {\n return false;\n }\n }\n\n async function init() {\n setLoading(false);\n state.bookingState = {};\n // log in as guest if not authenticated\n await SignInAsGuest();\n const { compId, company } = await getCompanyFromDomain();\n const { offersRemoteServices } = company;\n if ((company && company.active === false) || !company) {\n history.push(\"/notfound\");\n setLoading(true);\n hideLoader();\n return;\n }\n\n //Append MarketBox GTMId\n initializeGTM(process.env.REACT_APP_MB_GTM_ID);\n\n //route user to maintenance dialog if maintenance flag is ON\n if (process.env.REACT_APP_FF_ONGOING_MAINTENANCE === \"true\") {\n history.push(\"/maintenance\");\n }\n\n const [, , , , gtmIds] = await Promise.all([\n fetchServiceTypeData(compId),\n fetchSkillsData(compId),\n fetchCompanyLocations(compId, offersRemoteServices),\n fetchCompanyPublicSettings(compId),\n fetchGTMIds(compId),\n ]);\n\n if (gtmIds && Array.isArray(gtmIds) && gtmIds.length > 0) {\n initializeGTM(gtmIds[0]); //for now we will only embed one ID\n }\n\n setCompanyId(compId);\n state.bookingState.company = company;\n state.bookingState.companyId = compId;\n\n //check if company has a Tos and set 'hasTos' in bookingState\n const hasTos = await checkCompanyHasTosFile(compId);\n actions.setBookingState({\n ...state.bookingState,\n hasTos: hasTos,\n });\n\n setLoading(true);\n hideLoader();\n }\n\n function sortByOrdinal(services) {\n if (services) {\n return services.sort((s1, s2) => {\n if (s1.category.ordinal > s2.category.ordinal) return 1;\n if (s1.category.ordinal < s2.category.ordinal) return -1;\n if (s1.category.id === s2.category.id) {\n if (s1.ordinal > s2.ordinal) return 1;\n if (s1.ordinal < s2.ordinal) return -1;\n return 0;\n }\n return 0;\n });\n }\n return [];\n }\n\n async function SignInAsGuest() {\n let userAuthenticated = false;\n let user = null;\n try {\n // check if user signed in\n try {\n const authenticatedUser = await Auth.currentAuthenticatedUser({\n bypassCache: true,\n });\n if (\n authenticatedUser &&\n authenticatedUser.signInUserSession &&\n authenticatedUser.signInUserSession.idToken &&\n authenticatedUser.signInUserSession.idToken.payload\n ) {\n let groups =\n authenticatedUser.signInUserSession.idToken.payload[\n \"cognito:groups\"\n ];\n if (groups && groups.length) {\n setUser(authenticatedUser);\n setAttributes(authenticatedUser.attributes);\n if (\n authenticatedUser.attributes.email ===\n process.env.REACT_APP_MB_GUEST_EMAIL\n )\n setGuestUser(true);\n else setGuestUser(false);\n userAuthenticated = true;\n state.bookingState.user = authenticatedUser;\n }\n }\n } catch (e) {\n console.log(\"user not found\", e.code);\n }\n\n if (!userAuthenticated) {\n const user = await Auth.signIn(\n process.env.REACT_APP_MB_GUEST_EMAIL,\n process.env.REACT_APP_MB_GUEST_PWD\n );\n setUser(user);\n setAttributes(user.attributes);\n setGuestUser(true);\n\n state.bookingState.user = user;\n }\n } catch (err) {\n if (err.code === \"UserNotConfirmedException\") {\n // The error happens if the user didn't finish the confirmation step when signing up\n // In this case you need to resend the code and confirm the user\n // About how to resend the code and confirm the user, please check the signUp part\n } else if (err.code === \"PasswordResetRequiredException\") {\n // The error happens when the password is reset in the Cognito console\n // In this case you need to call forgotPassword to reset the password\n // Please check the Forgot Password part.\n } else if (err.code === \"NotAuthorizedException\") {\n // The error happens when the incorrect password is provided\n } else if (err.code === \"UserNotFoundException\") {\n // The error happens when the supplied username/email does not exist in the Cognito user pool\n } else {\n logger.debug(\n \"An error occurred attempting to login. Error was: \" +\n JSON.stringify(err)\n );\n }\n }\n }\n\n const updateCurrentUser = (u) => {\n state.bookingState.user = u;\n state.bookingState.bookingUser = u;\n actions.setBookingState(state.bookingState);\n setUser(u);\n setGuestUser(false);\n };\n\n const setBookingUserInState = (guest_mbuser) => {\n state.bookingState.bookingUser = guest_mbuser;\n state.bookingState.guestCheckout = true;\n setGuestCheckout(true);\n };\n\n const signOutOp = async () => {\n history.push(\"/logout\");\n };\n\n const setClientInfoInBookingState = (clientInfoObj) => {\n state.bookingState.isNewClient = clientInfoObj.isNewClient;\n state.bookingState.client = clientInfoObj.client;\n actions.setBookingState(state.bookingState);\n };\n\n const setClientPackagesInBookingState = (clientPackages) => {\n state.bookingState.clientExistingPackages = clientPackages;\n actions.setBookingState(state.bookingState);\n };\n\n const getCompanyFromDomain = async () => {\n // enter domain here\n //frasiercrane-dev.gomarketbox.com\n let domain = window.location.hostname;\n //\"justkeepswimming.gomarketbox.com\";\n //let domain = \"frasiercrane-dev.gomarketbox.com\"; //\"theebigrelease.gomarketbox.com\"; //frasiercrane-dev.gomarketbox.com\";\n let compId = \"\";\n let company = {};\n // fix to work for localhost\n if (domain === \"localhost\") {\n //domain = \"gaming-dev.gomarketbox.com\";\n domain = \"frasiercrane.gomarketbox.com\";\n //domain = \"programmersyounite.gomarketbox.com\";\n // domain = \"jccs-devm.gomarketbox.com\";\n // domain = \"april21.gomarketbox.com\";\n }\n\n const response = await API.graphql(\n graphqlOperation(companyBySubdomain, {\n subdomain: domain,\n })\n );\n if (\n response.data.companyBySubdomain.items &&\n response.data.companyBySubdomain.items.length === 1\n ) {\n compId = response.data.companyBySubdomain.items[0].id;\n company = response.data.companyBySubdomain.items[0];\n setCompany(company);\n setCompanyId(compId);\n providerAgnosticFlow(company);\n setDefaultCountry(company.countrycode3166alpha2 || \"ca\");\n localStorage.setItem(\"companyId\", compId);\n localStorage.setItem(\"company\", JSON.stringify(company));\n } else {\n logger.error(\n \"*** ERROR ***: Unable to find a company for subdomain: \" + domain\n );\n }\n return { compId, company };\n };\n\n function providerAgnosticFlow(comp) {\n if (comp.ProvAgnoFlowConfig) {\n const ProvAgnoFlowConfig = JSON.parse(comp.ProvAgnoFlowConfig);\n setProvAgnoFlow(ProvAgnoFlowConfig.isEnabled);\n }\n }\n\n function getCompanyTagline() {\n let tagline;\n if (company && company?.tagline?.length <= 0) {\n tagline = company.name;\n } else {\n tagline = company.tagline;\n }\n return tagline;\n }\n\n if (showLoader) {\n return null;\n }\n\n function FallbackComponent() {\n return (\n <div>\n We are sorry but an error has occurred. Don't worry, our development\n team has already been notified and will be denied dessert tonight.\n </div>\n );\n }\n\n const myFallbackComponent = <FallbackComponent />;\n\n return (\n <>\n <Sentry.ErrorBoundary fallback={myFallbackComponent} showDialog>\n <StyledEngineProvider injectFirst>\n <ThemeProvider theme={theme}>\n <UserContext.Provider\n value={{ user, userAttributes, guestUser, guestCheckout }}\n >\n <div id=\"main-content\" style={{ minHeight: \"90vh\" }}>\n <Helmet>\n <title>\n {company && company.active !== false\n ? getCompanyTagline()\n : \"Company Not Found\"}\n </title>\n </Helmet>\n <Router history={history}>\n <Route\n path=\"/maintenance\"\n component={() => {\n return loading ? (\n <div>\n <Suspense fallback={<div></div>}>\n {process.env.REACT_APP_FF_ONGOING_MAINTENANCE ===\n \"true\" ? (\n <MaintenanceDialog />\n ) : (\n <SelectService\n provAgnoFlow={provAgnoFlow}\n serviceTypes={allActiveServices}\n skills={skills}\n companyLocations={companyLocations}\n companyId={companyId}\n company={company}\n loading={serviceLoading}\n publicsitesettings={publicSiteSettings}\n signOutOp={signOutOp}\n pathingInfo={pathingInfo}\n selectedColor={\n selectedColor ? selectedColor : \"#7AA0CD\"\n }\n />\n )}\n </Suspense>\n </div>\n ) : (\n \"\"\n );\n }}\n />\n <Route\n path=\"/service\"\n component={() => {\n return loading ? (\n <Suspense fallback={<div></div>}>\n <SelectService\n provAgnoFlow={provAgnoFlow}\n serviceTypes={allActiveServices}\n skills={skills}\n companyLocations={companyLocations}\n companyId={companyId}\n company={company}\n loading={serviceLoading}\n publicsitesettings={publicSiteSettings}\n pathingInfo={pathingInfo}\n signOutOp={signOutOp}\n selectedColor={\n selectedColor ? selectedColor : \"#7AA0CD\"\n }\n />\n </Suspense>\n ) : (\n \"\"\n );\n }}\n />\n <Route\n path=\"/contact\"\n component={() => {\n return loading ? (\n <Suspense fallback={<div></div>}>\n <ContactPage\n company={company}\n publicsitesettings={publicSiteSettings}\n pathingInfo={pathingInfo}\n selectedColor={\n selectedColor ? selectedColor : \"#7AA0CD\"\n }\n />\n </Suspense>\n ) : (\n \"\"\n );\n }}\n />\n <Route\n path=\"/notfound\"\n component={() => {\n return loading ? (\n <Suspense fallback={<div></div>}>\n <NotFound\n company={company}\n pathingInfo={pathingInfo}\n selectedColor={\n selectedColor ? selectedColor : \"#7AA0CD\"\n }\n />\n </Suspense>\n ) : (\n \"\"\n );\n }}\n />\n <Route\n path=\"/pagenotfound\"\n component={() => {\n return loading ? (\n <Suspense fallback={<div></div>}>\n <PageNotFound\n company={company}\n pathingInfo={pathingInfo}\n selectedColor={\n selectedColor ? selectedColor : \"#7AA0CD\"\n }\n />\n </Suspense>\n ) : (\n \"\"\n );\n }}\n />\n <Route\n exact\n path=\"/providers\"\n component={() => {\n return loading ? (\n <Suspense fallback={<div></div>}>\n <ProviderDirectory\n serviceTypes={allServices}\n skills={skills}\n companyLocations={companyLocations}\n companyId={companyId}\n company={company}\n loading={serviceLoading}\n publicsitesettings={publicSiteSettings}\n signOutOp={signOutOp}\n pathingInfo={pathingInfo}\n selectedColor={\n selectedColor ? selectedColor : \"#7AA0CD\"\n }\n />\n </Suspense>\n ) : (\n \"\"\n );\n }}\n />\n <Route\n path=\"/providers/:providerName\"\n component={() => {\n return loading ? (\n <div>\n <Suspense fallback={<div></div>}>\n <ProviderPermalink\n provAgnoFlow={provAgnoFlow}\n skills={skills}\n companyLocations={companyLocations}\n companyId={companyId}\n company={company}\n publicSiteSettings={publicSiteSettings}\n pathingInfo={pathingInfo}\n signOutOp={signOutOp}\n selectedColor={\n selectedColor ? selectedColor : \"#7AA0CD\"\n }\n />\n </Suspense>\n </div>\n ) : (\n \"\"\n );\n }}\n />\n <Route\n path=\"/provider/:providerName\"\n render={({ match }) => (\n <Redirect\n to={`/providers/${match.params.providerName}`}\n />\n )}\n />\n <Route\n path=\"/choose-timeslot\"\n component={() => {\n return loading ? (\n <Suspense fallback={<div></div>}>\n <ChooseTimeslot\n serviceTypes={allServices}\n skills={skills}\n companyLocations={companyLocations}\n companyId={companyId}\n company={company}\n loading={serviceLoading}\n publicsitesettings={publicSiteSettings}\n signOutOp={signOutOp}\n pathingInfo={pathingInfo}\n selectedColor={\n selectedColor ? selectedColor : \"#7AA0CD\"\n }\n />\n </Suspense>\n ) : (\n \"\"\n );\n }}\n />\n <Route\n path=\"/auto-timeslot\"\n component={() => {\n return loading ? (\n <Suspense fallback={<div></div>}>\n <AutoSelectProviderTimeSlot\n serviceTypes={allServices}\n skills={skills}\n companyLocations={companyLocations}\n companyId={companyId}\n company={company}\n loading={serviceLoading}\n publicsitesettings={publicSiteSettings}\n signOutOp={signOutOp}\n pathingInfo={pathingInfo}\n selectedColor={\n selectedColor ? selectedColor : \"#7AA0CD\"\n }\n />\n </Suspense>\n ) : (\n \"\"\n );\n }}\n />\n <Route\n path=\"/confirmation\"\n component={() => {\n return loading ? (\n <Suspense fallback={<div></div>}>\n <ConfirmAppointmentDetail\n serviceTypes={allServices}\n skills={skills}\n companyLocations={companyLocations}\n companyId={companyId}\n company={company}\n loading={serviceLoading}\n publicsitesettings={publicSiteSettings}\n signOutOp={signOutOp}\n pathingInfo={pathingInfo}\n selectedColor={\n selectedColor ? selectedColor : \"#7AA0CD\"\n }\n />\n </Suspense>\n ) : (\n \"\"\n );\n }}\n />\n <Route\n path=\"/payment\"\n component={() => {\n return loading ? (\n <Suspense fallback={<div></div>}>\n <OrderPayment\n companyId={companyId}\n company={company}\n publicsitesettings={publicSiteSettings}\n authuser={user}\n signOutOp={signOutOp}\n pathingInfo={pathingInfo}\n selectedColor={\n selectedColor ? selectedColor : \"#7AA0CD\"\n }\n />\n </Suspense>\n ) : (\n \"\"\n );\n }}\n />\n <Route\n path=\"/confirm-order\"\n component={() => {\n return loading ? (\n <Suspense fallback={<div></div>}>\n <ConfirmOrder\n serviceTypes={allServices}\n skills={skills}\n companyLocations={companyLocations}\n companyId={companyId}\n company={company}\n loading={serviceLoading}\n publicsitesettings={publicSiteSettings}\n signOutOp={signOutOp}\n pathingInfo={pathingInfo}\n selectedColor={\n selectedColor ? selectedColor : \"#7AA0CD\"\n }\n />\n </Suspense>\n ) : (\n \"\"\n );\n }}\n />\n <Route\n path=\"/choose-package\"\n component={() => {\n return loading ? (\n <Suspense fallback={<div></div>}>\n <ChoosePackage\n serviceTypes={allServices}\n skills={skills}\n companyLocations={companyLocations}\n companyId={companyId}\n company={company}\n loading={serviceLoading}\n publicsitesettings={publicSiteSettings}\n pathingInfo={pathingInfo}\n signOutOp={signOutOp}\n selectedColor={\n selectedColor ? selectedColor : \"#7AA0CD\"\n }\n />\n </Suspense>\n ) : (\n \"\"\n );\n }}\n />\n <Route\n path=\"/booking-complete\"\n component={() => {\n return loading ? (\n <Suspense fallback={<div></div>}>\n <BookingComplete\n companyId={companyId}\n company={company}\n loading={serviceLoading}\n signOutOp={signOutOp}\n publicsitesettings={publicSiteSettings}\n pathingInfo={pathingInfo}\n selectedColor={\n selectedColor ? selectedColor : \"#7AA0CD\"\n }\n />\n </Suspense>\n ) : (\n \"\"\n );\n }}\n />\n <Route\n path=\"/logout\"\n component={() => {\n return loading ? (\n <Suspense fallback={<div></div>}>\n <Logout\n companyId={companyId}\n company={company}\n loading={serviceLoading}\n setLoggedOut={setLoggedOut}\n publicsitesettings={publicSiteSettings}\n pathingInfo={pathingInfo}\n selectedColor={\n selectedColor ? selectedColor : \"#7AA0CD\"\n }\n />{\" \"}\n </Suspense>\n ) : (\n \"\"\n );\n }}\n />\n <Route\n path=\"/login\"\n component={() => {\n return loading ? (\n <div>\n <SignIn\n companyId={companyId}\n company={company}\n setUser={updateCurrentUser}\n setClient={setClientInfoInBookingState}\n setClientPackages={setClientPackagesInBookingState}\n publicsitesettings={publicSiteSettings}\n appPath={currentPath}\n pathingInfo={pathingInfo}\n selectedColor={\n selectedColor ? selectedColor : \"#7AA0CD\"\n }\n />\n </div>\n ) : (\n \"\"\n );\n }}\n />\n <Route\n path=\"/signup\"\n component={() => {\n return loading && defaultCountry ? (\n company?.clientMayCreateAccount ? (\n <div>\n <SignUp\n companyId={companyId}\n company={company}\n defaultCountry={defaultCountry}\n setBookingUserInState={setBookingUserInState}\n setUser={updateCurrentUser}\n setClient={setClientInfoInBookingState}\n setClientPackages={\n setClientPackagesInBookingState\n }\n publicsitesettings={publicSiteSettings}\n appPath={currentPath}\n pathingInfo={pathingInfo}\n selectedColor={\n selectedColor ? selectedColor : \"#7AA0CD\"\n }\n />\n </div>\n ) : (\n <Redirect to=\"/\" />\n )\n ) : (\n <></>\n );\n }}\n />\n <Route\n path=\"/forgot\"\n component={() => {\n return loading ? (\n <div>\n <Forgot\n companyId={companyId}\n company={company}\n setUser={updateCurrentUser}\n setClient={setClientInfoInBookingState}\n setClientPackages={setClientPackagesInBookingState}\n publicsitesettings={publicSiteSettings}\n appPath={currentPath}\n pathingInfo={pathingInfo}\n selectedColor={\n selectedColor ? selectedColor : \"#7AA0CD\"\n }\n />\n </div>\n ) : (\n \"\"\n );\n }}\n />\n <Route\n path=\"/msgtest\"\n component={() => {\n return loading ? (\n <div>\n <Suspense fallback={<div></div>}>\n <MsgTest\n companyLocations={companyLocations}\n companyId={companyId}\n company={company}\n loading={serviceLoading}\n publicsitesettings={publicSiteSettings}\n signOutOp={signOutOp}\n pathingInfo={pathingInfo}\n selectedColor={\n selectedColor ? selectedColor : \"#7AA0CD\"\n }\n ></MsgTest>\n </Suspense>\n </div>\n ) : (\n \"\"\n );\n }}\n />\n <Route\n exact\n path=\"/\"\n component={() => {\n if (params && params.p && params.p === \"tippage\") {\n return loading ? (\n <TipPage\n companyId={companyId}\n company={company}\n authuser={user}\n selectedColor={\n selectedColor ? selectedColor : \"#7AA0CD\"\n }\n />\n ) : (\n \"\"\n );\n } else {\n return loading ? (\n <Suspense fallback={<div></div>}>\n <SelectService\n provAgnoFlow={provAgnoFlow}\n serviceTypes={allActiveServices}\n skills={skills}\n companyLocations={companyLocations}\n companyId={companyId}\n company={company}\n loading={serviceLoading}\n publicsitesettings={publicSiteSettings}\n signOutOp={signOutOp}\n pathingInfo={pathingInfo}\n selectedColor={\n selectedColor ? selectedColor : \"#7AA0CD\"\n }\n />\n </Suspense>\n ) : (\n \"\"\n );\n }\n }}\n />\n </Router>\n </div>\n <div className=\"footer\">\n <Typography variant=\"subtitle2\">Powered by</Typography>\n <img\n src={mbLogo}\n alt=\"MarketBox\"\n style={{\n width: \"90px\",\n marginBottom: \"10px\",\n }}\n />\n </div>\n </UserContext.Provider>\n </ThemeProvider>\n </StyledEngineProvider>\n </Sentry.ErrorBoundary>\n </>\n );\n}\n\nexport default Sentry.withProfiler(withRouter(App));\n","import { format, utcToZonedTime } from \"date-fns-tz\";\nimport API from \"@aws-amplify/api\";\nexport const createTimeDisplayInfoForTimeZone = (\n dateTimeString,\n targetTz,\n durationMins\n) => {\n const convertedDateTime = utcToZonedTime(dateTimeString, targetTz);\n return {\n dtstamp_str: format(convertedDateTime, \"yyyy-MM-dd'T'HH:mm:ssXXX\", {\n timeZone: targetTz,\n }),\n tz_abbr_disp: format(convertedDateTime, \"z\", {\n timeZone: targetTz,\n }),\n tz_gmtoff: `GMT${format(convertedDateTime, \"XXX\", {\n timeZone: targetTz,\n })}`,\n\n dt_disp: format(convertedDateTime, \"yyyy-MM-dd\", {\n timeZone: targetTz,\n }),\n dt_long_disp: format(convertedDateTime, \"EEEE, MMMM d, yyyy\", {\n timeZone: targetTz,\n }),\n dt_full_disp: format(convertedDateTime, \"EEE, MMM d — h:mm a (zzz)\", {\n timeZone: targetTz,\n }),\n en_slot_disp: `${format(convertedDateTime, \"EEE, MMM d 'at' h:mm a zzz\", {\n timeZone: targetTz,\n })}`,\n tm_st_disp: format(convertedDateTime, \"h:mm a\", {\n timeZone: targetTz,\n }),\n tm_et_disp: format(\n convertedDateTime.setMinutes(\n convertedDateTime.getMinutes() + durationMins\n ),\n \"h:mm a\",\n {\n timeZone: targetTz,\n }\n ),\n durationMins: durationMins,\n tz: targetTz,\n };\n};\nasync function getBookingDateDescription(apptdate, timeZone, durationMins) {\n apptdate = new Date(apptdate); //work with the copy\n // if date-fns-tz returns tz abbr as GMT+ or GMT-, that means it does not have\n // complete locale info so call server side api to do the formatting using moment-timezone\n // return\n // object\n // dtstamp_str: '2021-01-14T10:11:04-08:00'\n // dt_disp: '2021-01-14'\n // dt_full_disp: \"MMM DD, YYYY h:mm A z\" (moment formatting e.g.) 'Thu, Jan 14, 2021 10:11 AM PST'\n // tm_st_disp: \"h:mm A\" e.g. '10:26 AM'\n // tm_et_disp: \"h:mm A\" e.g. '10:26 AM'\n // tz_abbr_disp: \"z\" e.g. EST\n // durationMins: e.g. 30\n let tzAbbrv = format(apptdate, \"z\", { timeZone });\n if (tzAbbrv && (tzAbbrv.includes(\"GMT+\") || tzAbbrv.includes(\"GMT-\"))) {\n const result = await API.post(\"mapdirection\", \"/timezone\", {\n body: {\n action: \"formatInLocationTz\",\n dateInfo: {\n datetime: getDateParts(apptdate),\n tz: timeZone,\n durationMins,\n },\n },\n });\n if (result && result.success && result.dateInfo) {\n return result.dateInfo;\n }\n } else {\n let tz = { timeZone };\n\n return {\n dtstamp_str: format(apptdate, \"yyyy-MM-dd'T'HH:mm:ssXXX\", tz),\n tz_abbr_disp: format(apptdate, \"z\", tz),\n tz_gmtoff: `GMT${format(apptdate, \"XXX\", tz)}`,\n dt_disp: format(apptdate, \"yyyy-MM-dd\", tz),\n dt_long_disp: format(apptdate, \"EEEE, MMMM d, yyyy\", tz),\n dt_full_disp: format(apptdate, \"EEE, MMM d — h:mm a (zzz)\", tz),\n en_slot_disp: `${format(apptdate, \"EEE, MMM d 'at' h:mm a zzz\", tz)}`,\n tm_st_disp: format(apptdate, \"h:mm a\", tz),\n tm_et_disp: format(\n apptdate.setMinutes(apptdate.getMinutes() + durationMins),\n \"h:mm a\",\n tz\n ),\n durationMins: durationMins,\n tz: timeZone,\n };\n }\n}\n\nfunction getDateParts(d) {\n return {\n year: d.getFullYear(),\n month: d.getMonth(),\n date: d.getDate(),\n hours: d.getHours(),\n minutes: d.getMinutes(),\n };\n}\n\nfunction getFullDateDisplayWithGMTOffset(dateInfo) {\n let gmtoff = dateInfo.tz_gmtoff ? `(${dateInfo.tz_gmtoff})` : \"\";\n return `${dateInfo.dt_full_disp} ${gmtoff}`;\n}\n\nfunction getDateWithGMTOffset(dateInfo) {\n let gmtoff = dateInfo.tz_gmtoff ? `(${dateInfo.tz_gmtoff})` : \"\";\n let tz_abbr = dateInfo.tz_abbr_disp ? dateInfo.tz_abbr_disp : \"\";\n return `${dateInfo.dt_long_disp} ${tz_abbr} ${gmtoff}`;\n}\n\nfunction getSlotDisplayWithGMTOffset(dateInfo) {\n let gmtoff = dateInfo.tz_gmtoff ? `(${dateInfo.tz_gmtoff})` : \"\";\n return `${dateInfo.en_slot_disp} ${gmtoff}`;\n}\n\nfunction getEndTimeDisplayWithGMTOffset(dateInfo) {\n let gmtoff = dateInfo.tz_gmtoff ? `(${dateInfo.tz_gmtoff})` : \"\";\n let tz_abbr = dateInfo.tz_abbr_disp ? dateInfo.tz_abbr_disp : \"\";\n return `${dateInfo.tm_et_disp} ${tz_abbr} ${gmtoff}`;\n}\n\nfunction getTodayDateAtBookingLocation(bookingLocationTimezone) {\n const browserTime = new Date();\n return new Date(\n browserTime.toLocaleString(\"en-US\", { timeZone: bookingLocationTimezone })\n );\n}\n\nfunction convertUtcToBookingLocationTimezone(utcDate, bookingLocationTimezone) {\n const bookingLocationTime = new Date(\n new Date(utcDate).toLocaleString(\"en-US\", {\n timeZone: bookingLocationTimezone,\n })\n );\n return bookingLocationTime;\n}\nexport {\n getBookingDateDescription,\n getFullDateDisplayWithGMTOffset,\n getEndTimeDisplayWithGMTOffset,\n getSlotDisplayWithGMTOffset,\n getDateWithGMTOffset,\n getTodayDateAtBookingLocation,\n convertUtcToBookingLocationTimezone,\n};\n","import makeStyles from \"@mui/styles/makeStyles\";\nimport chroma from \"chroma-js\";\nimport { responsiveFontSizes, createTheme } from \"@mui/material/styles\";\nimport typography from \"../components/UI/theme/typography\";\nimport { COLOR_LIGHT_GREY } from \"../utils/Constants\";\nexport const useStyles = makeStyles((theme) => ({\n imgStyle: (props) => ({\n background: `${chroma(props.buttonColor).darken().hex()}`,\n color: \"#fff\",\n height: \"35vh\",\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-start\",\n justifyContent: \"center\",\n padding: \"70px 100px\",\n\n \"&::before\": {\n content: '\"\"',\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n opacity: 0.5,\n zindex: -1,\n backgroundImage: `url(\"${props.backgroundImageUrl}\")`,\n backgroundSize: \"cover\",\n backgroundPosition: \"center\",\n backgroundRepeat: \"no-repeat\",\n },\n }),\n\n bannerLogo: (props) => ({\n width: 80,\n height: 80,\n }),\n\n root: (props) => ({\n \"& .Mui-focused\": {\n color: `${props.textColor}`,\n },\n \"& .MuiFilledInput-root\": {\n border: \"2px solid #d3d3d3\",\n borderRadius: \"3px\",\n marginLeft: \"-16px\",\n },\n\n \"& label.Mui-focused\": {\n color: `${props.buttonColor}`,\n },\n }),\n contextbox: {},\n title1: (props) => ({ marginBottom: theme.spacing(2), fontWeight: \"bold\" }),\n title2: (props) => ({ marginBottom: theme.spacing(1) }),\n title3: (props) => ({ marginBottom: theme.spacing(1) }),\n\n checkbox: (props) => ({\n paddingTop: \"0em\",\n textAlign: \"center\",\n color: `${props.textColor}`,\n }),\n location: (props) => ({\n paddingTop: \"1em\",\n textAlign: \"center\",\n color: `${props.textColor}`,\n }),\n notchedOutline: (props) => ({\n borderWidth: \"1px\",\n borderColor: `${props.textColor} !important`,\n }),\n notchedOutlineProviderDir: (props) => ({\n borderWidth: \"1px\",\n borderColor: `${props.buttonColor} !important`,\n }),\n outlined: (props) => ({\n color: `${props.textColor}`,\n }),\n inputRoot: (props) => ({\n color: `${props.textColor}`,\n }),\n inputRoot1: (props) => ({\n color: \"#000\",\n }),\n button: {\n color: \"#ffffff\",\n backgroundColor: (props) => props.buttonColor,\n },\n buttonProgress: {\n position: \"absolute\",\n top: \"30%\",\n marginTop: -1,\n marginLeft: -1,\n },\n paper: {\n boxShadow: \"none\",\n margin: 0,\n color: \"#586069\",\n fontSize: 13,\n },\n paperProviderDir: {\n boxShadow: \"none\",\n margin: 0,\n color: \"#586069\",\n fontSize: 13,\n borderStyle: \"solid\",\n borderColor: (props) => props.buttonColor,\n borderWidth: \"thin\",\n },\n option: {\n fontSize: 15,\n \"& > span\": {\n marginRight: 10,\n fontSize: 18,\n },\n },\n dropdown: {\n paddingTop: \"6px\",\n paddingBottom: \"2px\",\n },\n groupLabel: { fontWeight: \"bold\", fontStyle: \"italic\" },\n autocomplete: {\n width: 320,\n [theme.breakpoints.down(\"sm\")]: {\n width: 250,\n },\n },\n autocompleteusers: {\n width: 417,\n paddingLeft: 13,\n [theme.breakpoints.down(\"sm\")]: {\n width: 330,\n },\n },\n qtywidth: {\n width: 40,\n [theme.breakpoints.down(\"sm\")]: {\n width: 28,\n },\n },\n}));\n\nexport const buildMainTheme = (\n primaryColor,\n primaryButtonTextColor,\n textColor\n) => {\n const theme = createTheme({\n palette: {\n primary: {\n main: primaryColor,\n light: chroma(primaryColor).alpha(0.1).hex(),\n medium: chroma(primaryColor).alpha(0.25).hex(),\n },\n secondary: {\n main: `${chroma(primaryColor).darken().hex()}`,\n },\n info: {\n main: COLOR_LIGHT_GREY,\n },\n warning: {\n main: `${chroma(primaryColor).darken().hex()}`,\n },\n background: {\n main: \"#F4F4F4\",\n },\n text: {\n main: textColor,\n },\n textFieldPlaceHolder: {\n main: \"#D9D9D9\",\n },\n },\n typography: typography,\n components: {\n MuiTooltip: {\n styleOverrides: {\n tooltip: {\n fontSize: \"1rem\",\n fontWeight: 400,\n letterSpacing: \"normal\",\n lineHeight: \"normal\",\n },\n },\n },\n //accordion\n MuiAccordion: {\n styleOverrides: {\n root: {\n padding: \"0\",\n },\n },\n },\n MuiAccordionSummary: {\n styleOverrides: {\n root: {\n padding: \"16px 12px\",\n display: \"flex\",\n alignItems: \"center\",\n \"&:hover\": {\n color: primaryColor,\n },\n },\n content: {\n margin: 0,\n \"& .MuiFormControlLabel-root\": {\n margin: 0,\n },\n \"& .MuiCheckbox-root\": {\n padding: 0,\n },\n \"& .MuiFormControlLabel-label\": {\n padding: \"0 11px\",\n },\n },\n },\n },\n //alert\n MuiAlert: {\n styleOverrides: {\n root: {\n backgroundColor: `${chroma(primaryColor).alpha(0.3).hex()}`,\n alignItems: \"center\",\n },\n icon: {\n marginRight: \"0.625rem\",\n color: `${chroma(primaryColor).darken(3).hex()}`,\n },\n },\n },\n //collapse:\n MuiCollapse: {\n styleOverrides: {\n wrapperInner: {\n marginBottom: \"0.5rem\",\n },\n },\n },\n //tabs\n MuiTab: {\n styleOverrides: {\n root: {\n textTransform: \"uppercase\",\n fontFamily: \"Roboto\",\n fontSize: \"14px\",\n fontWeight: \"700\",\n \"&:active\": {\n border: \"none\",\n },\n \"&:focus\": {\n border: \"none\",\n },\n },\n },\n },\n //tab panel\n MuiTabPanel: {\n styleOverrides: {\n root: {\n \"& .MuiFormControlLabel-root\": {\n marginLeft: \"0px\",\n },\n },\n },\n },\n //google autocomplete\n MuiAutocomplete: {\n styleOverrides: {\n root: {\n width: \"100%\",\n \"& .MuiFormControl-root\": {\n width: \"100%\",\n fontSize: \"1rem\",\n fontWeight: \"400\",\n fontFamily: [\"Roboto\", \"sans-serif\"].join(\",\"),\n },\n },\n },\n },\n //paper\n MuiPaper: {\n styleOverrides: {\n root: {\n \"& .MuiFormControlLabel-root\": {\n margin: 0,\n\n \"& .MuiRadio-root\": {\n padding: \"0px 10px 0px 0px\",\n },\n },\n },\n },\n },\n //Button\n MuiButton: {\n styleOverrides: {\n root: {\n minWidth: \"90px\",\n height: \"2.5rem\",\n padding: \"0px 1.25rem\",\n boxShadow: \"none\",\n fontWeight: 700,\n fontSize: \"1rem\",\n textTransform: \"uppercase \",\n \"&.MuiButtonGroup-grouped\": {\n padding: \"0px\",\n },\n \"&.Mui-disabled\": {\n color: \"white\",\n },\n },\n containedPrimary: {\n color: primaryButtonTextColor,\n \"&:hover\": {\n boxShadow: \"none\",\n },\n },\n outlined: {\n borderColor: primaryColor,\n },\n text: {\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n alignItems: \"center\",\n fontWeight: 500,\n fontFamily: [\"Roboto\", \"sans-serif\"].join(\",\"),\n fontSize: \"0.88rem\",\n color: \"rgba(0,0,0,0.5)\",\n textTransform: \"capitalize\",\n \"& .MuiButton-startIcon\": {\n margin: 0,\n },\n },\n },\n },\n //Pagination\n MuiPagination: {\n styleOverrides: {\n root: {\n \"& .MuiPaginationItem-outline\": {\n border: \"1px solid #ccc\",\n background: \"white\",\n },\n\n \"& .MuiPaginationItem-previousNext\": {\n border: \"1px solid #ccc\",\n background: `white`,\n },\n\n \"& .Mui-selected\": {\n border: `1px solid ${primaryColor}`,\n background: `${chroma(primaryColor).alpha(0.5).hex()}`,\n },\n\n \"& .Mui-disabled\": {\n background: `${chroma(\"#cccccc\").alpha(0.6).hex()}`,\n },\n },\n },\n },\n //formcontrol select\n MuiFormControl: {\n styleOverrides: {\n root: {\n \"& .MuiFormLabel-filled\": {\n color: primaryColor,\n },\n \"& .MuiFilledInput-root\": {\n background: \"white\",\n border: \"1px solid #ccc\",\n borderRadius: \"4px\",\n \"& .MuiSelect-select\": {\n background: \"white\",\n borderRadius: \"4px\",\n },\n },\n \"& .MuiInputBase-root\": {\n background: \"white\",\n },\n\n \"& .MuiInputBase-input\": {\n background: \"white\",\n borderRadius: \"4px\",\n },\n \"& .MuiInputBase-multiline\": {\n background: \"white\",\n borderRadius: \"4px\",\n },\n \"& .MuiInputBase-inputMultiline\": {\n background: \"white\",\n borderRadius: \"4px\",\n },\n \"& .MuiOutlinedInput-root\": {\n \"& fieldset\": {\n borderColor: \"#D9D9D9\",\n },\n \"&:hover fieldset\": {\n borderColor: \"#D9D9D9\",\n },\n \"&.Mui-focused fieldset\": {\n borderColor: primaryColor,\n },\n },\n },\n },\n },\n\n //formcontaol label\n MuiFormControlLabel: {\n styleOverrides: {\n root: {\n margin: 0,\n },\n },\n },\n\n MuiCalendarPicker: {\n styleOverrides: {\n root: {\n \"& .MuiTypography-caption\": {\n fontFamily: \"Roboto\",\n fontSize: \"14px\",\n fontWeight: \"400\",\n color: \"rgba(0,0,0,1)\",\n },\n },\n },\n },\n },\n });\n return responsiveFontSizes(theme);\n};\n","import { COLOR_LIGHT_GREY } from \"../../../utils/Constants\";\nconst typography = {\n fontFamily: [\"Raleway\", \"Roboto\", \"sans-serif\"].join(\",\"),\n h1: {\n fontSize: \"3.75rem\",\n fontWeight: \"900\",\n },\n h2: {\n fontSize: \"2.25rem\",\n fontWeight: \"900\",\n color: \"rgba(0,0,0,0.75)\",\n },\n h3: {\n fontSize: \"1.5rem\",\n fontWeight: \"700\",\n color: \"rgba(0,0,0,0.75)\",\n },\n h4: {\n fontSize: \"1.13rem\",\n fontWeight: \"700\",\n fontFamily: [\"Roboto\", \"sans-serif\"].join(\",\"),\n color: \"rgba(0,0,0,0.75)\",\n },\n h5: {\n fontSize: \"1rem\",\n fontWeight: \"700\",\n fontFamily: [\"Roboto\", \"sans-serif\"].join(\",\"),\n color: \"rgba(0,0,0,0.75)\",\n },\n h6: {\n fontSize: \"0.88rem\",\n fontWeight: \"700\",\n fontFamily: [\"Roboto\", \"sans-serif\"].join(\",\"),\n color: \"rgba(0,0,0,0.75)\",\n },\n body1: {\n fontSize: \"1rem\",\n fontWeight: \"400\",\n fontFamily: [\"Roboto\"],\n },\n body2: {\n fontSize: \"0.88rem\",\n fontWeight: \"400\",\n fontFamily: [\"Roboto\", \"sans-serif\"].join(\",\"),\n },\n caption: {\n fontSize: \"0.5rem\",\n fontWeight: \"300\",\n fontFamily: [\"Roboto\", \"sans-serif\"].join(\",\"),\n },\n button: {\n fontSize: \"1rem\",\n fontWeight: \"700\",\n fontFamily: [\"Roboto\", \"sans-serif\"].join(\",\"),\n textTransform: \"capitalize\",\n letterSpacing: \"1px\",\n },\n subtitle1: {\n fontFamily: [\"Roboto\", \"sans-serif\"].join(\",\"),\n },\n subtitle2: {\n fontSize: \"0.75rem\",\n fontWeight: \"400\",\n color: \"rgba(0,0,0,0.5)\",\n fontFamily: [\"Roboto\", \"sans-serif\"].join(\",\"),\n },\n overline: {\n fontSize: \"0.88rem\",\n fontWeight: \"400\",\n color: \"rgba(0,0,0,0.5)\",\n textTransform: \"uppercase\",\n fontFamily: [\"Roboto\", \"sans-serif\"].join(\",\"),\n },\n helperText: {\n fontSize: \"0.87rem\",\n fontWeight: \"400\",\n color: \"rgba(0, 0, 0, 0.35)\",\n fontStyle: \"italic\",\n fontFamily: [\"Roboto\"],\n },\n cardHeader: {\n fontSize: \"0.875rem\",\n fontWeight: \"700\",\n color: COLOR_LIGHT_GREY,\n textTransform: \"uppercase\",\n fontFamily: [\"Roboto\", \"sans-serif\"].join(\",\"),\n },\n};\n\nexport default typography;\n","export const providerRatingsByProvider = /* GraphQL */ `\n query ProviderRatingsByProvider(\n $providerId: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelProviderRatingsFilterInput\n $limit: Int\n $nextToken: String\n ) {\n providerRatingsByProvider(\n providerId: $providerId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n providerId\n ratingstars\n ratingtext\n ratinguserId\n active\n }\n nextToken\n }\n }\n`;\nexport const updateProviderSchedule = /* GraphQL */ `\n mutation UpdateProviderSchedule($input: updateProviderScheduleInput!) {\n updateProviderSchedule(input: $input) {\n id\n scheduleinfo\n status\n }\n }\n`;\nexport const deleteProviderSchedule = /* GraphQL */ `\n mutation DeleteProviderSchedule($input: deleteProviderScheduleInput!) {\n deleteProviderSchedule(input: $input) {\n id\n scheduleinfo\n status\n }\n }\n`;\n","// ************************************\n// Common billing routines\n// ************************************\nimport { Logger } from \"@aws-amplify/core\";\nimport API from \"@aws-amplify/api\";\n\nasync function chargeCreditCard(\n stripecustomerid,\n amount,\n customerCurrency,\n receiptemailaddress,\n credit,\n prevChargeId,\n companyId,\n stripeAccount,\n stripeConnectEnabled\n) {\n const logger = new Logger(\"chargeCreditCard\");\n const result = await API.post(\"stripechargecard\", \"/stripechargecard\", {\n body: {\n amount,\n customerCurrency,\n stripecustomerid,\n receiptemailaddress,\n credit,\n prevcharge: prevChargeId,\n companyId,\n stripeAccount: stripeAccount,\n stripeConnectEnabled: stripeConnectEnabled,\n },\n });\n\n logger.warn(\"result from stripechargecard = \");\n logger.warn(result);\n\n return result;\n}\nasync function checkCardExpiration({\n stripecustomerid,\n companyId,\n clientEmailAddress,\n stripeAccount,\n stripeConnectEnabled,\n}) {\n const result = await API.post(\"stripechargecard\", \"/checkcardexpiration\", {\n body: {\n stripecustomerid,\n clientEmailAddress,\n companyId,\n stripeAccount: stripeAccount,\n stripeConnectEnabled: stripeConnectEnabled,\n },\n });\n return result;\n}\nexport { chargeCreditCard, checkCardExpiration };\n","/* Common user functions */\n\n// imports for addUserToGroup\nimport { Logger } from \"@aws-amplify/core\";\nimport API, { graphqlOperation } from \"@aws-amplify/api\";\nimport Cache from \"@aws-amplify/cache\";\nimport Auth from \"@aws-amplify/auth\";\nimport {\n serviceTypeByCompany,\n listSkills,\n getUser,\n userByCompany,\n} from \"../graphql/queries\";\n\nconst logger = new Logger(\"UserCommon\");\n\nconst USERROLE = {\n CLIENT: \"CLIENT\",\n PROVIDER: \"PROVIDER\",\n COMPANY_ADMIN: \"COMPANY_ADMIN\",\n MARKETBOX_ADMIN: \"MARKETBOX_ADMIN\",\n COMPANY_ADMIN_PROVIDER: \"COMPANY_ADMIN_PROVIDER\",\n MANAGER_PROVIDER: \"MANAGER_PROVIDER\",\n};\n\nconst fetchSkillsData = async () => {\n const user = Cache.getItem(\"user\");\n const response = await API.graphql(\n graphqlOperation(listSkills, {\n filter: {\n and: [\n { active: { ne: false } },\n { deleted: { ne: true } },\n { companyId: { eq: user && user.company ? user.company.id : \"\" } },\n ],\n },\n limit: 50,\n })\n );\n const result = await response.data.listSkills.items;\n // store in Amplify cache\n Cache.setItem(\"skills\", result);\n};\n\nconst fetchServiceTypeData = async () => {\n const user = Cache.getItem(\"user\");\n\n const filter = {\n and: [\n { active: { ne: false } },\n { deleted: { ne: true } },\n { isVisible: { ne: false } },\n ],\n };\n const response = await API.graphql(\n graphqlOperation(serviceTypeByCompany, {\n companyId: user.company.id,\n filter,\n limit: process.env.REACT_APP_LISTLIMIT,\n })\n );\n const result = await response.data.serviceTypeByCompany.items;\n Cache.setItem(\"servicetypes\", result);\n};\n\nconst getAuthUser = async () => {\n const user = await Auth.currentAuthenticatedUser();\n return user;\n};\n\nconst getAuthUserEmail = async () => {\n const user = await Auth.currentAuthenticatedUser();\n const email = await user.attributes.email;\n return email;\n};\n\nasync function handleSendEmail(\n subject,\n body,\n toAddresses,\n ccAddresses,\n bccAddresses,\n replyTo,\n companyName\n) {\n const result = await API.post(\"sendtwilioemail\", \"/sendtwilioemail\", {\n body: {\n subject,\n body,\n toAddresses,\n ccAddresses,\n bccAddresses,\n replyTo,\n companyName,\n },\n });\n}\n\nasync function getCompanyAdmins(companyId) {\n const result = await API.graphql(\n graphqlOperation(userByCompany, {\n companyId,\n roleEmailaddress: {\n beginsWith: {\n role: \"COMPANY_ADMIN\",\n },\n },\n filter: {\n and: [\n { active: { ne: false } },\n { deleted: { ne: true } },\n { registered: { ne: false } },\n ],\n },\n limit: process.env.REACT_APP_LISTLIMIT,\n })\n );\n return result.data.userByCompany.items;\n}\n\nasync function getUserFromCache() {\n let user = Cache.getItem(\"user\");\n if (user) {\n if (user.emailaddress === process.env.REACT_APP_MB_GUEST_EMAIL) {\n Cache.removeItem(\"user\");\n user = null;\n }\n }\n if (!user) {\n const authUser = await Auth.currentAuthenticatedUser({\n bypassCache: true,\n });\n if (!authUser) return;\n if (authUser?.attributes?.email === process.env.REACT_APP_MB_GUEST_EMAIL) {\n console.log(\"the non-guest user not logged in\");\n return;\n }\n // console.log(\"user should not be guest\", authUser.username);\n const userData = await API.graphql(\n graphqlOperation(getUser, {\n id: authUser.username,\n })\n );\n if (\n userData &&\n userData.data.getUser.emailaddress ===\n process.env.REACT_APP_MB_GUEST_EMAIL\n )\n return;\n else {\n user = userData.data.getUser;\n // console.log(\"Putting user \", authUser.attributes.email, \" in cache.\");\n Cache.setItem(\"user\", user);\n return user;\n }\n }\n // console.log(\"Putting user from cache \", user.emailaddress);\n return user;\n}\n\nasync function getUserRole() {\n const user = await getUserFromCache();\n // logger.debug(user);\n if (user && user.role) {\n if (user.role === USERROLE.CLIENT) return USERROLE.CLIENT;\n if (user.role === USERROLE.PROVIDER) return USERROLE.PROVIDER;\n if (user.role === USERROLE.COMPANY_ADMIN) return USERROLE.COMPANY_ADMIN;\n if (user.role === USERROLE.COMPANY_ADMIN_PROVIDER)\n return USERROLE.COMPANY_ADMIN_PROVIDER;\n if (user.role === USERROLE.MARKETBOX_ADMIN) return USERROLE.MARKETBOX_ADMIN;\n } else {\n logger.debug(\"*** WARNING: user.role null in UserCommon, getUserRole\");\n return USERROLE.CLIENT;\n }\n}\n\nasync function userHasAdminRole() {\n const user = await getUserFromCache();\n if (user && user.role)\n return (\n USERROLE.MARKETBOX_ADMIN === user.role ||\n USERROLE.COMPANY_ADMIN === user.role ||\n USERROLE.COMPANY_ADMIN_PROVIDER === user.role ||\n USERROLE.MANAGER_PROVIDER === user.role\n );\n else return false;\n}\nasync function userHasClientRole() {\n const user = await getUserFromCache();\n if (user && user.role) return USERROLE.CLIENT === user.role;\n else return false;\n}\nexport {\n fetchSkillsData,\n fetchServiceTypeData,\n getUserRole,\n getUserFromCache,\n USERROLE,\n getAuthUser,\n getAuthUserEmail,\n handleSendEmail,\n userHasAdminRole,\n userHasClientRole,\n getCompanyAdmins,\n};\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","/* eslint-disable */\n// WARNING: DO NOT EDIT. This file is automatically generated by AWS Amplify. It will be overwritten.\n\nconst awsmobile = {\n aws_project_region: \"us-east-1\",\n aws_mobile_analytics_app_id: \"4f2dae4511374f85aebf5a928d41cb39\",\n aws_mobile_analytics_app_region: \"us-east-1\",\n aws_cloud_logic_custom: [\n {\n name: \"adminapi\",\n endpoint: \"https://qm7otfoc67.execute-api.us-east-1.amazonaws.com/prodaa\",\n region: \"us-east-1\",\n },\n {\n name: \"auditapi\",\n endpoint: \"https://ethi6ivcw1.execute-api.us-east-1.amazonaws.com/prodaa\",\n region: \"us-east-1\",\n },\n {\n name: \"bookingapi\",\n endpoint: \"https://1smwa7vzb6.execute-api.us-east-1.amazonaws.com/prodaa\",\n region: \"us-east-1\",\n },\n {\n name: \"changeuserrole\",\n endpoint: \"https://1x37dp8hqd.execute-api.us-east-1.amazonaws.com/prodaa\",\n region: \"us-east-1\",\n },\n {\n name: \"hubspotapi\",\n endpoint: \"https://o62trj46ih.execute-api.us-east-1.amazonaws.com/prodaa\",\n region: \"us-east-1\",\n },\n {\n name: \"integrationapi\",\n endpoint: \"https://jfu8sjc0c5.execute-api.us-east-1.amazonaws.com/prodaa\",\n region: \"us-east-1\",\n },\n {\n name: \"mapdirection\",\n endpoint: \"https://v3dfgb6fp4.execute-api.us-east-1.amazonaws.com/prodaa\",\n region: \"us-east-1\",\n },\n {\n name: \"messaging\",\n endpoint: \"https://ufhierrkwh.execute-api.us-east-1.amazonaws.com/prodaa\",\n region: \"us-east-1\",\n },\n {\n name: \"promoapi\",\n endpoint: \"https://7st8zf98gj.execute-api.us-east-1.amazonaws.com/prodaa\",\n region: \"us-east-1\",\n },\n {\n name: \"recurringBookingsApi\",\n endpoint: \"https://rirdgzjh6i.execute-api.us-east-1.amazonaws.com/prodaa\",\n region: \"us-east-1\",\n },\n {\n name: \"redirect\",\n endpoint: \"https://xb7s6qcmx2.execute-api.us-east-1.amazonaws.com/prodaa\",\n region: \"us-east-1\",\n },\n {\n name: \"s3filemgmt\",\n endpoint: \"https://uhuus84d66.execute-api.us-east-1.amazonaws.com/prodaa\",\n region: \"us-east-1\",\n },\n {\n name: \"searchapi\",\n endpoint: \"https://js178mamsd.execute-api.us-east-1.amazonaws.com/prodaa\",\n region: \"us-east-1\",\n },\n {\n name: \"sendsesemail\",\n endpoint: \"https://yzlp0y80rh.execute-api.us-east-1.amazonaws.com/prodaa\",\n region: \"us-east-1\",\n },\n {\n name: \"sendtwilioemail\",\n endpoint: \"https://xm4gc5kc8e.execute-api.us-east-1.amazonaws.com/prodaa\",\n region: \"us-east-1\",\n },\n {\n name: \"stripechargecard\",\n endpoint: \"https://91klqw04va.execute-api.us-east-1.amazonaws.com/prodaa\",\n region: \"us-east-1\",\n },\n {\n name: \"stripeconnect\",\n endpoint: \"https://b49x4eyrnh.execute-api.us-east-1.amazonaws.com/prodaa\",\n region: \"us-east-1\",\n },\n {\n name: \"stripesavecard\",\n endpoint: \"https://77cy1lvn80.execute-api.us-east-1.amazonaws.com/prodaa\",\n region: \"us-east-1\",\n },\n {\n name: \"twiliosmsin\",\n endpoint: \"https://wxtgk9xwp9.execute-api.us-east-1.amazonaws.com/prodaa\",\n region: \"us-east-1\",\n },\n {\n name: \"virtualmeeting\",\n endpoint: \"https://at05ot2e63.execute-api.us-east-1.amazonaws.com/prodaa\",\n region: \"us-east-1\",\n },\n ],\n aws_appsync_graphqlEndpoint:\n \"https://wk56cxiyizbj7lnn24i6out7h4.appsync-api.us-east-1.amazonaws.com/graphql\",\n aws_appsync_region: \"us-east-1\",\n aws_appsync_authenticationType: \"AMAZON_COGNITO_USER_POOLS\",\n aws_cognito_identity_pool_id:\n \"us-east-1:2c370eb6-4e0d-4a42-ba10-f02217502424\",\n aws_cognito_region: \"us-east-1\",\n aws_user_pools_id: \"us-east-1_gQhrm0cU8\",\n aws_user_pools_web_client_id: \"4qjalmqfpfpga2a8na0qupvop1\",\n oauth: {},\n aws_cognito_username_attributes: [\"EMAIL\"],\n aws_cognito_social_providers: [],\n aws_cognito_signup_attributes: [\"EMAIL\"],\n aws_cognito_mfa_configuration: \"OFF\",\n aws_cognito_mfa_types: [\"SMS\"],\n aws_cognito_password_protection_settings: {\n passwordPolicyMinLength: 8,\n passwordPolicyCharacters: [],\n },\n aws_cognito_verification_mechanisms: [\"EMAIL\"],\n aws_content_delivery_bucket: \"marketbox-20190726012602-hostingbucket-prodaa\",\n aws_content_delivery_bucket_region: \"us-east-1\",\n aws_content_delivery_url:\n \"http://marketbox-20190726012602-hostingbucket-prodaa.s3-website-us-east-1.amazonaws.com\",\n aws_user_files_s3_bucket: \"marketboxproviderpics-prodaa\",\n aws_user_files_s3_bucket_region: \"us-east-1\",\n};\n\nexport default awsmobile;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { BrowserRouter as Router } from \"react-router-dom\";\nimport \"./index.css\";\nimport App from \"./App\";\nimport * as serviceWorker from \"./serviceWorker\";\nimport Amplify from \"@aws-amplify/core\";\nimport aws_exports from \"./aws-exports\";\nimport { StoreProvider } from \"./context/StoreContext\";\nimport { QueryClient, QueryClientProvider } from \"@tanstack/react-query\";\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n// config for Amplify\nAmplify.configure(aws_exports);\n// set default logger level\nAmplify.Logger.LOG_LEVEL = \"DEBUG\";\n\nReactDOM.render(\n <StoreProvider>\n <QueryClientProvider client={queryClient}>\n <Router>\n <App />\n </Router>\n </QueryClientProvider>\n </StoreProvider>,\n document.getElementById(\"root\")\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","import { loadData } from \"../Common/Template\";\nimport { logSystemError } from \"../../modules/SystemErrorService\";\nimport { createTimeDisplayInfoForTimeZone } from \"../../modules/TimeService\";\n\nexport const ProviderBookingConfirmation = async ({\n provider,\n client,\n company,\n serviceType,\n bookings,\n orderNo,\n orderType,\n orderNotes,\n wdDisplay,\n}) => {\n let canProviderSeeClientName = true;\n let canProviderSeeClientPhone = true;\n\n try {\n const providerRestrictionConfig = JSON.parse(\n company.ProviderRestrictionConfig || \"{}\"\n );\n canProviderSeeClientName =\n providerRestrictionConfig.canProviderSeeClientName || true;\n canProviderSeeClientPhone =\n providerRestrictionConfig.canProviderSeeClientPhone || true;\n } catch (error) {\n console.log(\"Error parsing ProviderRestrictionConfig:\", error);\n }\n\n const adjustedBookings = bookings.map(\n ({ TimeDisplayInfo, minutes, ...rest }) => ({\n ...rest,\n TimeDisplayInfo: provider.timezone\n ? createTimeDisplayInfoForTimeZone(\n TimeDisplayInfo.dtstamp_str,\n provider.timezone,\n minutes\n )\n : TimeDisplayInfo,\n })\n );\n try {\n let htmlTemplate = await loadData(\n `https://do1e1nd2rp5b.cloudfront.net/public/email-templates/${company.id}/order-receipt-provider-tokenized.html`,\n company.id\n );\n\n // check if we got a template, if not load a generic template\n if (htmlTemplate === \"Error\") {\n // load generic template\n htmlTemplate = await loadData(\n \"https://do1e1nd2rp5b.cloudfront.net/public/email-templates/modified-templates/order-receipt-provider-tokenized.html\",\n company.id\n );\n }\n // if still an error, we have a network problem\n if (htmlTemplate === \"Error\") {\n return \"\";\n }\n htmlTemplate = htmlTemplate.replace(\n /\\[company-auth-site-url\\]/g,\n process.env.REACT_APP_AUTH_SITE_URL\n );\n htmlTemplate = htmlTemplate.replace(\n /\\[company-logo-url\\]/g,\n company.logoUrl\n );\n htmlTemplate = htmlTemplate.replace(\n /\\[company-color\\]/g,\n company.primaryColor\n );\n // now substitute values into template\n // company values\n htmlTemplate = htmlTemplate.replace(/\\[company_name\\]/g, company.name);\n htmlTemplate = htmlTemplate.replace(\n /\\[company_email\\]/g,\n company.emailaddress\n );\n htmlTemplate = htmlTemplate.replace(\n /\\[provider_firstname\\]/g,\n provider.firstname\n );\n htmlTemplate = htmlTemplate.replace(\n /\\[provider_lastname\\]/g,\n provider.lastname\n );\n const clientName = canProviderSeeClientName\n ? client.user.firstname + \" \" + client.user.lastname\n : client.user.firstname + \" \" + client.user.lastname.charAt(0) + \".\";\n htmlTemplate = htmlTemplate.replace(/\\[client_name\\]/g, clientName);\n htmlTemplate = htmlTemplate.replace(\n /\\[client_phone\\]/g,\n getClientPhone(client.user, canProviderSeeClientPhone)\n );\n htmlTemplate = htmlTemplate.replace(\n /\\[servicetype_name\\]/g,\n serviceType.name\n );\n htmlTemplate = htmlTemplate.replace(/\\[order_no\\]/g, orderNo);\n //Check here for virtual\n htmlTemplate = htmlTemplate.replace(\n /\\[booking_location\\]/g,\n bookings[0].location\n );\n //Values past booking_location are repeatable and had to be updated below:\n\n //Old Values - Maintained for compatibility\n htmlTemplate = htmlTemplate.replace(\"[company-name]\", company.name);\n htmlTemplate = htmlTemplate.replace(\n \"[company-email]\",\n company.emailaddress\n );\n // provider values\n htmlTemplate = htmlTemplate.replace(\n \"[provider-first-name]\",\n provider.firstname\n );\n htmlTemplate = htmlTemplate.replace(\n \"[provider-last-name]\",\n provider.lastname\n );\n // client values\n htmlTemplate = htmlTemplate.replace(\n /\\[client-name\\]/g,\n `${client.user.firstname ? client.user.firstname : \"\"} ${\n client.user.lastname ? client.user.lastname : \"\"\n }`\n );\n htmlTemplate = htmlTemplate.replace(\n \"[client-phone]\",\n getClientPhone(client.user, canProviderSeeClientPhone)\n );\n //service type\n htmlTemplate = htmlTemplate.replace(\"[service-type]\", serviceType.name);\n //order number\n htmlTemplate = htmlTemplate.replace(\"[order-no]\", orderNo);\n\n //booking(s)\n htmlTemplate = htmlTemplate.replace(\n \"[booking-location]\",\n adjustedBookings[0].location\n );\n htmlTemplate = htmlTemplate.replace(\n \"[booking_date]\",\n adjustedBookings[0].TimeDisplayInfo.dt_long_disp\n );\n htmlTemplate = htmlTemplate.replace(\n \"[booking_time]\",\n adjustedBookings[0].TimeDisplayInfo.tm_st_disp\n );\n htmlTemplate = htmlTemplate.replace(\n \"[end_time]\",\n adjustedBookings[0].TimeDisplayInfo.tm_et_disp\n );\n htmlTemplate = htmlTemplate.replace(\n \"[company-auth-site-url]\",\n process.env.REACT_APP_AUTH_SITE_URL\n );\n let packageSection = \"\";\n // pacakge section if more than one booking\n if (adjustedBookings.length > 1) {\n packageSection = ` <tr>\n <td width=\"70%\">\n <b>Additional bookings are confirmed for the following date(s) and time(s):</b>\n </td>\n </tr>\n <tr>\n <td width=\"70%\">\n \n </td>\n </tr>`;\n for (let i = 1; i < adjustedBookings.length; i++) {\n let bookingRow = ` <tr>\n <td width=\"70%\">\n <b>Date:</b> [booking_date]\n </td>\n </tr>\n <tr>\n <td width=\"70%\">\n <b>Time:</b> [booking_time] to [end_time]\n </td>\n </tr>\n <tr>\n <td width=\"70%\">\n \n </td>\n </tr>`;\n bookingRow = bookingRow.replace(\n \"[booking_date]\",\n adjustedBookings[i].TimeDisplayInfo.dt_long_disp\n );\n bookingRow = bookingRow.replace(\n \"[booking_time]\",\n adjustedBookings[i].TimeDisplayInfo.tm_st_disp\n );\n bookingRow = bookingRow.replace(\n \"[end_time]\",\n adjustedBookings[i].TimeDisplayInfo.tm_et_disp\n );\n packageSection += bookingRow;\n }\n }\n\n if (orderType === \"ONGOING\" && wdDisplay) {\n packageSection += ` <tr>\n <td width=\"70%\">\n This booking will repeat every <b>${wdDisplay}.</b>\n </td>\n </tr>\n <tr>\n <td width=\"70%\">\n \n </td>\n </tr>`;\n }\n htmlTemplate = htmlTemplate.replace(\n \"[additional_bookings]\",\n packageSection\n );\n htmlTemplate = htmlTemplate.replace(\n \"[notes]\",\n typeof orderNotes === \"string\" ? orderNotes : \"\"\n );\n return htmlTemplate;\n } catch (err) {\n await logSystemError(\n company.id,\n \"ERROR\",\n \"Error populating provider order-booking receipt template\",\n 0,\n err\n );\n }\n return \"\";\n};\n\nfunction getClientPhone(user, canProviderSeeClientPhone) {\n if (canProviderSeeClientPhone) {\n if (user.phonepref === \"MOBILE\") {\n if (user.mobilephone) return user.mobilephone;\n else {\n if (user.homephone) return user.homephone;\n if (user.workphone) return user.workphone;\n }\n }\n if (user.phonepref === \"HOME\") {\n if (user.homephone) return user.homephone;\n else {\n if (user.mobilephone) return user.mobilephone;\n if (user.workphone) return user.workphone;\n }\n }\n if (user.phonepref === \"WORK\") {\n if (user.workphone) return user.workphone;\n else {\n if (user.mobilephone) return user.mobilephone;\n if (user.homephone) return user.homephone;\n }\n }\n if (user.mobilephone) return user.mobilephone;\n if (user.homephone) return user.homephone;\n if (user.workphone) return user.workphone;\n\n return \"\";\n } else {\n return \"(***) *** - ****\";\n }\n}\n\nfunction getBookingDateTime(bookingDateTime, serviceDuration) {\n const bdt = new Date(bookingDateTime);\n let dtinfo = {};\n dtinfo.date = bdt.toLocaleDateString(\"en-US\", {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n });\n dtinfo.startTime = bdt.toLocaleTimeString(\"en-US\", {\n hour: \"numeric\",\n minute: \"2-digit\",\n });\n bdt.setMinutes(bdt.getMinutes() + serviceDuration);\n dtinfo.endTime = bdt.toLocaleTimeString(\"en-US\", {\n hour: \"numeric\",\n minute: \"2-digit\",\n });\n return dtinfo;\n}\n","import { loadData } from \"../Common/Template\";\nexport const guestCheckoutEmail = async (props) => {\n console.log(props);\n const {\n client_firstname,\n client_lastname,\n client_email,\n companyId,\n company,\n } = props;\n\n let htmlTemplate = await loadData(\n `https://do1e1nd2rp5b.cloudfront.net/public/email-templates/${company.id}/guest-checkout.html`,\n companyId\n );\n\n // check if we got a template, if not load a generic template\n if (htmlTemplate === \"Error\") {\n // load generic template\n htmlTemplate = await loadData(\n \"https://do1e1nd2rp5b.cloudfront.net/public/email-templates/modified-templates/guest-checkout.html\",\n companyId\n );\n }\n\n // if still an error, we have a network problem\n if (htmlTemplate === \"Error\") {\n htmlTemplate =\n \"We are unable to load your order receipt template. Please check your network connection.\";\n }\n\n htmlTemplate = htmlTemplate.replace(\n /\\[company-auth-site-url\\]/g,\n process.env.REACT_APP_AUTH_SITE_URL\n );\n htmlTemplate = htmlTemplate.replace(/\\[company-logo-url\\]/g, company.logoUrl);\n htmlTemplate = htmlTemplate.replace(\n /\\[company-color\\]/g,\n company.primaryColor\n );\n\n // company values\n htmlTemplate = htmlTemplate.replace(/\\[company-name\\]/g, company.name);\n htmlTemplate = htmlTemplate.replace(\n /\\[company_email\\]/g,\n company.emailaddress\n );\n htmlTemplate = htmlTemplate.replace(\n /\\[client_firstname\\]/g,\n client_firstname\n );\n htmlTemplate = htmlTemplate.replace(/\\[client_lastname\\]/g, client_lastname);\n\n htmlTemplate = htmlTemplate.replace(/\\[client_email\\]/g, client_email);\n if (company.subdomain) {\n const signupUrl = `https://${company.subdomain}/signup`;\n htmlTemplate = htmlTemplate.replace(/\\[company-booking-url\\]/g, signupUrl);\n }\n\n return htmlTemplate;\n};\n","import API, { graphqlOperation } from \"@aws-amplify/api\";\nimport {\n clientPackageByUser,\n getRefData,\n getCompany,\n getClientPackage,\n} from \"../graphql/queries\";\nimport {\n createClient,\n createBooking,\n createOrder,\n updateClientPackage,\n createBillingProgress,\n createClientPackage,\n createBookingRequest,\n createServiceType,\n createUISession,\n} from \"../graphql/mutations\";\nimport { getCompanyLocation } from \"../graphql/queries\";\nimport {\n updateProviderSchedule,\n deleteProviderSchedule,\n} from \"../graphql/mutations\";\nimport {\n bundledServicesByCompany,\n regionalPricingByCompanyServiceType,\n packageByCompany,\n} from \"../queries/ListBookingsQueries\";\nimport { execWrite, execReadBySortkey } from \"./DBService\";\nimport moment from \"moment\";\nimport { getServiceTaxRate } from \"./TaxService\";\nimport { createTimeblock, getAWSDate } from \"../modules/ScheduleService\";\nimport { handleSendEmail } from \"../user/UserCommon\";\nimport { ProviderBookingConfirmation } from \"../utils/Common/ProviderBookingConfirmation\";\nimport { trackOrderCompleted } from \"../modules/Tracking\";\nimport { guestCheckoutEmail } from \"../utils/Common/guestCheckoutEmail\";\nimport { TriggerManager } from \"../modules/TriggerManager\";\nimport * as Sentry from \"@sentry/react\";\nimport { VARIABLE_TAX_RATE } from \"../utils/Constants\";\n\nconst formatterCurr = (curr = \"USD\", cost) => {\n try {\n //returns in format $10.00 or £10.21\n let formatter = new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currencyDisplay: \"narrowSymbol\",\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n currency: curr,\n });\n return formatter.format(Number(cost));\n } catch (e) {\n // ** older Safari/Mac does not support narrowSymbol **\n // So,\n // locale is undfined, currencyDisplay is 'default' i.e. 'symbol'\n // USD will be returned as US$10.00, CAD as CA$10.00\n let formatter = new Intl.NumberFormat(undefined, {\n style: \"currency\",\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n currency: curr,\n });\n return formatter.format(Number(cost));\n }\n};\nconst handleOrderAndBookingCreation = async (bookingState, prps) => {\n let usedPkgIdForCredit = null;\n if (bookingState.boughtpackage)\n usedPkgIdForCredit = bookingState.newclientpkg.id;\n else if (bookingState.clientpackage) {\n usedPkgIdForCredit = bookingState.clientpackage.id;\n }\n\n let input = {\n ...{\n heldPackageSlots: bookingState.heldPackageSlots,\n packageBookedSlots: bookingState.packageBookedSlots,\n bookedByAdmin: bookingState.bookingOnBehalf ? true : false,\n uiSessionId: bookingState.uiSessionId,\n bookingTz: bookingState.bookingTz,\n clientNotes: bookingState.clientNotes,\n bookingAddress: getBookingAddress(bookingState),\n currency: bookingState.currency,\n acknowledgementDateTime: bookingState.acknowledgementDateTime,\n location: bookingState.location,\n bookingType: bookingState.sdt,\n chargeBreakup: bookingState.cbu,\n orderSummary: bookingState.osd,\n isVirtual: bookingState.isVirtual,\n providerInfo: bookingState.provider,\n heldSlots: bookingState.heldSlots,\n // taxJurisdiction,\n userid: bookingState.bookingUser.username,\n providerid: bookingState.provider.id,\n company: prps.company,\n servicetype: {\n id: bookingState.serviceType.id,\n desc: bookingState.serviceType.desc,\n name: bookingState.serviceType.name,\n price: bookingState.serviceType.price,\n minutes: bookingState.serviceType.minutes,\n },\n booking: {\n date: new Date(bookingState.selectedslot.date),\n time: bookingState.selectedslot.label,\n slot12: bookingState.selectedslot.slot12,\n dateInfo: bookingState.selectedslot.dateInfo,\n },\n usedPkgIdForCredit: usedPkgIdForCredit,\n ...(bookingState.repeatingAppointment && {\n hasrepeatingappt: bookingState.repeatingAppointment,\n repeatingapptinfo: {\n apptlist: bookingState.repeatingApptList,\n },\n }),\n },\n bookingState: bookingState,\n };\n\n let localBookingDetails = null;\n try {\n localBookingDetails = await createOrderAndBookings(input);\n if (\n localBookingDetails &&\n localBookingDetails.order &&\n localBookingDetails.order.id\n ) {\n try {\n if (bookingState.promoData)\n await API.post(\"promoapi\", \"/redemption\", {\n body: {\n order: localBookingDetails.order,\n promoData: bookingState.promoData,\n bookingUser: {\n ...localBookingDetails.client.user,\n username: localBookingDetails.client?.user.id,\n },\n actionUser: { ...bookingState.user?.attributes },\n },\n });\n } catch (e) {\n console.log(\"calling redempation api failed\", e);\n }\n await updateOrderStats(\n prps.company.id,\n localBookingDetails.order.total,\n bookingState.sdt\n );\n }\n } catch (err) {\n console.error(\"Confirm booking error => \", err);\n }\n return localBookingDetails;\n};\n\nasync function updateOrderStats(companyId, orderTotal, bookingType) {\n if (bookingType !== \"forever\") {\n try {\n const company = await API.graphql(\n graphqlOperation(getCompany, {\n id: companyId,\n })\n );\n if (company && company.data && company.data.getCompany) {\n let dbinfo;\n if (!company.data.getCompany.DashboardInfo) {\n dbinfo = {\n orders_today: 1,\n orders_mtd: 1,\n orders_ytd: 1,\n sales_today: orderTotal,\n sales_mtd: orderTotal,\n sales_ytd: orderTotal,\n };\n } else {\n dbinfo = JSON.parse(company.data.getCompany.DashboardInfo);\n dbinfo.orders_today = dbinfo.orders_today\n ? dbinfo.orders_today + 1\n : 1;\n dbinfo.orders_mtd = dbinfo.orders_mtd ? dbinfo.orders_mtd + 1 : 1;\n dbinfo.orders_ytd = dbinfo.orders_ytd ? dbinfo.orders_ytd + 1 : 1;\n dbinfo.sales_today = dbinfo.sales_today\n ? dbinfo.sales_today + orderTotal\n : orderTotal;\n dbinfo.sales_mtd = dbinfo.sales_mtd\n ? dbinfo.sales_mtd + orderTotal\n : orderTotal;\n dbinfo.sales_ytd = dbinfo.sales_ytd\n ? dbinfo.sales_ytd + orderTotal\n : orderTotal;\n }\n\n const updateCompany = /* GraphQL */ `\n mutation UpdateCompany($input: UpdateCompanyInput!) {\n updateCompany(input: $input) {\n id\n name\n DashboardInfo\n }\n }\n `;\n const result = await execWrite({\n opname: \"updateCompany\",\n op: updateCompany,\n input: {\n id: companyId,\n DashboardInfo: JSON.stringify(dbinfo),\n },\n });\n }\n } catch (e) {\n console.log(\"error updating company stats\");\n }\n }\n}\n\nconst createOrderAndBookings = async ({\n heldPackageSlots,\n packageBookedSlots,\n bookedByAdmin,\n uiSessionId,\n clientNotes,\n bookingAddress,\n currency,\n acknowledgementDateTime,\n bookingType,\n chargeBreakup,\n userid,\n providerid,\n company,\n servicetype,\n booking,\n location,\n heldSlots,\n usedPkgIdForCredit,\n isVirtual,\n orderSummary,\n bookingTz,\n bookingState,\n}) => {\n //Create client\n let client = await getClientIfExists({\n userid,\n companyid: company.id,\n });\n if (client && client.error) {\n return {\n error: client.error,\n };\n }\n if (!client) {\n const clientData = {\n userId: userid,\n currency: currency, //company.currency ? company.currency : \"CAD\"\n companyId: company.id,\n clientUserId: userid,\n clientCompanyId: company.id,\n accountbalance: 0.0,\n };\n client = await execWrite({\n opname: \"createClient\",\n op: createClient,\n input: clientData,\n });\n if (client && client.error) {\n return {\n error: client.error,\n };\n }\n }\n let orderType = \"SINGLE\";\n if (bookingType === \"package\") orderType = \"PACKAGE\";\n if (bookingType === \"forever\") orderType = \"ONGOING\";\n //Create Order\n const orderNo = await getNewOrderNo(company.id);\n const orderData = {\n bookedByAdmin,\n clientnotes: clientNotes,\n orderNo,\n bookingAddress: JSON.stringify(bookingAddress), //is JSON\n currency,\n desc: prepareOrderDesc(servicetype, booking, bookingType), //servicetype.name,\n type: orderType,\n companyId: company.id,\n providerId: providerid,\n orderProviderId: providerid,\n subtotal: chargeBreakup.subtotal,\n servicechargeamt: chargeBreakup.servicechargeamt,\n taxamt: chargeBreakup.taxamt,\n total: chargeBreakup.total,\n status: \"CONFIRMED\",\n orderCompanyId: company.id,\n taxrate: chargeBreakup.taxrate,\n clientId: client.id,\n legaltermsAcceptedAt: acknowledgementDateTime,\n orderSummary: JSON.stringify(orderSummary),\n orderClientId: client.id,\n ...(usedPkgIdForCredit && {\n orderClientpackageId: usedPkgIdForCredit,\n }),\n };\n\n const order = await execWrite({\n opname: \"createOrder\",\n op: createOrder,\n input: orderData,\n });\n\n if (order && order.error) {\n return {\n error: order.error,\n };\n }\n\n if (packageBookedSlots && packageBookedSlots.length) {\n // create package bookings here\n const bookingsList = [];\n let slotNum = 0;\n for (const apptDT of packageBookedSlots) {\n //Create Booking\n const bookingData = {\n desc: servicetype.name,\n startdate: apptDT.dateInfo.dtstamp_str,\n minutes: servicetype.minutes,\n location: location,\n companyId: company.id,\n bookingOrderId: order.id,\n orderId: order.id,\n orderType: orderType,\n isVirtual: isVirtual,\n bookingServicetypeId: servicetype.id,\n bookingProviderId: providerid,\n bookingClientId: client.id,\n bookingCompanyId: company.id,\n timeblockid: `${heldPackageSlots[slotNum].id}`,\n providerId: providerid,\n clientId: client.id,\n status: \"SCHEDULED\",\n timezone: bookingTz,\n TimeDisplayInfo: JSON.stringify(apptDT.dateInfo),\n manualBooking: false,\n };\n\n try {\n if (clientNotes) {\n bookingData.Notes = JSON.stringify([\n {\n createdBy:\n order.client.user.firstname + \" \" + order.client.user.lastname,\n createdAt: order.createdAt,\n notes: clientNotes,\n },\n ]);\n }\n } catch (e) {\n console.log(\"ERROR with adding Notes to bookingData\", e);\n }\n\n const newbooking = await execWrite({\n opname: \"createBooking\",\n op: createBooking,\n input: bookingData,\n });\n\n if (newbooking && newbooking.error) {\n return {\n error: newbooking.error,\n };\n }\n bookingsList.push(newbooking);\n slotNum = slotNum + 1;\n }\n prepareBookingDateTimeDisplayStrings(bookingsList);\n //once the order is created and bookings are created,\n //update uisession as completed\n await createUISessionEntry({\n uiSessionId: uiSessionId,\n eventName: \"COMPLETE:SYNCORDER\",\n companyId: company.id,\n });\n\n /* Zapier Trigger - New Order Created (new-order-zapier)*/\n try {\n let orderData = {\n clientFirstName: order.client.user.firstname,\n clientLastName: order.client.user.lastname,\n clientEmail: order.client.user.emailaddress,\n clientPhoneNumber: order.client.user.mobilephone,\n providerFirstName: order.provider.firstname,\n providerLastName: order.provider.lastname,\n providerEmail: order.provider.emailaddress,\n orderNumber: order.orderNo,\n orderDescription: order.desc,\n orderAmount: order.total,\n orderCurrency: order.currency,\n orderType: order.type,\n numberOfBookings: bookingsList.length,\n service: bookingsList[0].desc,\n bookedBy: \"Client\",\n createdAt: new Date(order.createdAt).toLocaleString(\"en-US\"),\n };\n if (order.type === \"ONGOING\") {\n orderData.numberOfBookings = \"Recurring\";\n }\n if (bookedByAdmin) {\n orderData.bookedBy = \"Admin\";\n }\n let hookName = \"new-order-zapier\";\n await TriggerManager(orderData, company.id, hookName);\n } catch (e) {\n console.log(\"ERROR: unable to perform triggerManager\", e);\n }\n\n return {\n order,\n booking: bookingsList[0],\n bookingsList,\n client,\n };\n } else {\n let firstBooking;\n let bookingsList = [];\n // everything else as before goes here\n if (bookingType === \"forever\") {\n //Create recurring booking using recurringBookingsAPI\n const newBookingsResponse = await handleCreateRecurringBookings(\n bookingState,\n order\n );\n bookingsList = await generateBookingsList(\n newBookingsResponse.newBookings,\n bookingState.repeatingApptList\n );\n firstBooking = newBookingsResponse.newBookings;\n } else {\n //Create Booking\n const bookingData = {\n desc: servicetype.name,\n startdate: booking.dateInfo.dtstamp_str,\n minutes: servicetype.minutes,\n location: location,\n companyId: company.id,\n bookingOrderId: order.id,\n orderId: order.id,\n orderType: orderType,\n isVirtual: isVirtual,\n bookingServicetypeId: servicetype.id,\n bookingProviderId: providerid,\n bookingClientId: client.id,\n bookingCompanyId: company.id,\n timeblockid: `${heldSlots[0].id}`,\n providerId: providerid,\n clientId: client.id,\n status: \"SCHEDULED\",\n timezone: bookingTz,\n TimeDisplayInfo: JSON.stringify(booking.dateInfo),\n manualBooking: false,\n };\n\n try {\n if (clientNotes) {\n bookingData.Notes = JSON.stringify([\n {\n createdBy:\n order.client.user.firstname + \" \" + order.client.user.lastname,\n createdAt: order.createdAt,\n notes: clientNotes,\n },\n ]);\n }\n } catch (e) {\n console.log(\"ERROR with adding Notes to bookingData\", e);\n }\n\n const newbooking = await execWrite({\n opname: \"createBooking\",\n op: createBooking,\n input: bookingData,\n });\n\n if (newbooking && newbooking.error) {\n return {\n error: newbooking.error,\n };\n }\n bookingsList = [];\n bookingsList.push(newbooking);\n\n firstBooking = newbooking;\n prepareBookingDateTimeDisplayStrings(bookingsList);\n }\n //once the order is created and bookings are created,\n //update uisession as completed\n await createUISessionEntry({\n uiSessionId: uiSessionId,\n eventName: \"COMPLETE:SYNCORDER\",\n companyId: company.id,\n });\n\n /* Zapier Trigger - New Order Created (new-order-zapier)*/\n try {\n let orderData = {\n clientFirstName: order.client.user.firstname,\n clientLastName: order.client.user.lastname,\n clientEmail: order.client.user.emailaddress,\n clientPhoneNumber: order.client.user.mobilephone,\n providerFirstName: order.provider.firstname,\n providerLastName: order.provider.lastname,\n providerEmail: order.provider.emailaddress,\n orderNumber: order.orderNo,\n orderDescription: order.desc,\n orderAmount: order.total,\n orderCurrency: order.currency,\n orderType: order.type,\n numberOfBookings: bookingsList.length,\n service: bookingsList[0].desc,\n bookedBy: \"Client\",\n createdAt: new Date(order.createdAt).toLocaleString(\"en-US\"),\n };\n if (order.type === \"ONGOING\") {\n orderData.numberOfBookings = \"Recurring\";\n }\n if (bookedByAdmin) {\n orderData.bookedBy = \"Admin\";\n }\n let hookName = \"new-order-zapier\";\n await TriggerManager(orderData, company.id, hookName);\n } catch (e) {\n console.log(\"ERROR: unable to perform triggerManager\", e);\n }\n\n return {\n order,\n booking: firstBooking,\n bookingsList,\n client,\n };\n }\n};\n\nasync function handleCreateRecurringBookings(bookingState, order) {\n try {\n let recurBookingsResponse;\n let body = {\n companyId: bookingState.company.id,\n orderId: order.id,\n\n selectedSlot: bookingState.selectedslot,\n bookingData: {\n latitude: bookingState.isRemoteLocation\n ? bookingState.remoteAddressCoordinates.lat\n : bookingState.companyLocationCoordinates\n ? bookingState.companyLocationCoordinates.lat\n : null,\n longitude: bookingState.isRemoteLocation\n ? bookingState.remoteAddressCoordinates.lng\n : bookingState.companyLocationCoordinates\n ? bookingState.companyLocationCoordinates.lng\n : null,\n bookingBookedById: bookingState.bookingUser.username,\n location: bookingState.location,\n locationId:\n bookingState.locationId !== undefined && bookingState.locationId\n ? bookingState.locationId\n : \"\",\n serviceType: bookingState.serviceType,\n client: {\n firstName: bookingState.client.user.firstname,\n lastName: bookingState.client.user.lastname,\n id: bookingState.client.id,\n },\n provider: {\n firstName: bookingState.provider.firstname,\n lastName: bookingState.provider.lastname,\n id: bookingState.provider.id,\n timezone: bookingState.provider.timezone,\n },\n isVirtual:\n bookingState.isVirtual !== undefined && bookingState.isVirtual\n ? true\n : false,\n isRemoteLocation:\n bookingState.isRemoteLocation !== undefined &&\n bookingState.isRemoteLocation\n ? true\n : false,\n remoteAddressCoordinates:\n bookingState.isRemoteLocation !== undefined &&\n bookingState.isRemoteLocation\n ? {\n lat: bookingState.remoteAddressCoordinates.lat,\n lng: bookingState.remoteAddressCoordinates.lng,\n }\n : bookingState.companyLocationCoordinates\n ? bookingState.companyLocationCoordinates\n : null,\n dayCount: bookingState.dayCount,\n dayType: bookingState.dayType,\n daysOfWeek: bookingState.daysOfWeek,\n rrule: bookingState.rrule,\n },\n };\n if (bookingState.clientNotes) {\n body.bookingData.Notes = JSON.stringify([\n {\n createdBy:\n bookingState.client.user.firstname +\n \" \" +\n bookingState.client.user.lastname,\n createdAt: new Date(),\n notes: bookingState.clientNotes,\n },\n ]);\n }\n if (bookingState.heldSlots) {\n let heldSlots = getHeldSlotsForRecurringAPI(\n bookingState.apptDates,\n bookingState.heldSlots\n );\n body.bookingData.heldSlots = heldSlots;\n }\n\n recurBookingsResponse = await API.post(\n \"recurringBookingsApi\",\n \"/create-recurring-bookings\",\n {\n body,\n }\n );\n return recurBookingsResponse.response;\n } catch (e) {\n console.log(\"error while creating recurring bookings\", e);\n }\n}\n\nfunction getHeldSlotsForRecurringAPI(apptDates, heldSlots) {\n let heldSlotsList = [];\n let apptDatesList = apptDates;\n apptDatesList.unshift(heldSlots[0]); //we add the first heldSlots object to apptDates becasuse apptDates originally does not include the first booking\n for (let i = 0; i < apptDatesList.length; i++) {\n let isValid = true;\n let hasAlternate = false;\n if (i > 0) {\n const apptDate = apptDatesList[i];\n isValid = apptDate ? apptDate.validity.isValid : isValid;\n hasAlternate = apptDate ? apptDate.validity.hasAlternate : hasAlternate;\n }\n\n if (isValid || (hasAlternate && !isValid)) {\n const currentHeldSlot =\n i > 0\n ? heldSlots.find(\n (slot) => slot.startDate === apptDatesList[i].dateInfo.dt_disp\n )\n : heldSlots[0];\n const bookingObject = {\n dt_disp: moment(currentHeldSlot.sdtutc).format(\"YYYY-MM-DD\"),\n dtstamp_str: currentHeldSlot.sdtutc,\n dt_long_disp: moment(currentHeldSlot.sdtutc).format(\n \"dddd, MMMM D, YYYY\"\n ),\n partial_dt_full_disp: moment(currentHeldSlot.sdtutc).format(\n \"ddd, MMM D, YYYY\"\n ),\n partial_en_slot_disp: moment(currentHeldSlot.sdtutc).format(\n \"ddd, MMM D\"\n ),\n timeblockid: currentHeldSlot.id,\n };\n heldSlotsList.push(bookingObject);\n } else {\n heldSlotsList.push(null);\n }\n }\n return heldSlotsList;\n}\n\n/**\n * Generates a new array of booking objects based on the given bookingObject\n * and repeatApptList. The first object in the new array is the original\n * bookingObject, and subsequent objects are based on the repeatApptList with\n * specific attributes updated in the TimeDisplayInfo.\n *\n * @param {Object} bookingObject - The original booking object.\n * @param {Array} repeatApptList - An array of dateTimeObjects for different days.\n * @returns {Array} An array of booking objects with updated attributes.\n */\nasync function generateBookingsList(bookingObject, repeatApptList) {\n // Initialize the new array\n let bookingsList = [];\n\n // Iterate over each dateTimeObject in repeatApptList\n for (const dateTimeObject of repeatApptList) {\n // Clone the bookingObject to avoid modifying the original object\n let newBooking = {\n provider: bookingObject.provider,\n TimeDisplayInfo: JSON.parse(\n JSON.stringify(bookingObject.TimeDisplayInfo)\n ),\n isVirtual: bookingObject.isVirtual,\n location: bookingObject.location,\n };\n\n // Update attributes in TimeDisplayInfo\n newBooking.TimeDisplayInfo.dt_disp = dateTimeObject.dateInfo.dt_disp;\n newBooking.TimeDisplayInfo.dtstamp_str =\n dateTimeObject.dateInfo.dtstamp_str;\n newBooking.TimeDisplayInfo.dt_long_disp =\n dateTimeObject.dateInfo.dt_long_disp;\n newBooking.TimeDisplayInfo.dt_full_disp =\n dateTimeObject.dateInfo.partial_dt_full_disp;\n newBooking.TimeDisplayInfo.en_slot_disp =\n dateTimeObject.dateInfo.partial_en_slot_disp;\n\n // Push the modified object to the new array\n bookingsList.push(newBooking);\n }\n\n // Add the bookingObject as the first booking in the List\n bookingsList.unshift(bookingObject);\n\n return bookingsList;\n}\n\nfunction prepareBookingDateTimeDisplayStrings(bookingsList) {\n if (bookingsList && bookingsList.length) {\n for (let bk of bookingsList) {\n bk.TimeDisplayInfo = JSON.parse(bk.TimeDisplayInfo);\n }\n }\n}\n\nasync function getNewOrderNo(companyId) {\n const ordNoResp = await API.get(\"bookingapi\", \"/id\", {\n queryStringParameters: {\n companyId,\n idName: \"ORDERNO\",\n },\n });\n if (ordNoResp && ordNoResp.success) return ordNoResp.id;\n else {\n return Number(new String(Date.now()).slice(-8));\n }\n}\n\nfunction getBookingAddress(bookingState) {\n let bookingAddress = {};\n if (bookingState.appointmentLocation === \"remote\") {\n bookingAddress.addrOneLine = bookingState.location;\n bookingAddress.state = bookingState.remoteAddressState;\n bookingAddress.countryCode = bookingState.remoteAddressCountryShort;\n bookingAddress.postalCode = bookingState.remoteAddressPostalCode;\n bookingAddress.country = bookingState.remoteAddressCountry;\n } else {\n bookingAddress.addrOneLine = bookingState.location;\n bookingAddress.state = bookingState.province;\n bookingAddress.countryCode = bookingState.countryShort;\n bookingAddress.postalCode = bookingState.postalCode;\n bookingAddress.country = bookingState.country;\n }\n return bookingAddress;\n}\n\nconst createClientRecord = async (user, company) => {\n const clientData = {\n userId: user.id,\n currency: company.currency ? company.currency : \"CAD\",\n companyId: company.id,\n clientUserId: user.id,\n clientCompanyId: company.id,\n accountbalance: 0.0,\n };\n\n let client = await execWrite({\n opname: \"createClient\",\n op: createClient,\n input: clientData,\n });\n\n if (client && client.error) {\n return {\n error: client.error,\n };\n } else return client;\n};\n\nconst holdSlotForPackageAppointments = async ({\n uiSessionId,\n company,\n servicetype,\n booking,\n geoLoc,\n locationId,\n providerId,\n}) => {\n if (booking) {\n const tbendtime = getTimeblockEndTime(servicetype, booking);\n let bookedtimeblockData = {\n companyId: company.id,\n startDate: getAWSDate(booking.date),\n startTime: booking.time,\n endTime: tbendtime,\n type: \"BOOKED\",\n locationId,\n status: \"PENDING\",\n geoLoc,\n tz: booking.dateInfo.tz,\n sdtutc: booking.dateInfo.dtstamp_str,\n providerId,\n };\n const tb = await createTimeblock(bookedtimeblockData);\n try {\n await API.post(\"bookingapi\", \"/pendingslotstracking\", {\n body: {\n heldSlots: [\n {\n id: tb.id,\n scheduleinfo: tb.scheduleinfo,\n status: tb.status,\n },\n ],\n uiSessionId: uiSessionId,\n companyId: company.id,\n },\n });\n } catch (e) {\n console.log(\n \"holdSlotForPackageAppointments queueing heldslots for tracking error\",\n e\n );\n }\n return tb;\n }\n return null;\n};\n\nconst holdSlotsForAppointments = async ({\n uiSessionId,\n scheduleId,\n providerId,\n company,\n servicetype,\n booking,\n hasrepeatingappt,\n repeatingapptinfo,\n geoLoc,\n locationId,\n}) => {\n const returnTimeblockList = [];\n // Create Timeblock\n if (booking) {\n const tbendtime = getTimeblockEndTime(servicetype, booking);\n let bookedtimeblockData = {\n companyId: company.id,\n startDate: getAWSDate(booking.date),\n startTime: booking.time,\n endTime: tbendtime,\n type: \"BOOKED\",\n scheduleId,\n providerId,\n status: \"PENDING\",\n locationId,\n geoLoc,\n tz: booking.dateInfo.tz,\n sdtutc: booking.dateInfo.dtstamp_str,\n };\n const tb = await createTimeblock(bookedtimeblockData);\n returnTimeblockList.push(tb);\n }\n //this part is only done for recurring bookings\n if (hasrepeatingappt && repeatingapptinfo.apptlist) {\n for (const apptDT of repeatingapptinfo.repeatingApptList) {\n // Create Timeblock\n const tbendtime = getTimeblockEndTimeOfAppt(servicetype, apptDT.date);\n let bookedtimeblockData = {\n companyId: company.id,\n startDate: getAWSDate(apptDT.date),\n startTime: getBookingTimeOfAppt(apptDT.date),\n endTime: tbendtime,\n type: \"BOOKED\",\n scheduleId,\n providerId,\n status: \"PENDING\",\n geoLoc,\n locationId,\n tz: apptDT.dateInfo.tz,\n sdtutc: apptDT.dateInfo.dtstamp_str,\n };\n const tb = await createTimeblock(bookedtimeblockData);\n returnTimeblockList.push({ ...tb, date: apptDT.date });\n }\n }\n if (returnTimeblockList && returnTimeblockList.length)\n try {\n await API.post(\"bookingapi\", \"/pendingslotstracking\", {\n body: {\n heldSlots: returnTimeblockList.map((ps) => {\n return {\n id: ps.id,\n scheduleinfo: ps.scheduleinfo,\n status: ps.status,\n };\n }),\n uiSessionId: uiSessionId,\n companyId: company.id,\n },\n });\n } catch (e) {\n console.log(\" queueing heldslots for tracking error\", e);\n }\n\n return {\n heldSlots: returnTimeblockList,\n };\n};\n\nfunction priceAfterDiscount(bs, basePrice) {\n if (bs.promoData) {\n return basePrice - getDiscount(bs, basePrice);\n }\n return basePrice;\n}\n\nfunction getDiscount(bs, basePrice) {\n if (bs.promoData) {\n if (bs.promoData.discountType === \"DOLLAR\")\n return Number(bs.promoData.discountValue);\n //assume PERCENTAGE\n else return basePrice * (Number(bs.promoData.discountValue) / 100);\n }\n return 0.0;\n}\n\nconst calculateChargeBreakup = (basePrice, company, isPkgCredit, bs) => {\n const { countryCode, stateCode } = getTaxJurisdiction(bs, company);\n const jurisdictionTaxRate = getServiceTaxRate(countryCode, stateCode);\n let taxableAmount = 0;\n let taxAmount = 0;\n let taxRate;\n\n if (bs.sdt === \"package\") {\n if (bs.boughtpackage !== null) {\n const {\n regionalServicePrice,\n boughtpackage: {\n servicetype: { taxexempt, TaxOverride: taxOverrideJson },\n packagetype,\n price,\n quantity,\n discount,\n },\n } = bs;\n let taxOverride;\n try {\n taxOverride = JSON.parse(taxOverrideJson);\n } catch {\n console.log(\"Unable to parse tax override\");\n }\n if (taxexempt === false) {\n taxableAmount =\n packagetype === \"DOLLAR\"\n ? priceAfterDiscount(bs, price)\n : quantity *\n priceAfterDiscount(bs, regionalServicePrice) *\n (1 - discount / 100);\n }\n taxRate =\n !isNaN(parseFloat(taxOverride)) && isFinite(taxOverride)\n ? parseFloat(taxOverride)\n : jurisdictionTaxRate;\n taxAmount = (taxableAmount * taxRate) / 100;\n }\n } else {\n const {\n regionalServicePrice1,\n regionalServicePrice2,\n regionalServicePrice3,\n serviceQty1,\n serviceQty2,\n serviceQty3,\n serviceType1,\n serviceType2,\n serviceType3,\n } = bs;\n const { taxexempt: taxexempt1, TaxOverride: taxOverride1Json1 } =\n serviceType1 || {};\n const { taxexempt: taxexempt2, TaxOverride: taxOverride1Json2 } =\n serviceType2 || {};\n const { taxexempt: taxexempt3, TaxOverride: taxOverride1Json3 } =\n serviceType3 || {};\n let taxOverride1, taxOverride2, taxOverride3;\n let taxRate1, taxRate2, taxRate3;\n let taxableAmount1, taxableAmount2, taxableAmount3;\n try {\n taxOverride1 = JSON.parse(taxOverride1Json1);\n } catch {\n console.log(\"Unable to parse tax override\");\n }\n try {\n taxOverride2 = JSON.parse(taxOverride1Json2);\n } catch {\n console.log(\"Unable to parse tax override\");\n }\n try {\n taxOverride3 = JSON.parse(taxOverride1Json3);\n } catch {\n console.log(\"Unable to parse tax override\");\n }\n if (taxexempt1 !== true && serviceType1) {\n taxableAmount1 =\n priceAfterDiscount(bs, regionalServicePrice1) * serviceQty1;\n taxableAmount += taxableAmount1;\n taxRate1 =\n !isNaN(parseFloat(taxOverride1)) && isFinite(taxOverride1)\n ? parseFloat(taxOverride1)\n : jurisdictionTaxRate;\n taxAmount += (taxableAmount1 * taxRate1) / 100;\n }\n if (taxexempt2 !== true && serviceType2) {\n taxableAmount2 = regionalServicePrice2 * serviceQty2;\n taxableAmount += taxableAmount2;\n taxRate2 =\n !isNaN(parseFloat(taxOverride2)) && isFinite(taxOverride2)\n ? parseFloat(taxOverride2)\n : jurisdictionTaxRate;\n taxAmount += (taxableAmount2 * taxRate2) / 100;\n }\n if (taxexempt3 !== true && serviceType3) {\n taxableAmount3 = regionalServicePrice3 * serviceQty3;\n taxableAmount += taxableAmount2;\n taxRate3 =\n !isNaN(parseFloat(taxOverride3)) && isFinite(taxOverride3)\n ? parseFloat(taxOverride3)\n : jurisdictionTaxRate;\n taxAmount += (taxableAmount3 * taxRate3) / 100;\n }\n // detects is there are any different non undefiend tax rate in which case the rate is variable\n taxRate = [taxRate1, taxRate2, taxRate3].reduce(\n (acc, rate) =>\n rate !== undefined && rate !== acc ? VARIABLE_TAX_RATE : acc,\n taxRate1\n );\n }\n\n const charge = {\n subtotal: priceAfterDiscount(bs, Number.parseFloat(basePrice)),\n servicechargeamt: 0.0,\n total: 0.0,\n discount: getDiscount(bs, basePrice),\n };\n\n if (company.addServiceFee && !isPkgCredit) {\n if (company.serviceFeeType === \"PERCENTAGE\") {\n charge.servicechargeamt = Number.parseFloat(\n (charge.subtotal * company.serviceFeeAmount) / 100\n );\n } else {\n charge.servicechargeamt = Number.parseFloat(company.serviceFeeAmount);\n }\n // Service fees taxation jusrestiction based logic\n // Assume no cross border orders\n if (countryCode.toUpperCase() === \"CA\" && charge.servicechargeamt > 0) {\n taxableAmount += charge.servicechargeamt;\n taxAmount += charge.servicechargeamt * (jurisdictionTaxRate / 100);\n }\n }\n\n charge.taxableamt = Number.parseFloat(taxableAmount);\n charge.taxamt = taxAmount;\n charge.taxrate = taxRate;\n\n charge.total = charge.subtotal + charge.servicechargeamt + charge.taxamt;\n return charge;\n};\n\nconst updateClientPackageToPaid = async (pkg, usedQuantity) => {\n const updCliPkg = /* GraphQL */ `\n mutation UpdateClientPackage($input: UpdateClientPackageInput!) {\n updateClientPackage(input: $input) {\n id\n }\n }\n `;\n\n return await execWrite({\n opname: \"updateClientPackage\",\n op: updCliPkg,\n input: {\n id: pkg.id,\n status: \"paid\",\n usedQuantity,\n servicetypeId: pkg.servicetypeId,\n packageId: pkg.packageId,\n createdAt: pkg.createdAt,\n },\n });\n};\n\nfunction prepareOrderDesc(servicetype, booking, bookingType) {\n //For single booking.\n //TBD: For repeated booking.\n if (bookingType === \"forever\") {\n return `Repeating bookings for ${servicetype.name} starting from ${booking.dateInfo.dt_full_disp}`;\n } else if (bookingType === \"package\") {\n return `Package booking for ${servicetype.name}`;\n } else\n return `Booking for ${servicetype.name} on ${booking.dateInfo.dt_full_disp} `;\n}\n\nfunction getTimeblockEndTime(servicetype, booking) {\n const endtime = new Date();\n const parts = booking.time.split(\":\");\n endtime.setHours(Number.parseInt(parts[0]));\n endtime.setMinutes(servicetype.minutes + Number.parseInt(parts[1]));\n return `${\n endtime.getHours() < 10 ? \"0\" + endtime.getHours() : endtime.getHours()\n }:${\n endtime.getMinutes() < 10\n ? \"0\" + endtime.getMinutes()\n : endtime.getMinutes()\n }`;\n}\n\nfunction getTimeblockEndTimeOfAppt(servicetype, apptDatetime) {\n const endtime = new Date(apptDatetime.getTime());\n endtime.setMinutes(servicetype.minutes + endtime.getMinutes());\n return `${\n endtime.getHours() < 10 ? \"0\" + endtime.getHours() : endtime.getHours()\n }:${\n endtime.getMinutes() < 10\n ? \"0\" + endtime.getMinutes()\n : endtime.getMinutes()\n }`;\n}\n\nfunction getBookingTimeOfAppt(apptDatetime) {\n return `${\n apptDatetime.getHours() < 10\n ? \"0\" + apptDatetime.getHours()\n : apptDatetime.getHours()\n }:${\n apptDatetime.getMinutes() < 10\n ? \"0\" + apptDatetime.getMinutes()\n : apptDatetime.getMinutes()\n }`;\n}\n\nasync function getClientIfExists(cd) {\n const ClientByUserId = /* GraphQL */ `\n query ClientByUserId(\n $userId: String\n $id: ModelIDKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelClientFilterInput\n $limit: Int\n $nextToken: String\n ) {\n clientByUserId(\n userId: $userId\n id: $id\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n userId\n companyId\n stripeCustomerId\n defaultpartialcc\n user {\n id\n username\n emailaddress\n registered\n firstname\n lastname\n homephone\n workphone\n mobilephone\n phonepref\n }\n }\n nextToken\n }\n }\n `;\n\n const response = await API.graphql(\n graphqlOperation(ClientByUserId, {\n userId: cd.userid,\n filter: { companyId: { eq: cd.companyid } },\n })\n );\n let client =\n response.data.clientByUserId.items && response.data.clientByUserId.items[0];\n\n return client;\n}\n\nconst getPaidPackages = async ({ userid, servicetypeid }) => {\n const filter = {\n and: [{ active: { ne: false } }, { status: { eq: \"paid\" } }],\n };\n\n const listClientPackagesData = await execReadBySortkey({\n op: clientPackageByUser,\n opname: \"clientPackageByUser\",\n id: { userId: userid },\n skey: {\n servicetypeIdPackageIdCreatedAt: {\n beginsWith: { servicetypeId: servicetypeid },\n },\n },\n filter,\n limit: 10,\n });\n if (listClientPackagesData.error) {\n return [];\n }\n return listClientPackagesData.items\n ? listClientPackagesData.items.filter(\n (cp) => cp.initialQuantity > cp.usedQuantity\n )\n : [];\n};\n\nconst updateUsedQuantityOfPackage = async ({ pkg, increaseby }) => {\n //should we check if usedQuantity will be greater than initial quantity\n const {\n data: { getClientPackage: clientPackage },\n } = await API.graphql(\n graphqlOperation(getClientPackage, {\n id: pkg.id,\n })\n );\n const usedQuantity = clientPackage\n ? clientPackage.usedQuantity + increaseby\n : pkg.usedQuantity + increaseby;\n const input = {\n id: pkg.id,\n servicetypeId: pkg.servicetypeId,\n packageId: pkg.packageId,\n createdAt: pkg.createdAt,\n usedQuantity,\n };\n const response = await execWrite({\n opname: \"updateClientPackage\",\n op: updateClientPackage,\n input,\n });\n return response;\n};\n\nconst updateOrderStatusToPaidByPkgCredit = async (orderid) => {\n return await updateOrderStatus(\n orderid,\n \"PAIDBYPKGCRE\",\n {\n subtotal: 0.0,\n servicechargeamt: 0.0,\n total: 0.0,\n taxamt: 0.0,\n },\n null\n );\n};\nconst updateOrderStatusToConfirmed = async (\n orderid,\n chargeBreakup,\n receipt\n) => {\n return await updateOrderStatus(orderid, \"CONFIRMED\", chargeBreakup, receipt);\n};\nconst updateOrderStatusToPaid = async (orderid, chargeBreakup, receipt) => {\n return await updateOrderStatus(orderid, \"PAID\", chargeBreakup, receipt);\n};\nconst updateOrderStatusToClosed = async (orderid) => {\n return await updateOrderStatus(orderid, \"CLOSED\", null, null);\n};\nconst updateOrderStatus = async (orderid, status, chargeBreakup, receipt) => {\n const updOrder = /* GraphQL */ `\n mutation UpdateOrder($input: UpdateOrderInput!) {\n updateOrder(input: $input) {\n id\n }\n }\n `;\n return await execWrite({\n opname: \"updateOrder\",\n op: updOrder,\n input: {\n id: orderid,\n status,\n ...(receipt\n ? {\n orderReceipt: receipt,\n }\n : {}),\n ...(chargeBreakup\n ? {\n subtotal: chargeBreakup.subtotal,\n total: chargeBreakup.total,\n servicechargeamt: chargeBreakup.servicechargeamt,\n taxamt: chargeBreakup.taxamt,\n }\n : {}),\n },\n });\n};\n\nconst updateClientBalanceTo = async (clientId, balance) => {\n const updateClient = `mutation UpdateClient($input: UpdateClientInput!) {\n updateClient(input: $input) {\n id\n }\n }`;\n return await execWrite({\n opname: \"updateClient\",\n op: updateClient,\n input: {\n id: clientId,\n accountbalance: balance,\n },\n });\n};\n\nconst cancelBooking = async (booking) => {\n const updBooking = /* GraphQL */ `\n mutation UpdateBooking($input: UpdateBookingInput!) {\n updateBooking(input: $input) {\n id\n status\n timeblockid\n providerId\n clientId\n companyId\n }\n }\n `;\n const bkgresp = await execWrite({\n opname: \"updateBooking\",\n op: updBooking,\n input: {\n id: booking.id,\n status: \"CANCELLED\",\n cancelledAt: booking.cancelledAt,\n bookingCancelledById: booking.cancelledBy,\n },\n });\n\n if (bkgresp && bkgresp.timeblockid) {\n const tbpksk = bkgresp.timeblockid.split(\"::\");\n await execWrite({\n opname: \"updateProviderSchedule\",\n op: updateProviderSchedule,\n input: {\n id: tbpksk[0],\n scheduleinfo: tbpksk[1],\n status: \"CANCELLED\",\n },\n });\n }\n return bkgresp;\n};\n\nconst saveBillingProgress = async (input) => {\n const {\n currency,\n company,\n order,\n booking,\n client,\n user,\n serviceType,\n chargeBreakup,\n } = input;\n const ts = getCurrentDate();\n const jsonData = JSON.stringify({\n companyId: company.id,\n orderId: order.id,\n bookingId: booking.id,\n userId: user.id,\n userEmailAddress: user.emailaddress,\n currency: currency,\n stripeCustomerId: client.stripeCustomerId,\n clientId: client.id,\n serviceTypeName: serviceType.name,\n bookingTimeblockId: booking.timeblockid,\n appointmentDate: booking.startdate,\n timestamp: ts,\n chargeBreakup,\n });\n\n const bpData = {\n companyId: company.id,\n dateTime: new Date(),\n status: \"QUEUED\",\n data: jsonData,\n };\n\n try {\n const bp = await execWrite({\n opname: \"createBillingProgress\",\n op: createBillingProgress,\n input: bpData,\n });\n\n if (bp && bp.error) {\n return {\n error: bp.error,\n success: false,\n };\n } else {\n return { success: true };\n }\n } catch (e) {\n return { success: false, error: e };\n }\n};\nconst getCurrentDate = () => {\n return moment.utc().format(\"YYYY-MM-DDTHH-mm-ss.SSS\");\n};\n\nconst updateHeldSlotsToConfirmed = async (heldSlots) => {\n for (let hs of heldSlots) {\n const tbpksk = hs.id.split(\"::\");\n\n await execWrite({\n opname: \"updateProviderSchedule\",\n op: updateProviderSchedule,\n input: {\n id: tbpksk[0],\n scheduleinfo: tbpksk[1],\n status: \"CONFIRMED\",\n },\n });\n }\n};\n\nconst deleteHeldSlots = async (heldSlots) => {\n for (let hs of heldSlots) {\n const tbpksk = hs.id.split(\"::\");\n await execWrite({\n opname: \"deleteProviderSchedule\",\n op: deleteProviderSchedule,\n input: {\n id: tbpksk[0],\n scheduleinfo: tbpksk[1],\n },\n });\n }\n};\n\nasync function sendProviderBookingConfirmation({\n provider,\n client,\n company,\n serviceType,\n bookings,\n orderNo,\n orderType,\n orderNotes,\n wdDisplay,\n}) {\n const providerConfirmation = await ProviderBookingConfirmation({\n provider,\n client,\n company,\n serviceType,\n bookings,\n orderNo,\n orderType,\n orderNotes,\n wdDisplay,\n });\n if (providerConfirmation.length > 0)\n await handleSendEmail(\n `You have received a new booking from ${company.name}: Ref No. ${orderNo}`,\n providerConfirmation,\n [provider.emailaddress],\n [],\n [],\n company.replyemailaddress,\n company.name\n );\n}\n\nasync function sendOrderReceipt(orderId) {\n try {\n await API.post(\"bookingapi\", \"/booking/receipt-email\", {\n body: { orderId },\n });\n } catch (e) {\n console.log(\"ERROR generating receipt email\", e);\n }\n}\n\nasync function saveClientPackage(user, bookingState) {\n try {\n const pkg = bookingState.boughtpackage;\n\n let input = {\n companyId: bookingState.company.id,\n userId: user.username,\n clientPackageUserId: user.username,\n clientPackageServicetypeId: bookingState.serviceType.id,\n clientId: bookingState.client.id,\n clientPackageClientId: bookingState.client.id,\n servicetypeId: bookingState.serviceType.id,\n clientPackagePackageId: pkg.id,\n packageId: pkg.id,\n initialQuantity: pkg.quantity,\n usedQuantity: 0,\n status: \"pending\",\n active: true,\n createdAt: new Date().toISOString(),\n };\n const result = await API.graphql(\n graphqlOperation(createClientPackage, { input })\n );\n\n return {\n success: true,\n pkg: result.data.createClientPackage,\n };\n } catch (err) {\n console.log(\"Create package error\");\n return {\n success: false,\n };\n }\n}\n\nasync function fetchPackages(companyId, serviceTypeId) {\n // check for available active packages for this company and service type\n\n let listPackagesData = await execReadBySortkey({\n opname: \"packageByCompany\",\n op: packageByCompany,\n id: { companyId: companyId },\n skey: {\n servicetypeIdCreatedAt: {\n beginsWith: {\n servicetypeId: serviceTypeId,\n },\n },\n },\n filter: {\n and: [{ active: { ne: false } }, { deleted: { ne: true } }],\n },\n sortDirection: \"DESC\",\n });\n\n if (listPackagesData.items && listPackagesData.items.length > 0) {\n listPackagesData.items.sort((p1, p2) => p1.quantity - p2.quantity);\n }\n return listPackagesData.items;\n}\n\nasync function noPackages(companyId, serviceId) {\n const pkgs = await fetchPackages(companyId, serviceId);\n if (!pkgs || !pkgs.length) return true;\n return false;\n}\n\nasync function fetchRegionalPricing(companyId, serviceTypeId) {\n // check for available regional pricing for this company and service type\n\n let listRegionalPricingData = await execReadBySortkey({\n opname: \"regionalPricingByCompanyServiceType\",\n op: regionalPricingByCompanyServiceType,\n id: { companyId: companyId },\n skey: { servicetypeId: { eq: serviceTypeId } },\n filter: {\n and: [{ active: { ne: false } }, { deleted: { ne: true } }],\n },\n sortDirection: \"DESC\",\n });\n\n return listRegionalPricingData.items;\n}\n\n// gets correct price based on regional pricing\nasync function getPrice(bookingState, serviceType) {\n const price = serviceType.price;\n\n // virtual appts have no regional pricing\n if (bookingState.isVirtual) return price;\n\n const regpri = await fetchRegionalPricing(\n bookingState.company.id,\n serviceType.id\n );\n\n let country = bookingState.isRemoteLocation\n ? bookingState.remoteAddressCountryShort\n : bookingState.countryShort;\n let prov = bookingState.isRemoteLocation\n ? bookingState.remoteAddressState\n : bookingState.province;\n let postalCode = bookingState.isRemoteLocation\n ? bookingState.remoteAddressPostalCode\n : bookingState.postalCode;\n\n // filters regional pricing into separate arrays by type\n let countryRegPri = regpri.filter((o) => o.pricingtype === \"COUNTRY\");\n let provRegPri = regpri.filter((o) => o.pricingtype === \"PROVINCE\");\n let postalRegPri = regpri.filter((o) => o.pricingtype === \"POSTALCODE\");\n // further filters through postalcode regional pricing array to find matching postal code\n if (postalCode)\n postalRegPri = postalRegPri.filter((o) =>\n o.postalcodes.find(\n (p) =>\n p.replace(/\\s+/g, \"\").toUpperCase() ===\n postalCode.replace(/\\s+/g, \"\").toUpperCase()\n )\n );\n\n // if there is postalcode regional pricing and it matches the booking postal code, choose that price\n if (postalCode && postalRegPri.length) {\n return postalRegPri[0].price;\n }\n // if there is province regional pricing and it matches the booking province, choose that price\n else if (\n provRegPri.length &&\n provRegPri.find((o) => o.province.trim() === prov)\n ) {\n return provRegPri.find((o) => o.province.trim() === prov).price;\n }\n // if there is country regional pricing and it matches the booking country, choose that price\n else if (\n countryRegPri.length &&\n countryRegPri.find((o) => o.country.trim() === country)\n ) {\n return countryRegPri.find((o) => o.country.trim() === country).price;\n }\n // if no regional pricing, stick with original service price\n else {\n return price;\n }\n}\n\n// populates any description fields with the proper price per session values\nfunction getDescription(val, price, currency) {\n // note that dollar packages use val.price, while percentage packages. use passed in price value\n if (!val.desc.includes(\"$[price]\") && !val.desc.includes(\"[price]\"))\n return val.desc;\n else if (val.packagetype === \"DOLLAR\") {\n return val.desc\n .replace(/\\$/gi, \"\")\n .replace(\n \"[price]\",\n `${getCurrencySymbol(currency)}${(val.price / val.quantity).toFixed(2)}`\n );\n } else if (val.packagetype === \"PERCENTAGE\") {\n let pricePerSession =\n (val.quantity * price * (1 - val.discount / 100)) / val.quantity;\n return val.desc\n .replace(/\\$/gi, \"\")\n .replace(\n \"[price]\",\n `${getCurrencySymbol(currency)}${pricePerSession.toFixed(2)}`\n );\n } else {\n return \"PACKAGE TYPE MISSING\";\n }\n}\n\nasync function fetchCompanyLocation(locationId) {\n const getCompanyLocationData = await API.graphql(\n graphqlOperation(getCompanyLocation, { id: locationId })\n );\n return getCompanyLocationData.data.getCompanyLocation;\n}\n\nfunction getStripeAmount(num) {\n let num_check = (parseFloat(num) * 100).toString();\n const decimal_pos = num_check.indexOf(\".\");\n if (decimal_pos === -1) {\n return parseInt(num_check);\n } else {\n const rounded_num = num_check.charAt(decimal_pos + 1);\n if (parseInt(rounded_num) >= 5) {\n return parseInt(num_check) + 1;\n } else if (parseInt(rounded_num) < 5) {\n return parseInt(num_check);\n }\n }\n}\n\nconst saveBookingRequest = async (\n bookingState,\n client,\n guestCheckoutInfoForBookingReq\n) => {\n // Read client:\n if (!client) {\n let clientRecord = await getClientIfExists({\n userid: bookingState.bookingUser.username,\n companyid: bookingState.company.id,\n });\n client = clientRecord;\n }\n let savedNotDisplayedProviderData = [];\n let savedDisplayedProviderData = [];\n if (\n bookingState.savedNotDisplayedProviderData &&\n bookingState.savedNotDisplayedProviderData.length > 0\n ) {\n let usethese = [];\n if (bookingState.savedNotDisplayedProviderData.length > 10) {\n usethese = bookingState.savedNotDisplayedProviderData.slice(0, 10);\n } else usethese = bookingState.savedNotDisplayedProviderData;\n savedNotDisplayedProviderData = usethese.map((p) => {\n return {\n id: p.id,\n firstname: p.firstname,\n lastname: p.lastname,\n active: p.active,\n maxtraveltype: p.maxtraveltype,\n emailaddress: p.emailaddress,\n phone: p.phone,\n pictures3key: p.pictures3key,\n virtualMeetingUserId: p.virtualMeetingUserId,\n vmlink: p.vmlink,\n SBs: p.SBs?.length\n ? p.SBs.map((sb) => {\n return {\n startDate: sb.startDate,\n endDate: sb.endDate,\n startTime: sb.startTime,\n endTime: sb.endTime,\n weekDays: sb.weekDays,\n };\n })\n : [],\n timezone: p.timezone,\n };\n });\n }\n\n if (\n bookingState.savedDisplayedProviderData &&\n bookingState.savedDisplayedProviderData.length > 0\n ) {\n let usethese = [];\n if (bookingState.savedDisplayedProviderData.length > 10) {\n usethese = bookingState.savedDisplayedProviderData.slice(0, 10);\n } else usethese = bookingState.savedDisplayedProviderData;\n\n savedDisplayedProviderData = usethese.map((p) => {\n return {\n id: p.id,\n firstname: p.firstname,\n lastname: p.lastname,\n active: p.active,\n maxtraveltype: p.maxtraveltype,\n emailaddress: p.emailaddress,\n phone: p.phone,\n pictures3key: p.pictures3key,\n virtualMeetingUserId: p.virtualMeetingUserId,\n vmlink: p.vmlink,\n SBs: p.SBs?.length\n ? p.SBs.map((sb) => {\n return {\n startDate: sb.startDate,\n endDate: sb.endDate,\n startTime: sb.startTime,\n endTime: sb.endTime,\n weekDays: sb.weekDays,\n };\n })\n : [],\n timezone: p.timezone,\n };\n });\n }\n //const orderNo = await getNewOrderNo(bookingState.company.id);\n let br = {\n geoLoc: bookingState.isRemoteLocation\n ? bookingState.remoteAddressCoordinates\n : bookingState.companyLocationCoordinates\n ? bookingState.companyLocationCoordinates\n : null,\n bookingTz: bookingState.bookingTz,\n clientNotes: bookingState.clientNotes,\n extraAvailabilityNotes: bookingState.extraAvailabilityNotes,\n //orderNo,\n bookingAddress: getBookingAddress(bookingState),\n location: bookingState.location,\n locationId: bookingState.locationId,\n tryOtherProviders: bookingState.bookedSuggestedSlots\n ? false\n : bookingState.tryOtherProviders,\n currency: bookingState.currency,\n client,\n dir: {\n notdisplayed: savedNotDisplayedProviderData,\n displayed: savedDisplayedProviderData,\n },\n companyId: bookingState.company.id,\n serviceType: {\n id: bookingState.serviceType.id,\n name: bookingState.serviceType.name,\n price: bookingState.serviceType.price,\n minutes: bookingState.serviceType.minutes,\n },\n serviceQty1: bookingState.serviceQty1,\n serviceQty2: bookingState.serviceQty2,\n serviceQty3: bookingState.serviceQty3,\n serviceType1: bookingState.serviceType1,\n serviceType2: bookingState.serviceType2,\n serviceType3: bookingState.serviceType3,\n user: client.user,\n address: bookingState.address,\n isVirtual: bookingState.isVirtual,\n isRemoteLocation: bookingState.isRemoteLocation,\n appointmentLocation: bookingState.appointmentLocation,\n datefilter: bookingState.datefilter,\n provider: {\n id: bookingState.provider.id,\n emailaddress: bookingState.provider.emailaddress,\n firstname: bookingState.provider.firstname,\n lastname: bookingState.provider.lastname,\n phone: bookingState.provider.phone,\n pictures3key: bookingState.provider.pictures3key,\n virtualMeetingUserId: bookingState.provider.virtualMeetingUserId,\n vmlink: bookingState.provider.vmlink,\n permalink: bookingState.provider.permalink\n ? bookingState.provider.permalink\n : \"\",\n SBs: bookingState.provider.SBs.map((sb) => {\n return {\n startDate: sb.startDate,\n endDate: sb.endDate,\n startTime: sb.startTime,\n endTime: sb.endTime,\n weekDays: sb.weekDays,\n };\n }),\n timezone: bookingState.provider.timezone,\n },\n origProvider: {\n id: bookingState.provider.id,\n emailaddress: bookingState.provider.emailaddress,\n firstname: bookingState.provider.firstname,\n lastname: bookingState.provider.lastname,\n phone: bookingState.provider.phone,\n virtualMeetingUserId: bookingState.provider.virtualMeetingUserId,\n vmlink: bookingState.provider.vmlink,\n timezone: bookingState.provider.timezone,\n },\n selectedslot: {\n ...bookingState.selectedslot,\n day: bookingState.selectedslot.date.getDay(),\n tz: bookingState.bookingTz,\n },\n dayCount: bookingState.dayCount,\n dayType: bookingState.dayType,\n daysOfWeek: bookingState.daysOfWeek,\n repeatingAppointment: bookingState.packageBookedSlots?.length\n ? true\n : bookingState.repeatingAppointment,\n repeatingApptList: bookingState.packageBookedSlots?.length\n ? bookingState.packageBookedSlots.slice(1)\n : bookingState.repeatingApptList,\n rrule: bookingState.rrule ? bookingState.rrule : \"\",\n newclientpkgid: bookingState.boughtpackage\n ? bookingState.newclientpkg.id\n : \"\",\n boughtpackage: bookingState.boughtpackage,\n clientpackage: bookingState.clientpackage,\n sdt: bookingState.sdt,\n\n osd: bookingState.osd,\n cbu: bookingState.cbu,\n heldSlots:\n bookingState.heldSlots && bookingState.heldSlots.length\n ? bookingState.heldSlots.map((hs) => {\n return {\n id: hs.id,\n scheduleinfo: hs.scheduleinfo,\n startDate: hs.startDate,\n endDate: hs.endDate,\n startTime: hs.startTime,\n endTime: hs.endTime,\n createdAt: hs.createdAt,\n sdtutc: hs.sdtutc,\n tz: hs.tz,\n };\n })\n : bookingState.heldPackageSlots?.length\n ? bookingState.heldPackageSlots.map((hs) => {\n return {\n id: hs.id,\n scheduleinfo: hs.scheduleinfo,\n startDate: hs.startDate,\n endDate: hs.endDate,\n startTime: hs.startTime,\n endTime: hs.endTime,\n createdAt: hs.createdAt,\n sdtutc: hs.sdtutc,\n tz: hs.tz,\n en_slot_disp: hs.en_slot_disp,\n };\n })\n : [],\n serviceLocation: bookingState.serviceLocation,\n company: getOnlyNeededFields(bookingState.company),\n lastForeverApptDate: bookingState.lastForeverApptDate\n ? getAWSDate(new Date(bookingState.lastForeverApptDate))\n : \"\", //in YYYY-MM-DD so that lambda does not have to do this conversion\n wdDisplay: bookingState.wdDisplay,\n bookedByAdmin: bookingState.bookingOnBehalf ? true : false,\n promoData: bookingState.promoData,\n validPromocodeApplied: bookingState.validPromocodeApplied,\n actionUser: bookingState.guestCheckout\n ? client.user\n : { ...bookingState.user?.attributes },\n isRepeatingAppointment:\n bookingState.repeatingAppointment ||\n bookingState.packageRecurringSelected,\n };\n\n if (guestCheckoutInfoForBookingReq) {\n br.guestCheckoutInfo = guestCheckoutInfoForBookingReq;\n }\n\n const id = `CL-${client.id}`;\n\n const data = JSON.stringify(br);\n\n const brData = {\n id,\n recordType: `REQ|${Date.now()}`,\n providerId: bookingState.provider.id,\n accepted: false,\n status: \"REQUESTED\",\n data,\n };\n\n try {\n const br = await execWrite({\n opname: \"createBookingRequest\",\n op: createBookingRequest,\n input: brData,\n });\n\n if (br && br.error) {\n return {\n error: br.error,\n success: false,\n };\n } else {\n await createUISessionEntry({\n uiSessionId: bookingState.uiSessionId,\n eventName: \"COMPLETE:BR\",\n companyId: bookingState.company.id,\n });\n trackOrderCompleted(bookingState, {});\n return { success: true };\n }\n } catch (e) {\n return { success: false, error: e };\n }\n};\n\nfunction getOnlyNeededFields(company) {\n return {\n id: company.id,\n name: company.name,\n contactname: company.contactname,\n emailaddress: company.emailaddress,\n replyemailaddress: company.replyemailaddress,\n currency: company.currency,\n currencyBasedOnLocation: company.currencyBasedOnLocation,\n addressoneline: company.addressoneline,\n street: company.street,\n city: company.city,\n state: company.state,\n country: company.country,\n postalcode: company.postalcode,\n longitude: company.longitude,\n latitude: company.latitude,\n ApptAcceptanceFlowConfig: company.ApptAcceptanceFlowConfig,\n subdomain: company.subdomain,\n tagline: company.tagline,\n logoUrl: company.logoUrl,\n billingMode: company.billingMode,\n iframeURL: company.iframeURL,\n primaryColor: company.primaryColor,\n addServiceFee: company.addServiceFee,\n serviceFeeType: company.serviceFeeType,\n serviceFeeAmount: company.serviceFeeAmount,\n taxrate: company.taxrate,\n travelTime: company.travelTime,\n countrycode3166alpha2: company.countrycode3166alpha2,\n publishableStripeKey: company.publishableStripeKey,\n offersForeverAppt: company.offersForeverAppt,\n virtualMeetingConfig: company.virtualMeetingConfig,\n BccLists: getConfigurgedEmailAddresses(company.BccLists),\n collectpayment: company.collectpayment,\n bookingIncrement: company.bookingIncrement ? company.bookingIncrement : 15,\n stripeAccount: company.stripeAccount,\n stripeConnectEnabled: company.stripeConnectEnabled,\n };\n}\n\nfunction getConfigurgedEmailAddresses(bccListsJson) {\n let BccLists = { forOrdSum: [] };\n if (bccListsJson && bccListsJson.length) {\n let bccListsObj = JSON.parse(bccListsJson);\n if (bccListsObj && bccListsObj.forOrdSum)\n BccLists.forOrdSum = bccListsObj.forOrdSum;\n if (bccListsObj && bccListsObj.forBookingReqCreated)\n BccLists.forBookingReqCreated = bccListsObj.forBookingReqCreated;\n if (bccListsObj && bccListsObj.forBookingReqExpired)\n BccLists.forBookingReqExpired = bccListsObj.forBookingReqExpired;\n }\n return BccLists;\n}\n\nasync function readCurrency(countryCode) {\n const result = await API.graphql(\n graphqlOperation(getRefData, {\n refType: \"CURRENCY\",\n refName: countryCode,\n })\n );\n let val = result.data.getRefData ? result.data.getRefData.refValue : null;\n\n return val;\n}\nasync function getCurrency(bookingState) {\n if (bookingState.company.currencyBasedOnLocation) {\n let countryCode;\n if (bookingState.appointmentLocation === \"remote\") {\n countryCode = bookingState.remoteAddressCountryShort;\n } else {\n countryCode = bookingState.countryShort;\n }\n\n let currency = await readCurrency(countryCode);\n if (currency) return currency;\n else return bookingState.company.currency;\n } else return bookingState.company.currency;\n}\n\nconst getCurrencySymbol = (companyCurrency) => {\n switch (companyCurrency) {\n case \"GBP\":\n return \"£\";\n case \"CAD\":\n return \"$\";\n case \"USD\":\n return \"$\";\n case \"AUD\":\n return \"$\";\n default:\n return \"$\";\n }\n};\n\nconst getOrderTrackingData = (order, bookingState, company) => {\n let {\n providerId,\n firstname,\n lastname,\n emailaddress,\n maxtraveltype,\n offersVirtualServices,\n } = bookingState.provider;\n let { id, name, categoryId, categoryName, price, minutes } =\n bookingState.serviceType;\n return {\n companyId: company.id,\n companyName: company.name,\n provider: {\n providerId,\n firstname,\n lastname,\n emailaddress,\n maxtraveltype,\n offersVirtualServices,\n },\n serviceType: { id, name, categoryId, categoryName, price, minutes },\n location: bookingState.location,\n bookingAddress: order.bookingAddress,\n orderSummary: bookingState.osd,\n orderId: order.id,\n orderType: order.type,\n };\n};\n\nfunction totalRegionalPrice(bs) {\n if (bs.numServices === 1) {\n return bs.regionalServicePrice1 * bs.serviceQty1;\n }\n if (bs.numServices === 2) {\n return (\n bs.regionalServicePrice1 * bs.serviceQty1 +\n bs.regionalServicePrice2 * bs.serviceQty2\n );\n }\n if (bs.numServices === 3) {\n return (\n bs.regionalServicePrice1 * bs.serviceQty1 +\n bs.regionalServicePrice2 * bs.serviceQty2 +\n bs.regionalServicePrice3 * bs.serviceQty3\n );\n }\n}\n\nfunction getTaxJurisdiction(bs, company) {\n const taxJurisdiction = { countryCode: \"\", stateCode: \"\" };\n if (bs.appointmentLocation === \"remote\") {\n taxJurisdiction.countryCode = bs.remoteAddressCountryShort;\n taxJurisdiction.stateCode = bs.remoteAddressState;\n }\n if (bs.appointmentLocation === \"local\") {\n taxJurisdiction.countryCode = company.countrycode3166alpha2;\n taxJurisdiction.stateCode = company.state;\n }\n return taxJurisdiction;\n}\n\nfunction createOsd(bs, company) {\n const osd = { rows: [] };\n let creditsRemaining = 0;\n let cbu = {};\n let boughtPackage = bs.boughtpackage;\n // existing pkg\n if (bs.sdt === \"package\") {\n const numofappts = bs.packageBookedSlots?.length\n ? bs.packageBookedSlots.length\n : 0;\n const unusedSessions = bs.maxSlotsToBeBooked;\n if (bs.clientpackage) {\n osd.rows.push({\n service: `Existing package of ${bs.clientpackage.initialQuantity} sessions`,\n qty: `${numofappts} of ${\n bs.clientpackage.initialQuantity - bs.clientpackage.usedQuantity\n } credits used`,\n price: `${getCurrencySymbol(bs) + Number.parseFloat(0).toFixed(2)}`,\n newService: `${bs.clientpackage.usedQuantity}/${bs.clientpackage.initialQuantity} credits remaining from a previously purchased package`,\n createdAt: bs.clientpackage.createdAt,\n });\n cbu = calculateChargeBreakup(0, company, true, bs);\n creditsRemaining =\n bs.clientpackage.initialQuantity -\n bs.clientpackage.usedQuantity -\n numofappts;\n }\n if (boughtPackage) {\n // calculate subtotal based on package type\n // discount for the taxableAmount is calculated in the calculateChargeBreakup function\n // dollar packages use the original price value (unchanged by regional pricing) in the boughtpackage object\n // percentage packages use the regionalServicePrice value\n const subtotal =\n boughtPackage.packagetype === \"DOLLAR\"\n ? boughtPackage.price\n : boughtPackage.quantity *\n bs.regionalServicePrice *\n (1 - boughtPackage.discount / 100);\n const description = getDescription(\n boughtPackage,\n bs.regionalServicePrice,\n bs.currency\n );\n\n osd.rows.push({\n service: description,\n qty: `${unusedSessions} / ${boughtPackage.quantity} sessions remaining`,\n price: `${\n getCurrencySymbol(bs) + Number.parseFloat(subtotal).toFixed(2)\n }`,\n });\n cbu = calculateChargeBreakup(subtotal, company, false, bs);\n }\n } else {\n // no pkg\n const service = bs.serviceType.name;\n const qty = 1; //single or forever\n let price = `${\n getCurrencySymbol(bs) +\n Number.parseFloat(bs.regionalServicePrice * qty).toFixed(2)\n }`;\n price = formatterCurr(bs.currency, bs.regionalServicePrice);\n osd.rows.push({ service, qty, price });\n // }\n cbu = calculateChargeBreakup(\n bs.regionalServicePrice * qty,\n company,\n false,\n bs\n );\n }\n\n osd[\"subtotal\"] = formatterCurr(bs.currency, cbu.subtotal);\n osd[\"servicefee\"] = formatterCurr(bs.currency, cbu.servicechargeamt);\n osd[\"taxrate\"] = cbu.taxrate;\n osd[\"taxamount\"] = formatterCurr(bs.currency, cbu.taxamt);\n osd[\"total\"] = formatterCurr(bs.currency, cbu.total);\n osd[\"taxable\"] = formatterCurr(bs.currency, cbu.taxableamt);\n if (cbu.discount) {\n osd[\"discount\"] = formatterCurr(bs.currency, cbu.discount);\n osd[\"promoData\"] = {\n name: bs.promoData?.name,\n promocode: bs.promoData?.promocode,\n };\n }\n bs.osd = osd;\n bs.cbu = cbu;\n\n return {\n od: osd,\n creditsRemaining,\n taxExemption: cbu.taxableamt !== cbu.subtotal,\n };\n}\n\nasync function findOrCreateService(bs) {\n if (bs.numServices === 1 && bs.serviceQty1 === 1) {\n return {\n ...bs.serviceType1,\n units: bs.serviceQty1,\n };\n }\n\n if (\n (bs.company.multipleServices && bs.numServices > 1) ||\n (bs.company.multipleQty && bs.serviceQty1 > 1)\n ) {\n const tempArr = [];\n if (bs.serviceType1)\n tempArr.push({ ...bs.serviceType1, units: bs.serviceQty1 });\n if (bs.serviceType2)\n tempArr.push({ ...bs.serviceType2, units: bs.serviceQty2 });\n if (bs.serviceType3)\n tempArr.push({ ...bs.serviceType3, units: bs.serviceQty3 });\n\n let includedServices = \"\";\n let bundledName;\n let categoryId;\n let categoryName;\n let bundledMinutes;\n if (tempArr.length > 1)\n tempArr.sort((s1, s2) => {\n const t1 = new Date(s1.createdAt).getTime();\n const t2 = new Date(s2.createdAt).getTime();\n if (t1 < t2) return -1;\n if (t1 > t2) return 1;\n return 0;\n });\n\n if (bs.numServices === 1)\n includedServices = `${tempArr[0].id}#${tempArr[0].units}`;\n if (bs.numServices === 2)\n includedServices = `${tempArr[0].id}#${tempArr[0].units}|${tempArr[1].id}#${tempArr[1].units}`;\n if (bs.numServices === 3)\n includedServices = `${tempArr[0].id}#${tempArr[0].units}|${tempArr[1].id}#${tempArr[1].units}|${tempArr[2].id}#${tempArr[2].units}`;\n\n categoryId = tempArr[0].category\n ? tempArr[0].category.id\n : tempArr[0].categoryId;\n categoryName = tempArr[0].category\n ? tempArr[0].category.name\n : tempArr[0].categoryName;\n if (tempArr.length === 1) {\n bundledName = `${tempArr[0].units} x ${tempArr[0].name}`;\n\n bundledMinutes = tempArr[0].minutes * tempArr[0].units;\n }\n if (tempArr.length === 2) {\n bundledName = `${tempArr[0].units} x ${tempArr[0].name} and ${tempArr[1].units} x ${tempArr[1].name}`;\n\n bundledMinutes =\n tempArr[0].minutes * tempArr[0].units +\n tempArr[1].minutes * tempArr[1].units;\n }\n if (tempArr.length === 3) {\n bundledName = `${tempArr[0].units} x ${tempArr[0].name}, ${tempArr[1].units} x ${tempArr[1].name} and ${tempArr[2].units} x ${tempArr[2].name}`;\n bundledMinutes =\n tempArr[0].minutes * tempArr[0].units +\n tempArr[1].minutes * tempArr[1].units +\n tempArr[2].minutes * tempArr[2].units;\n }\n\n //now we have bundled services - included services id\n //first check if the bundled service exists\n const result = await API.graphql(\n graphqlOperation(bundledServicesByCompany, {\n companyId: bs.company.id,\n includedServices: { eq: includedServices },\n })\n );\n if (\n result &&\n result.data.bundledServicesByCompany.items.length &&\n result.data.bundledServicesByCompany.items[0]\n ) {\n return {\n ...result.data.bundledServicesByCompany.items[0],\n units: 1,\n componentServices: tempArr,\n }; //units=1 for consistency only for bundledservice\n }\n if (result && !result.data.bundledServicesByCompany.items.length) {\n //if bundled service does not exist, create it\n let input = {\n name: bundledName,\n minutes: bundledMinutes,\n price: bs.regionalServicePrice,\n desc: \"Bundled service\",\n active: true,\n serviceTypeCompanyId: bs.company.id,\n companyId: bs.company.id,\n serviceTypeCategoryId: categoryId,\n categoryId: categoryId,\n categoryName: categoryName,\n deleted: false,\n includedServices: includedServices,\n isVisible: false,\n isBundledService: true,\n };\n\n const newBundledService = await API.graphql(\n graphqlOperation(createServiceType, { input })\n );\n if (newBundledService && newBundledService.data.createServiceType)\n return {\n ...newBundledService.data.createServiceType,\n units: 1,\n componentServices: tempArr,\n };\n else return null;\n }\n }\n return bs.serviceType1; //serviceType1 is the main service when multipleServices is off.\n}\n\nfunction heldSlotsTimeoutExpired(bookingState) {\n let heldSlotTime = bookingState.heldSlotsOnDateTime;\n //900000 = 15 mins\n if (Date.now() - heldSlotTime.getTime() > 900000) return true;\n return false;\n}\n\nasync function createNewUiSession(newSessionDetails) {\n return await createUISessionEntry(newSessionDetails);\n}\n\nasync function createUISessionEntry({ eventName, companyId, uiSessionId }) {\n try {\n let input = {\n sessionItem: eventName,\n companyId: companyId,\n };\n\n if (uiSessionId) input = { ...input, id: uiSessionId };\n\n const newUiSessionEntry = await API.graphql(\n graphqlOperation(createUISession, { input })\n );\n if (newUiSessionEntry && newUiSessionEntry.data.createUISession)\n return newUiSessionEntry.data.createUISession.id;\n else return null;\n } catch (e) {\n console.log(\"error while creating UI session\", eventName);\n }\n}\n\nasync function updateClientPackageIfValid(bookingState) {\n if (bookingState.packageBookedSlots?.length) {\n try {\n const num_of_credits_being_booked =\n bookingState.packageBookedSlots.length;\n //Do strong read query from here but for now read using appsync\n const result = await API.graphql(\n graphqlOperation(getClientPackage, {\n id: bookingState.clientpackage.id,\n })\n );\n if (result && result.data && result.data.getClientPackage) {\n if (\n result.data.getClientPackage.initialQuantity -\n result.data.getClientPackage.usedQuantity >=\n num_of_credits_being_booked\n ) {\n await updateUsedQuantityOfPackage({\n pkg: bookingState.clientpackage,\n increaseby: num_of_credits_being_booked,\n });\n return true;\n } else return false; //not enough credits\n } else {\n return false;\n }\n } catch (e) {\n return false;\n }\n } else return false;\n}\n\nfunction getResponseRate(provider) {\n if (provider.AcceptanceRatios) {\n try {\n if (typeof provider.AcceptanceRatios === \"string\")\n provider.AcceptanceRatios = JSON.parse(provider.AcceptanceRatios);\n } catch (e) {\n return 0;\n }\n if (\n provider.AcceptanceRatios.recent &&\n provider.AcceptanceRatios.recent.avg\n ) {\n return provider.AcceptanceRatios.recent.avg.pri_rep_acceptance_ratio ===\n -1\n ? 0\n : provider.AcceptanceRatios.recent.avg.pri_rep_acceptance_ratio;\n } else if (provider.AcceptanceRatios.avg) {\n return provider.AcceptanceRatios.avg.pri_rep_acceptance_ratio === -1\n ? 0\n : provider.AcceptanceRatios.avg.pri_rep_acceptance_ratio;\n } else return 0;\n } else return 0;\n}\n\nfunction getResponseTime(provider) {\n if (provider.AcceptanceRatios) {\n try {\n if (typeof provider.AcceptanceRatios === \"string\")\n provider.AcceptanceRatios = JSON.parse(provider.AcceptanceRatios);\n } catch (e) {\n return 0;\n }\n let avg = provider.AcceptanceRatios.recent\n ? provider.AcceptanceRatios.recent.avg\n : provider.AcceptanceRatios.avg;\n if (!avg) return \"\";\n let rep_mins = avg.pri_rep_mins;\n if (rep_mins !== -1) {\n if (rep_mins <= 30) return \"a few minutes\";\n if (rep_mins > 30 && rep_mins <= 60) return \"within an hour\";\n let hours = Math.floor(rep_mins / 60);\n if (hours < 3) return \"a couple of hours\";\n if (hours >= 3) return `${hours} hours`;\n if (hours > 24) {\n let days = Math.floor(hours / 24);\n return `${days} days`;\n }\n } else {\n return \"a few minutes\";\n }\n }\n return \"\";\n}\n\nasync function sendGuestCheckoutEmail({\n bookingUser, //bookingUser is the guest\n company,\n}) {\n try {\n const guestCheckoutEmailBody = await guestCheckoutEmail({\n client_firstname: bookingUser.firstname,\n client_lastname: bookingUser.lastname,\n client_email: bookingUser.emailaddress,\n companyId: company.id,\n company,\n });\n const body = `\n ${guestCheckoutEmailBody}\n `;\n await handleSendEmail(\n `Access your appointment and order details`,\n body,\n [bookingUser.emailaddress],\n [],\n [],\n company.replyemailaddress,\n company.name\n );\n return guestCheckoutEmailBody;\n } catch (err) {\n console.error(\"error while sending sendGuestCheckoutEmail\");\n console.error(err);\n }\n}\n\nexport {\n getPaidPackages,\n updateUsedQuantityOfPackage,\n updateClientPackageToPaid,\n updateOrderStatusToPaidByPkgCredit,\n updateOrderStatusToPaid,\n updateOrderStatusToClosed,\n cancelBooking,\n saveBillingProgress,\n calculateChargeBreakup,\n updateClientBalanceTo,\n holdSlotsForAppointments,\n getClientIfExists,\n createClientRecord,\n updateHeldSlotsToConfirmed,\n deleteHeldSlots,\n sendOrderReceipt,\n handleOrderAndBookingCreation,\n saveClientPackage,\n fetchPackages,\n fetchRegionalPricing,\n fetchCompanyLocation,\n getPrice,\n getDescription,\n getStripeAmount,\n saveBookingRequest,\n getCurrency,\n getCurrencySymbol,\n sendProviderBookingConfirmation,\n getOrderTrackingData,\n totalRegionalPrice,\n findOrCreateService,\n heldSlotsTimeoutExpired,\n createNewUiSession,\n updateClientPackageIfValid,\n getResponseRate,\n getResponseTime,\n getTaxJurisdiction,\n createOsd,\n updateOrderStatusToConfirmed,\n holdSlotForPackageAppointments,\n sendGuestCheckoutEmail,\n formatterCurr,\n noPackages,\n};\n","// this module contains tax related functions\n\n// function to determine tax rate\n// hardcoded for now\nconst getServiceTaxRate = (countryCode, provstateCode) => {\n const countryCodeUpper = countryCode.toUpperCase();\n const provstateCodeUpper = provstateCode.toUpperCase();\n\n // zero for Austrailia and New Zealand\n if (countryCodeUpper === \"AU\" || countryCodeUpper === \"NZ\") {\n return 0;\n }\n\n if (countryCodeUpper === \"GB\") {\n return 0;\n }\n //Don't know what it is\n if (countryCodeUpper === \"JM\") {\n return 0;\n }\n //Don't know what it is\n if (countryCodeUpper === \"BB\") {\n return 0;\n }\n\n // zero for USA\n if (countryCodeUpper === \"US\") {\n return 0;\n }\n\n // Canada, determine HST based on province\n if (countryCodeUpper === \"CA\") {\n if (provstateCodeUpper === \"AB\" || provstateCodeUpper === \"NU\") {\n return 5;\n }\n if (provstateCodeUpper === \"BC\" || provstateCodeUpper === \"MB\") {\n return 12;\n }\n if (\n provstateCodeUpper === \"NB\" ||\n provstateCodeUpper === \"NL\" ||\n provstateCodeUpper === \"NS\" ||\n provstateCodeUpper === \"NT\" ||\n provstateCodeUpper === \"PE\"\n ) {\n return 15;\n }\n if (provstateCodeUpper === \"ON\") {\n return 13;\n }\n if (provstateCodeUpper === \"QC\") {\n return 14.975;\n }\n if (provstateCodeUpper === \"SK\") {\n return 11;\n }\n }\n\n // if not found, return 0 by default\n return 0;\n};\n\nconst getCountryCode = (countryName) => {\n countryName = countryName.toUpperCase();\n if (countryName === \"UNITED STATES\") return \"US\";\n if (countryName === \"CANADA\") return \"CA\";\n\n if (countryName === \"JAMAICA\") return \"JM\";\n if (countryName === \"BARBADOS\") return \"BB\";\n\n if (countryName === \"AUSTRALIA\") return \"AU\";\n\n if (countryName === \"NEW ZEALAND\") return \"NZ\";\n\n return \"CA\";\n};\n\nexport { getCountryCode, getServiceTaxRate };\n","import mixpanel from \"mixpanel-browser\";\nimport { getUserFromCache } from \"../../user/UserCommon\";\n\nmixpanel.init(process.env.REACT_APP_MIXPANEL_TOKEN, {\n debug: true,\n ignore_dnt: true,\n}); // dev\n// mixpanel.track(\"Tracking after mixpanel init\", {\n// debug: true,\n// ignore_dnt: true,\n// });\n\nasync function trackUser() {\n const loggedInUser = await getUserFromCache();\n if (loggedInUser) {\n mixpanel.people.set({\n emailaddress: loggedInUser.emailaddress,\n name: loggedInUser.firstname + \" \" + loggedInUser.lastname,\n });\n if (loggedInUser.emailaddress) {\n mixpanel.identify(loggedInUser.emailaddress);\n } else {\n mixpanel.identify(\"guest@gomarketbox.com\"); // guest\n }\n } else {\n mixpanel.people.set({ emailaddress: \"\", name: \"Guest User\" });\n mixpanel.identify(\"guest@gomarketbox.com\"); // guest\n }\n}\n\n// tracks a user selection\nfunction trackServiceSelection(eventProps) {\n mixpanel.track(\"Service Selection\", eventProps);\n trackUser();\n}\n\n// tracks a provider searcg\nfunction trackProviderSearch(eventProps) {\n mixpanel.track(\"Provider Search\", eventProps);\n trackUser();\n}\n\n// tracks a provider selection\nfunction trackProviderSelection(eventProps) {\n mixpanel.track(\"Provider Selection\", eventProps);\n trackUser();\n}\n\n// tracks a package selection\nfunction trackPackageSelection(eventProps) {\n mixpanel.track(\"Package Selection\", eventProps);\n trackUser();\n}\n\n// tracks a timeslot selection\nfunction trackTimeslotSelection(eventProps) {\n mixpanel.track(\"Timeslot Selection\", eventProps);\n trackUser();\n}\n\n// tracks a booking confirmation\nfunction trackBookingConfirmation(eventProps) {\n mixpanel.track(\"Booking Confirmed\", eventProps);\n trackUser();\n}\n\n// tracks order summary viewed\nfunction trackOrderSummaryViewed(eventProps) {\n mixpanel.track(\"Order Summary Viewed\", eventProps);\n trackUser();\n}\n\n// tracks Login\nfunction trackLogin(eventProps) {\n mixpanel.track(\"Login on Public Site\", eventProps);\n trackUser();\n}\n\n// tracks registration\nfunction trackRegistration(eventProps) {\n mixpanel.track(\"Registration on Public Site\", eventProps);\n trackUser();\n}\n\n// tracks payment processed\nfunction trackPaymentProcessed(eventProps) {\n mixpanel.track(\"Payment Processed\", eventProps);\n trackUser();\n}\n\n// tracks order completed\nfunction trackOrderCompleted(eventProps) {\n mixpanel.track(\"Order Completed\", eventProps);\n trackUser();\n}\n\nexport {\n trackServiceSelection,\n trackProviderSearch,\n trackProviderSelection,\n trackPackageSelection,\n trackTimeslotSelection,\n trackBookingConfirmation,\n trackOrderSummaryViewed,\n trackLogin,\n trackRegistration,\n trackPaymentProcessed,\n trackOrderCompleted,\n};\n","import React, { useEffect, useState } from \"react\";\nimport AppBar from \"@mui/material/AppBar\";\nimport Toolbar from \"@mui/material/Toolbar\";\nimport Typography from \"@mui/material/Typography\";\n\nimport {\n Box,\n Button,\n Divider,\n Grid,\n List,\n ListItemText,\n useMediaQuery,\n} from \"@mui/material\";\nimport { Logger } from \"@aws-amplify/core\";\nimport KeyboardArrowDownIcon from \"@mui/icons-material/KeyboardArrowDown\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Popover from \"@mui/material/Popover\";\nimport { Link, useHistory } from \"react-router-dom\";\nimport Cache from \"@aws-amplify/cache\";\nimport API, { graphqlOperation } from \"@aws-amplify/api\";\nimport { getUser } from \"../graphql/queries\";\nimport MenuIcon from \"@mui/icons-material/Menu\";\nimport { USERROLE } from \"../user/UserCommon\";\nimport { GUEST_ONLY } from \"../user/checkoutOption\";\n\nexport default function MainNavBar(props) {\n const [userName, setUserName] = useState(\"\");\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [bookingFlowSettings, setBookingFlowSettings] = useState(null);\n let history = useHistory();\n\n const logger = new Logger(\"MainNavBar\");\n const phoneWidthPadding =\n window.innerHeight <= \"600\" || window.innerWidth <= \"600\"\n ? \"16px\" //\"40px 24px 50px 40px\"\n : \"40px 24px 50px 100px\";\n\n useEffect(() => {\n async function getUserName() {\n if (props && props.user) {\n const data = await API.graphql(\n graphqlOperation(getUser, {\n id: props.user.username,\n })\n );\n\n if (data && data.data && data.data.getUser) {\n if (data.data.getUser.firstname && data.data.getUser.lastname)\n setUserName(\n `${data.data.getUser.firstname} ${data.data.getUser.lastname}`\n );\n else setUserName(data.data.getUser.emailaddress);\n }\n }\n }\n if (props) {\n if (props.guestUser) setUserName(\"Guest\");\n else getUserName();\n }\n }, []);\n\n useEffect(() => {\n if (!bookingFlowSettings && props?.publicsitesettings?.StyleCustomization) {\n setBookingFlowSettings({\n ...props.publicsitesettings.StyleCustomization\n .bookingFlowCustomizations,\n showHeadings: true,\n });\n }\n }, [props, bookingFlowSettings]);\n function getCompanyName() {\n let companyname;\n if (props && props.company) {\n companyname = props.company.name;\n } else {\n logger.debug(\n \"WARNING: No company name passed in props. Using MarketBox.\"\n );\n companyname = \"MarketBox\";\n }\n return companyname;\n }\n\n function getCompanyLogoUrl() {\n let logoUrl;\n if (props && props.company) {\n logoUrl = props.company.logoUrl;\n } else {\n logger.debug(\"WARNING: No company logo passed in props.\");\n logoUrl = \"\";\n }\n return logoUrl;\n }\n\n function isAdmin() {\n const user = Cache.getItem(\"user\");\n if (user && user.role)\n return (\n USERROLE.MARKETBOX_ADMIN === user.role ||\n USERROLE.COMPANY_ADMIN === user.role ||\n USERROLE.COMPANY_ADMIN_PROVIDER === user.role\n );\n else return false;\n }\n const txtColor = localStorage.getItem(\"textColor\")\n ? localStorage.getItem(\"textColor\")\n : \"000000\";\n\n const logoClickHandler = () => {\n if (props.company.homepage) {\n window.open(props.company.homepage, \"_blank\").focus();\n } else {\n window.open(process.env.REACT_APP_AUTH_SITE_URL, \"_blank\").focus();\n }\n };\n // display company logo\n function DisplayCompanyLogo() {\n const logo = getCompanyLogoUrl();\n if (bookingFlowSettings?.showLogo) {\n return (\n <div>\n {logo && (\n <img\n height={avatarSize}\n src={logo}\n alt={getCompanyName()}\n onClick={logoClickHandler}\n />\n )}\n </div>\n );\n }\n }\n\n // display company name if configured\n function DisplayCompanyName() {\n if (props && props.company && !props.company.displayOnlyLogo) {\n return (\n <Typography\n sx={{\n color: txtColor,\n marginLeft: bookingFlowSettings?.showLogo ? \"12px\" : \"0\",\n fontWeight: 400,\n fontSize: \"24px\",\n lineHeight: \"24px\",\n zIndex: 10,\n }}\n >\n {getCompanyName()}\n </Typography>\n );\n } else {\n return \"\";\n }\n }\n\n async function handleClick() {\n setAnchorEl(null);\n if (props && props.guestUser) {\n //Login\n history.push(\"/login\", { fromPath: props.currentPath });\n } else {\n //Logout\n try {\n // await Auth.signOut();\n Cache.removeItem(\"user\");\n props.signOutOp();\n } catch (err) {\n logger.error(\"Error signing out user\", err);\n }\n }\n }\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n const open = Boolean(anchorEl);\n const id = open ? \"logout-menu\" : undefined;\n\n function dropDownItemsHandler(str) {\n if (str.toLowerCase() === \"dashboard\") {\n window.open(\"https://pro.gomarketbox.com\", \"_blank\");\n }\n\n if (str.toLowerCase() === \"help\") {\n window.open(\"https://www.gomarketbox.com/help\", \"_blank\");\n }\n\n if (str.toLowerCase() === \"contact\") {\n window.open(\"https://www.gomarketbox.com/contact-us\", \"_blank\");\n }\n }\n\n //const textColor = props.publicsitesettings.textColor;\n const heading1Text = localStorage.getItem(\"heading1Text\");\n const heading2Text = localStorage.getItem(\"heading2Text\");\n const deviceWidth = useMediaQuery(\"(min-width:768px)\") ? \"h1\" : \"h2\";\n const avatarSize = useMediaQuery(\"(min-width:600px)\") ? 80 : 60;\n const phoneWidthSmaller = useMediaQuery(\"(min-width:600px)\");\n\n function DisplayLoginInfo() {\n if (\n GUEST_ONLY === bookingFlowSettings?.checkoutOption &&\n !props.guestCheckout\n )\n return <div style={{ marginLeft: \"auto\" }}></div>;\n if (!props.user) return <div style={{ marginLeft: \"auto\" }}></div>;\n return (\n <div style={{ marginLeft: \"auto\" }}>\n {props && props.guestCheckout ? (\n <Button variant=\"contained\" color=\"secondary\">\n Guest\n </Button>\n ) : props.guestUser ? (\n <Button\n id=\"login-button\"\n variant=\"contained\"\n color=\"secondary\"\n onClick={handleClick}\n >\n Log In\n </Button>\n ) : (\n <>\n <Button\n id=\"login-button\"\n sx={{\n backgroundColor: \"primary.main\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"primary.main\",\n \"&:hover\": {\n backgroundColor: \"primary.main\",\n border: \"1px white solid\",\n boxShadow: \"none\",\n },\n }}\n aria-describedby={id}\n variant=\"contained\"\n color=\"secondary\"\n onClick={(e) => setAnchorEl(e.currentTarget)}\n endIcon={<KeyboardArrowDownIcon />}\n >\n <Typography\n variant=\"body1\"\n sx={{ textTransform: \"capitalize\", fontWeight: 700 }}\n >\n Hello,{\" \"}\n <span\n style={{\n fontWeight: 700,\n fontFamily: \"Roboto\",\n textTransform: \"capitalize\",\n }}\n >\n {userName}\n </span>\n </Typography>\n </Button>\n <Popover\n PaperProps={{\n style: { width: \"257px\", padding: \"1rem\" },\n }}\n id={id}\n open={open}\n anchorEl={anchorEl}\n onClose={handleClose}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"right\",\n }}\n transformOrigin={{\n vertical: \"top\",\n horizontal: \"right\",\n }}\n >\n <List>\n <ListItemText\n style={{\n marginBottom: \"1rem\",\n cursor: \"pointer\",\n }}\n onClick={() => dropDownItemsHandler(\"dashboard\")}\n >\n Dashboard\n </ListItemText>\n {isAdmin() && (\n <ListItemText\n style={{ marginBottom: \"1rem\", cursor: \"pointer\" }}\n onClick={() => dropDownItemsHandler(\"help\")}\n >\n Help center\n </ListItemText>\n )}\n\n <Divider style={{ marginBottom: \"1rem\", width: \"100%\" }} />\n\n <ListItemText\n id=\"logout-button\"\n component={Link}\n style={{ marginBottom: \"1rem\", cursor: \"pointer\" }}\n onClick={handleClick}\n >\n Logout\n </ListItemText>\n\n <ListItemText\n style={{\n marginBottom: \"1rem\",\n color: \"rgba(0,0,0,0.5)\",\n }}\n >\n <span style={{ fontSize: \"12px\", fontFamily: \"Roboto\" }}>\n MarketBox v2.0.0.\n </span>\n </ListItemText>\n </List>\n </Popover>\n </>\n )}\n </div>\n );\n }\n\n function smallerDisplayLoginInfo() {\n if (\n GUEST_ONLY === bookingFlowSettings?.checkoutOption &&\n !props.guestCheckout\n )\n return <div style={{ marginLeft: \"auto\" }}></div>;\n if (!props.user) return <div style={{ marginLeft: \"auto\" }}></div>;\n\n return (\n <div style={{ marginLeft: \"auto\" }}>\n {props && props.guestCheckout ? (\n <>\n {\" \"}\n <IconButton\n size=\"medium\"\n style={{\n background: \"rgba(0,0,0,0.5)\",\n width: \"40px\",\n height: \"40px\",\n borderRadius: \"8px\",\n }}\n variant=\"contained\"\n color=\"secondary\"\n onClick={(e) => setAnchorEl(e.currentTarget)}\n >\n <MenuIcon style={{ padding: 0, color: \"#fff\" }} />\n </IconButton>\n <Popover\n PaperProps={{\n style: { width: \"250px\", padding: \"0.75rem\" },\n }}\n id={id}\n open={open}\n anchorEl={anchorEl}\n onClose={handleClose}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"right\",\n }}\n transformOrigin={{\n vertical: \"top\",\n horizontal: \"right\",\n }}\n >\n <List>\n <ListItemText\n style={{\n marginBottom: \"0.5rem\",\n cursor: \"pointer\",\n }}\n >\n Guest checkout\n </ListItemText>\n </List>\n </Popover>\n </>\n ) : props.guestUser ? (\n <>\n <IconButton\n size=\"medium\"\n style={{\n background: \"rgba(0,0,0,0.5)\",\n width: \"40px\",\n height: \"40px\",\n borderRadius: \"8px\",\n }}\n variant=\"contained\"\n color=\"secondary\"\n onClick={(e) => setAnchorEl(e.currentTarget)}\n >\n <MenuIcon style={{ padding: 0, color: \"#fff\" }} />\n </IconButton>\n <Popover\n PaperProps={{\n style: { width: \"250px\", padding: \"0.75rem\" },\n }}\n id={id}\n open={open}\n anchorEl={anchorEl}\n onClose={handleClose}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"right\",\n }}\n transformOrigin={{\n vertical: \"top\",\n horizontal: \"right\",\n }}\n >\n <List>\n <ListItemText\n style={{\n marginBottom: \"0.5rem\",\n cursor: \"pointer\",\n }}\n onClick={handleClick}\n >\n Login\n </ListItemText>\n </List>\n </Popover>\n </>\n ) : (\n <>\n <IconButton\n size=\"medium\"\n style={{ width: \"40px\", height: \"40px\", borderRadius: \"8px\" }}\n aria-describedby={id}\n onClick={(e) => setAnchorEl(e.currentTarget)}\n >\n <MenuIcon style={{ padding: 0, color: txtColor }} />\n </IconButton>\n <Popover\n PaperProps={{\n style: { width: \"250px\", padding: \"0.75rem\" },\n }}\n id={id}\n open={open}\n anchorEl={anchorEl}\n onClose={handleClose}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"right\",\n }}\n transformOrigin={{\n vertical: \"top\",\n horizontal: \"right\",\n }}\n >\n <List>\n <ListItemText>\n <Typography\n style={{\n marginBottom: \"0.5rem\",\n fontWeight: 700,\n }}\n variant=\"body1\"\n >\n Hello,{\" \"}\n <span style={{ fontWeight: 700, fontFamily: \"Roboto\" }}>\n {userName}\n </span>\n </Typography>\n </ListItemText>\n <Divider style={{ marginBottom: \"1rem\", width: \"100%\" }} />\n <ListItemText\n style={{\n marginBottom: \"1rem\",\n cursor: \"pointer\",\n }}\n onClick={() => dropDownItemsHandler(\"dashboard\")}\n >\n Dashboard\n </ListItemText>\n {isAdmin() && (\n <ListItemText\n style={{ marginBottom: \"1rem\", cursor: \"pointer\" }}\n onClick={() => dropDownItemsHandler(\"help\")}\n >\n Help center\n </ListItemText>\n )}\n <Divider style={{ marginBottom: \"1rem\", width: \"100%\" }} />\n\n <ListItemText\n component={Link}\n style={{ marginBottom: \"1rem\", cursor: \"pointer\" }}\n onClick={handleClick}\n >\n Logout\n </ListItemText>\n\n <ListItemText\n style={{\n marginBottom: \"1rem\",\n color: \"rgba(0,0,0,0.5)\",\n }}\n >\n <span style={{ fontSize: \"12px\", fontFamily: \"Roboto\" }}>\n MarketBox v2.0.0.\n </span>\n </ListItemText>\n </List>\n </Popover>\n </>\n )}\n </div>\n );\n }\n\n if (\n !props.banner ||\n !(bookingFlowSettings && bookingFlowSettings?.showHeader)\n ) {\n return (\n <AppBar\n style={{\n height: \"88px\",\n padding: !phoneWidthSmaller ? \"12px 10px\" : \"0px 20px\",\n display: \"flex\",\n justifyContent: !phoneWidthSmaller ? \"center\" : \"space-evenly\",\n }}\n elevation={0}\n >\n <Toolbar>\n {DisplayCompanyLogo()}\n {DisplayCompanyName()}\n {!phoneWidthSmaller ? smallerDisplayLoginInfo() : DisplayLoginInfo()}\n </Toolbar>\n </AppBar>\n );\n } else {\n return (\n <Box\n sx={{\n background: props?.publicsitesettings?.StyleCustomization\n ?.bookingFlowCustomizations\n ? props?.publicsitesettings?.StyleCustomization\n ?.bookingFlowCustomizations?.backgroundColor\n : \"#ffffff\",\n overflow: \"auto\",\n color: localStorage.getItem(\"textColor\")\n ? localStorage.getItem(\"textColor\")\n : props.textColor,\n minHeight: \"350px\",\n height: \"370px\",\n overflowY: \"hidden\",\n top: 0,\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-start\",\n justifyContent: \"flex-start\",\n padding: phoneWidthPadding,\n\n \"&::before\": {\n content: '\"\"',\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n opacity: bookingFlowSettings ? bookingFlowSettings.opacity : 0.2,\n //zindex: -1,\n backgroundImage: `url(\"${\n localStorage.getItem(\"backgroundImgUrl\")\n ? localStorage.getItem(\"backgroundImgUrl\")\n : props.publicsitesettings.backgroundImageUrl\n }\")`,\n backgroundSize: \"cover\",\n backgroundPosition: \"center\",\n backgroundRepeat: \"no-repeat\",\n color: localStorage.getItem(\"textColor\")\n ? localStorage.getItem(\"textColor\")\n : props.textColor,\n },\n }}\n >\n {DisplayLoginInfo()}\n\n <Grid\n container\n sx={{ alignItems: \"center\" }}\n display={!bookingFlowSettings?.showLogo ? \"none\" : \"flex\"}\n >\n <img\n style={{\n zIndex: 10,\n cursor: \"pointer\",\n borderRadius: bookingFlowSettings.circularLogo && \"50%\",\n objectFit: bookingFlowSettings.circularLogo && \"cover\",\n height: bookingFlowSettings.circularLogo ? \"80px\" : avatarSize,\n }}\n alt={getCompanyName()}\n src={getCompanyLogoUrl()}\n onClick={logoClickHandler}\n />\n {DisplayCompanyName()}\n </Grid>\n\n {bookingFlowSettings &&\n bookingFlowSettings.showHeadings &&\n (bookingFlowSettings.hasOwnProperty(\"showHeadingOne\")\n ? bookingFlowSettings.showHeadingOne\n : true) && (\n <Typography\n style={{\n marginTop: \"1.5rem\",\n marginBottom: \"0.5rem\",\n color: props.publicsitesettings.textColor\n ? props.publicsitesettings.textColor\n : \"#d4d4d4\",\n cursor: \"pointer\",\n zIndex: \"10\",\n fontFamily: `${\n bookingFlowSettings\n ? bookingFlowSettings.fontTypeForAllHeading\n : \"Raleway\"\n }, Roboto`,\n fontSize: bookingFlowSettings\n ? !phoneWidthSmaller\n ? \"2.15rem\"\n : bookingFlowSettings.fontSizeHeader1\n : phoneWidthSmaller\n ? \"2.15rem\"\n : \"3.75rem\",\n }}\n variant={deviceWidth}\n onClick={logoClickHandler}\n >\n {/* {props.company.name} */}\n {bookingFlowSettings\n ? bookingFlowSettings.mainHeading\n : \"Please set Heading 1 in company public settings\"}\n </Typography>\n )}\n\n {bookingFlowSettings &&\n bookingFlowSettings.showHeadings &&\n (bookingFlowSettings.hasOwnProperty(\"showHeadingTwo\")\n ? bookingFlowSettings.showHeadingTwo\n : true) && (\n <Typography\n style={{\n color: props.publicsitesettings.textColor\n ? props.publicsitesettings.textColor\n : \"#d4d4d4\",\n marginBottom: \"0.5rem\",\n\n fontFamily: `${\n bookingFlowSettings\n ? bookingFlowSettings.fontTypeForAllHeading\n : \"Raleway\"\n }, Roboto`,\n fontSize: bookingFlowSettings\n ? !phoneWidthSmaller\n ? \"1rem\"\n : bookingFlowSettings.fontSizeHeader2\n : !phoneWidthSmaller\n ? \"1rem\"\n : \"1.5rem\",\n zIndex: 11,\n }}\n >\n {heading1Text\n ? heading1Text\n : \"Please set Heading 2 in company public settings\"}\n </Typography>\n )}\n {bookingFlowSettings &&\n bookingFlowSettings.showHeadings &&\n (bookingFlowSettings.hasOwnProperty(\"showHeadingThree\")\n ? bookingFlowSettings.showHeadingThree\n : true) && (\n <Typography\n sx={{\n color: props.publicsitesettings.textColor\n ? props.publicsitesettings.textColor\n : \"#d4d4d4\",\n fontFamily: `${\n bookingFlowSettings\n ? bookingFlowSettings.fontTypeForAllHeading\n : \"Raleway\"\n }, Roboto`,\n fontSize: bookingFlowSettings\n ? !phoneWidthSmaller\n ? \"0.9rem\"\n : bookingFlowSettings.fontSizeHeader3\n : !phoneWidthSmaller\n ? \"0.9rem\"\n : \"1rem\",\n zIndex: 12,\n }}\n >\n {heading2Text\n ? heading2Text\n : \"Please set Heading 3 in company public settings\"}\n </Typography>\n )}\n </Box>\n );\n }\n}\n","export const dayAbbreviations = [\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\",\n \"Sun\",\n];\n\nexport const fullDayNameMap = {\n Mon: \"Monday\",\n Tue: \"Tuesday\",\n Wed: \"Wednesday\",\n Thu: \"Thursday\",\n Fri: \"Friday\",\n Sat: \"Saturday\",\n Sun: \"Sunday\",\n};\n\nexport const weekDayMap = {\n Mon: 1,\n Tue: 2,\n Wed: 3,\n Thu: 4,\n Fri: 5,\n Sat: 6,\n Sun: 0, // Sunday is represented by 0 in Js\n};\n\nexport const VARIABLE_TAX_RATE = \"variable\";\n\nexport const MAX_FIRST_NAME_LENGTH = 15;\nexport const LOCATION_PREFIXES = [\"PL\", \"CL\", \"GL\"];\nexport const LOCATION_PREFIXES_REGEX = new RegExp(\n LOCATION_PREFIXES.join(\"-|^\")\n);\nexport const AGNOSTIC_PROVIDER_NAME_TRUNCATE_LENGTH = 9;\nexport const SERVICE_BEHAVIOR_INTERNAL = \"INTERNAL\";\nexport const SERVICE_BEHAVIOR_EXTERNAL = \"EXTERNAL\";\n\nexport const SENTRY_POPUP_ENV = \"development\";\nexport const TIME_OF_DAY = [\n \"12:00 AM – 2:00 AM\",\n \"2:00 AM – 4:00 AM\",\n \"4:00 AM – 6:00 AM\",\n \"6:00 AM – 8:00 AM\",\n \"8:00 AM – 10:00 AM\",\n \"10:00 AM – 12:00 PM\",\n \"12:00 PM – 2:00 PM\",\n \"2:00 PM – 4:00 PM\",\n \"4:00 PM – 6:00 PM\",\n \"6:00 PM – 8:00 PM\",\n \"8:00 PM – 10:00 PM\",\n \"10:00 PM – 12:00 AM\",\n];\nexport const DEFAULT_TIME_OF_DAY_INDICES = [4, 5, 6, 7, 8];\n\nexport const COLOR_LIGHT_GREY = \"#A7A7A7\";\n","export const ACCOUNT_OR_GUEST = \"ACCOUNT_OR_GUEST\";\nexport const MUST_CREATE_ACCOUNT = \"MUST_CREATE_ACCOUNT\";\nexport const GUEST_ONLY = \"GUEST_ONLY\";\n\nexport function getCheckoutOption(publicsitesettings) {\n if (publicsitesettings) {\n const co =\n publicsitesettings?.StyleCustomization?.bookingFlowCustomizations\n ?.checkoutOption;\n if (co && co !== null) return co;\n }\n\n return ACCOUNT_OR_GUEST; //default\n}\n\nexport function isGuestCheckoutAllowed(publicsitesettings) {\n console.log(\n \"isGuestCheckoutAlloweds\",\n publicsitesettings?.StyleCustomization?.bookingFlowCustomizations\n ?.checkoutOption\n );\n if (publicsitesettings) {\n const co =\n publicsitesettings?.StyleCustomization?.bookingFlowCustomizations\n ?.checkoutOption;\n if (!co) return true; // when the checkout setting is not defined, allow guest checkout like ACCOUNT_OR_GUEST\n if (ACCOUNT_OR_GUEST === co || GUEST_ONLY === co) return true;\n }\n return false;\n}\n\nexport function isGuestOnlyCheckout(publicsitesettings) {\n if (publicsitesettings) {\n const co =\n publicsitesettings?.StyleCustomization?.bookingFlowCustomizations\n ?.checkoutOption;\n if (GUEST_ONLY === co) return true;\n }\n return false;\n}\n","import format from \"date-fns/format\";\nimport moment from \"moment\";\nimport { LOCATION_PREFIXES_REGEX } from \"./Constants\";\nimport { USERROLE } from \"../user/UserCommon\";\nimport Cache from \"@aws-amplify/cache\";\nexport const convertDollarsToCents = (price) => (price * 100).toFixed(0);\n\nexport const convertCentsToDollars = (price) => (price / 100).toFixed(2);\n\nexport const formatProductDate = (date) => format(date, \"MMM Do, YYYY\");\n\nexport const formatOrderDate = (date) =>\n format(date, \"ddd h:mm A, MMM Do, YYYY\");\n\nexport const _findPromotions = (data, tab) => {\n let rows = data;\n if (data && data.length) {\n if (tab === 0) {\n rows = data.filter((item) => {\n return (\n _getStartOf().diff(_getStartOf(item.startdate), \"days\") >= 0 &&\n _getStartOf().diff(_getStartOf(item.enddate), \"days\") < 0\n );\n });\n } else if (tab === 1) {\n rows = data.filter((item) => {\n return _getStartOf(item.startdate).diff(_getStartOf(), \"days\") > 0;\n });\n } else {\n rows = data.filter((item) => {\n return _getStartOf(item.enddate).diff(_getStartOf(), \"days\") <= 0;\n });\n }\n }\n return rows;\n};\n\nexport const _findBooking = (data, tab) => {\n let rows = data;\n if (data && data.length) {\n if (tab === 0) {\n rows = data.filter((item) => {\n return _getStartOf(item.startdate).diff(_getStartOf(), \"days\") > 0;\n });\n } else {\n rows = data.filter((item) => {\n return _getStartOf(item.enddate).diff(_getStartOf(), \"days\") <= 0;\n });\n }\n }\n return rows;\n};\n\nexport const _formatDate = (\n date,\n format = \"MMM DD, YYYY\",\n showTime = false\n) => {\n let formattedDate = moment(date).format(format);\n return formattedDate;\n};\n\nexport const _getStartOf = (date = moment()) => moment(date).startOf(\"day\");\n\nexport const getCurrencySymbolByCompany = (company) => {\n const companyCurrency = company.currency;\n switch (companyCurrency) {\n case \"GBP\":\n return \"£\";\n case \"CAD\":\n return \"$\";\n case \"USD\":\n return \"$\";\n case \"AUD\":\n return \"$\";\n default:\n return \"$\";\n }\n};\n\nexport const stripLocationPrefix = (locationId = \"\") =>\n locationId?.replace(LOCATION_PREFIXES_REGEX, \"\");\n\nexport const getLocationIdParts = (locationId = \"\") => [\n locationId.substring(2),\n stripLocationPrefix(locationId),\n];\nexport const mod = (n, m) => ((n % m) + m) % m;\nexport const isNumeric = (n) => !isNaN(parseFloat(n)) && isFinite(n);\nexport function isAdmin() {\n const user = Cache.getItem(\"user\");\n if (user && user.role)\n return (\n USERROLE.MARKETBOX_ADMIN === user.role ||\n USERROLE.COMPANY_ADMIN === user.role ||\n USERROLE.COMPANY_ADMIN_PROVIDER === user.role\n );\n else return false;\n}\nexport const jsonParse = (\n jsonString,\n defaultValue = undefined,\n loggingMessage = \"Error parsing json\"\n) => {\n try {\n return JSON.parse(jsonString);\n } catch {\n console.log(loggingMessage);\n return defaultValue;\n }\n};\n"],"sourceRoot":""}