From: Olaf Wintermann Date: Tue, 18 Feb 2025 22:48:25 +0000 (+0100) Subject: add Resource type X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;h=082f6c99e71496bc23b6c1f607eb462d38e22433;p=note.git add Resource type --- diff --git a/application/store_sqlite.c b/application/store_sqlite.c index 728c921..9676c91 100644 --- a/application/store_sqlite.c +++ b/application/store_sqlite.c @@ -67,13 +67,29 @@ "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*); diff --git a/application/types.c b/application/types.c index a6fc2ee..2fc3a84 100644 --- a/application/types.c +++ b/application/types.c @@ -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 diff --git a/application/types.h b/application/types.h index f6de2d8..41d08e2 100644 --- a/application/types.h +++ b/application/types.h @@ -30,6 +30,7 @@ #define APP_TYPES_H #include "../dbutils/dbutils/dbutils.h" +#include #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();