pancake-client-sdk
Version:
Official TypeScript SDK for Pancake POS API
94 lines (93 loc) • 2.23 kB
TypeScript
export interface Task {
id: string;
title: string;
description?: string;
type: TaskType;
status: TaskStatus;
priority: TaskPriority;
due_date: string;
completed_at?: string;
assigned_to?: {
id: string;
name: string;
};
created_by: {
id: string;
name: string;
};
related_to?: {
type: 'customer' | 'order' | 'product';
id: string;
reference?: string;
};
reminder_at?: string;
tags?: string[];
created_at: string;
updated_at: string;
}
export type TaskType = 'call' | 'meeting' | 'followup' | 'reminder' | 'todo' | 'other';
export type TaskStatus = 'pending' | 'in_progress' | 'completed' | 'cancelled' | 'overdue';
export type TaskPriority = 'low' | 'medium' | 'high' | 'urgent';
export interface CreateTaskRequest {
title: string;
description?: string;
type: TaskType;
priority: TaskPriority;
due_date: string;
assigned_to?: string;
related_to?: {
type: 'customer' | 'order' | 'product';
id: string;
};
reminder_at?: string;
tags?: string[];
}
export interface UpdateTaskRequest {
title?: string;
description?: string;
type?: TaskType;
priority?: TaskPriority;
status?: TaskStatus;
due_date?: string;
assigned_to?: string;
reminder_at?: string;
tags?: string[];
}
export interface TaskListParams {
page_size?: number;
page_number?: number;
type?: TaskType;
status?: TaskStatus;
priority?: TaskPriority;
assigned_to?: string;
created_by?: string;
related_type?: 'customer' | 'order' | 'product';
related_id?: string;
from_date?: string;
to_date?: string;
overdue?: boolean;
search?: string;
}
export interface TaskComment {
id: string;
task_id: string;
content: string;
attachments?: string[];
created_by: {
id: string;
name: string;
};
created_at: string;
updated_at: string;
}
export interface TaskStats {
total_tasks: number;
by_status: {
[key in TaskStatus]: number;
};
by_priority: {
[key in TaskPriority]: number;
};
overdue_tasks: number;
completion_rate: number;
}