# Variables
export DATABASE_URL := "postgres://sweetnhome_dev:sweetnhome_dev@localhost:5432/sweetnhome_dev"
export PORT := "3005"

[private]
default:
    @just --list


[doc("Install dashboard deps")]
bun-install-dashboard:
    cd sweetnhouse_dashboard && bun i

[doc("Build dashboard static files")]
build-dashboard: bun-install-dashboard
    cd sweetnhouse_dashboard && gleam build --target javascript
    rm -f sweetnhouse_server/priv/static/client.min.mjs \
         sweetnhouse_server/priv/static/client.mjs \
         sweetnhouse_server/priv/static/client.css
    echo 'import { main } from "./sweetnhouse_dashboard.mjs";document.addEventListener("DOMContentLoaded", main())' > "./sweetnhouse_dashboard/build/dev/javascript/sweetnhouse_dashboard/sweetnhouse_dashboard.ts"
    cd sweetnhouse_dashboard && \
      bun build ./build/dev/javascript/sweetnhouse_dashboard/sweetnhouse_dashboard.ts --minify --outfile ../sweetnhouse_server/priv/static/client.min.mjs --target=browser ;\
      bun build ./build/dev/javascript/sweetnhouse_dashboard/sweetnhouse_dashboard.ts --outfile ../sweetnhouse_server/priv/static/client.mjs --target=browser ;\
      tailwindcss -i ./src/sweetnhouse_dashboard.css -o ../sweetnhouse_server/priv/static/client.css


[doc("Build the server BEAM files")]
build-server:
    cd sweetnhouse_server && gleam build --target erlang

[doc("Updates sql.gleam files")]
update-sql:
    cd sweetnhouse_server && gleam run -m squirrel

[doc("Development run")]
dev: build-dashboard build-server
    mkdir -p data/postgres
    # Podman setup
    podman run --replace -v ./data/postgres:/var/lib/postgresql:Z \
        --name sweetnhome-dev-pg -p 5432:5432 \
        -e POSTGRES_PASSWORD=sweetnhome_dev \
        -e POSTGRES_USER=sweetnhome_dev -d \
        docker.io/library/postgres:18.1
    # Start app
    cd sweetnhouse_server && gleam run
