plane/web/types/notifications.d.ts
sriram veeraghanta 1e152c666c
New Directory Setup (#2065)
* chore: moved app & space from apps to root

* chore: modified workspace configuration

* chore: modified dockerfiles for space and web

* chore: modified icons for space

* feat: updated files for new svg icons supported by next-images

* chore: added /spaces base path for next

* chore: added compose config for space

* chore: updated husky configuration

* chore: updated workflows for new configuration

* chore: changed app name to web

* fix: resolved build errors with web

* chore: reset file tracing root for both projects

* chore: added nginx config for deploy

* fix: eslint and tsconfig settings for space app

* husky setup fixes based on new dir

* eslint fixes

* prettier formatting

---------

Co-authored-by: Henit Chobisa <chobisa.henit@gmail.com>
2023-09-03 18:50:30 +05:30

80 lines
1.6 KiB
TypeScript

import type { IUserLite } from "./users";
export interface PaginatedUserNotification {
next_cursor: string;
prev_cursor: string;
next_page_results: boolean;
prev_page_results: boolean;
count: number;
total_pages: number;
extra_stats: null;
results: IUserNotification[];
}
export interface IUserNotification {
id: string;
created_at: Date;
updated_at: Date;
data: Data;
entity_identifier: string;
entity_name: string;
title: string;
message: null;
message_html: string;
message_stripped: null;
sender: string;
read_at: Date | null;
archived_at: Date | null;
snoozed_till: Date | null;
created_by: null;
updated_by: null;
workspace: string;
project: string;
triggered_by: string;
triggered_by_details: IUserLite;
receiver: string;
}
export interface Data {
issue: IIssueLite;
issue_activity: {
actor: string;
field: string;
id: string;
issue_comment: string | null;
new_value: string;
old_value: string;
verb: "created" | "updated";
};
}
export interface IIssueLite {
id: string;
name: string;
identifier: string;
state_name: string;
sequence_id: number;
state_group: string;
}
export type NotificationType = "created" | "assigned" | "watching" | null;
export interface INotificationParams {
snoozed?: boolean;
type?: NotificationType;
archived?: boolean;
read?: boolean;
}
export type NotificationCount = {
created_issues: number;
my_issues: number;
watching_issues: number;
};
export interface IMarkAllAsReadPayload {
archived?: boolean;
snoozed?: boolean;
type?: NotificationType;
}