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.
156 lines
4.4 KiB
JSON
156 lines
4.4 KiB
JSON
{
|
|
"db_name": "PostgreSQL",
|
|
"query": "INSERT INTO room_members (\n room_id, user_id, role,\n added_permissions, removed_permissions,\n remark_name, display_tag, joined_at, version\n )\n SELECT $1, $2, $3, $4, $5, $6, $7, $8,\n COALESCE((\n SELECT version + 1\n FROM room_member_versions\n WHERE room_id = $1 AND user_id = $2\n FOR UPDATE\n ), 1)\n WHERE NOT EXISTS (\n SELECT 1 FROM room_member_kick_cooldowns rmkc\n WHERE rmkc.room_id = $1\n AND rmkc.user_id = $2\n AND rmkc.ends_at > CURRENT_TIMESTAMP\n )\n ON CONFLICT (room_id, user_id) DO NOTHING\n RETURNING room_id as \"room_id: RoomId\",\n user_id as \"user_id: UserId\",\n role as \"role: RoomRole\",\n added_permissions,\n removed_permissions,\n admin_added_permissions,\n admin_removed_permissions,\n remark_name,\n display_tag,\n joined_at,\n version",
|
|
"describe": {
|
|
"columns": [
|
|
{
|
|
"ordinal": 0,
|
|
"name": "room_id: RoomId",
|
|
"type_info": "Int8",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "room_members",
|
|
"name": "room_id"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ordinal": 1,
|
|
"name": "user_id: UserId",
|
|
"type_info": "Int8",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "room_members",
|
|
"name": "user_id"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ordinal": 2,
|
|
"name": "role: RoomRole",
|
|
"type_info": "Int2",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "room_members",
|
|
"name": "role"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ordinal": 3,
|
|
"name": "added_permissions",
|
|
"type_info": "Int8",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "room_members",
|
|
"name": "added_permissions"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ordinal": 4,
|
|
"name": "removed_permissions",
|
|
"type_info": "Int8",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "room_members",
|
|
"name": "removed_permissions"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ordinal": 5,
|
|
"name": "admin_added_permissions",
|
|
"type_info": "Int8",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "room_members",
|
|
"name": "admin_added_permissions"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ordinal": 6,
|
|
"name": "admin_removed_permissions",
|
|
"type_info": "Int8",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "room_members",
|
|
"name": "admin_removed_permissions"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ordinal": 7,
|
|
"name": "remark_name",
|
|
"type_info": "Varchar",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "room_members",
|
|
"name": "remark_name"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ordinal": 8,
|
|
"name": "display_tag",
|
|
"type_info": "Varchar",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "room_members",
|
|
"name": "display_tag"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ordinal": 9,
|
|
"name": "joined_at",
|
|
"type_info": "Timestamptz",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "room_members",
|
|
"name": "joined_at"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ordinal": 10,
|
|
"name": "version",
|
|
"type_info": "Int8",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "room_members",
|
|
"name": "version"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"parameters": {
|
|
"Left": [
|
|
"Int8",
|
|
"Int8",
|
|
"Int2",
|
|
"Int8",
|
|
"Int8",
|
|
"Varchar",
|
|
"Varchar",
|
|
"Timestamptz"
|
|
]
|
|
},
|
|
"nullable": [
|
|
false,
|
|
false,
|
|
false,
|
|
false,
|
|
false,
|
|
false,
|
|
false,
|
|
false,
|
|
false,
|
|
false,
|
|
false
|
|
]
|
|
},
|
|
"hash": "6ffffaaba32a31a71a409ae4da04604bc47a4f122f79d179e625aa8999335f92"
|
|
}
|