{ "id": "2f3f44c0-0fd3-4ac5-b1fb-51bc709342df", "prevId": "00000000-0000-0000-0000-000000000000", "version": "7", "dialect": "postgresql", "tables": { "public.api_keys": { "name": "api_keys", "schema": "", "columns": { "id": { "name": "id", "type": "serial", "primaryKey": true, "notNull": true }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true }, "key_hash": { "name": "key_hash", "type": "text", "primaryKey": false, "notNull": true }, "key_prefix": { "name": "key_prefix", "type": "text", "primaryKey": false, "notNull": true }, "user_id": { "name": "user_id", "type": "integer", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", "type": "timestamp", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": { "api_keys_user_id_users_id_fk": { "name": "api_keys_user_id_users_id_fk", "tableFrom": "api_keys", "tableTo": "users", "columnsFrom": [ "user_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.categories": { "name": "categories", "schema": "", "columns": { "id": { "name": "id", "type": "serial", "primaryKey": true, "notNull": true }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true }, "icon": { "name": "icon", "type": "text", "primaryKey": false, "notNull": true, "default": "'package'" }, "user_id": { "name": "user_id", "type": "integer", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", "type": "timestamp", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": { "categories_user_id_users_id_fk": { "name": "categories_user_id_users_id_fk", "tableFrom": "categories", "tableTo": "users", "columnsFrom": [ "user_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": { "categories_user_id_name_unique": { "name": "categories_user_id_name_unique", "nullsNotDistinct": false, "columns": [ "user_id", "name" ] } }, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.items": { "name": "items", "schema": "", "columns": { "id": { "name": "id", "type": "serial", "primaryKey": true, "notNull": true }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true }, "weight_grams": { "name": "weight_grams", "type": "double precision", "primaryKey": false, "notNull": false }, "price_cents": { "name": "price_cents", "type": "integer", "primaryKey": false, "notNull": false }, "category_id": { "name": "category_id", "type": "integer", "primaryKey": false, "notNull": true }, "user_id": { "name": "user_id", "type": "integer", "primaryKey": false, "notNull": true }, "notes": { "name": "notes", "type": "text", "primaryKey": false, "notNull": false }, "product_url": { "name": "product_url", "type": "text", "primaryKey": false, "notNull": false }, "image_filename": { "name": "image_filename", "type": "text", "primaryKey": false, "notNull": false }, "image_source_url": { "name": "image_source_url", "type": "text", "primaryKey": false, "notNull": false }, "quantity": { "name": "quantity", "type": "integer", "primaryKey": false, "notNull": true, "default": 1 }, "created_at": { "name": "created_at", "type": "timestamp", "primaryKey": false, "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": { "items_category_id_categories_id_fk": { "name": "items_category_id_categories_id_fk", "tableFrom": "items", "tableTo": "categories", "columnsFrom": [ "category_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" }, "items_user_id_users_id_fk": { "name": "items_user_id_users_id_fk", "tableFrom": "items", "tableTo": "users", "columnsFrom": [ "user_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.oauth_clients": { "name": "oauth_clients", "schema": "", "columns": { "id": { "name": "id", "type": "serial", "primaryKey": true, "notNull": true }, "client_id": { "name": "client_id", "type": "text", "primaryKey": false, "notNull": true }, "client_name": { "name": "client_name", "type": "text", "primaryKey": false, "notNull": false }, "redirect_uris": { "name": "redirect_uris", "type": "text", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", "type": "timestamp", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { "oauth_clients_client_id_unique": { "name": "oauth_clients_client_id_unique", "nullsNotDistinct": false, "columns": [ "client_id" ] } }, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.oauth_codes": { "name": "oauth_codes", "schema": "", "columns": { "id": { "name": "id", "type": "serial", "primaryKey": true, "notNull": true }, "code": { "name": "code", "type": "text", "primaryKey": false, "notNull": true }, "client_id": { "name": "client_id", "type": "text", "primaryKey": false, "notNull": true }, "code_challenge": { "name": "code_challenge", "type": "text", "primaryKey": false, "notNull": true }, "code_challenge_method": { "name": "code_challenge_method", "type": "text", "primaryKey": false, "notNull": true, "default": "'S256'" }, "redirect_uri": { "name": "redirect_uri", "type": "text", "primaryKey": false, "notNull": true }, "expires_at": { "name": "expires_at", "type": "timestamp", "primaryKey": false, "notNull": true }, "used": { "name": "used", "type": "integer", "primaryKey": false, "notNull": true, "default": 0 } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { "oauth_codes_code_unique": { "name": "oauth_codes_code_unique", "nullsNotDistinct": false, "columns": [ "code" ] } }, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.oauth_tokens": { "name": "oauth_tokens", "schema": "", "columns": { "id": { "name": "id", "type": "serial", "primaryKey": true, "notNull": true }, "access_token_hash": { "name": "access_token_hash", "type": "text", "primaryKey": false, "notNull": true }, "refresh_token_hash": { "name": "refresh_token_hash", "type": "text", "primaryKey": false, "notNull": true }, "client_id": { "name": "client_id", "type": "text", "primaryKey": false, "notNull": true }, "user_id": { "name": "user_id", "type": "integer", "primaryKey": false, "notNull": true }, "expires_at": { "name": "expires_at", "type": "timestamp", "primaryKey": false, "notNull": true }, "refresh_expires_at": { "name": "refresh_expires_at", "type": "timestamp", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", "type": "timestamp", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": { "oauth_tokens_user_id_users_id_fk": { "name": "oauth_tokens_user_id_users_id_fk", "tableFrom": "oauth_tokens", "tableTo": "users", "columnsFrom": [ "user_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": { "oauth_tokens_access_token_hash_unique": { "name": "oauth_tokens_access_token_hash_unique", "nullsNotDistinct": false, "columns": [ "access_token_hash" ] }, "oauth_tokens_refresh_token_hash_unique": { "name": "oauth_tokens_refresh_token_hash_unique", "nullsNotDistinct": false, "columns": [ "refresh_token_hash" ] } }, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.settings": { "name": "settings", "schema": "", "columns": { "user_id": { "name": "user_id", "type": "integer", "primaryKey": false, "notNull": true }, "key": { "name": "key", "type": "text", "primaryKey": false, "notNull": true }, "value": { "name": "value", "type": "text", "primaryKey": false, "notNull": true } }, "indexes": {}, "foreignKeys": { "settings_user_id_users_id_fk": { "name": "settings_user_id_users_id_fk", "tableFrom": "settings", "tableTo": "users", "columnsFrom": [ "user_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" } }, "compositePrimaryKeys": { "settings_user_id_key_pk": { "name": "settings_user_id_key_pk", "columns": [ "user_id", "key" ] } }, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.setup_items": { "name": "setup_items", "schema": "", "columns": { "id": { "name": "id", "type": "serial", "primaryKey": true, "notNull": true }, "setup_id": { "name": "setup_id", "type": "integer", "primaryKey": false, "notNull": true }, "item_id": { "name": "item_id", "type": "integer", "primaryKey": false, "notNull": true }, "classification": { "name": "classification", "type": "text", "primaryKey": false, "notNull": true, "default": "'base'" } }, "indexes": {}, "foreignKeys": { "setup_items_setup_id_setups_id_fk": { "name": "setup_items_setup_id_setups_id_fk", "tableFrom": "setup_items", "tableTo": "setups", "columnsFrom": [ "setup_id" ], "columnsTo": [ "id" ], "onDelete": "cascade", "onUpdate": "no action" }, "setup_items_item_id_items_id_fk": { "name": "setup_items_item_id_items_id_fk", "tableFrom": "setup_items", "tableTo": "items", "columnsFrom": [ "item_id" ], "columnsTo": [ "id" ], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.setups": { "name": "setups", "schema": "", "columns": { "id": { "name": "id", "type": "serial", "primaryKey": true, "notNull": true }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true }, "user_id": { "name": "user_id", "type": "integer", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", "type": "timestamp", "primaryKey": false, "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": { "setups_user_id_users_id_fk": { "name": "setups_user_id_users_id_fk", "tableFrom": "setups", "tableTo": "users", "columnsFrom": [ "user_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.thread_candidates": { "name": "thread_candidates", "schema": "", "columns": { "id": { "name": "id", "type": "serial", "primaryKey": true, "notNull": true }, "thread_id": { "name": "thread_id", "type": "integer", "primaryKey": false, "notNull": true }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true }, "weight_grams": { "name": "weight_grams", "type": "double precision", "primaryKey": false, "notNull": false }, "price_cents": { "name": "price_cents", "type": "integer", "primaryKey": false, "notNull": false }, "category_id": { "name": "category_id", "type": "integer", "primaryKey": false, "notNull": true }, "notes": { "name": "notes", "type": "text", "primaryKey": false, "notNull": false }, "product_url": { "name": "product_url", "type": "text", "primaryKey": false, "notNull": false }, "image_filename": { "name": "image_filename", "type": "text", "primaryKey": false, "notNull": false }, "image_source_url": { "name": "image_source_url", "type": "text", "primaryKey": false, "notNull": false }, "status": { "name": "status", "type": "text", "primaryKey": false, "notNull": true, "default": "'researching'" }, "pros": { "name": "pros", "type": "text", "primaryKey": false, "notNull": false }, "cons": { "name": "cons", "type": "text", "primaryKey": false, "notNull": false }, "sort_order": { "name": "sort_order", "type": "double precision", "primaryKey": false, "notNull": true, "default": 0 }, "created_at": { "name": "created_at", "type": "timestamp", "primaryKey": false, "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": { "thread_candidates_thread_id_threads_id_fk": { "name": "thread_candidates_thread_id_threads_id_fk", "tableFrom": "thread_candidates", "tableTo": "threads", "columnsFrom": [ "thread_id" ], "columnsTo": [ "id" ], "onDelete": "cascade", "onUpdate": "no action" }, "thread_candidates_category_id_categories_id_fk": { "name": "thread_candidates_category_id_categories_id_fk", "tableFrom": "thread_candidates", "tableTo": "categories", "columnsFrom": [ "category_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.threads": { "name": "threads", "schema": "", "columns": { "id": { "name": "id", "type": "serial", "primaryKey": true, "notNull": true }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true }, "status": { "name": "status", "type": "text", "primaryKey": false, "notNull": true, "default": "'active'" }, "resolved_candidate_id": { "name": "resolved_candidate_id", "type": "integer", "primaryKey": false, "notNull": false }, "category_id": { "name": "category_id", "type": "integer", "primaryKey": false, "notNull": true }, "user_id": { "name": "user_id", "type": "integer", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", "type": "timestamp", "primaryKey": false, "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": { "threads_category_id_categories_id_fk": { "name": "threads_category_id_categories_id_fk", "tableFrom": "threads", "tableTo": "categories", "columnsFrom": [ "category_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" }, "threads_user_id_users_id_fk": { "name": "threads_user_id_users_id_fk", "tableFrom": "threads", "tableTo": "users", "columnsFrom": [ "user_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.users": { "name": "users", "schema": "", "columns": { "id": { "name": "id", "type": "serial", "primaryKey": true, "notNull": true }, "logto_sub": { "name": "logto_sub", "type": "text", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", "type": "timestamp", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { "users_logto_sub_unique": { "name": "users_logto_sub_unique", "nullsNotDistinct": false, "columns": [ "logto_sub" ] } }, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false } }, "enums": {}, "schemas": {}, "sequences": {}, "roles": {}, "policies": {}, "views": {}, "_meta": { "columns": {}, "schemas": {}, "tables": {} } }