FROM php:8.4-fpm

# Install system dependencies (libpq-dev for PostgreSQL)
RUN apt-get update && apt-get install -y --no-install-recommends \
    git curl zip unzip \
    libpng-dev libonig-dev libxml2-dev \
    libzip-dev libfreetype6-dev libjpeg62-turbo-dev \
    libpq-dev \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# Install PHP extensions (pdo_pgsql + pgsql for PostgreSQL)
RUN docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install -j$(nproc) pdo_mysql pdo_pgsql pgsql mbstring exif pcntl bcmath gd zip

# Install Composer
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer

WORKDIR /var/www

# Copy dependency files
COPY composer.json composer.lock ./
COPY . .

# Ensure .env exists (runtime env tetap dari Render)
RUN cp .env.dev .env

# Install AWS S3 Flysystem package for storage
RUN composer require league/flysystem-aws-s3-v3 --no-interaction --with-all-dependencies

# Permissions
RUN chown -R www-data:www-data /var/www/storage /var/www/bootstrap/cache

# Install dependencies (simplified for stability)
RUN composer install --no-dev

# Clear caches safely
RUN CACHE_STORE=array php artisan config:clear \
    && CACHE_STORE=array php artisan cache:clear \
    && php artisan view:clear \
    && php artisan route:clear

# Copy optimized PHP-FPM configuration for high concurrency
COPY docker/php-fpm.conf /usr/local/etc/php-fpm.d/zz-docker.conf

# Create log directory for PHP-FPM
RUN mkdir -p /var/log/php-fpm \
    && chown -R www-data:www-data /var/log/php-fpm

# IMPORTANT: Use PHP-FPM for production instead of artisan serve
# PHP-FPM is much more performant and handles high concurrency properly
CMD ["php-fpm"]