From fa088bb60692ba02d30d39affa9a31d9e2b688e2 Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Sat, 27 Sep 2025 14:23:56 +0200 Subject: ai service settings --- include/administration.hpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'include/administration.hpp') 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(); -- cgit v1.2.3-70-g09d2