DEV_AWS_ACCOUNT = 103233932089
DEV_IMAGE = $(DEV_AWS_ACCOUNT).dkr.ecr.us-east-1.amazonaws.com/lambda-spotify-daily-chart-freshness:latest
DEV_LAMBDA = dev-lambda-spotify-daily-chart-freshness

docker-login:
	aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 086679231553.dkr.ecr.us-east-1.amazonaws.com

docker-lint-and-test:
	mkdir -p build/
	chmod -R go+rw build/
	docker compose up \
		--build \
		--exit-code-from lint-and-test \
		--abort-on-container-exit \
		--remove-orphans \
		lint-and-test

lint-and-test:
	bash ./lint-and-test.sh

lint:
	ruff check src/ tests/ *.py

format:
	ruff format src/ tests/ *.py
	ruff check --fix src/ tests/ *.py

test:
	uv run py.test src/ tests/ *.py

docker-build:
	docker compose build

docker-run: docker-build
	docker compose up function
	docker image prune -f

docker-trigger:
	curl --request POST \
	--url http://localhost:9000/2015-03-31/functions/function/invocations \
	--header 'Content-Type: application/json' \
	--data '{"source":"aws.events","detail-type":"Scheduled Event"}'

lambda-update-dev:
	aws lambda update-function-code \
		--function-name $(DEV_LAMBDA) \
		--image-uri $(DEV_IMAGE) \
		--region us-east-1

ecr-deploy-dev:
	aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin $(DEV_AWS_ACCOUNT).dkr.ecr.us-east-1.amazonaws.com
	docker build --platform linux/amd64 --provenance=false -t $(DEV_IMAGE) .
	docker push $(DEV_IMAGE)
