NAME=rentease
PORT=8000
DB_USER=ruidy
DB_NAME=villafleurie

build: format lint ## Build the binary
	@docker build -t ${NAME}:latest .
run: build ## Run the binary
	@docker run -p ${PORT}:${PORT} -e DATABASE_URL="host=docker.for.mac.host.internal user=${DB_USER} database=${DB_NAME}" -e PORT=${PORT} ${NAME}
dev: ## Run the binary in dev mode
	@docker build -t ${NAME}:dev -f Dockerfile.dev .
	@docker run -p ${PORT}:${PORT} --rm -v `pwd`:/app -v /app/tmp --name ${NAME} -e DATABASE_URL="host=docker.for.mac.host.internal user=${DB_USER} database=${DB_NAME}" -e PORT=${PORT} ${NAME}:dev
test: ## Run the tests
	@go test ./...
up-deps: ## Update dependencies
	@go get -u ./...
cron: ## Run the cron
	@go run cmd/cron/main.go
format: ## Format the code
	@templ generate internal/views
	@templ fmt .
	@go fmt ./...
lint: ## Lint the code
	@golangci-lint run ./...

help: ## Display this help message
	@echo "Usage: make [command]"
	@echo
	@echo "Commands:"
	@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "  %-15s %s\n", $$1, $$2}'

.DEFAULT_GOAL := help
.PHONY: build run dev templ format lint
