import { AllowedValueWithCode } from '../../../commonStateTypes/allowedValue'; import { ID } from '../../../commonStateTypes/common'; import { ZeniDate } from '../../../zeniDayJS'; import { NotificationActivityType, NotificationGroup, NotificationIdentifierType, NotificationMode, NotificationStatus, NotificationUpdateValue } from './notificationTypes'; export interface NotificationValueFormat { codeNamePair: AllowedValueWithCode | null; list: string[]; text: string; } export interface NotificationUpdates { field: string; newValue: NotificationValueFormat; oldValue: NotificationValueFormat; type: NotificationUpdateValue; } export interface NotificationAdditionalInfo { dueDate: ZeniDate; } export interface NotificationMetaData { additionalInfo: NotificationAdditionalInfo | null; eventDescription: string; eventTitle: string; tags: string[]; updates: NotificationUpdates[]; eventStatus?: AllowedValueWithCode; } export interface NotificationActivity { activityType: NotificationActivityType; metadata: NotificationMetaData; } export interface NotificationEventData { activities: NotificationActivity[]; authorIds: ID[]; createTimestamp: ZeniDate; description: string; entitiyId: ID; title: string; } export interface Notification { createTime: ZeniDate; eventData: NotificationEventData; mode: NotificationMode; notificationGroup: NotificationGroup; notificationId: ID; notificationIdentifier: NotificationIdentifierType; status: NotificationStatus; tenantId: ID; updateTime: ZeniDate; userId: ID; }