plane/web/types/inbox.d.ts
sriram veeraghanta 3ce0aa8ebc restructring
2023-08-22 13:00:23 +05:30

86 lines
1.7 KiB
TypeScript

import { IIssue, IIssueFilterOptions, IIssueLabels } from "./issues";
import type { IProjectLite } from "./projects";
import { IState } from "./state";
import { IUserLite } from "./users";
export interface IInboxIssue extends Partial<IIssue> {
bridge_id: string;
issue_inbox: {
duplicate_to: string | null;
snoozed_till: Date | null;
source: string;
status: -2 | -1 | 0 | 1 | 2;
}[];
}
export interface IInboxIssueDetail extends IIssue {
id: string;
project_detail: IProjectLite;
created_at: string;
updated_at: string;
issue_inbox: {
duplicate_to: string | null;
id: string;
snoozed_till: Date | null;
source: string;
status: -2 | -1 | 0 | 1 | 2;
}[];
created_by: string;
updated_by: string;
project: string;
workspace: string;
}
export interface IInbox {
id: string;
project_detail: IProjectLite;
pending_issue_count: number;
created_at: Date;
updated_at: Date;
name: string;
description: string;
is_default: boolean;
created_by: string;
updated_by: string;
project: string;
view_props: { filters: IInboxFilterOptions };
workspace: string;
}
interface StatePending {
readonly status: -2;
}
interface StatusReject {
status: -1;
}
interface StatusSnoozed {
status: 0;
snoozed_till: Date;
}
interface StatusAccepted {
status: 1;
}
interface StatusDuplicate {
status: 2;
duplicate_to: string;
}
export type TInboxStatus =
| StatusReject
| StatusSnoozed
| StatusAccepted
| StatusDuplicate
| StatePending;
export interface IInboxFilterOptions {
priority: string[] | null;
inbox_status: number[] | null;
}
export interface IInboxQueryParams {
priority: string | null;
inbox_status: string | null;
}