Implement many-to-many TODO user assignments

- Create todo_users junction table for many-to-many relationship
- Add migration to create todo_users table and migrate existing data
- Update validators to accept assignedUserIds array instead of assignedTo
- Update todo service to handle multiple user assignments
- Fetch and return assigned users with each TODO

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
richardtekula
2025-11-24 11:17:28 +01:00
parent 7fd6b9e742
commit 8fd8f991e8
5 changed files with 248 additions and 48 deletions

View File

@@ -63,7 +63,7 @@ export const createTodoSchema = z.object({
description: z.string().max(1000).optional(),
projectId: z.string().uuid('Neplatný formát project ID').optional().or(z.literal('')),
companyId: z.string().uuid('Neplatný formát company ID').optional().or(z.literal('')),
assignedTo: z.string().uuid('Neplatný formát user ID').optional().or(z.literal('')),
assignedUserIds: z.array(z.string().uuid('Neplatný formát user ID')).optional(),
status: z.enum(['pending', 'in_progress', 'completed', 'cancelled']).optional(),
priority: z.enum(['low', 'medium', 'high', 'urgent']).optional(),
dueDate: z.string().optional().or(z.literal('')),
@@ -74,7 +74,7 @@ export const updateTodoSchema = z.object({
description: z.string().max(1000).optional(),
projectId: z.string().uuid('Neplatný formát project ID').optional().or(z.literal('').or(z.null())),
companyId: z.string().uuid('Neplatný formát company ID').optional().or(z.literal('').or(z.null())),
assignedTo: z.string().uuid('Neplatný formát user ID').optional().or(z.literal('').or(z.null())),
assignedUserIds: z.array(z.string().uuid('Neplatný formát user ID')).optional(),
status: z.enum(['pending', 'in_progress', 'completed', 'cancelled']).optional(),
priority: z.enum(['low', 'medium', 'high', 'urgent']).optional(),
dueDate: z.string().optional().or(z.literal('').or(z.null())),