YA					:= ../../ya
BIN					:= ./project/uwsgi/adv-backend
MANAGE				:= ./project/manage/adv-manage

PACKAGE_JSON 		:= ./pkg.json
DOCKER_REPOSITORY 	:= advertising

UWSGI_CONFIG 		:= ./docker/uwsgi.ini

ifneq ($(name),)
	MIGRATION_NAME=--name $(name)
endif

ifneq ($(tag),)
	CUSTOM_VERSION=--custom-version $(tag)
endif

build:
	$(YA) make

# TODO: Разобраться со статикой внутри бинарника
collectstatic:
	$(MANAGE) collectstatic --noinput --verbosity 0

init: build
	createdb adv 1>/dev/null 2>/dev/null
	createuser adv 1>/dev/null 2>/dev/null
	$(MANAGE) migrate
	$(MANAGE) createsuperuser --email $(USER)@yandex-team.ru --username $(USER) --no-input
	$(MANAGE) createrolesuperuser

b2d: build
	$(MANAGE) b2d

run: build collectstatic
	$(MANAGE) check
	$(BIN) --ini $(UWSGI_CONFIG)

test: build
	$(YA) make -A

migrate: build
	$(MANAGE) migrate

makemigrations: build
	$(MANAGE) makemigrations $(app) $(MIGRATION_NAME)

# TODO: Доделать
generateschema: build
	$(MANAGE) generateschema > openapi-schema.yml

publish:
	$(YA) package $(PACKAGE_JSON) --docker --docker-repository $(DOCKER_REPOSITORY) --docker-push $(CUSTOM_VERSION)

.PHONY: build collectstatic run test migrate makemigrations generateschema publish
