blist/src/main/include/models.h

75 lines
2 KiB
C

#pragma once
#include <sys/types.h>
#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 *);