{ "_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": "bang", "was_declared_in_moor": true, "columns": [ { "name": "trigger", "getter_name": "trigger", "moor_type": "string", "nullable": false, "customConstraints": "NOT NULL", "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "group", "getter_name": "group", "moor_type": "int", "nullable": false, "customConstraints": "NOT NULL", "default_dart": null, "default_client_dart": null, "dsl_features": [], "type_converter": { "dart_expr": "const EnumIndexConverter(BangGroup.values)", "dart_type_name": "BangGroup" } }, { "name": "website_name", "getter_name": "websiteName", "moor_type": "string", "nullable": false, "customConstraints": "NOT NULL", "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "domain", "getter_name": "domain", "moor_type": "string", "nullable": false, "customConstraints": "NOT NULL", "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "url_template", "getter_name": "urlTemplate", "moor_type": "string", "nullable": false, "customConstraints": "NOT NULL", "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "category", "getter_name": "category", "moor_type": "string", "nullable": true, "customConstraints": "", "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "sub_category", "getter_name": "subCategory", "moor_type": "string", "nullable": true, "customConstraints": "", "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "format", "getter_name": "format", "moor_type": "string", "nullable": true, "customConstraints": "", "default_dart": null, "default_client_dart": null, "dsl_features": [], "type_converter": { "dart_expr": "const BangFormatConverter()", "dart_type_name": "Set?" } }, { "name": "additional_triggers", "getter_name": "additionalTriggers", "moor_type": "string", "nullable": true, "customConstraints": "", "default_dart": null, "default_client_dart": null, "dsl_features": [], "type_converter": { "dart_expr": "const TriggerListConverter()", "dart_type_name": "Set?" } }, { "name": "searxng_api", "getter_name": "searxngApi", "moor_type": "bool", "nullable": false, "customConstraints": "NOT NULL DEFAULT FALSE", "default_dart": "const CustomExpression('FALSE')", "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [ "PRIMARY KEY(\"trigger\", \"group\")" ], "explicit_pk": [ "trigger", "group" ] } }, { "id": 1, "references": [ 0 ], "type": "table", "data": { "name": "bang_triggers", "was_declared_in_moor": true, "columns": [ { "name": "trigger", "getter_name": "trigger", "moor_type": "string", "nullable": false, "customConstraints": "NOT NULL", "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "group", "getter_name": "group", "moor_type": "int", "nullable": false, "customConstraints": "NOT NULL", "default_dart": null, "default_client_dart": null, "dsl_features": [], "type_converter": { "dart_expr": "const EnumIndexConverter(BangGroup.values)", "dart_type_name": "BangGroup" } }, { "name": "additional_trigger", "getter_name": "additionalTrigger", "moor_type": "string", "nullable": false, "customConstraints": "NOT NULL", "default_dart": null, "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [ "PRIMARY KEY(\"trigger\", \"group\", additional_trigger)", "FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE" ], "explicit_pk": [ "trigger", "group", "additional_trigger" ] } }, { "id": 2, "references": [ 1 ], "type": "index", "data": { "on": 1, "name": "idx_bang_triggers_lookup", "sql": "CREATE INDEX idx_bang_triggers_lookup ON bang_triggers (additional_trigger, \"group\");", "unique": false, "columns": [] } }, { "id": 3, "references": [ 0, 1 ], "type": "trigger", "data": { "on": 0, "references_in_body": [ 0, 1 ], "name": "bang_triggers_after_insert", "sql": "CREATE TRIGGER bang_triggers_after_insert AFTER INSERT ON bang \nWHEN new.additional_triggers IS NOT NULL\nBEGIN\n INSERT INTO bang_triggers(\"trigger\", \"group\", additional_trigger)\n SELECT \n new.\"trigger\",\n new.\"group\",\n json_each.value\n FROM json_each(new.additional_triggers);\nEND;" } }, { "id": 4, "references": [ 0, 1 ], "type": "trigger", "data": { "on": 0, "references_in_body": [ 0, 1 ], "name": "bang_triggers_after_update", "sql": "CREATE TRIGGER bang_triggers_after_update AFTER UPDATE ON bang BEGIN\n -- Delete old additional triggers\n DELETE FROM bang_triggers \n WHERE \"trigger\" = old.\"trigger\" AND \"group\" = old.\"group\";\n\n -- Insert new additional triggers if they exist\n INSERT INTO bang_triggers(\"trigger\", \"group\", additional_trigger)\n SELECT \n new.\"trigger\",\n new.\"group\",\n json_each.value\n FROM json_each(new.additional_triggers)\n WHERE new.additional_triggers IS NOT NULL;\nEND;" } }, { "id": 5, "references": [], "type": "table", "data": { "name": "bang_sync", "was_declared_in_moor": true, "columns": [ { "name": "group", "getter_name": "group", "moor_type": "int", "nullable": false, "customConstraints": "PRIMARY KEY NOT NULL", "default_dart": null, "default_client_dart": null, "dsl_features": [ "primary-key" ], "type_converter": { "dart_expr": "const EnumIndexConverter(BangGroup.values)", "dart_type_name": "BangGroup" } }, { "name": "last_sync", "getter_name": "lastSync", "moor_type": "dateTime", "nullable": false, "customConstraints": "NOT NULL", "default_dart": null, "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [] } }, { "id": 6, "references": [ 0 ], "type": "table", "data": { "name": "bang_frequency", "was_declared_in_moor": true, "columns": [ { "name": "trigger", "getter_name": "trigger", "moor_type": "string", "nullable": false, "customConstraints": "NOT NULL", "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "group", "getter_name": "group", "moor_type": "int", "nullable": false, "customConstraints": "NOT NULL", "default_dart": null, "default_client_dart": null, "dsl_features": [], "type_converter": { "dart_expr": "const EnumIndexConverter(BangGroup.values)", "dart_type_name": "BangGroup" } }, { "name": "frequency", "getter_name": "frequency", "moor_type": "int", "nullable": false, "customConstraints": "NOT NULL", "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "last_used", "getter_name": "lastUsed", "moor_type": "dateTime", "nullable": false, "customConstraints": "NOT NULL", "default_dart": null, "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [ "PRIMARY KEY(\"trigger\", \"group\")", "FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE" ], "explicit_pk": [ "trigger", "group" ] } }, { "id": 7, "references": [ 0 ], "type": "table", "data": { "name": "bang_history", "was_declared_in_moor": true, "columns": [ { "name": "search_query", "getter_name": "searchQuery", "moor_type": "string", "nullable": false, "customConstraints": "UNIQUE NOT NULL", "default_dart": null, "default_client_dart": null, "dsl_features": [ "unique" ] }, { "name": "trigger", "getter_name": "trigger", "moor_type": "string", "nullable": false, "customConstraints": "NOT NULL", "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "group", "getter_name": "group", "moor_type": "int", "nullable": false, "customConstraints": "NOT NULL", "default_dart": null, "default_client_dart": null, "dsl_features": [], "type_converter": { "dart_expr": "const EnumIndexConverter(BangGroup.values)", "dart_type_name": "BangGroup" } }, { "name": "search_date", "getter_name": "searchDate", "moor_type": "dateTime", "nullable": false, "customConstraints": "NOT NULL", "default_dart": null, "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [ "FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE" ] } }, { "id": 8, "references": [ 0 ], "type": "table", "data": { "name": "bang_fts", "was_declared_in_moor": true, "columns": [ { "name": "trigger", "getter_name": "trigger", "moor_type": "string", "nullable": false, "customConstraints": "", "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "website_name", "getter_name": "websiteName", "moor_type": "string", "nullable": false, "customConstraints": "", "default_dart": null, "default_client_dart": null, "dsl_features": [] } ], "is_virtual": true, "create_virtual_stmt": "CREATE VIRTUAL TABLE \"bang_fts\" USING fts5(trigger, website_name, content=bang, prefix='2 3')", "without_rowid": false, "constraints": [] } }, { "id": 9, "references": [ 1 ], "type": "table", "data": { "name": "bang_triggers_fts", "was_declared_in_moor": true, "columns": [ { "name": "additional_trigger", "getter_name": "additionalTrigger", "moor_type": "string", "nullable": false, "customConstraints": "", "default_dart": null, "default_client_dart": null, "dsl_features": [] } ], "is_virtual": true, "create_virtual_stmt": "CREATE VIRTUAL TABLE \"bang_triggers_fts\" USING fts5(additional_trigger, content=bang_triggers, prefix='2 3')", "without_rowid": false, "constraints": [] } }, { "id": 10, "references": [ 0, 6 ], "type": "view", "data": { "name": "bang_data_view", "sql": "CREATE VIEW bang_data_view AS SELECT b.*, bf.frequency, bf.last_used FROM bang AS b LEFT JOIN bang_frequency AS bf ON b.\"trigger\" = bf.\"trigger\" AND b.\"group\" = bf.\"group\"", "dart_info_name": "BangDataView", "columns": [ { "name": "trigger", "getter_name": "trigger", "moor_type": "string", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "group", "getter_name": "group", "moor_type": "int", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [], "type_converter": { "dart_expr": "const EnumIndexConverter(BangGroup.values)", "dart_type_name": "BangGroup" } }, { "name": "website_name", "getter_name": "websiteName", "moor_type": "string", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "domain", "getter_name": "domain", "moor_type": "string", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "url_template", "getter_name": "urlTemplate", "moor_type": "string", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "category", "getter_name": "category", "moor_type": "string", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "sub_category", "getter_name": "subCategory", "moor_type": "string", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "format", "getter_name": "format", "moor_type": "string", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [], "type_converter": { "dart_expr": "const BangFormatConverter()", "dart_type_name": "Set?" } }, { "name": "additional_triggers", "getter_name": "additionalTriggers", "moor_type": "string", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [], "type_converter": { "dart_expr": "const TriggerListConverter()", "dart_type_name": "Set?" } }, { "name": "searxng_api", "getter_name": "searxngApi", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"searxng_api\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"searxng_api\" IN (0, 1))" }, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "frequency", "getter_name": "frequency", "moor_type": "int", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "last_used", "getter_name": "lastUsed", "moor_type": "dateTime", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] } ] } }, { "id": 11, "references": [ 0, 8 ], "type": "trigger", "data": { "on": 0, "references_in_body": [ 0, 8 ], "name": "bang_after_insert", "sql": "CREATE TRIGGER bang_after_insert AFTER INSERT ON bang BEGIN\n INSERT INTO \n bang_fts(rowid, \"trigger\", website_name) \n VALUES (new.rowid, new.\"trigger\", new.website_name);\nEND;" } }, { "id": 12, "references": [ 0, 8 ], "type": "trigger", "data": { "on": 0, "references_in_body": [ 0, 8 ], "name": "bang_after_delete", "sql": "CREATE TRIGGER bang_after_delete AFTER DELETE ON bang BEGIN\n INSERT INTO \n bang_fts(bang_fts, rowid, \"trigger\", website_name) \n VALUES('delete', old.rowid, old.\"trigger\", old.website_name);\nEND;" } }, { "id": 13, "references": [ 0, 8 ], "type": "trigger", "data": { "on": 0, "references_in_body": [ 0, 8 ], "name": "bang_after_update", "sql": "CREATE TRIGGER bang_after_update AFTER UPDATE ON bang BEGIN\n INSERT INTO \n bang_fts(bang_fts, rowid, \"trigger\", website_name) \n VALUES('delete', old.rowid, old.\"trigger\", old.website_name);\n INSERT INTO \n bang_fts(rowid, \"trigger\", website_name) \n VALUES (new.rowid, new.\"trigger\", new.website_name);\nEND;" } }, { "id": 14, "references": [ 1, 9 ], "type": "trigger", "data": { "on": 1, "references_in_body": [ 1, 9 ], "name": "bang_triggers_after_insert_fts", "sql": "CREATE TRIGGER bang_triggers_after_insert_fts AFTER INSERT ON bang_triggers BEGIN\n INSERT INTO \n bang_triggers_fts(rowid, additional_trigger) \n VALUES (new.rowid, new.additional_trigger);\nEND;" } }, { "id": 15, "references": [ 1, 9 ], "type": "trigger", "data": { "on": 1, "references_in_body": [ 1, 9 ], "name": "bang_triggers_after_delete_fts", "sql": "CREATE TRIGGER bang_triggers_after_delete_fts AFTER DELETE ON bang_triggers BEGIN\n INSERT INTO \n bang_triggers_fts(bang_triggers_fts, rowid, additional_trigger) \n VALUES('delete', old.rowid, old.additional_trigger);\nEND;" } }, { "id": 16, "references": [ 1, 9 ], "type": "trigger", "data": { "on": 1, "references_in_body": [ 1, 9 ], "name": "bang_triggers_after_update_fts", "sql": "CREATE TRIGGER bang_triggers_after_update_fts AFTER UPDATE ON bang_triggers BEGIN\n INSERT INTO \n bang_triggers_fts(bang_triggers_fts, rowid, additional_trigger) \n VALUES('delete', old.rowid, old.additional_trigger);\n INSERT INTO \n bang_triggers_fts(rowid, additional_trigger) \n VALUES (new.rowid, new.additional_trigger);\nEND;" } } ], "fixed_sql": [ { "name": "bang", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"bang\" (\"trigger\" TEXT NOT NULL, \"group\" INTEGER NOT NULL, \"website_name\" TEXT NOT NULL, \"domain\" TEXT NOT NULL, \"url_template\" TEXT NOT NULL, \"category\" TEXT, \"sub_category\" TEXT, \"format\" TEXT, \"additional_triggers\" TEXT, \"searxng_api\" INTEGER NOT NULL DEFAULT FALSE, PRIMARY KEY(\"trigger\", \"group\"));" } ] }, { "name": "bang_triggers", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"bang_triggers\" (\"trigger\" TEXT NOT NULL, \"group\" INTEGER NOT NULL, \"additional_trigger\" TEXT NOT NULL, PRIMARY KEY(\"trigger\", \"group\", additional_trigger), FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE);" } ] }, { "name": "idx_bang_triggers_lookup", "sql": [ { "dialect": "sqlite", "sql": "CREATE INDEX idx_bang_triggers_lookup ON bang_triggers (additional_trigger, \"group\")" } ] }, { "name": "bang_triggers_after_insert", "sql": [ { "dialect": "sqlite", "sql": "CREATE TRIGGER bang_triggers_after_insert AFTER INSERT ON bang WHEN new.additional_triggers IS NOT NULL BEGIN INSERT INTO bang_triggers (\"trigger\", \"group\", additional_trigger) SELECT new.\"trigger\", new.\"group\", json_each.value FROM json_each(new.additional_triggers);END" } ] }, { "name": "bang_triggers_after_update", "sql": [ { "dialect": "sqlite", "sql": "CREATE TRIGGER bang_triggers_after_update AFTER UPDATE ON bang BEGIN DELETE FROM bang_triggers WHERE \"trigger\" = old.\"trigger\" AND \"group\" = old.\"group\";INSERT INTO bang_triggers (\"trigger\", \"group\", additional_trigger) SELECT new.\"trigger\", new.\"group\", json_each.value FROM json_each(new.additional_triggers)WHERE new.additional_triggers IS NOT NULL;END" } ] }, { "name": "bang_sync", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"bang_sync\" (\"group\" INTEGER PRIMARY KEY NOT NULL, \"last_sync\" INTEGER NOT NULL);" } ] }, { "name": "bang_frequency", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"bang_frequency\" (\"trigger\" TEXT NOT NULL, \"group\" INTEGER NOT NULL, \"frequency\" INTEGER NOT NULL, \"last_used\" INTEGER NOT NULL, PRIMARY KEY(\"trigger\", \"group\"), FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE);" } ] }, { "name": "bang_history", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"bang_history\" (\"search_query\" TEXT UNIQUE NOT NULL, \"trigger\" TEXT NOT NULL, \"group\" INTEGER NOT NULL, \"search_date\" INTEGER NOT NULL, FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE);" } ] }, { "name": "bang_fts", "sql": [ { "dialect": "sqlite", "sql": "CREATE VIRTUAL TABLE IF NOT EXISTS \"bang_fts\" USING fts5(trigger, website_name, content=bang, prefix='2 3');" } ] }, { "name": "bang_triggers_fts", "sql": [ { "dialect": "sqlite", "sql": "CREATE VIRTUAL TABLE IF NOT EXISTS \"bang_triggers_fts\" USING fts5(additional_trigger, content=bang_triggers, prefix='2 3');" } ] }, { "name": "bang_data_view", "sql": [ { "dialect": "sqlite", "sql": "CREATE VIEW bang_data_view AS SELECT b.*, bf.frequency, bf.last_used FROM bang AS b LEFT JOIN bang_frequency AS bf ON b.\"trigger\" = bf.\"trigger\" AND b.\"group\" = bf.\"group\"" } ] }, { "name": "bang_after_insert", "sql": [ { "dialect": "sqlite", "sql": "CREATE TRIGGER bang_after_insert AFTER INSERT ON bang BEGIN INSERT INTO bang_fts (\"rowid\", \"trigger\", website_name) VALUES (new.\"rowid\", new.\"trigger\", new.website_name);END" } ] }, { "name": "bang_after_delete", "sql": [ { "dialect": "sqlite", "sql": "CREATE TRIGGER bang_after_delete AFTER DELETE ON bang BEGIN INSERT INTO bang_fts (bang_fts, \"rowid\", \"trigger\", website_name) VALUES ('delete', old.\"rowid\", old.\"trigger\", old.website_name);END" } ] }, { "name": "bang_after_update", "sql": [ { "dialect": "sqlite", "sql": "CREATE TRIGGER bang_after_update AFTER UPDATE ON bang BEGIN INSERT INTO bang_fts (bang_fts, \"rowid\", \"trigger\", website_name) VALUES ('delete', old.\"rowid\", old.\"trigger\", old.website_name);INSERT INTO bang_fts (\"rowid\", \"trigger\", website_name) VALUES (new.\"rowid\", new.\"trigger\", new.website_name);END" } ] }, { "name": "bang_triggers_after_insert_fts", "sql": [ { "dialect": "sqlite", "sql": "CREATE TRIGGER bang_triggers_after_insert_fts AFTER INSERT ON bang_triggers BEGIN INSERT INTO bang_triggers_fts (\"rowid\", additional_trigger) VALUES (new.\"rowid\", new.additional_trigger);END" } ] }, { "name": "bang_triggers_after_delete_fts", "sql": [ { "dialect": "sqlite", "sql": "CREATE TRIGGER bang_triggers_after_delete_fts AFTER DELETE ON bang_triggers BEGIN INSERT INTO bang_triggers_fts (bang_triggers_fts, \"rowid\", additional_trigger) VALUES ('delete', old.\"rowid\", old.additional_trigger);END" } ] }, { "name": "bang_triggers_after_update_fts", "sql": [ { "dialect": "sqlite", "sql": "CREATE TRIGGER bang_triggers_after_update_fts AFTER UPDATE ON bang_triggers BEGIN INSERT INTO bang_triggers_fts (bang_triggers_fts, \"rowid\", additional_trigger) VALUES ('delete', old.\"rowid\", old.additional_trigger);INSERT INTO bang_triggers_fts (\"rowid\", additional_trigger) VALUES (new.\"rowid\", new.additional_trigger);END" } ] } ] }