#!/bin/bash
source $HOME/.gamerc

POSTFIX=$1
TARGET_SET_ID=$2
TARGET_WORLD_ID=$3

# WorldDB > autosend_info & redenvelope_info 筆數確認 ( PRE )
TOTAL_1=0; TOTAL_2=0; 
for dbname in $(psql -U postgres -Atqc "SELECT datname FROM pg_database WHERE datname ~ '${WORLD_DB_NAME}' AND datname ~ '${POSTFIX}' ORDER BY datname;"); do 
    COUNT_1=$(psql -U postgres ${dbname} -Atqc "SELECT COUNT(*) FROM autosend_info;")
    COUNT_2=$(psql -U postgres ${dbname} -Atqc "SELECT COUNT(*) FROM redenvelope_info;"); TOTAL_1=$((TOTAL_1 + COUNT_1))
    TOTAL_2=$((TOTAL_2 + COUNT_2))
    echo "${dbname}, ${COUNT_1}, ${TOTAL_1}, ${COUNT_2}, ${TOTAL_2}"
done

# WorldDB > autosend_info & redenvelope_info 筆數確認 ( POST )
dbname="${WORLD_DB_NAME}${TARGET_WORLD_ID}"; 
TOTAL_1=$(psql -U postgres ${dbname} -Atqc "SELECT COUNT(*) FROM autosend_info;")
TOTAL_2=$(psql -U postgres ${dbname} -Atqc "SELECT COUNT(*) FROM redenvelope_info;")
echo "${dbname}, ${TOTAL_1}, ${TOTAL_2}";

# WorldDB > 清空 target db > activity_wheel_broadcast 跟 activity_minigame_wheel_broadcast ( POST )
dbname="${WORLD_DB_NAME}${TARGET_WORLD_ID}" 
TOTAL_1=$(psql -U postgres ${dbname} -Atqc "SELECT COUNT(*) FROM activity_wheel_broadcast;")
TOTAL_2=$(psql -U postgres ${dbname} -Atqc "SELECT COUNT(*) FROM activity_minigame_wheel_broadcast;")
echo "${dbname}, ${TOTAL_1}, ${TOTAL_2}";

# GameDB > chat_group (type=0 or type=2) 資料都砍掉 ( PRE )
dbname="${GAME_DB_NAME}${TARGET_SET_ID}{POSTFIX}"; 
psql -U postgres ${dbname} -c "SELECT type, COUNT(*) FROM chat_group GROUP BY type ORDER BY type;"
psql -U postgres ${dbname} -c "SELECT COUNT(*) FROM chat_group WHERE type IN (0, 2);";

# GameDB > chat_group (type=0 or type=2) 資料都砍掉 ( POST )
dbname="${GAME_DB_NAME}${TARGET_SET_ID}"
psql -U postgres ${dbname} -c "SELECT type, COUNT(*) FROM chat_group GROUP BY type ORDER BY type;"
psql -U postgres ${dbname} -c "SELECT COUNT(*) FROM chat_group WHERE type IN (0, 2);";

# GameDB > player_characters::world_id ( PRE )
dbname="${GAME_DB_NAME}${TARGET_SET_ID}{POSTFIX}"; 
psql -U postgres ${dbname} -c "SELECT world_id, COUNT(*) FROM player_characters GROUP BY world_id ORDER BY world_id;"
psql -U postgres ${dbname} -c "SELECT COUNT(*) FROM player_characters WHERE world_id NOT IN (${TARGET_WORLD_ID});"
psql -U postgres ${dbname} -c "SELECT COUNT(*) FROM player_characters;"

# GameDB > player_characters::world_id ( POST )
dbname="${GAME_DB_NAME}${TARGET_SET_ID}" 
psql -U postgres ${dbname} -c "SELECT world_id, COUNT(*) FROM player_characters GROUP BY world_id ORDER BY world_id;"
psql -U postgres ${dbname} -c "SELECT COUNT(*) FROM player_characters WHERE world_id NOT IN (${TARGET_WORLD_ID});"
psql -U postgres ${dbname} -c "SELECT COUNT(*) FROM player_characters;"

# GameDB > guild_info::server_id ( PRE )
dbname="${GAME_DB_NAME}${TARGET_SET_ID}{POSTFIX}";
psql -U postgres ${dbname} -c "SELECT server_id, COUNT(*) FROM guild_info GROUP BY server_id ORDER BY server_id;"
psql -U postgres ${dbname} -c "SELECT COUNT(*) FROM guild_info WHERE server_id NOT IN (${TARGET_WORLD_ID});"
psql -U postgres ${dbname} -c "SELECT COUNT(*) FROM guild_info;"

dbname="${GAME_DB_NAME}${TARGET_SET_ID}"
psql -U postgres ${dbname} -c "SELECT server_id, COUNT(*) FROM guild_info GROUP BY server_id ORDER BY server_id;"
psql -U postgres ${dbname} -c "SELECT COUNT(*) FROM guild_info WHERE server_id NOT IN (${TARGET_WORLD_ID});"
psql -U postgres ${dbname} -c "SELECT COUNT(*) FROM guild_info;"

# GameDB > player_characters::flag & 4 = 4 更名 ( PRE )
dbname="${GAME_DB_NAME}${TARGET_SET_ID}{POSTFIX}"
psql -U postgres ${dbname} -c "SELECT COUNT(*) FROM player_characters;"
psql -U postgres ${dbname} -c "SELECT COUNT(*) FROM player_characters WHERE (flag & 4 = 4);"

# GameDB > player_characters::flag & 4 = 4 更名 ( PRE )
dbname="${GAME_DB_NAME}${TARGET_SET_ID}"
psql -U postgres ${dbname} -c "SELECT COUNT(*) FROM player_characters;"
psql -U postgres ${dbname} -c "SELECT COUNT(*) FROM player_characters WHERE (flag & 4 = 4);"

# AccountDB > related tables
dbname="${ACCOUNT_DB_NAME}"
START_WORLD_ID=$((${TARGET_SET_ID} * 100))
END_WORLD_ID=$(((${TARGET_SET_ID} + 1) * 100))
ssh ACCOUNTDB "psql -U postgres ${dbname} -c \"SELECT * FROM worlds WHERE id BETWEEN ${START_WORLD_ID} AND ${END_WORLD_ID} ORDER BY id;\""
ssh ACCOUNTDB "psql -U postgres ${dbname} -c \"SELECT * FROM fake_worlds WHERE id BETWEEN ${START_WORLD_ID} AND ${END_WORLD_ID} ORDER BY id;\""
