Merge branch 'feat/inda-383-daily-stat' into 'main'
[ProtonMail-WebClient.git] / applications / calendar / src / app / interfaces / encryptedSearch.ts
blob974b759518d7a8f6956be9c926a8e4a00729fe38
1 import type { EncryptedSearchFunctions } from '@proton/encrypted-search';
2 import type {
3     AttendeeModel,
4     CalendarEventMetadata,
5     CalendarEventSharedData,
6     OrganizerModel,
7     VcalAttendeeProperty,
8     VcalOrganizerProperty,
9 } from '@proton/shared/lib/interfaces/calendar';
11 export interface ESOrganizerModel extends Pick<OrganizerModel, 'email' | 'cn'> {}
12 export interface ESAttendeeModel extends Pick<AttendeeModel, 'email' | 'cn' | 'role' | 'partstat'> {}
14 export interface ESCalendarMetadata extends CalendarEventSharedData, CalendarEventMetadata {
15     Status: string;
16     Order: number;
17     Summary: string;
18     Location: string;
19     Description: string;
20     Attendees: VcalAttendeeProperty[];
21     Organizer?: VcalOrganizerProperty;
22     IsDecryptable: boolean;
25 export interface ESCalendarContent {}
26 export interface ESCalendarSearchParams {
27     keyword?: string;
28     calendarID?: string;
29     begin?: number;
30     end?: number;
31     page?: number;
34 /**
35  * @var remainingCalendarIDs the calendars for which indexation has not been done yet
36  * @var currentCalendarId the calendar for which indexation is currently ongoing. Can be undefined when there no calendar left to be indexed
37  * @var eventCursor the cursor fetched during last query. Can be undefined when starting to index event from a new calendar
38  */
39 export type MetadataRecoveryPoint = {
40     remainingCalendarIDs: string[];
41     currentCalendarId?: string;
42     eventCursor?: string;
45 export type EncryptedSearchFunctionsCalendar = EncryptedSearchFunctions<
46     ESCalendarMetadata,
47     ESCalendarSearchParams,
48     ESCalendarContent