summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/administration.hpp18
-rw-r--r--include/file_templates.hpp5
2 files changed, 23 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();
diff --git a/include/file_templates.hpp b/include/file_templates.hpp
index 8571368..226ae31 100644
--- a/include/file_templates.hpp
+++ b/include/file_templates.hpp
@@ -63,6 +63,11 @@ const char* administration_save_template =
" <NextId>{{NEXT_ID}}</NextId>\n"
" <NextSequenceNumber>{{NEXT_SEQUENCE_NUMBER}}</NextSequenceNumber>\n"
" <ProgramVersion>{{PROGRAM_VERSION}}</ProgramVersion>\n"
+" <AIService>\n"
+" <Provider>{{AI_SERVICE_PROVIDER}}</Provider>\n"
+" <PublicKey>{{AI_SERVICE_PUBLIC_KEY}}</PublicKey>\n"
+" <PrivateKey>{{AI_SERVICE_PRIVATE_KEY}}</PrivateKey>\n"
+" </AIService>\n"
"</Administration>";
const char* peppol_invoice_tax_subtotal_template =