#pragma once #include #include "util.h" struct klist_user { ssize_t id; unsigned char *name; ssize_t local_id; }; typedef struct klist_user klist_user; klist_user *klist_user_init(); klist_user *klist_user_init_from_sql(sqlite3_stmt *); klist_user *klist_user_get_by_id(klist *, u_int); klist_user *klist_user_get_by_local(klist *, u_int); klist_user *klist_user_get_by_discord(klist *, u_int); klist_user *klist_user_get_by_google(klist *, u_int); void klist_user_save(klist *, klist_user *); void klist_user_delete(klist *, klist_user *); void klist_user_deinit(klist_user *); struct klist_stage { ssize_t id; unsigned char *name; unsigned char *desc; ssize_t list_id; }; typedef struct klist_stage klist_stage; klist_stage *klist_stage_init(); klist_stage *klist_stage_init_from_sql(sqlite3_stmt *); klist_stage *klist_stage_get_by_id(klist *, u_int); void klist_stage_save(klist *, klist_stage *); void klist_stage_delete(klist *, klist_stage *); void klist_stage_deinit(klist_stage *); struct klist_list { ssize_t id; unsigned char *name; unsigned char *desc; }; typedef struct klist_list klist_list; klist_list *klist_list_init(); klist_list *klist_list_init_from_sql(sqlite3_stmt *); klist_list *klist_list_get_by_id(klist *, u_int); klist_list **klist_list_get_all_by_user(klist *, u_int, size_t *); klist_list *klist_list_get_by_user_and_name(klist *, u_int, const char *); void klist_list_save(klist *, klist_list *); void klist_list_delete(klist *, klist_list *); void klist_list_deinit(klist_list *); struct klist_task { ssize_t id; unsigned char *name; unsigned char *desc; int stage_id; time_t due; int target_stage; }; typedef struct klist_task klist_task; klist_task *klist_task_init(); klist_task *klist_task_init_from_sql(sqlite3_stmt *); klist_task *klist_task_get_by_id(klist *, u_int); klist_task **klist_task_get_for_list(klist *, u_int, u_int *); void klist_task_save(klist *, klist_task *); void klist_task_delete(klist *, klist_task *); void klist_task_deinit(klist_task *);