#!/bin/sh
# ============================================================
#  租金改按宿舍計算（收入/支出都以宿舍為單位）
#  移除工人檔案「月租（收入）」欄及 worker_rent_incomes 表
#  新增宿舍「月租（收入）」欄及 dorm_rent_incomes 表
#  （既有工人收入資料自動按宿舍合併保留）
#  適用：154.94.239.207 (BT Panel)
#  請以 root 執行（寶塔面板「終端機」內貼上）
# ============================================================
set -e

PROJ=/www/wwwroot/faithfulness
BASE=/home/wing/wkr_tmp

echo "=== [1/5] 備份資料庫 ==="
export MYSQL_PWD=$(grep '^DB_PASSWORD=' $PROJ/.env | cut -d= -f2)
DB_USER=$(grep '^DB_USERNAME=' $PROJ/.env | cut -d= -f2)
DB_NAME=$(grep '^DB_DATABASE=' $PROJ/.env | cut -d= -f2)
mkdir -p $BASE/backup
/www/server/mysql/bin/mysqldump -h 127.0.0.1 -u "$DB_USER" --single-transaction "$DB_NAME" > $BASE/backup/db_before_rent_$(date +%Y%m%d).sql 2>/dev/null || true
ls -la $BASE/backup/db_before_rent_*.sql 2>/dev/null | tail -1
echo "備份完成"

echo "=== [2/5] 解壓 ==="
mkdir -p $BASE/extract_rent
tar -xzf $BASE/wkr_rent_by_dorm.tar.gz -C $BASE/extract_rent
echo "完成"

echo "=== [3/5] 備份舊檔 + 複製新檔 ==="
mkdir -p $BASE/backup/files_rent
for f in app/Models/Dormitory.php app/Models/Worker.php app/Http/Requests/DormitoryRequest.php app/Http/Requests/WorkerRequest.php app/Http/Controllers/AccountingController.php app/Http/Controllers/AccountingReportController.php app/Http/Controllers/DormitoryController.php app/Services/AccountingEntryGenerator.php app/Services/DemoDataService.php app/Services/ContractTemplateService.php app/Exports/WorkersExport.php app/Imports/WorkersImport.php app/Observers/AuditableObserver.php app/Providers/AppServiceProvider.php routes/web.php resources/views/accounting/index.blade.php resources/views/accounting/reports/dormitory.blade.php resources/views/accounting/reports/monthly.blade.php resources/views/accounting/reports/monthly_pdf.blade.php resources/views/dormitories.blade.php resources/views/dormitories_edit.blade.php; do
  mkdir -p $BASE/backup/files_rent/$(dirname $f)
  cp -a $PROJ/$f $BASE/backup/files_rent/$f 2>/dev/null || true
done
cp -a $BASE/extract_rent/app/Models/Dormitory.php $PROJ/app/Models/
cp -a $BASE/extract_rent/app/Models/DormRentIncome.php $PROJ/app/Models/
cp -a $BASE/extract_rent/app/Http/Requests/DormitoryRequest.php $PROJ/app/Http/Requests/
cp -a $BASE/extract_rent/app/Http/Requests/WorkerRequest.php $PROJ/app/Http/Requests/
cp -a $BASE/extract_rent/app/Http/Controllers/AccountingController.php $PROJ/app/Http/Controllers/
cp -a $BASE/extract_rent/app/Http/Controllers/AccountingReportController.php $PROJ/app/Http/Controllers/
cp -a $BASE/extract_rent/app/Http/Controllers/DormitoryController.php $PROJ/app/Http/Controllers/
cp -a $BASE/extract_rent/app/Services/AccountingEntryGenerator.php $PROJ/app/Services/
cp -a $BASE/extract_rent/app/Services/DemoDataService.php $PROJ/app/Services/
cp -a $BASE/extract_rent/app/Services/ContractTemplateService.php $PROJ/app/Services/
cp -a $BASE/extract_rent/app/Exports/WorkersExport.php $PROJ/app/Exports/
cp -a $BASE/extract_rent/app/Imports/WorkersImport.php $PROJ/app/Imports/
cp -a $BASE/extract_rent/app/Observers/AuditableObserver.php $PROJ/app/Observers/
cp -a $BASE/extract_rent/app/Providers/AppServiceProvider.php $PROJ/app/Providers/
cp -a $BASE/extract_rent/database/migrations/2026_09_07_000002_rent_by_dormitory.php $PROJ/database/migrations/
cp -a $BASE/extract_rent/routes/web.php $PROJ/routes/
cp -a $BASE/extract_rent/resources/views/accounting/index.blade.php $PROJ/resources/views/accounting/
cp -a $BASE/extract_rent/resources/views/accounting/reports/dormitory.blade.php $PROJ/resources/views/accounting/reports/
cp -a $BASE/extract_rent/resources/views/accounting/reports/monthly.blade.php $PROJ/resources/views/accounting/reports/
cp -a $BASE/extract_rent/resources/views/accounting/reports/monthly_pdf.blade.php $PROJ/resources/views/accounting/reports/
cp -a $BASE/extract_rent/resources/views/dormitories.blade.php $PROJ/resources/views/
cp -a $BASE/extract_rent/resources/views/dormitories_edit.blade.php $PROJ/resources/views/
rm -f $PROJ/app/Models/WorkerRentIncome.php
chown -R www:www $PROJ/app $PROJ/database $PROJ/routes $PROJ/resources
echo "完成"

echo "=== [4/5] migration + 清快取 ==="
cd $PROJ
sudo -u www /usr/bin/php artisan migrate --force
sudo -u www /usr/bin/php artisan optimize:clear 2>&1 | tail -1

echo "=== [5/5] 驗證 ==="
sudo -u www /usr/bin/php artisan migrate:status 2>/dev/null | tail -2
sudo -u www /usr/bin/php artisan tinker --execute="echo 'dorm_rent_incomes table: '.(Illuminate\Support\Facades\Schema::hasTable('dorm_rent_incomes')?'OK':'MISSING').PHP_EOL; echo 'worker_rent_incomes table: '.(Illuminate\Support\Facades\Schema::hasTable('worker_rent_incomes')?'STILL EXISTS(BAD)':'dropped OK').PHP_EOL; echo 'monthly_rent_income col: '.(Illuminate\Support\Facades\Schema::hasColumn('dormitories','monthly_rent_income')?'OK':'MISSING').PHP_EOL; echo 'worker monthly_rent col: '.(Illuminate\Support\Facades\Schema::hasColumn('workers','monthly_rent')?'STILL EXISTS(BAD)':'dropped OK').PHP_EOL;" 2>/dev/null | tail -4
echo "=== 全部完成 ==="
