summaryrefslogtreecommitdiff
path: root/include/administration.hpp
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2025-09-27 14:23:56 +0200
committerAldrik Ramaekers <aldrikboy@gmail.com>2025-09-27 14:23:56 +0200
commitfa088bb60692ba02d30d39affa9a31d9e2b688e2 (patch)
treea2d51585c0f86407709b834bd7a82a5672d2c17b /include/administration.hpp
parentaa7b5ef6ab4f45d2e8e0caa7942db31fc60b3861 (diff)
ai service settings
Diffstat (limited to 'include/administration.hpp')
-rw-r--r--include/administration.hpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/include/administration.hpp b/include/administration.hpp
index e926aa6..145bb5d 100644
--- a/include/administration.hpp
+++ b/include/administration.hpp
@@ -35,6 +35,7 @@
#define MAX_LEN_TAXID 32
#define MAX_LEN_BUSINESSID 32
#define MAX_LEN_TAX_SECTION 16
+#define MAX_LEN_API_KEY 64
#define MAX_LEN_INCOME_STATEMENT_REPORT_QUARTERS 400
#define MAX_LEN_QUARTERLY_REPORT_PROJECTS 200
@@ -336,6 +337,18 @@ typedef void (*taxrate_changed_event)(tax_rate* rate);
typedef void (*costcenter_changed_event)(cost_center* cost_center);
typedef void (*project_changed_event)(project* project);
+typedef enum
+{
+ AI_PROVIDER_OPENAI = 0,
+} ai_provider;
+
+typedef struct
+{
+ ai_provider provider;
+ char api_key_public[MAX_LEN_API_KEY];
+ char api_key_private[MAX_LEN_API_KEY];
+} ai_service;
+
typedef struct
{
contact company_info; // Company info used for invoices. User cannot create invoices when this is empty/invalid.
@@ -354,6 +367,9 @@ typedef struct
u32 invoice_count;
u32 expense_count;
list_t invoices;
+
+ // Service providers.
+ ai_service ai_service;
} administration;
// Add/Update result codes.
@@ -409,10 +425,12 @@ s32 administration_get_next_id();
s32 administration_get_next_sequence_number();
char* administration_get_currency_symbol_for_currency(char* code);
char* administration_get_default_currency();
+ai_service administration_get_ai_service();
void administration_set_file_path(char* path);
void administration_set_next_id(s32 nr);
void administration_set_next_sequence_number(s32 nr);
+void administration_set_ai_service(ai_service provider);
void administration_create_income_statement(income_statement* statement);
bool administration_can_create_invoices();