#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);