Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'

.\scripts\Windows\starter.ps1
if ($LASTEXITCODE -ne 0) {
    exit $LASTEXITCODE
}


Write-Host "Shutting down..." -ForegroundColor Magenta
docker compose down
if ($LASTEXITCODE -ne 0) {
    exit $LASTEXITCODE
}
Write-Host "Services were shut down successfully!" -ForegroundColor Green

Write-Host "Spinning services up..." -ForegroundColor Magenta
docker compose up -d --build --wait
if ($LASTEXITCODE -ne 0) {
    exit $LASTEXITCODE
}
Write-Host "Services are up and healthy!" -ForegroundColor Green

Write-Host "Applying migrations..." -ForegroundColor Magenta
docker compose exec app uv run python manage.py migrate --no-input --verbosity 0
if ($LASTEXITCODE -ne 0) {
    exit $LASTEXITCODE
}
Write-Host "Migrations applied successfully!" -ForegroundColor Green

Write-Host "Collecting static files..." -ForegroundColor Magenta
docker compose exec app uv run python manage.py collectstatic --clear --no-input --verbosity 0
if ($LASTEXITCODE -ne 0) {
    exit $LASTEXITCODE
}
Write-Host "Static files collected successfully!" -ForegroundColor Green

Write-Host "Setting default caches..." -ForegroundColor Magenta
docker compose exec app uv run python manage.py set_default_caches
if ($LASTEXITCODE -ne 0) {
    exit $LASTEXITCODE
}
Write-Host "Default caches set successfully!" -ForegroundColor Green

Write-Host "Building search Index..." -ForegroundColor Magenta
docker compose exec app uv run python manage.py search_index --rebuild -f
if ($LASTEXITCODE -ne 0) {
    exit $LASTEXITCODE
}
Write-Host "Search Index built successfully!" -ForegroundColor Green

Write-Host "Cleaning up unused Docker data..." -ForegroundColor Magenta
docker system prune -f
if ($LASTEXITCODE -ne 0) {
    exit $LASTEXITCODE
}
Write-Host "Unused Docker data cleaned successfully!" -ForegroundColor Green

Write-Host "All done! eVibes is up and running!" -ForegroundColor Cyan
