#!/bin/bash

# Define constants
BACKEND_PORT=8081
FRONTEND_PORT=5173
NETWORK_NAME="carfi-network"
SERVER_IP="192.168.90.211"

echo "Stopping and removing old containers..."
sudo docker rm -f carfi-backend carfi-frontend

echo "Creating network '$NETWORK_NAME' if it doesn't exist..."
sudo docker network create $NETWORK_NAME || true

echo "--- BACKEND ---"
echo "Building Backend..."
sudo docker build -t carfi-crm-back ./carfi-crm-back

echo "Starting Backend on port $BACKEND_PORT..."
# Load environment variables for the backend command
# We generally rely on the .env file inside the container or passed via --env-file
# logic from compose: 
# volumes: ./carfi-crm-back:/var/www/html
# env_file: ./carfi-crm-back/.env
# extra_hosts: host.docker.internal:host-gateway

sudo docker run -d \
  --name carfi-backend \
  --network $NETWORK_NAME \
  -p $BACKEND_PORT:80 \
  -v "$(pwd)/carfi-crm-back:/var/www/html" \
  -v /var/www/html/vendor \
  --env-file ./carfi-crm-back/.env \
  -e APP_ENV=local \
  -e APP_DEBUG=true \
  -e DB_HOST=host.docker.internal \
  -e DB_CONNECTION=mysql \
  --add-host=host.docker.internal:host-gateway \
  carfi-crm-back

echo "--- FRONTEND ---"
echo "Building Frontend..."
sudo docker build -t carfi-crm-front ./carfi-crm-front

echo "Starting Frontend on port $FRONTEND_PORT..."
# logic from compose:
# volumes: ./carfi-crm-front:/app, /app/node_modules
# env: VITE_API_BASE_URL...

sudo docker run -d \
  --name carfi-frontend \
  --network $NETWORK_NAME \
  -p $FRONTEND_PORT:5173 \
  -v "$(pwd)/carfi-crm-front:/app" \
  -v /app/node_modules \
  -e VITE_API_BASE_URL="http://$SERVER_IP:$BACKEND_PORT" \
  carfi-crm-front

echo "Done! Services should be up."
echo "Backend: http://$SERVER_IP:$BACKEND_PORT"
echo "Frontend: http://$SERVER_IP:$FRONTEND_PORT"
