Files
MrbWebLibre/app/drift_schemas/web_feed/drift_schema_v1.json
T

738 lines
22 KiB
JSON

{
"_meta": {
"description": "This file contains a serialized version of schema entities for drift.",
"version": "1.3.0"
},
"options": {
"store_date_time_values_as_text": false
},
"entities": [
{
"id": 0,
"references": [],
"type": "table",
"data": {
"name": "feed",
"was_declared_in_moor": true,
"columns": [
{
"name": "url",
"getter_name": "url",
"moor_type": "string",
"nullable": false,
"customConstraints": "PRIMARY KEY NOT NULL",
"default_dart": null,
"default_client_dart": null,
"dsl_features": [
"primary-key"
],
"type_converter": {
"dart_expr": "const UriConverter()",
"dart_type_name": "Uri"
}
},
{
"name": "title",
"getter_name": "title",
"moor_type": "string",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "description",
"getter_name": "description",
"moor_type": "string",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "icon",
"getter_name": "icon",
"moor_type": "string",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": [],
"type_converter": {
"dart_expr": "const UriConverterNullable()",
"dart_type_name": "Uri?"
}
},
{
"name": "site_link",
"getter_name": "siteLink",
"moor_type": "string",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": [],
"type_converter": {
"dart_expr": "const UriConverterNullable()",
"dart_type_name": "Uri?"
}
},
{
"name": "authors",
"getter_name": "authors",
"moor_type": "string",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": [],
"type_converter": {
"dart_expr": "const FeedAuthorsConverter()",
"dart_type_name": "List<FeedAuthor>"
}
},
{
"name": "tags",
"getter_name": "tags",
"moor_type": "string",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": [],
"type_converter": {
"dart_expr": "const FeedCategoriesConverter()",
"dart_type_name": "List<FeedCategory>"
}
},
{
"name": "last_fetched",
"getter_name": "lastFetched",
"moor_type": "dateTime",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
}
],
"is_virtual": false,
"without_rowid": false,
"constraints": []
}
},
{
"id": 1,
"references": [
0
],
"type": "table",
"data": {
"name": "article",
"was_declared_in_moor": true,
"columns": [
{
"name": "id",
"getter_name": "id",
"moor_type": "string",
"nullable": false,
"customConstraints": "PRIMARY KEY NOT NULL",
"default_dart": null,
"default_client_dart": null,
"dsl_features": [
"primary-key"
]
},
{
"name": "feed_id",
"getter_name": "feedId",
"moor_type": "string",
"nullable": false,
"customConstraints": "NOT NULL REFERENCES feed(url)ON DELETE CASCADE",
"default_dart": null,
"default_client_dart": null,
"dsl_features": [
{
"foreign_key": {
"to": {
"table": "feed",
"column": "url"
},
"initially_deferred": false,
"on_update": null,
"on_delete": "cascade"
}
}
],
"type_converter": {
"dart_expr": "const UriConverter()",
"dart_type_name": "Uri"
}
},
{
"name": "fetched",
"getter_name": "fetched",
"moor_type": "dateTime",
"nullable": false,
"customConstraints": "NOT NULL",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "created",
"getter_name": "created",
"moor_type": "dateTime",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "updated",
"getter_name": "updated",
"moor_type": "dateTime",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "last_read",
"getter_name": "lastRead",
"moor_type": "dateTime",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "title",
"getter_name": "title",
"moor_type": "string",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "authors",
"getter_name": "authors",
"moor_type": "string",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": [],
"type_converter": {
"dart_expr": "const FeedAuthorsConverter()",
"dart_type_name": "List<FeedAuthor>"
}
},
{
"name": "tags",
"getter_name": "tags",
"moor_type": "string",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": [],
"type_converter": {
"dart_expr": "const FeedCategoriesConverter()",
"dart_type_name": "List<FeedCategory>"
}
},
{
"name": "links",
"getter_name": "links",
"moor_type": "string",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": [],
"type_converter": {
"dart_expr": "const FeedLinksConverter()",
"dart_type_name": "List<FeedLink>"
}
},
{
"name": "summaryHtml",
"getter_name": "summaryHtml",
"moor_type": "string",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "summaryMarkdown",
"getter_name": "summaryMarkdown",
"moor_type": "string",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "summaryPlain",
"getter_name": "summaryPlain",
"moor_type": "string",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "contentHtml",
"getter_name": "contentHtml",
"moor_type": "string",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "contentMarkdown",
"getter_name": "contentMarkdown",
"moor_type": "string",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "contentPlain",
"getter_name": "contentPlain",
"moor_type": "string",
"nullable": true,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
}
],
"is_virtual": false,
"without_rowid": false,
"constraints": []
}
},
{
"id": 2,
"references": [
1,
0
],
"type": "view",
"data": {
"name": "article_view",
"sql": "CREATE VIEW article_view AS SELECT a.*, f.icon, f.site_link FROM article AS a INNER JOIN feed AS f ON f.url = a.feed_id",
"dart_info_name": "ArticleView",
"columns": [
{
"name": "id",
"getter_name": "id",
"moor_type": "string",
"nullable": false,
"customConstraints": null,
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "feed_id",
"getter_name": "feedId",
"moor_type": "string",
"nullable": false,
"customConstraints": null,
"default_dart": null,
"default_client_dart": null,
"dsl_features": [],
"type_converter": {
"dart_expr": "const UriConverter()",
"dart_type_name": "Uri"
}
},
{
"name": "fetched",
"getter_name": "fetched",
"moor_type": "dateTime",
"nullable": false,
"customConstraints": null,
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "created",
"getter_name": "created",
"moor_type": "dateTime",
"nullable": true,
"customConstraints": null,
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "updated",
"getter_name": "updated",
"moor_type": "dateTime",
"nullable": true,
"customConstraints": null,
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "last_read",
"getter_name": "lastRead",
"moor_type": "dateTime",
"nullable": true,
"customConstraints": null,
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "title",
"getter_name": "title",
"moor_type": "string",
"nullable": true,
"customConstraints": null,
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "authors",
"getter_name": "authors",
"moor_type": "string",
"nullable": true,
"customConstraints": null,
"default_dart": null,
"default_client_dart": null,
"dsl_features": [],
"type_converter": {
"dart_expr": "const FeedAuthorsConverter()",
"dart_type_name": "List<FeedAuthor>"
}
},
{
"name": "tags",
"getter_name": "tags",
"moor_type": "string",
"nullable": true,
"customConstraints": null,
"default_dart": null,
"default_client_dart": null,
"dsl_features": [],
"type_converter": {
"dart_expr": "const FeedCategoriesConverter()",
"dart_type_name": "List<FeedCategory>"
}
},
{
"name": "links",
"getter_name": "links",
"moor_type": "string",
"nullable": true,
"customConstraints": null,
"default_dart": null,
"default_client_dart": null,
"dsl_features": [],
"type_converter": {
"dart_expr": "const FeedLinksConverter()",
"dart_type_name": "List<FeedLink>"
}
},
{
"name": "summaryHtml",
"getter_name": "summaryHtml",
"moor_type": "string",
"nullable": true,
"customConstraints": null,
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "summaryMarkdown",
"getter_name": "summaryMarkdown",
"moor_type": "string",
"nullable": true,
"customConstraints": null,
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "summaryPlain",
"getter_name": "summaryPlain",
"moor_type": "string",
"nullable": true,
"customConstraints": null,
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "contentHtml",
"getter_name": "contentHtml",
"moor_type": "string",
"nullable": true,
"customConstraints": null,
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "contentMarkdown",
"getter_name": "contentMarkdown",
"moor_type": "string",
"nullable": true,
"customConstraints": null,
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "contentPlain",
"getter_name": "contentPlain",
"moor_type": "string",
"nullable": true,
"customConstraints": null,
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "icon",
"getter_name": "icon",
"moor_type": "string",
"nullable": true,
"customConstraints": null,
"default_dart": null,
"default_client_dart": null,
"dsl_features": [],
"type_converter": {
"dart_expr": "const UriConverterNullable()",
"dart_type_name": "Uri?"
}
},
{
"name": "site_link",
"getter_name": "siteLink",
"moor_type": "string",
"nullable": true,
"customConstraints": null,
"default_dart": null,
"default_client_dart": null,
"dsl_features": [],
"type_converter": {
"dart_expr": "const UriConverterNullable()",
"dart_type_name": "Uri?"
}
}
]
}
},
{
"id": 3,
"references": [
1
],
"type": "index",
"data": {
"on": 1,
"name": "article_feed_id",
"sql": "CREATE INDEX article_feed_id ON article (feed_id);",
"unique": false,
"columns": []
}
},
{
"id": 4,
"references": [
1
],
"type": "table",
"data": {
"name": "article_fts",
"was_declared_in_moor": true,
"columns": [
{
"name": "title",
"getter_name": "title",
"moor_type": "string",
"nullable": false,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "summaryPlain",
"getter_name": "summaryPlain",
"moor_type": "string",
"nullable": false,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
},
{
"name": "contentPlain",
"getter_name": "contentPlain",
"moor_type": "string",
"nullable": false,
"customConstraints": "",
"default_dart": null,
"default_client_dart": null,
"dsl_features": []
}
],
"is_virtual": true,
"create_virtual_stmt": "CREATE VIRTUAL TABLE \"article_fts\" USING fts5(title, summaryPlain, contentPlain, content=article, tokenize=\"trigram\")",
"without_rowid": false,
"constraints": []
}
},
{
"id": 5,
"references": [
1,
4
],
"type": "trigger",
"data": {
"on": 1,
"references_in_body": [
1,
4
],
"name": "article_after_insert",
"sql": "CREATE TRIGGER article_after_insert AFTER INSERT ON article BEGIN\n INSERT INTO \n article_fts(rowid, title, summaryPlain, contentPlain) \n VALUES (new.rowid, new.title, new.summaryPlain, new.contentPlain);\nEND;"
}
},
{
"id": 6,
"references": [
1,
4
],
"type": "trigger",
"data": {
"on": 1,
"references_in_body": [
1,
4
],
"name": "article_after_delete",
"sql": "CREATE TRIGGER article_after_delete AFTER DELETE ON article BEGIN\n INSERT INTO \n article_fts(article_fts, rowid, title, summaryPlain, contentPlain) \n VALUES('delete', old.rowid, old.title, old.summaryPlain, old.contentPlain);\nEND;"
}
},
{
"id": 7,
"references": [
1,
4
],
"type": "trigger",
"data": {
"on": 1,
"references_in_body": [
1,
4
],
"name": "article_after_update",
"sql": "CREATE TRIGGER article_after_update AFTER UPDATE ON article BEGIN\n INSERT INTO \n article_fts(article_fts, rowid, title, summaryPlain, contentPlain) \n VALUES('delete', old.rowid, old.title, old.summaryPlain, old.contentPlain);\n INSERT INTO \n article_fts(rowid, title, summaryPlain, contentPlain) \n VALUES (new.rowid, new.title, new.summaryPlain, new.contentPlain);\nEND;"
}
}
],
"fixed_sql": [
{
"name": "feed",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TABLE IF NOT EXISTS \"feed\" (\"url\" TEXT PRIMARY KEY NOT NULL, \"title\" TEXT, \"description\" TEXT, \"icon\" TEXT, \"site_link\" TEXT, \"authors\" TEXT, \"tags\" TEXT, \"last_fetched\" INTEGER);"
}
]
},
{
"name": "article",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TABLE IF NOT EXISTS \"article\" (\"id\" TEXT PRIMARY KEY NOT NULL, \"feed_id\" TEXT NOT NULL REFERENCES feed(url)ON DELETE CASCADE, \"fetched\" INTEGER NOT NULL, \"created\" INTEGER, \"updated\" INTEGER, \"last_read\" INTEGER, \"title\" TEXT, \"authors\" TEXT, \"tags\" TEXT, \"links\" TEXT, \"summaryHtml\" TEXT, \"summaryMarkdown\" TEXT, \"summaryPlain\" TEXT, \"contentHtml\" TEXT, \"contentMarkdown\" TEXT, \"contentPlain\" TEXT);"
}
]
},
{
"name": "article_view",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE VIEW article_view AS SELECT a.*, f.icon, f.site_link FROM article AS a INNER JOIN feed AS f ON f.url = a.feed_id"
}
]
},
{
"name": "article_feed_id",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE INDEX article_feed_id ON article (feed_id)"
}
]
},
{
"name": "article_fts",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE VIRTUAL TABLE IF NOT EXISTS \"article_fts\" USING fts5(title, summaryPlain, contentPlain, content=article, tokenize=\"trigram\");"
}
]
},
{
"name": "article_after_insert",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TRIGGER article_after_insert AFTER INSERT ON article BEGIN INSERT INTO article_fts (\"rowid\", title, summaryPlain, contentPlain) VALUES (new.\"rowid\", new.title, new.summaryPlain, new.contentPlain);END"
}
]
},
{
"name": "article_after_delete",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TRIGGER article_after_delete AFTER DELETE ON article BEGIN INSERT INTO article_fts (article_fts, \"rowid\", title, summaryPlain, contentPlain) VALUES ('delete', old.\"rowid\", old.title, old.summaryPlain, old.contentPlain);END"
}
]
},
{
"name": "article_after_update",
"sql": [
{
"dialect": "sqlite",
"sql": "CREATE TRIGGER article_after_update AFTER UPDATE ON article BEGIN INSERT INTO article_fts (article_fts, \"rowid\", title, summaryPlain, contentPlain) VALUES ('delete', old.\"rowid\", old.title, old.summaryPlain, old.contentPlain);INSERT INTO article_fts (\"rowid\", title, summaryPlain, contentPlain) VALUES (new.\"rowid\", new.title, new.summaryPlain, new.contentPlain);END"
}
]
}
]
}