include api.env MIGRATION_PATH = ./cmd/db/migrations export test: @go test -v -cover -short ./... mock: @mockgen --package mockdb --destination internal/db/mock/store.go $(PKG_NAME)/internal/db/sqlc Store @mockgen --package mockwk --destination internal/worker/mock/distributor.go $(PKG_NAME)/internal/worker TaskDistributor @mockgen --package mocksvc --destination internal/service/mock/service.go $(PKG_NAME)/internal/service UserService,AuthService up: @docker compose --env-file api.env up -d down: @docker compose --env-file api.env down reload: @docker compose --env-file api.env down && docker rmi $(PROJ_NAME)-api && docker compose --env-file api.env up -d server: @air -c air.toml migration: @migrate create -seq -ext sql -dir $(MIGRATION_PATH) $(filter-out $@,$(MAKECMDGOALS)) migrate-up: @migrate -path=$(MIGRATION_PATH) -database=$(DB_ADDR) -verbose up migrate-down: @migrate -path=$(MIGRATION_PATH) -database=$(DB_ADDR) -verbose down $(filter-out $@,$(MAKECMDGOALS)) sqlc: @sqlc generate dbdocs: @dbdocs build -o ./docs/dbdocs ./docs/db.dbml @echo "Database documentation generated at ./docs/dbdocs" dbschema: @dbml2sql --postgres -o docs/schema.sql docs/db.dbml proto: @rm -f pb/*.go @rm -f docs/swagger/*.swagger.json @protoc --proto_path=proto --go_out=pb --go_opt=paths=source_relative \ --go-grpc_out=pb --go-grpc_opt=paths=source_relative \ --grpc-gateway_out=pb --grpc-gateway_opt=paths=source_relative \ --openapiv2_out=docs/swagger --openapiv2_opt=allow_merge=true,merge_file_name=$(PROJ_NAME)\ proto/*.proto @statik -src=./docs/swagger -dest=./docs evans: @evans --host localhost --port 9090 -r repl lint: @golangci-lint run ./... .PHONY: test mock up down reload server migration migrate-up migrate-down sqlc dbdocs dbschema proto evans lint