{ "db_name": "PostgreSQL", "query": "\n WITH updated AS (\n UPDATE rooms\n SET closed_at = $1, updated_at = CURRENT_TIMESTAMP, version = version + 1\n WHERE id = $2 AND deleted_at IS NULL\n RETURNING id,\n name,\n description,\n cover_file_reference_id,\n category_id,\n created_by,\n closed_at,\n created_at,\n updated_at,\n deleted_at,\n version,\n last_activity_at,\n is_public\n )\n SELECT u.id AS \"id!: RoomId\",\n u.name,\n u.description,\n u.cover_file_reference_id,\n rc.id AS \"category_id?: RoomCategoryId\",\n rc.key AS \"category_key?\",\n rc.name AS \"category_name?\",\n rc.description AS \"category_description?\",\n rc.sort_order AS \"category_sort_order?\",\n rc.is_enabled AS \"category_is_enabled?\",\n rc.created_at AS \"category_created_at?\",\n rc.updated_at AS \"category_updated_at?\",\n u.created_by AS \"created_by!: UserId\",\n u.closed_at,\n EXISTS (\n SELECT 1 FROM room_bans rb\n WHERE rb.room_id = u.id\n AND rb.revoked_at IS NULL\n AND (rb.ends_at IS NULL OR rb.ends_at > CURRENT_TIMESTAMP)\n ) AS \"is_banned!\",\n u.created_at,\n u.updated_at,\n u.deleted_at,\n u.version,\n u.last_activity_at,\n u.is_public\n FROM updated u\n LEFT JOIN room_categories rc ON rc.id = u.category_id\n ", "describe": { "columns": [ { "ordinal": 0, "name": "id!: RoomId", "type_info": "Int8", "origin": { "Table": { "table": "rooms", "name": "id" } } }, { "ordinal": 1, "name": "name", "type_info": "Text", "origin": { "Table": { "table": "rooms", "name": "name" } } }, { "ordinal": 2, "name": "description", "type_info": "Text", "origin": { "Table": { "table": "rooms", "name": "description" } } }, { "ordinal": 3, "name": "cover_file_reference_id", "type_info": "Int8", "origin": { "Table": { "table": "rooms", "name": "cover_file_reference_id" } } }, { "ordinal": 4, "name": "category_id?: RoomCategoryId", "type_info": "Int8", "origin": { "Table": { "table": "room_categories", "name": "id" } } }, { "ordinal": 5, "name": "category_key?", "type_info": "Text", "origin": { "Table": { "table": "room_categories", "name": "key" } } }, { "ordinal": 6, "name": "category_name?", "type_info": "Text", "origin": { "Table": { "table": "room_categories", "name": "name" } } }, { "ordinal": 7, "name": "category_description?", "type_info": "Text", "origin": { "Table": { "table": "room_categories", "name": "description" } } }, { "ordinal": 8, "name": "category_sort_order?", "type_info": "Int4", "origin": { "Table": { "table": "room_categories", "name": "sort_order" } } }, { "ordinal": 9, "name": "category_is_enabled?", "type_info": "Bool", "origin": { "Table": { "table": "room_categories", "name": "is_enabled" } } }, { "ordinal": 10, "name": "category_created_at?", "type_info": "Timestamptz", "origin": { "Table": { "table": "room_categories", "name": "created_at" } } }, { "ordinal": 11, "name": "category_updated_at?", "type_info": "Timestamptz", "origin": { "Table": { "table": "room_categories", "name": "updated_at" } } }, { "ordinal": 12, "name": "created_by!: UserId", "type_info": "Int8", "origin": { "Table": { "table": "rooms", "name": "created_by" } } }, { "ordinal": 13, "name": "closed_at", "type_info": "Timestamptz", "origin": { "Table": { "table": "rooms", "name": "closed_at" } } }, { "ordinal": 14, "name": "is_banned!", "type_info": "Bool", "origin": "Expression" }, { "ordinal": 15, "name": "created_at", "type_info": "Timestamptz", "origin": { "Table": { "table": "rooms", "name": "created_at" } } }, { "ordinal": 16, "name": "updated_at", "type_info": "Timestamptz", "origin": { "Table": { "table": "rooms", "name": "updated_at" } } }, { "ordinal": 17, "name": "deleted_at", "type_info": "Timestamptz", "origin": { "Table": { "table": "rooms", "name": "deleted_at" } } }, { "ordinal": 18, "name": "version", "type_info": "Int4", "origin": { "Table": { "table": "rooms", "name": "version" } } }, { "ordinal": 19, "name": "last_activity_at", "type_info": "Timestamptz", "origin": { "Table": { "table": "rooms", "name": "last_activity_at" } } }, { "ordinal": 20, "name": "is_public", "type_info": "Bool", "origin": { "Table": { "table": "rooms", "name": "is_public" } } } ], "parameters": { "Left": [ "Timestamptz", "Int8" ] }, "nullable": [ false, false, false, true, true, true, true, true, true, true, true, true, false, true, null, false, false, true, false, false, false ] }, "hash": "91f682e63a04469c42f77ed2740ff92a9767a9535e0a4f980e95ee64fa451c93" }