# 환경은 "실행 명령어"로 분기한다 (-env 플래그). 환경변수 APP_ENV에 의존하지 않음.
.PHONY: run-dev run-prod build build-linux test vet fmt

# --- 로컬 실행 (명령어로 환경 선택) ---
run-dev:        ## 개발 모드 실행 (text 로그, debug, 콘솔만)
	go run . -env dev

run-prod:       ## 운영 모드 실행 (JSON 로그, info, logs/app.log)
	go run . -env prod

# --- 빌드 ---
build:          ## 현재 OS용 바이너리
	go build -ldflags="-s -w" -o slack-notifier .

# EC2 배포용 정적 바이너리. 기본 arm64(t4g/Graviton). x86_64 인스턴스면 ARCH=amd64.
ARCH ?= arm64
build-linux:    ## EC2용 리눅스 정적 바이너리 (ARCH=arm64|amd64)
	GOOS=linux GOARCH=$(ARCH) CGO_ENABLED=0 go build -ldflags="-s -w" -o slack-notifier .
	@echo "built: slack-notifier (linux/$(ARCH))"

# --- 검증 ---
test:
	go test ./...
vet:
	go vet ./...
fmt:
	gofmt -w .
