{ "id": "abc6caac-fb1c-4332-a42a-7bbe4d7411e8", "prevId": "41a5fe61-5a5b-4af4-9d8a-c2e709c35b1f", "version": "7", "dialect": "postgresql", "tables": { "public.account": { "name": "account", "schema": "", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true }, "account_id": { "name": "account_id", "type": "text", "primaryKey": false, "notNull": true }, "provider_id": { "name": "provider_id", "type": "text", "primaryKey": false, "notNull": true }, "user_id": { "name": "user_id", "type": "text", "primaryKey": false, "notNull": true }, "access_token": { "name": "access_token", "type": "text", "primaryKey": false, "notNull": false }, "refresh_token": { "name": "refresh_token", "type": "text", "primaryKey": false, "notNull": false }, "id_token": { "name": "id_token", "type": "text", "primaryKey": false, "notNull": false }, "access_token_expires_at": { "name": "access_token_expires_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": false }, "refresh_token_expires_at": { "name": "refresh_token_expires_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": false }, "scope": { "name": "scope", "type": "text", "primaryKey": false, "notNull": false }, "password": { "name": "password", "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": { "account_user_idx": { "name": "account_user_idx", "columns": [ { "expression": "user_id", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": false, "concurrently": false, "method": "btree", "with": {} } }, "foreignKeys": { "account_user_id_user_id_fk": { "name": "account_user_id_user_id_fk", "tableFrom": "account", "tableTo": "user", "columnsFrom": ["user_id"], "columnsTo": ["id"], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.comments": { "name": "comments", "schema": "", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true }, "feed_id": { "name": "feed_id", "type": "text", "primaryKey": false, "notNull": true }, "author_id": { "name": "author_id", "type": "text", "primaryKey": false, "notNull": true }, "content": { "name": "content", "type": "text", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": { "comments_feed_idx": { "name": "comments_feed_idx", "columns": [ { "expression": "feed_id", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": false, "concurrently": false, "method": "btree", "with": {} } }, "foreignKeys": { "comments_feed_id_feeds_id_fk": { "name": "comments_feed_id_feeds_id_fk", "tableFrom": "comments", "tableTo": "feeds", "columnsFrom": ["feed_id"], "columnsTo": ["id"], "onDelete": "cascade", "onUpdate": "no action" }, "comments_author_id_user_id_fk": { "name": "comments_author_id_user_id_fk", "tableFrom": "comments", "tableTo": "user", "columnsFrom": ["author_id"], "columnsTo": ["id"], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.feed_states": { "name": "feed_states", "schema": "", "columns": { "user_id": { "name": "user_id", "type": "text", "primaryKey": false, "notNull": true }, "feed_id": { "name": "feed_id", "type": "text", "primaryKey": false, "notNull": true }, "saved": { "name": "saved", "type": "boolean", "primaryKey": false, "notNull": true, "default": false }, "interested": { "name": "interested", "type": "boolean", "primaryKey": false, "notNull": false }, "ai_submitted": { "name": "ai_submitted", "type": "boolean", "primaryKey": false, "notNull": true, "default": false }, "summary": { "name": "summary", "type": "text", "primaryKey": false, "notNull": false }, "translation": { "name": "translation", "type": "text", "primaryKey": false, "notNull": false }, "language": { "name": "language", "type": "text", "primaryKey": false, "notNull": false }, "updated_at": { "name": "updated_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": { "feed_states_user_id_user_id_fk": { "name": "feed_states_user_id_user_id_fk", "tableFrom": "feed_states", "tableTo": "user", "columnsFrom": ["user_id"], "columnsTo": ["id"], "onDelete": "cascade", "onUpdate": "no action" }, "feed_states_feed_id_feeds_id_fk": { "name": "feed_states_feed_id_feeds_id_fk", "tableFrom": "feed_states", "tableTo": "feeds", "columnsFrom": ["feed_id"], "columnsTo": ["id"], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": { "feed_states_user_id_feed_id_pk": { "name": "feed_states_user_id_feed_id_pk", "columns": ["user_id", "feed_id"] } }, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.feeds": { "name": "feeds", "schema": "", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true }, "author_id": { "name": "author_id", "type": "text", "primaryKey": false, "notNull": true }, "title": { "name": "title", "type": "text", "primaryKey": false, "notNull": true }, "url": { "name": "url", "type": "text", "primaryKey": false, "notNull": false }, "content": { "name": "content", "type": "text", "primaryKey": false, "notNull": true }, "summary": { "name": "summary", "type": "text", "primaryKey": false, "notNull": false }, "kind": { "name": "kind", "type": "text", "primaryKey": false, "notNull": true }, "origin": { "name": "origin", "type": "text", "primaryKey": false, "notNull": true, "default": "'user'" }, "is_public": { "name": "is_public", "type": "boolean", "primaryKey": false, "notNull": true, "default": false }, "created_at": { "name": "created_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": { "feeds_public_url_idx": { "name": "feeds_public_url_idx", "columns": [ { "expression": "url", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": true, "where": "\"feeds\".\"is_public\" = true AND \"feeds\".\"url\" IS NOT NULL", "concurrently": false, "method": "btree", "with": {} }, "feeds_author_url_idx": { "name": "feeds_author_url_idx", "columns": [ { "expression": "author_id", "isExpression": false, "asc": true, "nulls": "last" }, { "expression": "url", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": true, "where": "\"feeds\".\"url\" IS NOT NULL", "concurrently": false, "method": "btree", "with": {} }, "feeds_created_idx": { "name": "feeds_created_idx", "columns": [ { "expression": "created_at", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": false, "concurrently": false, "method": "btree", "with": {} } }, "foreignKeys": { "feeds_author_id_user_id_fk": { "name": "feeds_author_id_user_id_fk", "tableFrom": "feeds", "tableTo": "user", "columnsFrom": ["author_id"], "columnsTo": ["id"], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.forwards": { "name": "forwards", "schema": "", "columns": { "feed_id": { "name": "feed_id", "type": "text", "primaryKey": false, "notNull": true }, "from_user_id": { "name": "from_user_id", "type": "text", "primaryKey": false, "notNull": true }, "to_user_id": { "name": "to_user_id", "type": "text", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": { "forwards_recipient_idx": { "name": "forwards_recipient_idx", "columns": [ { "expression": "to_user_id", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": false, "concurrently": false, "method": "btree", "with": {} } }, "foreignKeys": { "forwards_feed_id_feeds_id_fk": { "name": "forwards_feed_id_feeds_id_fk", "tableFrom": "forwards", "tableTo": "feeds", "columnsFrom": ["feed_id"], "columnsTo": ["id"], "onDelete": "cascade", "onUpdate": "no action" }, "forwards_from_user_id_user_id_fk": { "name": "forwards_from_user_id_user_id_fk", "tableFrom": "forwards", "tableTo": "user", "columnsFrom": ["from_user_id"], "columnsTo": ["id"], "onDelete": "cascade", "onUpdate": "no action" }, "forwards_to_user_id_user_id_fk": { "name": "forwards_to_user_id_user_id_fk", "tableFrom": "forwards", "tableTo": "user", "columnsFrom": ["to_user_id"], "columnsTo": ["id"], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": { "forwards_feed_id_from_user_id_to_user_id_pk": { "name": "forwards_feed_id_from_user_id_to_user_id_pk", "columns": ["feed_id", "from_user_id", "to_user_id"] } }, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.profiles": { "name": "profiles", "schema": "", "columns": { "user_id": { "name": "user_id", "type": "text", "primaryKey": true, "notNull": true }, "preferences": { "name": "preferences", "type": "text", "primaryKey": false, "notNull": true, "default": "''" }, "learned_preferences": { "name": "learned_preferences", "type": "text", "primaryKey": false, "notNull": true, "default": "''" }, "version": { "name": "version", "type": "integer", "primaryKey": false, "notNull": true, "default": 0 }, "learned_version": { "name": "learned_version", "type": "integer", "primaryKey": false, "notNull": true, "default": 0 }, "updated_at": { "name": "updated_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": { "profiles_user_id_user_id_fk": { "name": "profiles_user_id_user_id_fk", "tableFrom": "profiles", "tableTo": "user", "columnsFrom": ["user_id"], "columnsTo": ["id"], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.rss_items": { "name": "rss_items", "schema": "", "columns": { "subscription_id": { "name": "subscription_id", "type": "text", "primaryKey": false, "notNull": true }, "item_key": { "name": "item_key", "type": "text", "primaryKey": false, "notNull": true }, "matched": { "name": "matched", "type": "boolean", "primaryKey": false, "notNull": true }, "feed_id": { "name": "feed_id", "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": { "rss_items_subscription_id_subscriptions_id_fk": { "name": "rss_items_subscription_id_subscriptions_id_fk", "tableFrom": "rss_items", "tableTo": "subscriptions", "columnsFrom": ["subscription_id"], "columnsTo": ["id"], "onDelete": "cascade", "onUpdate": "no action" }, "rss_items_feed_id_feeds_id_fk": { "name": "rss_items_feed_id_feeds_id_fk", "tableFrom": "rss_items", "tableTo": "feeds", "columnsFrom": ["feed_id"], "columnsTo": ["id"], "onDelete": "set null", "onUpdate": "no action" } }, "compositePrimaryKeys": { "rss_items_subscription_id_item_key_pk": { "name": "rss_items_subscription_id_item_key_pk", "columns": ["subscription_id", "item_key"] } }, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.session": { "name": "session", "schema": "", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true }, "expires_at": { "name": "expires_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": true }, "token": { "name": "token", "type": "text", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": true, "default": "now()" }, "ip_address": { "name": "ip_address", "type": "text", "primaryKey": false, "notNull": false }, "user_agent": { "name": "user_agent", "type": "text", "primaryKey": false, "notNull": false }, "user_id": { "name": "user_id", "type": "text", "primaryKey": false, "notNull": true }, "impersonated_by": { "name": "impersonated_by", "type": "text", "primaryKey": false, "notNull": false } }, "indexes": { "session_user_idx": { "name": "session_user_idx", "columns": [ { "expression": "user_id", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": false, "concurrently": false, "method": "btree", "with": {} } }, "foreignKeys": { "session_user_id_user_id_fk": { "name": "session_user_id_user_id_fk", "tableFrom": "session", "tableTo": "user", "columnsFrom": ["user_id"], "columnsTo": ["id"], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": { "session_token_unique": { "name": "session_token_unique", "nullsNotDistinct": false, "columns": ["token"] } }, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.subscriptions": { "name": "subscriptions", "schema": "", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true }, "user_id": { "name": "user_id", "type": "text", "primaryKey": false, "notNull": true }, "url": { "name": "url", "type": "text", "primaryKey": false, "notNull": true }, "title": { "name": "title", "type": "text", "primaryKey": false, "notNull": true }, "enabled": { "name": "enabled", "type": "boolean", "primaryKey": false, "notNull": true, "default": true }, "last_checked_at": { "name": "last_checked_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": false }, "last_error": { "name": "last_error", "type": "text", "primaryKey": false, "notNull": false }, "lease_until": { "name": "lease_until", "type": "timestamp with time zone", "primaryKey": false, "notNull": false }, "lease_token": { "name": "lease_token", "type": "text", "primaryKey": false, "notNull": false }, "next_poll_at": { "name": "next_poll_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": true, "default": "now()" }, "created_at": { "name": "created_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": { "subscriptions_user_url_idx": { "name": "subscriptions_user_url_idx", "columns": [ { "expression": "user_id", "isExpression": false, "asc": true, "nulls": "last" }, { "expression": "url", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": true, "concurrently": false, "method": "btree", "with": {} } }, "foreignKeys": { "subscriptions_user_id_user_id_fk": { "name": "subscriptions_user_id_user_id_fk", "tableFrom": "subscriptions", "tableTo": "user", "columnsFrom": ["user_id"], "columnsTo": ["id"], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.threads": { "name": "threads", "schema": "", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true }, "user_id": { "name": "user_id", "type": "text", "primaryKey": false, "notNull": true }, "title": { "name": "title", "type": "text", "primaryKey": false, "notNull": true, "default": "'New conversation'" }, "messages": { "name": "messages", "type": "jsonb", "primaryKey": false, "notNull": true, "default": "'[]'::jsonb" }, "lease_until": { "name": "lease_until", "type": "timestamp with time zone", "primaryKey": false, "notNull": false }, "lease_token": { "name": "lease_token", "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": { "threads_user_idx": { "name": "threads_user_idx", "columns": [ { "expression": "user_id", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": false, "concurrently": false, "method": "btree", "with": {} } }, "foreignKeys": { "threads_user_id_user_id_fk": { "name": "threads_user_id_user_id_fk", "tableFrom": "threads", "tableTo": "user", "columnsFrom": ["user_id"], "columnsTo": ["id"], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.user": { "name": "user", "schema": "", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true }, "email": { "name": "email", "type": "text", "primaryKey": false, "notNull": true }, "email_verified": { "name": "email_verified", "type": "boolean", "primaryKey": false, "notNull": true, "default": false }, "image": { "name": "image", "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": true, "default": "now()" }, "username": { "name": "username", "type": "text", "primaryKey": false, "notNull": false }, "display_username": { "name": "display_username", "type": "text", "primaryKey": false, "notNull": false }, "role": { "name": "role", "type": "text", "primaryKey": false, "notNull": true, "default": "'user'" }, "banned": { "name": "banned", "type": "boolean", "primaryKey": false, "notNull": false, "default": false }, "ban_reason": { "name": "ban_reason", "type": "text", "primaryKey": false, "notNull": false }, "ban_expires": { "name": "ban_expires", "type": "timestamp with time zone", "primaryKey": false, "notNull": false } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { "user_email_unique": { "name": "user_email_unique", "nullsNotDistinct": false, "columns": ["email"] }, "user_username_unique": { "name": "user_username_unique", "nullsNotDistinct": false, "columns": ["username"] } }, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.verification": { "name": "verification", "schema": "", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true }, "identifier": { "name": "identifier", "type": "text", "primaryKey": false, "notNull": true }, "value": { "name": "value", "type": "text", "primaryKey": false, "notNull": true }, "expires_at": { "name": "expires_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp with time zone", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false } }, "enums": {}, "schemas": {}, "sequences": {}, "roles": {}, "policies": {}, "views": {}, "_meta": { "columns": {}, "schemas": {}, "tables": {} } }