#!/bin/bash

echo "======================================"
echo "Datadss HR Docker Setup"
echo "======================================"
echo ""

# Check if .env exists
if [ ! -f .env ]; then
    if [ -f .env.docker ]; then
        echo "Creating .env file from .env.docker..."
        cp .env.docker .env
        echo ".env file created"
    elif [ -f .env.example ]; then
        echo "Creating .env file from .env.example..."
        cp .env.example .env
        echo ".env file created"
    else
        echo "No .env file found. Please create one manually."
        exit 1
    fi
else
    echo ".env file already exists, skipping..."
fi

# Build and start containers
echo ""
echo "Building and starting Docker containers..."
docker-compose up -d --build

# Wait for MySQL to be ready
echo ""
echo "Waiting for MySQL to be ready..."
sleep 15

# Generate application key
echo ""
echo "Generating application key..."
docker-compose exec -T php-fpm php artisan key:generate

# Run migrations
echo ""
echo "Running database migrations..."
docker-compose exec -T php-fpm php artisan migrate --force

# Run seeders
echo ""
read -p "Do you want to run database seeders? (y/n): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
    docker-compose exec -T php-fpm php artisan db:seed --force
    echo "Database seeded"
fi

# Create storage link
echo ""
echo "Creating storage symlink..."
docker-compose exec -T php-fpm php artisan storage:link

# Clear and cache config
echo ""
echo "Optimizing application..."
docker-compose exec -T php-fpm php artisan config:cache
docker-compose exec -T php-fpm php artisan route:cache
docker-compose exec -T php-fpm php artisan view:cache

# Set permissions
echo ""
echo "Setting permissions..."
docker-compose exec -T php-fpm chown -R www-data:www-data /var/www/storage
docker-compose exec -T php-fpm chown -R www-data:www-data /var/www/bootstrap/cache

echo ""
echo "======================================"
echo "Docker setup completed!"
echo "======================================"
echo ""
echo "Your application is now running at: http://localhost:8010"
echo "phpMyAdmin is available at: http://localhost:8090"
echo "MySQL is available at: localhost:3310"
echo ""
echo "Useful commands:"
echo "  - View logs: docker-compose logs -f"
echo "  - Stop containers: docker-compose stop"
echo "  - Start containers: docker-compose start"
echo "  - Restart containers: docker-compose restart"
echo "  - Remove containers: docker-compose down"
echo "  - Access app container: docker-compose exec php-fpm bash"
echo "  - Run artisan commands: docker-compose exec php-fpm php artisan [command]"
echo ""
