@ -1,20 +1,30 @@
import { query , execute } from '../database/db' ;
import { query , execute } from '../database/db' ;
// Create a new task
// Create a new task
export function createTask ( sender : string , description : string , assignedTo? : string , dueDate? : string ) {
export function createTask ( sender : string , params : CreateTaskParams ) {
if ( ! params . description || params . description . trim ( ) . length < 3 ) {
throw new Error ( 'La descripción de la tarea debe tener al menos 3 caracteres' ) ;
}
if ( params . dueDate && ! isValidDate ( params . dueDate ) ) {
throw new Error ( 'Fecha inválida. Use el formato YYYY-MM-DD' ) ;
}
const result = execute (
const result = execute (
'INSERT INTO tasks (description, assigned_to, due_date, completed) VALUES (?, ?, ?, ?)' ,
'INSERT INTO tasks (description, assigned_to, due_date, completed) VALUES (?, ?, ?, ?)' ,
[ description , assignedTo || null , dueDate || null , false ]
[ params. description.trim ( ) , params . assignedTo || null , params . dueDate || null , false ]
) ;
) ;
const taskId = result . lastInsertRowid ;
const task = getTaskById ( result . lastInsertRowid ) ;
return {
if ( ! task ) {
id : taskId ,
throw new Error ( 'Error al crear la tarea' ) ;
description ,
}
assignedTo : assignedTo || null ,
return task ;
dueDate : dueDate || null ,
}
completed : false ,
} ;
function isValidDate ( dateString : string ) : boolean {
const date = new Date ( dateString ) ;
return ! isNaN ( date . getTime ( ) ) ;
}
}
// Assign a task
// Assign a task