# UNIFIED Dockerfile - AUTO-DETECT Thick/Thin Mode
FROM python:3.11-slim as base

# Set argument for build mode (thick by default for compatibility)
ARG ORACLE_MODE=thick

# Base application setup
WORKDIR /app
COPY requirements.txt /app/requirements.txt
RUN pip3 install -r requirements.txt

# Oracle Instant Client + SQL*Plus installation (only if thick mode)
RUN if [ "$ORACLE_MODE" = "thick" ] ; then \
    apt-get update && apt-get install -y libaio-dev wget unzip curl && \
    mkdir -p /opt/oracle && cd /opt/oracle && \
    wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-basiclite-linuxx64.zip && \
    wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-sqlplus-linuxx64.zip && \
    unzip -o instantclient-basiclite-linuxx64.zip && \
    unzip -o instantclient-sqlplus-linuxx64.zip && \
    rm -f instantclient-basiclite-linuxx64.zip instantclient-sqlplus-linuxx64.zip && \
    cd /opt/oracle/instantclient* && \
    rm -f *jdbc* *mysql* *jar uidrvci genezi adrci && \
    echo /opt/oracle/instantclient* > /etc/ld.so.conf.d/oracle-instantclient.conf && \
    ldconfig && \
    ln -sf /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1 && \
    ln -sf /opt/oracle/instantclient*/sqlplus /usr/local/bin/sqlplus ; \
    else \
    echo "Thin mode - skipping Oracle Instant Client installation" ; \
    fi

# Copy application files
COPY . .

# Create logs directory
RUN mkdir -p /app/logs

# Expose port
EXPOSE 5000

# Run Flask application with auto-detect mode
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "admin:app", "--reload", "--access-logfile", "-"]