# Kiểm tra và push code nếu có thay đổi
cd E:\opennotion

Write-Host "========================================" -ForegroundColor Cyan
Write-Host "  Kiểm tra thay đổi và push code" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan
Write-Host ""

# 1. Kiểm tra trạng thái
Write-Host "[1/6] Kiểm tra trạng thái git..." -ForegroundColor Yellow
$status = git status --porcelain
if ($status) {
    Write-Host "✓ Có file thay đổi:" -ForegroundColor Green
    $status | ForEach-Object { Write-Host "  $_" -ForegroundColor White }
} else {
    Write-Host "✓ Không có file thay đổi" -ForegroundColor Green
}
Write-Host ""

# 2. Fetch từ remote
Write-Host "[2/6] Lấy thông tin từ GitHub..." -ForegroundColor Yellow
git fetch origin 2>&1 | Out-Null
Write-Host "✓ Đã fetch" -ForegroundColor Green
Write-Host ""

# 3. So sánh local vs remote
Write-Host "[3/6] So sánh local với remote..." -ForegroundColor Yellow
$localCommit = git rev-parse HEAD 2>$null
$remoteCommit = git rev-parse origin/main 2>$null

Write-Host "Local commit:  $($localCommit.Substring(0,7))" -ForegroundColor Cyan
Write-Host "Remote commit: $($remoteCommit.Substring(0,7))" -ForegroundColor Cyan
Write-Host ""

# 4. Kiểm tra commits chưa push
Write-Host "[4/6] Kiểm tra commits chưa push..." -ForegroundColor Yellow
$unpushed = git log origin/main..HEAD --oneline
if ($unpushed) {
    Write-Host "⚠ Có commits chưa push:" -ForegroundColor Yellow
    $unpushed | ForEach-Object { Write-Host "  $_" -ForegroundColor White }
} else {
    Write-Host "✓ Không có commits mới để push" -ForegroundColor Green
}
Write-Host ""

# 5. Kiểm tra commits trên remote chưa có local
Write-Host "[5/6] Kiểm tra commits trên remote..." -ForegroundColor Yellow
$unpulled = git log HEAD..origin/main --oneline
if ($unpulled) {
    Write-Host "⚠ Có commits trên remote chưa có local:" -ForegroundColor Yellow
    $unpulled | ForEach-Object { Write-Host "  $_" -ForegroundColor White }
    Write-Host "⚠ Cần pull trước khi push!" -ForegroundColor Red
} else {
    Write-Host "✓ Local đã đồng bộ với remote" -ForegroundColor Green
}
Write-Host ""

# 6. Push nếu có thay đổi
Write-Host "[6/6] Xử lý push..." -ForegroundColor Yellow
$hasUnpushed = git log origin/main..HEAD --oneline
$hasChanges = git status --porcelain

if ($hasUnpushed -or $hasChanges) {
    if ($hasChanges) {
        Write-Host "Đang thêm file thay đổi..." -ForegroundColor Yellow
        git add .
        Write-Host "Đang commit..." -ForegroundColor Yellow
        git commit -m "Update: OpenNotion project - $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')"
    }
    
    Write-Host "Đang push lên GitHub..." -ForegroundColor Yellow
    $pushResult = git push origin main 2>&1
    
    if ($LASTEXITCODE -eq 0) {
        Write-Host ""
        Write-Host "========================================" -ForegroundColor Green
        Write-Host "  ✓ THÀNH CÔNG! Code đã được push!" -ForegroundColor Green
        Write-Host "========================================" -ForegroundColor Green
        Write-Host ""
        Write-Host "Xem tại: https://github.com/Hoanganhvu123/cuccu_note" -ForegroundColor Cyan
    } else {
        Write-Host ""
        Write-Host "========================================" -ForegroundColor Red
        Write-Host "  ✗ Push thất bại!" -ForegroundColor Red
        Write-Host "========================================" -ForegroundColor Red
        Write-Host $pushResult -ForegroundColor Red
    }
} else {
    Write-Host "✓ Không có gì để push - mọi thứ đã đồng bộ!" -ForegroundColor Green
}

Write-Host ""

