#!/bin/bash
# ============================================================
# 重置员工手机号并重置密码为默认值 123456
#
# 用法: ./re_passwd.sh <员工ID> <新手机号>
# 示例: ./re_passwd.sh 13 13197575672
# ============================================================

set -euo pipefail

# 参数检查
if [ $# -ne 2 ]; then
    echo "用法: $0 <员工ID> <新手机号>"
    echo "示例: $0 13 13197575672"
    exit 1
fi

EMPLOYEE_ID="$1"
NEW_PHONE="$2"

# 数据库路径（脚本所在目录下的 data/company_erp.db）
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
DB_PATH="${SCRIPT_DIR}/data/company_erp.db"

if [ ! -f "$DB_PATH" ]; then
    echo "错误: 数据库文件不存在: $DB_PATH"
    exit 1
fi

# 计算新密码哈希: MD5(手机号 + 123456)
NEW_PWD_MD5=$(echo -n "${NEW_PHONE}123456" | md5sum | awk '{print $1}')

# 先检查员工是否存在
EXISTS=$(python3 -c "
import sqlite3
conn = sqlite3.connect('${DB_PATH}')
cur = conn.execute('SELECT id, name, phone FROM employees WHERE id = ?', (${EMPLOYEE_ID},))
row = cur.fetchone()
conn.close()
if row:
    print(f'{row[0]}|{row[1]}|{row[2]}')
")

if [ -z "$EXISTS" ]; then
    echo "错误: 员工 ID ${EMPLOYEE_ID} 不存在"
    exit 1
fi

OLD_NAME=$(echo "$EXISTS" | cut -d'|' -f2)
OLD_PHONE=$(echo "$EXISTS" | cut -d'|' -f3)

# 执行更新
python3 -c "
import sqlite3
conn = sqlite3.connect('${DB_PATH}')
conn.execute(
    'UPDATE employees SET phone = ?, password_md5 = ? WHERE id = ?',
    ('${NEW_PHONE}', '${NEW_PWD_MD5}', ${EMPLOYEE_ID})
)
conn.commit()
conn.close()
"

echo "========================================"
echo "  员工信息已更新"
echo "========================================"
echo "  ID      : ${EMPLOYEE_ID}"
echo "  姓名    : ${OLD_NAME}"
echo "  旧手机号: ${OLD_PHONE}"
echo "  新手机号: ${NEW_PHONE}"
echo "  新密码  : 123456 (已重置为默认值)"
echo "========================================"