FROM composer:latest AS composer
FROM php:8.2-fpm

COPY --from=composer /usr/bin/composer /usr/bin/composer

ARG USER_ID
ARG GROUP_ID

ADD images/php82/php.ini /usr/local/etc/php/php.ini
ADD www/first.loc/api /var/www/first.loc/api

# ============================================
# БЛОК 1: Настройка пользователя и прав
# ============================================
RUN chown -R 1000:1000 /var/www/ && \
    usermod -u 1000 www-data && \
    groupmod -g 1000 www-data

# ============================================
# БЛОК 2: Базовая система и обновление пакетов
# ============================================
RUN apt-get update -y && \
    apt-get -y install \
        gcc \
        make \
        autoconf \
        libc-dev \
        pkg-config \
        libzip-dev \
        locales

# ============================================
# БЛОК 3: Основные инструменты и библиотеки
# ============================================
RUN apt-get install -y --no-install-recommends \
        git \
        libz-dev \
        libpq-dev \
        libxml2-dev \
        libmemcached-dev \
        libldap2-dev \
        libbz2-dev \
        zlib1g-dev \
        libicu-dev \
        g++ \
        libssl-dev \
        libssl-doc \
        libsasl2-dev \
        curl \
        libcurl4-openssl-dev

# ============================================
# БЛОК 4: Специализированные библиотеки
# ============================================
RUN apt-get install -y --no-install-recommends \
        libgmp-dev \
        firebird-dev \
        libib-util

# ============================================
# БЛОК 5: Библиотеки для изображений и графики
# ============================================
RUN apt-get install -y --no-install-recommends \
        re2c \
        libpng++-dev \
        libwebp-dev \
        libjpeg-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
        libxpm-dev \
        libvpx-dev \
        libfreetype6-dev

# ============================================
# БЛОК 6: Python и ImageMagick
# ============================================
RUN apt-get install -y --no-install-recommends \
        python3 \
        python3-pip \
        libmagick++-dev \
        libmagickwand-dev

# ============================================
# БЛОК 7: Дополнительные утилиты и библиотеки
# ============================================
RUN apt-get install -y --no-install-recommends \
        zlib1g-dev \
        libgd-dev \
        unzip \
        libpcre2-dev \
        libtidy-dev \
        libxslt1-dev \
        libmagic-dev \
        libexif-dev \
        file \
        libmhash2 \
        libmhash-dev \
        libkrb5-dev \
        libssh2-1-dev \
        poppler-utils \
        ghostscript \
        libmagickwand-dev \
        libsnmp-dev \
        libedit-dev \
        libreadline-dev \
        libsodium-dev \
        freetds-bin \
        freetds-dev \
        freetds-common \
        libct4 \
        libsybdb5 \
        tdsodbc \
        librecode-dev \
        libpspell-dev \
        libonig-dev

# ============================================
# БЛОК 8: Пропускаем IMAP (не нужен для работы)
# ============================================
RUN echo "IMAP extension skipped - continuing with other extensions"

# ============================================
# БЛОК 9: Установка расширений PHP (часть 1)
# ============================================
RUN ln -s /usr/lib/x86_64-linux-gnu/libsybdb.so /usr/lib/ && \
    docker-php-ext-install pdo_dblib && \
    docker-php-ext-install dba && \
    docker-php-ext-install curl && \
    docker-php-ext-install fileinfo && \
    docker-php-ext-install filter && \
    docker-php-ext-install exif && \
    docker-php-ext-install gettext && \
    docker-php-ext-install gmp && \
    docker-php-ext-install iconv

# ============================================
# БЛОК 10: Установка расширений PHP (часть 2 - базы данных)
# ============================================
RUN docker-php-ext-install mysqli && \
    docker-php-ext-install pdo_mysql && \
    docker-php-ext-install pdo_pgsql && \
    docker-php-ext-install pgsql && \
    docker-php-ext-install session && \
    docker-php-ext-install zip && \
    docker-php-ext-install xml

# ============================================
# БЛОК 11: Установка GD с конфигурацией
# ============================================
RUN docker-php-ext-configure gd \
        --with-jpeg \
        --with-xpm \
        --with-webp \
        --with-freetype && \
    docker-php-ext-install -j$(nproc) gd

# ============================================
# БЛОК 12: Установка MongoDB через PECL
# ============================================
RUN pecl install mongodb && \
    docker-php-ext-enable mongodb

# ============================================
# БЛОК 13: Настройка локали
# ============================================
RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
    locale-gen en_US.UTF-8 && \
    update-locale LANG=en_US.UTF-8

# ============================================
# БЛОК 14: Очистка и финальные права
# ============================================
RUN chmod +x /usr/local/bin/* && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

# ============================================
# Финальные настройки
# ============================================
ENV LANG='en_US.UTF-8' \
    LANGUAGE='en_US:en' \
    LC_ALL='en_US.UTF-8'

WORKDIR /var/www
USER 1000:1000

RUN mkdir -p /var/www/first.loc/api/tmp

CMD ["php-fpm"]
