import { GetStaffMemberSettingsRequest as GetStaffMemberSettingsRequest$1, GetStaffMemberSettingsResponse as GetStaffMemberSettingsResponse$1, UpdateStaffMemberSettingsRequest as UpdateStaffMemberSettingsRequest$1, UpdateStaffMemberSettingsResponse as UpdateStaffMemberSettingsResponse$1 } from './index.typings.js'; import '@wix/sdk-types'; /** * Settings that control the visibility of staff members' contact information. * * These settings determine whether the `email` and `phone` fields are populated in [staff member objects](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/staff-member-object). * When enabled, these fields contain staff contact information. * When disabled, these fields are empty if the calling [identity](https://dev.wix.com/docs/build-apps/develop-your-app/access/about-identities) doesn't have sufficient permissions. * Identities with appropriate permissions may still access the information. * * This is a singleton resource. Each site has exactly one settings object, * automatically created when Wix Bookings is installed. */ interface StaffMemberSettings { /** * ID of the staff member settings object. There is one settings object per site. * @format GUID * @readonly */ id?: string | null; /** * Revision number, which increments by 1 each time the `staffMemberSettings` object is updated. * To prevent conflicting changes, the current revision must be specified when updating the `staffMemberSettings` object. * @readonly */ revision?: string | null; /** * Date and time the `staffMemberSettings` object was created in `YYYY-MM-DDThh:mm:ss.sssZ` format. * @readonly */ createdDate?: Date | null; /** * Date and time the `staffMemberSettings` object was last updated in `YYYY-MM-DDThh:mm:ss.sssZ` format. * @readonly */ updatedDate?: Date | null; /** Privacy settings for controlling staff member contact information visibility in API responses and on the live site. */ contactInformation?: ContactInformation; /** * Privacy settings for controlling staff member properties visibility, such as gender, in API responses and on the live site. * @internal */ staffProperties?: StaffProperties; /** * Custom field data for the staff member settings. * Extended fields must be configured in the app dashboard before they can be accessed with API calls. * * Learn more about extended fields at https://dev.wix.com/docs/rest/articles/getting-started/extended-fields. */ extendedFields?: ExtendedFields; } /** * Privacy settings for staff member contact information. * * These settings control whether staff members' email addresses and phone numbers * are populated in Staff Member objects returned by the Staff Members API. */ interface ContactInformation { /** * Whether staff members' email addresses and phone numbers are accessible in API responses and on the live site. * * - `true`: The `email` and `phone` fields in [staff member objects](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/staff-member-object) contain actual contact information, and this information is displayed on the live site. * - `false`: These fields are empty in API responses if the calling [identity](https://dev.wix.com/docs/build-apps/develop-your-app/access/about-identities) doesn't have sufficient permissions, and contact information isn't displayed on the live site. * * Identities with appropriate permissions can still access this information in API responses regardless of this setting. * * Default: `false` */ publiclyAccessible?: boolean | null; } /** * Privacy settings for staff member properties. * * These settings control whether staff members' properties, such as gender, * are populated in [staff member objects](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/staff-member-object). * Each property has its own visibility setting. */ interface StaffProperties { /** * Whether staff members' gender is accessible in API responses and on the live site. * * - `true`: The `gender` field in [staff member objects](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/staff-member-object) contains the staff member's gender, and this information is displayed on the live site. * - `false`: The field returns `UNKNOWN_GENDER` in API responses if the calling [identity](https://dev.wix.com/docs/build-apps/develop-your-app/access/about-identities) doesn't have sufficient permissions, and gender isn't displayed on the live site. * * Identities with appropriate permissions can still access this information in API responses regardless of this setting. * * Default: `false` */ genderPubliclyAccessible?: boolean | null; } interface ExtendedFields { /** * Extended field data. Each key corresponds to the namespace of the app that created the extended fields. * The value of each key is structured according to the schema defined when the extended fields were configured. * * You can only access fields for which you have the appropriate permissions. * * Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields). */ namespaces?: Record>; } interface GetStaffMemberSettingsRequest { } interface GetStaffMemberSettingsResponse { /** Retrieved staff member settings. */ staffMemberSettings?: StaffMemberSettings; } interface UpdateStaffMemberSettingsRequest { /** Staff member settings to update, may be partial. */ staffMemberSettings: StaffMemberSettings; /** * Set of fields to update. * * Fields not included in `fieldMask.paths` are ignored. * @internal */ fieldMask?: string[]; } interface UpdateStaffMemberSettingsResponse { /** Updated staff member settings. */ staffMemberSettings?: StaffMemberSettings; } interface DomainEvent extends DomainEventBodyOneOf { createdEvent?: EntityCreatedEvent; updatedEvent?: EntityUpdatedEvent; deletedEvent?: EntityDeletedEvent; actionEvent?: ActionEvent; /** Event ID. With this ID you can easily spot duplicated events and ignore them. */ id?: string; /** * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities. * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`. */ entityFqdn?: string; /** * Event action name, placed at the top level to make it easier for users to dispatch messages. * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`. */ slug?: string; /** ID of the entity associated with the event. */ entityId?: string; /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */ eventTime?: Date | null; /** * Whether the event was triggered as a result of a privacy regulation application * (for example, GDPR). */ triggeredByAnonymizeRequest?: boolean | null; /** If present, indicates the action that triggered the event. */ originatedFrom?: string | null; /** * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at `16:00` and then again at `16:01`, the second update will always have a higher sequence number. * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it. */ entityEventSequence?: string | null; } /** @oneof */ interface DomainEventBodyOneOf { createdEvent?: EntityCreatedEvent; updatedEvent?: EntityUpdatedEvent; deletedEvent?: EntityDeletedEvent; actionEvent?: ActionEvent; } interface EntityCreatedEvent { entityAsJson?: string; /** * Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity * @internal */ triggeredByUndelete?: boolean | null; /** Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity */ restoreInfo?: RestoreInfo; /** * Optional domain-specific metadata defined by the API owner, encoded as JSON. * @internal */ additionalMetadataAsJson?: string | null; } interface RestoreInfo { deletedDate?: Date | null; } interface EntityUpdatedEvent { /** * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff. * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects. * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it. */ currentEntityAsJson?: string; /** * This field is currently part of the of the EntityUpdatedEvent msg, but scala/node libraries which implements the domain events standard * wont populate it / have any reference to it in the API. * The main reason for it is that fetching the old entity from the DB will have a performance hit on an update operation so unless truly needed, * the developer should send only the new (current) entity. * An additional reason is not wanting to send this additional entity over the wire (kafka) since in some cases it can be really big * Developers that must reflect the old entity will have to implement their own domain event sender mechanism which will follow the DomainEvent proto message. * @internal * @deprecated */ previousEntityAsJson?: string | null; /** * Map of fully qualified field paths to their previous values for fields that changed. * For more details please see [AIP](https://dev.wix.com/docs/rnd-general/articles/p13n-guidelines-aips/guidance-aips/design-patterns/7016-events#modified-fields-format) * @internal */ modifiedFields?: Record; /** * Optional domain-specific metadata defined by the API owner, encoded as JSON. * @internal */ additionalMetadataAsJson?: string | null; } interface EntityDeletedEvent { /** * Indicates if the entity is sent to trash-bin. only available when trash-bin is enabled * @internal */ movedToTrash?: boolean | null; /** Entity that was deleted. */ deletedEntityAsJson?: string | null; /** * Optional domain-specific metadata defined by the API owner, encoded as JSON. * @internal */ additionalMetadataAsJson?: string | null; } interface ActionEvent { bodyAsJson?: string; } interface MessageEnvelope { /** * App instance ID. * @format GUID */ instanceId?: string | null; /** * Event type. * @maxLength 150 */ eventType?: string; /** The identification type and identity data. */ identity?: IdentificationData; /** Stringify payload. */ data?: string; /** Details related to the account */ accountInfo?: AccountInfo; } interface IdentificationData extends IdentificationDataIdOneOf { /** * ID of a site visitor that has not logged in to the site. * @format GUID */ anonymousVisitorId?: string; /** * ID of a site visitor that has logged in to the site. * @format GUID */ memberId?: string; /** * ID of a Wix user (site owner, contributor, etc.). * @format GUID */ wixUserId?: string; /** * ID of an app. * @format GUID */ appId?: string; /** @readonly */ identityType?: WebhookIdentityTypeWithLiterals; } /** @oneof */ interface IdentificationDataIdOneOf { /** * ID of a site visitor that has not logged in to the site. * @format GUID */ anonymousVisitorId?: string; /** * ID of a site visitor that has logged in to the site. * @format GUID */ memberId?: string; /** * ID of a Wix user (site owner, contributor, etc.). * @format GUID */ wixUserId?: string; /** * ID of an app. * @format GUID */ appId?: string; } declare enum WebhookIdentityType { UNKNOWN = "UNKNOWN", ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR", MEMBER = "MEMBER", WIX_USER = "WIX_USER", APP = "APP" } /** @enumType */ type WebhookIdentityTypeWithLiterals = WebhookIdentityType | 'UNKNOWN' | 'ANONYMOUS_VISITOR' | 'MEMBER' | 'WIX_USER' | 'APP'; interface AccountInfo { /** * ID of the Wix account associated with the event. * @format GUID */ accountId?: string | null; /** * ID of the parent Wix account. Only included when accountId belongs to a child account. * @format GUID */ parentAccountId?: string | null; /** * ID of the Wix site associated with the event. Only included when the event is tied to a specific site. * @format GUID */ siteId?: string | null; } type __PublicMethodMetaInfo = { getUrl: (context: any) => string; httpMethod: K; path: string; pathParams: M; __requestType: T; __originalRequestType: S; __responseType: Q; __originalResponseType: R; }; declare function getStaffMemberSettings(): __PublicMethodMetaInfo<'GET', {}, GetStaffMemberSettingsRequest$1, GetStaffMemberSettingsRequest, GetStaffMemberSettingsResponse$1, GetStaffMemberSettingsResponse>; declare function updateStaffMemberSettings(): __PublicMethodMetaInfo<'PATCH', {}, UpdateStaffMemberSettingsRequest$1, UpdateStaffMemberSettingsRequest, UpdateStaffMemberSettingsResponse$1, UpdateStaffMemberSettingsResponse>; export { type AccountInfo as AccountInfoOriginal, type ActionEvent as ActionEventOriginal, type ContactInformation as ContactInformationOriginal, type DomainEventBodyOneOf as DomainEventBodyOneOfOriginal, type DomainEvent as DomainEventOriginal, type EntityCreatedEvent as EntityCreatedEventOriginal, type EntityDeletedEvent as EntityDeletedEventOriginal, type EntityUpdatedEvent as EntityUpdatedEventOriginal, type ExtendedFields as ExtendedFieldsOriginal, type GetStaffMemberSettingsRequest as GetStaffMemberSettingsRequestOriginal, type GetStaffMemberSettingsResponse as GetStaffMemberSettingsResponseOriginal, type IdentificationDataIdOneOf as IdentificationDataIdOneOfOriginal, type IdentificationData as IdentificationDataOriginal, type MessageEnvelope as MessageEnvelopeOriginal, type RestoreInfo as RestoreInfoOriginal, type StaffMemberSettings as StaffMemberSettingsOriginal, type StaffProperties as StaffPropertiesOriginal, type UpdateStaffMemberSettingsRequest as UpdateStaffMemberSettingsRequestOriginal, type UpdateStaffMemberSettingsResponse as UpdateStaffMemberSettingsResponseOriginal, WebhookIdentityType as WebhookIdentityTypeOriginal, type WebhookIdentityTypeWithLiterals as WebhookIdentityTypeWithLiteralsOriginal, type __PublicMethodMetaInfo, getStaffMemberSettings, updateStaffMemberSettings };