blist/src/libklist/include/models.h
2025-06-14 03:32:53 +02:00

78 lines
No EOL
2.5 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(const klist *, u_int);
klist_user *klist_user_get_by_local(const klist *, u_int);
klist_user *klist_user_get_by_discord(const klist *, u_int);
klist_user *klist_user_get_by_google(const klist *, u_int);
void klist_user_save(const klist *, klist_user *);
void klist_user_delete(const klist *, const klist_user *);
void klist_user_deinit(klist_user *);
struct klist_list {
ssize_t id;
unsigned char *name;
unsigned char *desc;
bool is_preset;
};
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(const klist *, u_int);
klist_list **klist_list_get_all_by_user(const klist *, u_int, size_t *);
klist_list *klist_list_get_by_user_and_name(const klist *, u_int, const char *);
void klist_list_save(const klist *, klist_list *, const klist_user *);
void klist_list_delete(const klist *, klist_list *);
void klist_list_deinit(klist_list *);
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(const klist *, u_int);
klist_stage **klist_stage_get_all_for_list(const klist *, u_int, size_t *);
void klist_stage_save(const klist *, klist_stage *);
void klist_stage_delete(const klist *, const klist_stage *);
void klist_stage_deinit(klist_stage *);
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(const klist *, u_int);
klist_task **klist_task_get_for_list(const klist *, u_int, size_t *);
klist_task *klist_task_get_for_list_by_name(const klist *, u_int, const char *);
void klist_task_save(const klist *, klist_task *);
void klist_task_delete(const klist *, const klist_task *);
void klist_task_deinit(klist_task *);
void klist_print_user(klist *, const klist_user *);
void klist_print_list(klist *, klist_list *, klist_task **, size_t);
void klist_print_task(klist *, klist_task **, size_t);