summaryrefslogtreecommitdiff
path: root/include/administration.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/administration.hpp')
-rw-r--r--include/administration.hpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/include/administration.hpp b/include/administration.hpp
index 5c39d59..2179301 100644
--- a/include/administration.hpp
+++ b/include/administration.hpp
@@ -44,6 +44,8 @@
#define MAX_LEN_PROJECT_REPORT_COSTCENTERS 50
#define MAX_BILLING_ITEMS 50
+#define MAX_AI_SERVICES AI_PROVIDER_END
+
#define ACTIVITY_MAX_PARAMS 3
#define ACTIVITY_USER "user"
#define ACTIVITY_SYSTEM "system"
@@ -394,7 +396,8 @@ typedef void (*project_changed_event)(project* project);
typedef enum
{
AI_PROVIDER_OPENAI = 0,
- //AI_PROVIDER_DEEPSEEK = 1,
+ AI_PROVIDER_GEMINI = 1,
+ AI_PROVIDER_PERPLEXITY = 2,
AI_PROVIDER_END,
} ai_provider;
@@ -403,7 +406,7 @@ typedef struct
{
ai_provider provider;
char model_name[MAX_LEN_SHORT_DESC];
- char api_key_public[MAX_LEN_API_KEY];
+ char api_key_public[MAX_LEN_API_KEY]; // @TODO rename to api_key
} ai_service;
typedef enum
@@ -449,7 +452,10 @@ typedef struct
list_t invoices;
// Service providers.
- ai_service ai_service;
+ u32 ai_service_count;
+ ai_service all_ai_services[MAX_AI_SERVICES];
+ ai_service ai_service; // @TODO rename to active_ai_service
+
email_service email_service;
} ledger;
@@ -518,12 +524,14 @@ namespace administration {
char* get_currency_symbol_for_currency(char* code);
char* get_default_currency();
time_t get_default_invoice_expire_duration();
- ai_service get_ai_service();
+ ai_service get_active_ai_service();
+ ai_service get_ai_service(ai_provider provider);
email_service get_email_service();
void set_file_path(char* path);
void set_next_id(s32 nr);
void set_next_sequence_number(s32 nr);
- void set_ai_service(ai_service provider);
+ void set_active_ai_service(ai_service provider);
+ void import_ai_service(ai_service provider);
void set_email_service(email_service provider);
void create_income_statement(income_statement* statement);
bool company_info_is_valid();