#!/usr/bin/env bash
set -e

# -----------------------------------------------------------------------------
# Generate PHP models for php-pdp-sdk from OWS PDP OpenAPI spec
# -----------------------------------------------------------------------------

# Paths
ROOT_DIR="$(pwd)"
WIP_DIR="wip_php_pdp"
SDK_DIR="src/Connectors/OwsPdp"

# Cleanup any old generated files
rm -rf "${WIP_DIR}"
mkdir -p "${WIP_DIR}"

echo "Generating PHP models into: ${WIP_DIR}"

# -----------------------------------------------------------------------------
# Generate models using OpenAPI Generator Docker image
# -----------------------------------------------------------------------------
docker run --rm \
  -v "${ROOT_DIR}:/local" \
  -v "${ROOT_DIR}/.openapi-generator-ignore:/local/wip_php_pdp/.openapi-generator-ignore" \
  openapitools/openapi-generator-cli:v7.16.0 generate \
  --additional-properties=invokerPackage=PdpSdk\\Connectors\\OwsPdp,packageName=OwsPdp \
  -i https://qa-ows-pdp.theorchard.io/openapi.json \
  -g php \
  -o /local/wip_php_pdp

# -----------------------------------------------------------------------------
# Move generated models into the php SDK directory
# -----------------------------------------------------------------------------
echo "Moving generated SDK files into PHP SDK structure..."

mkdir -p "${SDK_DIR}/Model"
cp -r "${WIP_DIR}/lib/Model/"* "${SDK_DIR}/Model/"
cp -r "${WIP_DIR}/.openapi-generator" "src/Connectors/"
cp "${WIP_DIR}/lib/ObjectSerializer.php" "${SDK_DIR}/"

#clean-up temp files
echo "Cleanup temp files"
rm -rf "${WIP_DIR}"

# -----------------------------------------------------------------------------
# Done
# -----------------------------------------------------------------------------
echo "PHP models generated successfully at: ${SDK_DIR}/Model"
