set dotenv-load := true

default:
    @echo "# Miniweb Project"
    @just --list -u

build:
    @cargo build

# Run the project (just run), or commands with --bin (just run <command>)
run args='miniweb':
    @cargo run --bin {{args}}

watch:
    cargo watch -c -q -w src -x run

status:
    @echo "Docker Images:"
    cd docker && docker-compose ls
    @echo "Database Status:"
    sea-orm-cli migrate status

# Start PostgreSQL Docker
pg-up:
    cd docker && docker-compose up -d

# Stop PostgreSQL Docker
pg-down:
    cd docker && docker-compose down

# Run Migrations
migrate:
    sea-orm-cli migrate

# Install Developer dependencies
dev-install:
    cargo install sea-orm-cli
    cargo install cargo-watch

# Reset Database
dev-reset:
    sea-orm-cli migrate reset

# Creates Entities from Database
db-create-entities:
    sea-orm-cli generate entity -u $DATABASE_URL -o entity_generated/src --lib