diff options
| author | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-08-09 08:33:08 +0200 |
|---|---|---|
| committer | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-08-09 08:33:08 +0200 |
| commit | 5d34aff5888d3f0c624251f15bedb96c347978d6 (patch) | |
| tree | 69a49651271d645ca7eaa114cb1830bf759c0930 /include/administration.hpp | |
| parent | b94a7ae06b20d550c727d5192cea8baf3e8fb641 (diff) | |
refactors
Diffstat (limited to 'include/administration.hpp')
| -rw-r--r-- | include/administration.hpp | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/include/administration.hpp b/include/administration.hpp new file mode 100644 index 0000000..9506246 --- /dev/null +++ b/include/administration.hpp @@ -0,0 +1,70 @@ +#pragma once + +#include "config.hpp" +#include "simclist.h" + +typedef struct +{ + char id[16]; + char name[64]; + char address1[128]; + char address2[128]; + char country[128]; + char taxid[32]; + char businessid[32]; + char email[64]; + char phone_number[16]; + char bank_account[32]; +} contact; + +typedef enum +{ + RUNNING, + PAUSED, + CANCELLED, +} project_state; + +typedef struct +{ + char id[16]; + char description[64]; + project_state state; + time_t start_date; + time_t end_date; +} project; + +typedef struct +{ + contact company_info; + s32 next_id; + char path[4096]; + char program_version[10]; + char country_code[2]; + list_t contacts; + list_t projects; + // invoices + char ai_service[16]; + char ai_key[32]; + char email_service[16]; + char email_key[32]; +} administration; + +void administration_create(); +void administration_destroy(); + +char* administration_get_file_path(); +s32 administration_create_id(); + +bool administration_remove_contact(contact data); +bool administration_create_contact(contact data); +bool administration_update_contact(contact data); +u32 administration_get_contact_count(); +u32 administration_get_contacts(u32 page_index, u32 page_size, contact* buffer); + +void administration_cancel_project(project data); +bool administration_remove_project(project data); +bool administration_create_project(project data); +bool administration_update_project(project data); +char* administration_project_get_status_string(project data); +u32 administration_get_project_count(); +u32 administration_get_projects(u32 page_index, u32 page_size, project* buffer);
\ No newline at end of file |
