]> uap-core.de Git - note.git/commitdiff
add Resource type
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Tue, 18 Feb 2025 22:48:25 +0000 (23:48 +0100)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Tue, 18 Feb 2025 22:48:25 +0000 (23:48 +0100)
application/store_sqlite.c
application/types.c
application/types.h

index 728c9211a00806e773ab1ba9033810a987237fa1..9676c912c25db1942c46c6398a05e8c484bf4461 100644 (file)
     "foreign key (default_collection_id) references collections(collection_id), " \
     "unique (host, user, profile_name)" \
     ");"
+#define SQL_CREATE_TABLE_RESOURCE "create table resources( " \
+    "resource_id             integer primary key, " \
+    "parent_id               integer, " \
+    "name                    text, " \
+    "title                   text, " \
+    "lastmodified            text, " \
+    "creationdate            text, " \
+    "contentlength           integer, " \
+    "content                 text, " \
+    "bin_content             blob, " \
+    "note_item               integer, " \
+    "created_by              text, " \
+    "foreign key (parent_id) references collections(collection_id), " \
+    "unique (parent_id, name) " \
+    ");"
 
 int store_sqlite_init_db(DBUConnection *connection) {
     char *sql[] = { 
         SQL_CREATE_TABLE_NOTEDB,
         SQL_CREATE_TABLE_REPOSITORIES,
         SQL_CREATE_TABLE_COLLECTIONS,
-        SQL_CREATE_TABLE_USER_SETTINGS
+        SQL_CREATE_TABLE_USER_SETTINGS,
+        SQL_CREATE_TABLE_RESOURCE
     };
     int nsql = sizeof(sql) / sizeof(char*);
     
index a6fc2ee1a1e7fa07172d67673cbb7e4ea88a54f1..2fc3a846ecac52272dba052c35d920c6dd763767 100644 (file)
@@ -33,6 +33,7 @@ static DBUContext *ctx;
 DBUClass *usersettings_class;
 DBUClass *repository_class;
 DBUClass *collection_class;
+DBUClass *resource_class;
 
 DBUContext* get_dbu_context() {
     return ctx;
@@ -55,4 +56,17 @@ void register_types() {
     dbuClassAdd(collection_class, Collection, name);
     dbuClassAdd(collection_class, Collection, display_name);
     dbuClassAdd(collection_class, Collection, type);
+    
+    resource_class = dbuRegisterClass(ctx, "resources", Resource, resource_id);
+    dbuClassAdd(resource_class, Resource, resource_id);
+    dbuClassAdd(resource_class, Resource, parent_id);
+    dbuClassAdd(resource_class, Resource, name);
+    dbuClassAdd(resource_class, Resource, title);
+    dbuClassAdd(resource_class, Resource, lastmodified);
+    dbuClassAdd(resource_class, Resource, creationdate);
+    dbuClassAdd(resource_class, Resource, contentlength);
+    dbuClassAdd(resource_class, Resource, content);
+    dbuClassAdd(resource_class, Resource, bin_content);
+    dbuClassAdd(resource_class, Resource, note_item);
+    dbuClassAdd(resource_class, Resource, created_by);
 }
\ No newline at end of file
index f6de2d8dfbb3c9603e59b71a40866fa6ab94f057..41d08e2e647ac15378442a0e5c3d19137cfaae23 100644 (file)
@@ -30,6 +30,7 @@
 #define APP_TYPES_H
 
 #include "../dbutils/dbutils/dbutils.h"
+#include <cx/string.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -38,6 +39,7 @@ extern "C" {
 typedef struct UserSettings UserSettings;
 typedef struct Repository   Repository;
 typedef struct Collection   Collection;
+typedef struct Resource     Resource;
     
 struct UserSettings {
     char    *host;
@@ -70,9 +72,24 @@ struct Collection {
     CxList     *children;
 };
 
+struct Resource {
+    int64_t    resource_id;
+    int64_t    parent_id;
+    char       *name;
+    char       *title;
+    char       *lastmodified;
+    char       *creationdate;
+    uint64_t   contentlength;
+    cxmutstr   content;
+    cxmutstr   bin_content;
+    bool       note_item;
+    char       *created_by;
+};
+
 extern DBUClass *usersettings_class;
 extern DBUClass *repository_class;
 extern DBUClass *collection_class;
+extern DBUClass *resource_class;
 
 void register_types();