#!/usr/bin/env sh
set -eu

CODIGO_IBGE="${1:-3550308}"
PASSWORD="${2:-mock123}"
OUT_DIR="certificados/municipios/$CODIGO_IBGE"
KEY_FILE="$OUT_DIR/mock.key"
CRT_FILE="$OUT_DIR/mock.crt"
PFX_FILE="$OUT_DIR/certificado.pfx"

mkdir -p "$OUT_DIR"

openssl req \
  -x509 \
  -newkey rsa:2048 \
  -keyout "$KEY_FILE" \
  -out "$CRT_FILE" \
  -days 365 \
  -nodes \
  -subj "/C=BR/ST=SP/L=Homolog/O=Prefeitura Mock $CODIGO_IBGE/CN=NFSE Mock $CODIGO_IBGE"

openssl pkcs12 \
  -export \
  -out "$PFX_FILE" \
  -inkey "$KEY_FILE" \
  -in "$CRT_FILE" \
  -passout "pass:$PASSWORD"

chmod 700 certificados certificados/municipios "$OUT_DIR" 2>/dev/null || true
chmod 600 "$KEY_FILE" "$CRT_FILE" "$PFX_FILE"

cat <<INFO
Certificado mock gerado.

Arquivo:
  $PFX_FILE

Senha:
  $PASSWORD

Teste local:
  PFX_PASSWORD='$PASSWORD' ./scripts/test_certificado_homolog.sh $PFX_FILE

Observacao:
  Este certificado e autoassinado. Ele valida o fluxo local de leitura,
  mas nao autentica na NFS-e producao restrita.
INFO
