diff options
| author | Aldrik Ramaekers <aldrik@mailbox.org> | 2025-12-27 17:25:41 +0100 |
|---|---|---|
| committer | Aldrik Ramaekers <aldrik@mailbox.org> | 2025-12-27 17:25:41 +0100 |
| commit | 7c3a271feea4b3693bf93a47924f7c682585e179 (patch) | |
| tree | b72a1f3f2780f9f22f679e18f5d1780541cc040b /include | |
| parent | 28c730a2e35ce81634dd4d47bf8e92e4552ec17c (diff) | |
mail provider settings ui
Diffstat (limited to 'include')
| -rw-r--r-- | include/administration.hpp | 16 | ||||
| -rw-r--r-- | include/file_templates.hpp | 4 | ||||
| -rw-r--r-- | include/importer.hpp | 9 |
3 files changed, 28 insertions, 1 deletions
diff --git a/include/administration.hpp b/include/administration.hpp index 31044f5..4f276ad 100644 --- a/include/administration.hpp +++ b/include/administration.hpp @@ -400,6 +400,19 @@ typedef struct char api_key_public[MAX_LEN_API_KEY]; } ai_service; +typedef enum +{ + EMAIL_PROVIDER_MAILERSEND = 0, + + EMAIL_PROVIDER_END, +} email_provider; + +typedef struct +{ + email_provider provider; + char api_key[MAX_LEN_API_KEY]; +} email_service; + typedef struct { time_t timestamp; @@ -433,6 +446,7 @@ typedef struct // Service providers. ai_service ai_service; + email_service email_service; } ledger; // Add/Update result codes. @@ -501,10 +515,12 @@ namespace administration { char* get_default_currency(); time_t get_default_invoice_expire_duration(); ai_service get_ai_service(); + 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_email_service(email_service provider); void create_income_statement(income_statement* statement); bool can_create_invoices(); diff --git a/include/file_templates.hpp b/include/file_templates.hpp index 15637a7..c5e0191 100644 --- a/include/file_templates.hpp +++ b/include/file_templates.hpp @@ -71,6 +71,10 @@ namespace file_template { " <PublicKey>{{AI_SERVICE_PUBLIC_KEY}}</PublicKey>\n" " <Model>{{AI_SERVICE_MODEL}}</Model>\n" " </AIService>\n" + " <EmailService>\n" + " <Provider>{{EMAIL_SERVICE_PROVIDER}}</Provider>\n" + " <PublicKey>{{EMAIL_SERVICE_KEY}}</PublicKey>\n" + " </EmailService>\n" "</Administration>"; static const char* peppol_invoice_tax_subtotal_template = diff --git a/include/importer.hpp b/include/importer.hpp index 1d97c12..8db70ef 100644 --- a/include/importer.hpp +++ b/include/importer.hpp @@ -30,7 +30,6 @@ typedef uint32_t i_err; namespace importer { - typedef enum { IMPORT_STARTING, @@ -71,10 +70,18 @@ namespace importer { bool (*get_available_models)(model_list_request* buffer); } ai_provider_impl; + typedef struct + { + char* provider_name; + bool (*send_email)(char* sender, char* recipients, u32 recipients_count, const char* subject, const char* text); + } email_provider_impl; + const char* error_to_string(i_err error); const char* status_to_string(status status); ai_provider_impl get_ai_provider_implementation(ai_provider provider); + email_provider_impl get_email_provider_implementation(email_provider provider); + invoice_request* ai_document_to_invoice(char* file_path); model_list_request* ai_get_available_models(ai_provider service); }
\ No newline at end of file |
