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

API_BASE="http://127.0.0.1:8099"
CIRCULAR_ID="1"
POST_ID="2"

tmp_dir="storage/app/tmp_api_submit"
mkdir -p "$tmp_dir"
rm -f "$tmp_dir"/*

printf 'photo-sample' > "$tmp_dir/photo.jpg"
printf 'signature-sample' > "$tmp_dir/signature.jpg"
printf 'birth-certificate-sample' > "$tmp_dir/birth.pdf"
printf 'nid-copy-sample' > "$tmp_dir/nid.pdf"

ok=0
fail=0

for i in $(seq 1 10); do
  name=$(printf 'API Applicant %02d' "$i")
  mobile=$(printf '017%08d' "$i")
  email=$(printf 'api.applicant%02d@gmail.com' "$i")

  resp_file="$tmp_dir/resp_$i.json"
  http_code=$(curl -sS -o "$resp_file" -w "%{http_code}" -X POST "$API_BASE/api/job-circulars/$CIRCULAR_ID/applications" \
    -F "applicationInfo[jobPostId]=$POST_ID" \
    -F "applicationInfo[selectedPostTitle]=Teacher" \
    -F "basicInformation[nameEn]=$name" \
    -F "basicInformation[nameBn]=Applicant BN $i" \
    -F "basicInformation[fatherEn]=Father $i" \
    -F "basicInformation[fatherBn]=Father BN $i" \
    -F "basicInformation[motherEn]=Mother $i" \
    -F "basicInformation[motherBn]=Mother BN $i" \
    -F "basicInformation[dob]=1995-01-15" \
    -F "basicInformation[nationality]=Bangladeshi" \
    -F "basicInformation[religion]=Islam" \
    -F "basicInformation[gender]=Male" \
    -F "basicInformation[maritalStatus]=Single" \
    -F "basicInformation[nidStatus]=Yes" \
    -F "basicInformation[nidNum]=1234567890$i" \
    -F "basicInformation[birthRegStatus]=Yes" \
    -F "basicInformation[birthRegNum]=BRN12345$i" \
    -F "basicInformation[passportStatus]=No" \
    -F "basicInformation[passportNum]=" \
    -F "basicInformation[mobile]=$mobile" \
    -F "basicInformation[email]=$email" \
    -F "basicInformation[primarySubject]=Mathematics" \
    -F "basicInformation[expectedSalary]=25000" \
    -F "addressDetails[present][careOf]=C/O Test" \
    -F "addressDetails[present][village]=Village $i" \
    -F "addressDetails[present][district]=Dhaka" \
    -F "addressDetails[present][upazila]=Dhamrai" \
    -F "addressDetails[present][postOffice]=PO $i" \
    -F "addressDetails[present][postCode]=1350" \
    -F "addressDetails[sameAsPresent]=1" \
    -F "academicQualifications[ssc][examination]=SSC" \
    -F "academicQualifications[ssc][board]=Dhaka" \
    -F "academicQualifications[ssc][group]=Science" \
    -F "academicQualifications[ssc][resultType]=GPA" \
    -F "academicQualifications[ssc][gpa]=5.00" \
    -F "academicQualifications[ssc][roll]=SSC$i" \
    -F "academicQualifications[ssc][passingYear]=2010" \
    -F "academicQualifications[hsc][examination]=HSC" \
    -F "academicQualifications[hsc][board]=Dhaka" \
    -F "academicQualifications[hsc][group]=Science" \
    -F "academicQualifications[hsc][resultType]=GPA" \
    -F "academicQualifications[hsc][gpa]=5.00" \
    -F "academicQualifications[hsc][roll]=HSC$i" \
    -F "academicQualifications[hsc][passingYear]=2012" \
    -F "academicQualifications[graduation][examination]=BSc" \
    -F "academicQualifications[graduation][university]=National University" \
    -F "academicQualifications[graduation][subject]=Mathematics" \
    -F "academicQualifications[graduation][duration]=4 Years" \
    -F "academicQualifications[graduation][resultType]=CGPA" \
    -F "academicQualifications[graduation][gpa]=3.80" \
    -F "academicQualifications[graduation][roll]=GRAD$i" \
    -F "academicQualifications[graduation][passingYear]=2016" \
    -F "academicQualifications[masters][isApplicable]=0" \
    -F "otherQualifications[qual1]=Yes" \
    -F "otherQualifications[qual2]=No" \
    -F "documents[photo]=@$tmp_dir/photo.jpg;type=image/jpeg" \
    -F "documents[signature]=@$tmp_dir/signature.jpg;type=image/jpeg" \
    -F "documents[birthCertificate]=@$tmp_dir/birth.pdf;type=application/pdf" \
    -F "documents[nidCopy]=@$tmp_dir/nid.pdf;type=application/pdf" \
    -F "finalSubmission[declarationAccepted]=1" \
    -F "finalSubmission[captchaVerified]=1")

  snippet=$(tr -d '\n' < "$resp_file" | cut -c1-200)

  if [[ "$http_code" == "201" ]]; then
    ok=$((ok + 1))
    echo "Submission $i: HTTP $http_code (OK) | $snippet"
  else
    fail=$((fail + 1))
    echo "Submission $i: HTTP $http_code (FAIL) | $snippet"
  fi
done

echo "TOTAL_OK=$ok TOTAL_FAIL=$fail"

rm -f "$tmp_dir"/*
