#include "struct.h"

#ifndef DEF_DB_H
#define DEF_DB_H

/*
Création de la base de données
Arrête le programme en cas d'échec
*/
void create_db();

/*
Open/closes the socket file to notify of db changes
*/
void notify_change();

/*
Ajouter une tâche à la base de données.
Le numéro de tâche ne doit pas déjà être utilisé
Renvoie 0 si il n'y a pas d'erreur
*/
int add_task(task_t t);

/*
Mettre à jour une tâche
*/
int update_task(task_t t);

/*
Supprime la tâche [id] de la base de données. La tâche est supposée existante
*/
void delete_task(int id);

/*
Copie la tâche [id] dans *t si elle existe
t.id vaut -1 si non trouvé
*/
void get_task(int id, task_t* t);

/*
Renvoie la liste des tâches de la base de données
*/
task_list_t* get_task_list(bool include_completed);

/*
Renvoie un identifiant de tâche encore non utilisé
*/
int get_new_task_id();


#endif