plane/web/types/analytics.d.ts

117 lines
2.9 KiB
TypeScript

export interface IAnalyticsResponse {
total: number;
distribution: IAnalyticsData;
extras: {
assignee_details: IAnalyticsAssigneeDetails[];
cycle_details: IAnalyticsCycleDetails[];
label_details: IAnalyticsLabelDetails[];
module_details: IAnalyticsModuleDetails[];
state_details: IAnalyticsStateDetails[];
};
}
export interface IAnalyticsData {
[key: string]: {
dimension: string | null;
segment?: string;
count?: number;
estimate?: number | null;
}[];
}
export interface IAnalyticsAssigneeDetails {
assignees__avatar: string | null;
assignees__display_name: string | null;
assignees__first_name: string;
assignees__id: string | null;
assignees__last_name: string;
}
export interface IAnalyticsCycleDetails {
issue_cycle__cycle__name: string | null;
issue_cycle__cycle_id: string | null;
}
export interface IAnalyticsLabelDetails {
labels__color: string | null;
labels__id: string | null;
labels__name: string | null;
}
export interface IAnalyticsModuleDetails {
issue_module__module__name: string | null;
issue_module__module_id: string | null;
}
export interface IAnalyticsStateDetails {
state__color: string;
state__name: string;
state_id: string;
}
export type TXAxisValues =
| "state_id"
| "state__group"
| "labels__id"
| "assignees__id"
| "estimate_point"
| "issue_cycle__cycle_id"
| "issue_module__module_id"
| "priority"
| "start_date"
| "target_date"
| "created_at"
| "completed_at";
export type TYAxisValues = "issue_count" | "estimate";
export interface IAnalyticsParams {
x_axis: TXAxisValues;
y_axis: TYAxisValues;
segment?: TXAxisValues | null;
project?: string[] | null;
cycle?: string | null;
module?: string | null;
}
export interface ISaveAnalyticsFormData {
name: string;
description: string;
query_dict: IExportAnalyticsFormData;
}
export interface IExportAnalyticsFormData {
x_axis: TXAxisValues;
y_axis: TYAxisValues;
segment?: TXAxisValues | null;
project?: string[];
}
export interface IDefaultAnalyticsUser {
assignees__avatar: string | null;
assignees__first_name: string;
assignees__last_name: string;
assignees__display_name: string;
assignees__id: string;
count: number;
}
export interface IDefaultAnalyticsResponse {
issue_completed_month_wise: { month: number; count: number }[];
most_issue_closed_user: IDefaultAnalyticsUser[];
most_issue_created_user: {
created_by__avatar: string | null;
created_by__first_name: string;
created_by__last_name: string;
created_by__display_name: string;
created_by__id: string;
count: number;
}[];
open_estimate_sum: number;
open_issues: number;
open_issues_classified: { state_group: string; state_count: number }[];
pending_issue_user: IDefaultAnalyticsUser[];
total_estimate_sum: number;
total_issues: number;
total_issues_classified: { state_group: string; state_count: number }[];
}