#!/bin/bash
# ==========================================
#  PREMIUM DELETE VLESS (FIXED ALIGNMENT)
#  MODIFIED BY GEMINI AI
# ==========================================

# --- CONFIG COLORS & SYMBOLS ---
R='\033[0m'             # Reset
P='\033[1;37m'          # Putih
M='\033[1;31m'          # Merah
H='\033[1;32m'          # Hijau
K='\033[1;33m'          # Kuning
C='\033[1;36m'          # Cyan
Kedip='\033[5m'         # Efek Kedip

# Background Blocks
BG_M='\033[41m\033[1;37m' # Merah Block
BG_G='\033[42m\033[1;37m' # Hijau Block
BG_K='\033[43m\033[1;30m' # Kuning Block

# --- CONFIG LAYOUT (LEBAR TOTAL 55 KARAKTER) ---
ki="${C}│${R}"
ka="${C}│${R}"
Garis="${C}───────────────────────────────────────────────────────${R}"
Atas="${C}┌$Garis┐${R}"
Tengah="${C}├$Garis┤${R}"
Bawah="${C}└$Garis┘${R}"

# --- SYSTEM CHECK ---
# Pattern VLESS sesuai script asli Anda (#&)
GREP_PATTERN="^#&"
CONFIG_FILE="/etc/xray/config.json"
dateFromServer=$(curl -v --insecure --silent https://google.com/ 2>&1 | grep Date | sed -e 's/< Date: //')
biji=`date +"%Y-%m-%d" -d "$dateFromServer"`

# ==========================================
#  LOOPING UTAMA
# ==========================================
while true; do
    clear
    echo -e ""
    echo -e "         ${Kedip}${K}🗑️  DELETE VLESS ACCOUNT 🗑️${R}"
    echo -e ""

    # --- 1. AMBIL DATA USER KE ARRAY ---
    mapfile -t user_list < <(grep -E "$GREP_PATTERN " "$CONFIG_FILE" | cut -d ' ' -f 2 | sort | uniq)
    total_client=${#user_list[@]}

    # --- CEK JIKA KOSONG ---
    if [[ ${total_client} == '0' ]]; then
        echo -e "$Atas"
        # Padding manual agar teks di tengah (Total 55)
        echo -e "$ki${BG_M}                   NO CLIENT DATA                    ${R}$ka"
        echo -e "$Tengah"
        printf "$ki ${M}%-53s${R}$ka\n" "You have no existing clients!"
        echo -e "$Bawah"
        echo ""
        read -n 1 -s -r -p " Press any key to back on menu"
        menu
        break
    fi

    # --- 2. TAMPILKAN LIST USER ---
    echo -e "$Atas"
    # Header: LIST VLESS USER (Panjang 15). Sisa 40. Kiri 20, Kanan 20.
    echo -e "$ki${BG_K}                    LIST VLESS USER                    ${R}$ka"
    echo -e "$Tengah"
    
    # Header Kolom: Total Width 55
    # Layout: [SPASI 1] [NO 4] [SPASI 1] [USER 20] [SPASI 1] [EXP 12] [SPASI 1] [STATUS 15]
    printf "$ki ${P}%-4s %-20s %-12s %-15s${R}$ka\n" "NO" "USER" "EXPIRED" "STATUS"
    echo -e "$Tengah"

    no=1
    now_sec=$(date +%s)

    for user in "${user_list[@]}"; do
        # Ambil tanggal expired
        exp=$(grep -wE "$GREP_PATTERN $user" "$CONFIG_FILE" | cut -d ' ' -f 3 | sort | uniq)
        
        # --- LOGIKA HITUNG HARI (STATUS) ---
        exp_sec=$(date -d "$exp" +%s)
        diff=$(( (exp_sec - now_sec) / 86400 ))
        
        if [[ $diff -ge 1 ]]; then
            sts_color="${Kedip}${H}"
            sts_text="${diff} Days"
        elif [[ $diff -eq 0 ]]; then
            sts_color="${K}"
            sts_text="Today"
        else
            sts_color="${M}"
            sts_text="Expired"
        fi

        # Print Baris Tabel (Presisi 55 Karakter)
        printf "$ki ${C}%-4s ${P}%-20s ${K}%-12s ${sts_color}%-15s${R}$ka\n" "$no)" "$user" "$exp" "$sts_text"
        ((no++))
    done
    
    # --- MENU KEMBALI ---
    echo -e "$Tengah"
    # Footer: 0) BACK TO MAIN MENU
    printf "$ki  ${M}%-53s${R}$ka\n" "0)  BACK TO MAIN MENU"
    echo -e "$Bawah"
    echo -e ""
    echo -e " ${P}Select user to delete (Number/Name)${R}"
    echo -e " ${C}───────────────────────────────────────────────────────${R}"

    # --- 3. INPUT PILIHAN ---
    echo -ne " ${C}➤ Select User : ${P}"
    read selection

    # A. Validasi Input Kosong
    if [ -z "$selection" ]; then continue; fi
    # B. Menu Exit
    if [[ "$selection" == "0" ]]; then menu; break; fi

    # C. Cek Input (Angka vs Nama)
    if [[ $selection =~ ^[0-9]+$ ]]; then
        if [[ $selection -ge 1 && $selection -le $total_client ]]; then
            user="${user_list[$((selection-1))]}"
        else
            echo -e " ${M}[!] Error: Number out of range!${R}"; sleep 1; continue
        fi
    else
        user="$selection"
        if ! grep -qws "$GREP_PATTERN $user" "$CONFIG_FILE"; then
            echo -e " ${M}[!] Error: Username not found!${R}"; sleep 1; continue
        fi
    fi

    # --- 4. PROSES DELETE ---
    # Ambil Expired Date untuk pattern sed
    exp=$(grep -wE "$GREP_PATTERN $user" "$CONFIG_FILE" | cut -d ' ' -f 3 | sort | uniq)

    # Hapus dari Config & DB (Pattern #&)
    sed -i "/^#& $user $exp/,/^},{/d" /etc/xray/config.json
    sed -i "/^#& $user $exp/,/^},{/d" /etc/vless/.vless.db
    
    # Hapus File Tambahan (Sesuai script asli Anda)
    rm -rf /etc/vless/$user
    rm -rf /etc/hokage/limit/vless/ip/$user
    
    # Restart Service
    systemctl restart xray > /dev/null 2>&1

    # --- 5. TAMPILAN SUKSES ---
    clear
    echo -e ""
    echo -e "         ${Kedip}${K}✅ ACCOUNT DELETED SUCCESSFULLY ✅${R}"
    echo -e ""
    echo -e "$Atas"
    # Header: DELETED DETAILS (Panjang 15). Sisa 40. Kiri 20, Kanan 20.
    echo -e "$ki${BG_G}                    DELETED DETAILS                    ${R}$ka"
    echo -e "$Tengah"
    # Layout: Label (20) : Value (31) + Spasi = 55
    printf "$ki ${P}%-20s ${C}: ${M}%-30s${R}$ka\n" "Client Name" "$user"
    printf "$ki ${P}%-20s ${C}: ${K}%-30s${R}$ka\n" "Expired On" "$exp"
    printf "$ki ${P}%-20s ${C}: ${P}%-30s${R}$ka\n" "Deleted On" "$biji"
    echo -e "$Bawah"
    echo -e ""
    
    echo -e "${C} Account deleted. Returning to list...${R}"
    read -n 1 -s -r -p " Press any key to continue"
    # Script akan mengulang (refresh list)
done