DB_URL=postgresql://root:secret@localhost:5432/df?sslmode=disable

ifeq ($(shell command -v podman 2> /dev/null),)
    CMD=docker
else
    CMD=podman
endif

network:
	$(CMD) network create df-network

postgres:
	$(CMD) start postgres || $(CMD) run --name postgres -p 5432:5432 -e POSTGRES_USER=root -e POSTGRES_PASSWORD=secret -d postgres:15-alpine

migratenew:
	migrate create -ext sql -dir db/migration -seq init_schema

migrateup:
	migrate -path db/migration -database $(DB_URL) -verbose up

migratedown:
	migrate -path db/migration -database $(DB_URL) -verbose down

createdb:
	$(CMD) exec -it postgres createdb --username=root --owner=root df

dropdb:
	$(CMD) exec -it postgres dropdb df

sqlc:
	sqlc generate

sqlcinit:
	sqlc init

test:
	go test -v -cover -short -count=1 ./...

coverage:
	go test -coverprofile=coverage.out ./... && go tool cover -html=coverage.out

.PHONY: postgres migratenew createdb dropdb migrateup migratedown sqlc sqlcinit test