# Stage 1: Build assets and dependencies
FROM php:8.4-fpm-alpine AS builder

# Install system dependencies
RUN apk add --no-cache \
    curl freetype-dev libjpeg-turbo-dev libpng-dev libzip-dev \
    nodejs npm oniguruma-dev unzip zip \
    && docker-php-ext-configure zip \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install zip pdo_mysql gd bcmath pcntl

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

WORKDIR /app
COPY . .

RUN composer install --no-dev --optimize-autoloader\
    && npm install --ignore-scripts && npm run build \
    && chmod -R 775 storage bootstrap/cache

# Stage 2: Runtime container
FROM php:8.4-fpm-alpine

RUN apk add --no-cache \
    freetype-dev libjpeg-turbo-dev libpng-dev libzip-dev oniguruma-dev \
    && docker-php-ext-configure zip \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install zip pdo_mysql gd bcmath pcntl

# Copy files with correct ownership
COPY --from=builder --chown=www-data:www-data /app /app

WORKDIR /app

# Set permissions (ownership already handled)
RUN chmod -R 775 /app/storage /app/bootstrap/cache

ENV APP_ENV=production
ENV APP_DEBUG=false

CMD ["php-fpm"]