#* GET FILE ENV
include .env
export $(shell sed 's/=.*//' .env)

DB_URL=postgres://$(POSTGRES_USER):$(POSTGRES_PASSWORD)@localhost:$(POSTGRES_PORT)/$(POSTGRES_DB)?sslmode=disable
# * FOLDER
SWAGGER_DIR=./docs/swagger
# * FILE RUN GO
GO_SERVER_PRO := ./cmd/server/main.go
GO_SERVER_DEV:= ./fsnotify.go

# * DOCKER COMPOSE
DOCKER_COMPOSE_DEV := docker-compose.dev.yml
DOCKER_COMPOSE_PRO := docker-compose.pro.yml

tidy:
	go mod tidy

dev:
	go run $(GO_SERVER_DEV)
################# SEED #################
seed:
	go run ./cmd/seed/main.go
################# DOCKER #################
build-pro:
	docker-compose -f $(DOCKER_COMPOSE_PRO) up -d --build

down-pro:
	docker-compose -f $(DOCKER_COMPOSE_PRO) down

build-dev:
	docker-compose -f $(DOCKER_COMPOSE_DEV) up -d --build

down-dev:
	docker-compose -f $(DOCKER_COMPOSE_DEV) down

################# MIGRATE #################
new_migration: 
	migrate create -ext sql -dir db/migrations -seq $(name)
	
migrate_version:
	migrate -path db/migrations -database "$(DB_URL)" version
	
migrate_up_all:
	migrate -path db/migrations -database "$(DB_URL)" up
	
migrate_down_all:
	migrate -path db/migrations -database "$(DB_URL)" down
	
migrate_up:
	migrate -path db/migrations -database "$(DB_URL)" up $(version)
	
migrate_down:
	migrate -path db/migrations -database "$(DB_URL)" down $(version)	
	
################# SWAGGER #################
swag:
	swag init -g cmd/server/main.go -o ./docs/swagger --parseDependency --parseInternal 

################# SQLC #################
sqlc:
	sqlc generate