2023-09-01 11:12:30 +00:00
|
|
|
export type TIssueBoardKeys = "list" | "kanban" | "calendar" | "spreadsheet" | "gantt";
|
|
|
|
|
|
|
|
export interface IIssueBoardViews {
|
|
|
|
key: TIssueBoardKeys;
|
|
|
|
title: string;
|
|
|
|
icon: string;
|
|
|
|
className: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
export type TIssuePriorityKey = "urgent" | "high" | "medium" | "low" | "none";
|
|
|
|
export type TIssuePriorityTitle = "Urgent" | "High" | "Medium" | "Low" | "None";
|
|
|
|
export interface IIssuePriorityFilters {
|
|
|
|
key: TIssuePriorityKey;
|
|
|
|
title: TIssuePriorityTitle;
|
|
|
|
className: string;
|
|
|
|
icon: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
export type TIssueGroupKey = "backlog" | "unstarted" | "started" | "completed" | "cancelled";
|
|
|
|
export type TIssueGroupTitle = "Backlog" | "Unstarted" | "Started" | "Completed" | "Cancelled";
|
|
|
|
|
|
|
|
export interface IIssueGroup {
|
|
|
|
key: TIssueGroupKey;
|
|
|
|
title: TIssueGroupTitle;
|
|
|
|
color: string;
|
|
|
|
className: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface IIssue {
|
|
|
|
id: string;
|
|
|
|
comments: Comment[];
|
|
|
|
description_html: string;
|
|
|
|
label_details: any;
|
|
|
|
name: string;
|
|
|
|
priority: TIssuePriorityKey | null;
|
|
|
|
project: string;
|
|
|
|
project_detail: any;
|
|
|
|
reactions: IIssueReaction[];
|
|
|
|
sequence_id: number;
|
|
|
|
start_date: any;
|
|
|
|
state: string;
|
2023-11-07 10:45:34 +00:00
|
|
|
state_detail: {
|
|
|
|
id: string;
|
|
|
|
name: string;
|
|
|
|
group: TIssueGroupKey;
|
|
|
|
color: string;
|
|
|
|
};
|
2023-09-01 11:12:30 +00:00
|
|
|
target_date: any;
|
2023-09-01 15:08:53 +00:00
|
|
|
votes: IVote[];
|
2023-09-01 11:12:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
export interface IIssueState {
|
|
|
|
id: string;
|
|
|
|
name: string;
|
|
|
|
group: TIssueGroupKey;
|
|
|
|
color: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface IIssueLabel {
|
|
|
|
id: string;
|
|
|
|
name: string;
|
|
|
|
color: string;
|
|
|
|
}
|
|
|
|
|
2023-09-01 15:08:53 +00:00
|
|
|
export interface IVote {
|
|
|
|
issue: string;
|
|
|
|
vote: -1 | 1;
|
|
|
|
workspace: string;
|
|
|
|
project: string;
|
|
|
|
actor: string;
|
|
|
|
actor_detail: ActorDetail;
|
|
|
|
}
|
|
|
|
|
2023-09-01 11:12:30 +00:00
|
|
|
export interface Comment {
|
|
|
|
actor_detail: ActorDetail;
|
2023-09-06 06:29:57 +00:00
|
|
|
access: string;
|
|
|
|
actor: string;
|
|
|
|
attachments: any[];
|
|
|
|
comment_html: string;
|
|
|
|
comment_reactions: {
|
|
|
|
actor_detail: ActorDetail;
|
|
|
|
comment: string;
|
|
|
|
id: string;
|
|
|
|
reaction: string;
|
|
|
|
}[];
|
|
|
|
comment_stripped: string;
|
|
|
|
created_at: Date;
|
|
|
|
created_by: string;
|
|
|
|
id: string;
|
|
|
|
is_member: boolean;
|
|
|
|
issue: string;
|
2023-09-01 11:12:30 +00:00
|
|
|
issue_detail: IssueDetail;
|
2023-09-06 06:29:57 +00:00
|
|
|
project: string;
|
2023-09-01 11:12:30 +00:00
|
|
|
project_detail: ProjectDetail;
|
|
|
|
updated_at: Date;
|
|
|
|
updated_by: string;
|
|
|
|
workspace: string;
|
2023-09-06 06:29:57 +00:00
|
|
|
workspace_detail: WorkspaceDetail;
|
2023-09-01 11:12:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
export interface IIssueReaction {
|
|
|
|
actor_detail: ActorDetail;
|
|
|
|
id: string;
|
|
|
|
issue: string;
|
|
|
|
reaction: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface ActorDetail {
|
2023-09-01 15:08:53 +00:00
|
|
|
avatar?: string;
|
|
|
|
display_name?: string;
|
|
|
|
first_name?: string;
|
|
|
|
id?: string;
|
|
|
|
is_bot?: boolean;
|
|
|
|
last_name?: string;
|
2023-09-01 11:12:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
export interface IssueDetail {
|
|
|
|
id: string;
|
|
|
|
name: string;
|
|
|
|
description: Description;
|
|
|
|
description_html: string;
|
|
|
|
priority: string;
|
|
|
|
start_date: null;
|
|
|
|
target_date: null;
|
|
|
|
sequence_id: number;
|
|
|
|
sort_order: number;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface Description {
|
|
|
|
type: string;
|
|
|
|
content: DescriptionContent[];
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface DescriptionContent {
|
|
|
|
type: string;
|
|
|
|
attrs?: Attrs;
|
|
|
|
content: ContentContent[];
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface Attrs {
|
|
|
|
level: number;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface ContentContent {
|
|
|
|
text: string;
|
|
|
|
type: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface ProjectDetail {
|
|
|
|
id: string;
|
|
|
|
identifier: string;
|
|
|
|
name: string;
|
|
|
|
cover_image: string;
|
|
|
|
icon_prop: null;
|
|
|
|
emoji: string;
|
|
|
|
description: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface WorkspaceDetail {
|
|
|
|
name: string;
|
|
|
|
slug: string;
|
|
|
|
id: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface IssueDetailType {
|
|
|
|
[issueId: string]: {
|
|
|
|
issue: IIssue;
|
|
|
|
comments: Comment[];
|
|
|
|
reactions: any[];
|
|
|
|
votes: any[];
|
|
|
|
};
|
|
|
|
}
|