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

@@ -100,13 +100,14 @@ export const getTodoWithRelations = async (req, res) => {
/**
* Create new todo
* POST /api/todos
* Body: { title, description, projectId, companyId, assignedTo, status, priority, dueDate }
* Body: { title, description, projectId, companyId, assignedUserIds, status, priority, dueDate }
*/
export const createTodo = async (req, res) => {
try {
const userId = req.userId;
const data = req.body;
console.log('Backend received todo data:', data);
const todo = await todoService.createTodo(userId, data);
res.status(201).json({
@@ -123,13 +124,14 @@ export const createTodo = async (req, res) => {
/**
* Update todo
* PATCH /api/todos/:todoId
* Body: { title, description, projectId, companyId, assignedTo, status, priority, dueDate }
* Body: { title, description, projectId, companyId, assignedUserIds, status, priority, dueDate }
*/
export const updateTodo = async (req, res) => {
try {
const { todoId } = req.params;
const data = req.body;
console.log('Backend received update data:', data);
const todo = await todoService.updateTodo(todoId, data);
res.status(200).json({