import Config # ─── upi_core: Database ─────────────────────────────────────────────────────── config :upi_core, UpiCore.Repo, username: "root", password: "dataaegis123", hostname: "localhost", database: "upi_pps", stacktrace: true, show_sensitive_data_on_connection_error: true, pool_size: 10 # ─── upi_web: Admin Dashboard on port 4040 ─────────────────────────────────── config :upi_web, UpiWeb.Endpoint, http: [ip: {0, 0, 0, 0}, port: 4040], check_origin: false, code_reloader: true, debug_errors: true, secret_key_base: "tHIBpZ29wAtqkdv+2nZlmkXiMxfXy5Pii138fwhjtHrk4yMYusdGmVm3FC/UwVE6", watchers: [ esbuild: {Esbuild, :install_and_run, [:upi_web, ~w(--sourcemap=inline --watch)]}, tailwind: {Tailwind, :install_and_run, [:upi_web, ~w(--watch)]} ], live_reload: [ patterns: [ ~r"apps/upi_web/priv/static/.*(js|css|png|jpeg|jpg|gif|svg)$", ~r"apps/upi_web/lib/upi_web/(controllers|live|components|views)/.*(ex|heex)$" ] ] # ─── upi_dynamic: Dynamic PSP on port 4041 ─────────────────────────────────── config :upi_dynamic, UpiDynamic.Endpoint, http: [ip: {0, 0, 0, 0}, port: 4041], check_origin: false, code_reloader: true, debug_errors: true, secret_key_base: "rHIBpZ29wAtqkdv+2nZlmkXiMxfXy5Pii138fwhjtHrk4yMYusdGmVm3FC/UwVE4", watchers: [ esbuild: {Esbuild, :install_and_run, [:upi_dynamic, ~w(--sourcemap=inline --watch)]}, tailwind: {Tailwind, :install_and_run, [:upi_dynamic, ~w(--watch)]} ] config :upi_dynamic, :npci_resppay_endpoint, "https://precert.nfinite.in/iupi/RespPay/2.0/urn:txnid:" config :upi_dynamic, :npci_reqvalqr_endpoint, "https://precert.nfinite.in/iupi/RespValQr/2.0/urn:txnid:" # NPCI heartbeat endpoint used when sending/constructing RespHbt URLs config :upi_dynamic, :npci_heartbeat_endpoint, "https://precert.nfinite.in/iupi/ReqHbt/2.0/urn:txnid:" # NPCI RespHbt endpoint (used when PSP sends RespHbt messages) config :upi_dynamic, :npci_resp_hbt_endpoint, "https://precert.nfinite.in/iupi/RespHbt/2.0/urn:txnid:" # ─── upi_static: Static PSP on port 4042 ───────────────────────────────────── config :upi_static, UpiStatic.Endpoint, http: [ip: {0, 0, 0, 0}, port: 4042], server: true, check_origin: false, code_reloader: true, debug_errors: true, secret_key_base: "sHIBpZ29wAtqkdv+2nZlmkXiMxfXy5Pii138fwhjtHrk4yMYusdGmVm3FC/UwVE5", watchers: [ esbuild: {Esbuild, :install_and_run, [:upi_static, ~w(--sourcemap=inline --watch)]}, tailwind: {Tailwind, :install_and_run, [:upi_static, ~w(--watch)]} ] config :upi_static, :npci_resppay_endpoint, "https://precert.nfinite.in/iupi/RespPay/2.0/urn:txnid:" config :upi_static, :npci_heartbeat_endpoint, "https://precert.nfinite.in/iupi/ReqHbt/2.0/urn:txnid:" # NPCI RespHbt endpoint (used when PSP sends RespHbt messages) config :upi_static, :npci_resp_hbt_endpoint, "https://precert.nfinite.in/iupi/RespHbt/2.0/urn:txnid:" # ─── Shared dev settings ────────────────────────────────────────────────────── config :logger, level: :debug config :logger, :console, format: "$time $metadata[$level] $message\n", metadata: [:request_id] config :phoenix, :stacktrace_depth, 20 config :phoenix, :plug_init_mode, :runtime # Oban: disable queue processing in dev — MySQL doesn't support SELECT in UPDATE config :upi_core, Oban, queues: false, plugins: false # Settlement scheduler: catch-up 30 days of missed settlements in dev config :upi_core, settlement_scheduler_catchup_days: 30 # esbuild per-app asset config config :esbuild, version: "0.17.11", upi_web: [ args: ~w(js/app.js --bundle --target=es2017 --outdir=../priv/static/assets --external:/fonts/* --external:/images/*), cd: Path.expand("../apps/upi_web/assets", __DIR__), env: %{"NODE_PATH" => Path.expand("../deps", __DIR__)} ], upi_dynamic: [ args: ~w(js/app.js --bundle --target=es2017 --outdir=../priv/static/assets --external:/fonts/* --external:/images/*), cd: Path.expand("../apps/upi_dynamic/assets", __DIR__), env: %{"NODE_PATH" => Path.expand("../deps", __DIR__)} ], upi_static: [ args: ~w(js/app.js --bundle --target=es2017 --outdir=../priv/static/assets --external:/fonts/* --external:/images/*), cd: Path.expand("../apps/upi_static/assets", __DIR__), env: %{"NODE_PATH" => Path.expand("../deps", __DIR__)} ] # tailwind per-app config config :tailwind, version: "3.4.3", upi_web: [ args: ~w(--config=tailwind.config.js --input=css/app.css --output=../priv/static/assets/app.css), cd: Path.expand("../apps/upi_web/assets", __DIR__) ], upi_dynamic: [ args: ~w(--config=tailwind.config.js --input=css/app.css --output=../priv/static/assets/app.css), cd: Path.expand("../apps/upi_dynamic/assets", __DIR__) ], upi_static: [ args: ~w(--config=tailwind.config.js --input=css/app.css --output=../priv/static/assets/app.css), cd: Path.expand("../apps/upi_static/assets", __DIR__) ]