import AbstractService from '@/services/abstractService' import TaskModel from '@/models/task' import type {ITask} from '@/modelTypes/ITask' export interface TaskFilterParams { sort_by: ('start_date' | 'done' | 'id' | 'position' | 'kanban_position')[], order_by: ('asc' | 'desc')[], filter: string, filter_include_nulls: boolean, filter_timezone?: string, s: string, per_page?: number, } export function getDefaultTaskFilterParams(): TaskFilterParams { return { sort_by: ['position', 'id'], order_by: ['asc', 'desc'], filter: '', filter_include_nulls: false, filter_timezone: '', s: '', } } export default class TaskCollectionService extends AbstractService { constructor() { super({ getAll: '/projects/{projectId}/tasks', }) } modelFactory(data) { return new TaskModel(data) } }