/** * Copyright 2022 Agendize All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at. * * Http://www.apache.org/licenses/LICENSE-2.0. * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { CustomStatusDto } from "./CustomStatus"; import { EventEntity } from "./Event"; export declare class EventSearchEntity { id?: string; company?: EventSearchCompanyEntity; service?: EventSearchServiceEntity; staff?: EventSearchStaffEntity; contact?: EventSearchContactEntity; location: EventSearchLocationEntity; start: Date; end: Date; status?: EventSearchStatusEntity; conflict?: boolean; conflicts?: EventSearchConflictEntity[]; static fromEventDto(dto: EventSearchDto): EventSearchEntity; static toEventEntity(searchEntity: EventSearchEntity): EventEntity; } export declare class EventSearchCompanyEntity { id: string; name: string; timeZone?: string; static fromDto(dto: EventSearchCompanyDto): EventSearchCompanyEntity; } export declare class EventSearchServiceEntity { id: string; name: string; static fromDto(dto: EventSearchServiceDto): EventSearchServiceEntity; } export declare class EventSearchStaffEntity { id: string; firstName?: string; lastName?: string; externalId?: string; userId?: string; static fromDto(dto: EventSearchStaffDto): EventSearchStaffEntity; } export declare class EventSearchContactEntity { id: string; title?: string; firstName?: string; lastName?: string; email?: string; phone?: string; reference?: string; static fromDto(dto: EventSearchContactDto): EventSearchContactEntity; } export declare class EventSearchLocationEntity { type: 'companyAddress' | 'videoconference' | 'phone' | 'custom'; static fromDto(dto: EventSearchLocationDto): EventSearchLocationEntity; } export declare class EventSearchStatusEntity { id: string; standard: boolean; label?: string; static fromDto(dto: EventSearchStatusDto): EventSearchStatusEntity; } export declare class EventSearchConflictEntity { event?: string; company?: string; reason: EventSearchConflictReason; source: EventSearchConflictSource; static fromDto(dto: EventSearchConflictDto): EventSearchConflictEntity; } export declare enum EventSearchConflictReason { STAFF = "STAFF", SERVICE = "SERVICE", STAFF_TIME = "STAFF_TIME", SERVICE_TIME = "SERVICE_TIME", SERVICE_SKILL = "SERVICE_SKILL", STAFF_RESCHEDULE = "STAFF_RESCHEDULE", STAFF_VACATION = "STAFF_VACATION", UNKNOWN = "UNKNOWN" } export declare enum EventSearchConflictSource { SERVICE_NOT_AVAILABLE = "SERVICE_NOT_AVAILABLE", STAFF_NOT_AVAILABLE = "STAFF_NOT_AVAILABLE", UNKNOWN = "UNKNOWN" } export declare class EventSearchPageEntity { items: EventSearchEntity[]; totalItems: number; nextSyncToken?: string; nextPageToken?: string; static fromDto(dto: EventSearchPageDto): EventSearchPageEntity; } export interface EventSearchOption { page?: number; pageToken?: string; orderBy?: string; maxResults?: number; } export declare class EventSearchBodyEntity { basicSearch?: string; timeZone?: string; start: Date; end: Date; companies: EventSearchBodyCompanyEntity[]; status?: string[]; conflict?: boolean; cancelledOrDeclined?: boolean; static fromDto(dto: EventSearchBodyDto): EventSearchBodyEntity; static toDto(entity: EventSearchBodyEntity, timeZone: string): EventSearchBodyDto; } export declare class EventSearchBodyCompanyEntity { companyId: string; staffIds?: string[]; staffGroupIds?: string[]; serviceIds?: string[]; serviceGroupIds?: string[]; static toDto(entity: EventSearchBodyCompanyEntity): EventSearchBodyCompanyDto; static fromDto(dto: EventSearchBodyCompanyDto): EventSearchBodyCompanyEntity; } export interface EventSearchConflictDto { event?: string; company?: string; reason: string; source: string; } export interface EventSearchStatusDto { id: string; standard: boolean; label?: string; } export interface EventSearchBodyDto { basicSearch?: string; timeZone?: string; start: { dateTime: string; timeZone?: string; }; end: { dateTime: string; timeZone?: string; }; companies: EventSearchBodyCompanyDto[]; status?: string[]; conflict?: boolean; cancelledOrDeclined?: boolean; } export interface EventSearchBodyCompanyDto { companyId: string; staffIds?: string[]; staffGroupIds?: string[]; serviceIds?: string[]; serviceGroupIds?: string[]; } export interface EventSearchPageDto { items: EventSearchDto[]; totalItems: number; nextSyncToken?: string; nextPageToken?: string; } export declare class EventSearchCompanyDto { id: string; name: string; timeZone?: string; } export declare class EventSearchServiceDto { id: string; name: string; } export declare class EventSearchStaffDto { id: string; firstName?: string; lastName?: string; externalId?: string; userId?: string; } export declare class EventSearchContactDto { id: string; title?: string; firstName?: string; lastName?: string; email?: string; phone?: string; reference?: string; } export declare class EventSearchLocationDto { type: 'companyAddress' | 'videoconference' | 'phone' | 'custom'; } export declare class EventSearchDto { id?: string; company?: EventSearchCompanyDto; service?: EventSearchServiceDto; staff?: EventSearchStaffDto; contact?: EventSearchContactDto; location: EventSearchLocationDto; startDate: { dateTime: string; timeZone?: string; }; endDate: { dateTime: string; timeZone?: string; }; status?: EventSearchStatusDto; customStatus?: CustomStatusDto; conflict?: boolean; conflicts?: EventSearchConflictDto[]; }