@ -1,20 +1,30 @@
 
		
	
		
			
				import  {  query ,  execute  }  from  '../database/db' ;  
		
	
		
			
				
 
		
	
		
			
				// 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 ( 
 
		
	
		
			
				    '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 ; 
 
		
	
		
			
				  return  { 
 
		
	
		
			
				    id : taskId , 
 
		
	
		
			
				    description , 
 
		
	
		
			
				    assignedTo : assignedTo  ||  null , 
 
		
	
		
			
				    dueDate : dueDate  ||  null , 
 
		
	
		
			
				    completed : false , 
 
		
	
		
			
				  } ; 
 
		
	
		
			
				  const  task  =  getTaskById ( result . lastInsertRowid ) ; 
 
		
	
		
			
				  if  ( ! task )  { 
 
		
	
		
			
				    throw  new  Error ( 'Error al crear la tarea' ) ; 
 
		
	
		
			
				  } 
 
		
	
		
			
				  return  task ; 
 
		
	
		
			
				}  
		
	
		
			
				
 
		
	
		
			
				function  isValidDate ( dateString : string ) :  boolean  {  
		
	
		
			
				  const  date  =  new  Date ( dateString ) ; 
 
		
	
		
			
				  return  ! isNaN ( date . getTime ( ) ) ; 
 
		
	
		
			
				}  
		
	
		
			
				
 
		
	
		
			
				// Assign a task