Files
worklenz/worklenz-backend/src/interfaces/recurring-tasks.ts
chamikaJ 474f1afe66 feat(recurring-tasks): implement recurring tasks service with timezone support and notifications
- Added a new service for managing recurring tasks, allowing configuration of task schedules with timezone support.
- Introduced job queues for processing recurring tasks and handling task creation in bulk.
- Implemented notification system to alert users about newly created recurring tasks, including email and in-app notifications.
- Enhanced database schema with new tables for notifications and audit logs to track recurring task operations.
- Updated frontend components to support timezone selection and manage excluded dates for recurring tasks.
- Refactored existing code to integrate new features and improve overall task management experience.
2025-07-20 19:16:03 +05:30

41 lines
1019 B
TypeScript

export interface IRecurringSchedule {
id: string;
schedule_type: "daily" | "weekly" | "monthly" | "yearly" | "every_x_days" | "every_x_weeks" | "every_x_months";
days_of_week: number[] | null;
day_of_month: number | null;
date_of_month: number | null;
week_of_month: number | null;
interval_days: number | null;
interval_weeks: number | null;
interval_months: number | null;
last_created_task_end_date: Date | null;
last_checked_at: Date | null;
last_task_end_date: Date | null;
created_at: Date;
timezone?: string;
end_date?: Date | null;
excluded_dates?: string[] | null;
}
interface ITaskTemplateAssignee {
team_member_id: string;
assigned_by: string
}
interface ITaskTemplateLabel {
label_id: string;
}
export interface ITaskTemplate {
task_id: string;
schedule_id: string;
created_at: Date;
name: string;
priority_id: string;
project_id: string;
reporter_id: string;
status_id: string;
assignees: ITaskTemplateAssignee[];
labels: ITaskTemplateLabel[]
}