mirror of https://github.com/synctv-org/synctv
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
4.7 KiB
JSON
120 lines
4.7 KiB
JSON
{
|
|
"db_name": "PostgreSQL",
|
|
"query": "\n SELECT id AS \"id!: BanRecordId\",\n target_type AS \"target_type!\",\n user_id AS \"user_id?: UserId\",\n username AS \"username!\",\n room_id AS \"room_id?: RoomId\",\n room_name AS \"room_name!\",\n banned_by AS \"banned_by?: UserId\",\n banned_by_username AS \"banned_by_username!\",\n reason AS \"reason!\",\n starts_at AS \"starts_at!\",\n ends_at,\n revoked_at,\n revoked_by AS \"revoked_by?: UserId\",\n is_active AS \"is_active!\"\n FROM (\n SELECT ub.id, 1::int4 AS target_type, ub.user_id, COALESCE(u.username, '') AS username,\n NULL::bigint AS room_id, ''::text AS room_name, ub.banned_by,\n COALESCE(actor.username, '') AS banned_by_username, COALESCE(ub.reason, '') AS reason,\n ub.starts_at, ub.ends_at, ub.revoked_at, ub.revoked_by,\n ub.revoked_at IS NULL AND (ub.ends_at IS NULL OR ub.ends_at > CURRENT_TIMESTAMP) AS is_active\n FROM user_bans ub\n LEFT JOIN users u ON u.id = ub.user_id\n LEFT JOIN users actor ON actor.id = ub.banned_by\n UNION ALL\n SELECT rb.id, 2::int4 AS target_type, NULL::bigint AS user_id, ''::text AS username,\n rb.room_id, COALESCE(r.name, '') AS room_name, rb.banned_by,\n COALESCE(actor.username, '') AS banned_by_username, COALESCE(rb.reason, '') AS reason,\n rb.starts_at, rb.ends_at, rb.revoked_at, rb.revoked_by,\n rb.revoked_at IS NULL AND (rb.ends_at IS NULL OR rb.ends_at > CURRENT_TIMESTAMP) AS is_active\n FROM room_bans rb\n LEFT JOIN rooms r ON r.id = rb.room_id\n LEFT JOIN users actor ON actor.id = rb.banned_by\n ) bans\n WHERE ($1::int4 IS NULL OR target_type = $1)\n AND ($2::bool IS NULL OR is_active = $2)\n AND ($3::bigint IS NULL OR user_id = $3)\n AND ($4::bigint IS NULL OR room_id = $4)\n ORDER BY starts_at DESC, id DESC\n LIMIT $5 OFFSET $6\n ",
|
|
"describe": {
|
|
"columns": [
|
|
{
|
|
"ordinal": 0,
|
|
"name": "id!: BanRecordId",
|
|
"type_info": "Int8",
|
|
"origin": "Expression"
|
|
},
|
|
{
|
|
"ordinal": 1,
|
|
"name": "target_type!",
|
|
"type_info": "Int4",
|
|
"origin": "Expression"
|
|
},
|
|
{
|
|
"ordinal": 2,
|
|
"name": "user_id?: UserId",
|
|
"type_info": "Int8",
|
|
"origin": "Expression"
|
|
},
|
|
{
|
|
"ordinal": 3,
|
|
"name": "username!",
|
|
"type_info": "Varchar",
|
|
"origin": "Expression"
|
|
},
|
|
{
|
|
"ordinal": 4,
|
|
"name": "room_id?: RoomId",
|
|
"type_info": "Int8",
|
|
"origin": "Expression"
|
|
},
|
|
{
|
|
"ordinal": 5,
|
|
"name": "room_name!",
|
|
"type_info": "Text",
|
|
"origin": "Expression"
|
|
},
|
|
{
|
|
"ordinal": 6,
|
|
"name": "banned_by?: UserId",
|
|
"type_info": "Int8",
|
|
"origin": "Expression"
|
|
},
|
|
{
|
|
"ordinal": 7,
|
|
"name": "banned_by_username!",
|
|
"type_info": "Varchar",
|
|
"origin": "Expression"
|
|
},
|
|
{
|
|
"ordinal": 8,
|
|
"name": "reason!",
|
|
"type_info": "Text",
|
|
"origin": "Expression"
|
|
},
|
|
{
|
|
"ordinal": 9,
|
|
"name": "starts_at!",
|
|
"type_info": "Timestamptz",
|
|
"origin": "Expression"
|
|
},
|
|
{
|
|
"ordinal": 10,
|
|
"name": "ends_at",
|
|
"type_info": "Timestamptz",
|
|
"origin": "Expression"
|
|
},
|
|
{
|
|
"ordinal": 11,
|
|
"name": "revoked_at",
|
|
"type_info": "Timestamptz",
|
|
"origin": "Expression"
|
|
},
|
|
{
|
|
"ordinal": 12,
|
|
"name": "revoked_by?: UserId",
|
|
"type_info": "Int8",
|
|
"origin": "Expression"
|
|
},
|
|
{
|
|
"ordinal": 13,
|
|
"name": "is_active!",
|
|
"type_info": "Bool",
|
|
"origin": "Expression"
|
|
}
|
|
],
|
|
"parameters": {
|
|
"Left": [
|
|
"Int4",
|
|
"Bool",
|
|
"Int8",
|
|
"Int8",
|
|
"Int8",
|
|
"Int8"
|
|
]
|
|
},
|
|
"nullable": [
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null
|
|
]
|
|
},
|
|
"hash": "fa1b22d8144ccda2c4254552da38115417adc91f6845b5e62907be9e93afb088"
|
|
}
|