include .env.infra-example

clone:
	git clone ${MY_APP_GIT_URL} app

start:
	docker-compose up -d

stop:
	docker-compose down --remove-orphans -v

restart: stop start

status:
	docker-compose ps

bash:
	docker-compose exec php-fpm bash

worker-restart:
	docker-compose exec worker supervisorctl restart laravel-worker:*

clear-images:
	docker-compose exec php-fpm ./artisan clear:orphaned-images

tinker:
	docker-compose exec php-fpm ./artisan tinker

reseed-db:
	docker-compose exec php-fpm bash -c "./artisan migrate:refresh; ./artisan db:seed"

setup-laravel-key:
	docker-compose exec php-fpm php /application/artisan key:generate

setup-laravel-packages:
	docker-compose exec php-fpm composer install

copy-laravel-env:
	docker-compose exec php-fpm cp /application/.env.example /application/.env

copy-infra-env:
	cp .env.infra-example .env

run-migrations:
	docker-compose exec php-fpm ./artisan migrate

run-plan-seed:
	docker-compose exec php-fpm ./artisan db:seed --class=PlanSeeder

run-user-seed:
	docker-compose exec php-fpm ./artisan db:seed --class=UserSeeder

seed-db:
	docker-compose exec php-fpm ./artisan db:seed

fix-permissions:
	docker-compose exec php-fpm chown -R www-data:www-data storage

fix-code-style:
	docker-compose exec php-fpm  vendor/bin/pint

artisan:
	docker-compose exec php-fpm ./artisan $(ARGS)

mysql-console:
	docker-compose exec mysql mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE}

start-frontend:
	docker-compose exec php-fpm npm run watch

build-frontend-prod:
	docker-compose exec php-fpm npm run production

make-storage-link:
	docker-compose exec php-fpm ./artisan storage:link

node-frontend-deps:
	docker-compose exec php-fpm npm i --legacy-peer-deps

test:
	docker-compose exec php-fpm vendor/bin/paratest

fix-insights:
	docker-compose exec php-fpm ./artisan insights --fix

insights:
	docker-compose exec php-fpm vendor/bin/phpinsights --config-path=./config/insights.php --no-interaction --min-quality=80 --min-complexity=90 --min-architecture=75 --min-style=95

rector:
	docker-compose exec php-fpm vendor/bin/rector process --dry-run

static-analysis:
	docker-compose exec php-fpm composer static-analysis

detect-magic-numbers:
	docker-compose exec php-fpm vendor/bin/phpmnd app/ tests/

ci: fix-code-style detect-magic-numbers test rector insights static-analysis

local-ci:
	docker-compose exec -T php-fpm composer ci

init: clone copy-infra-env restart setup-laravel-packages copy-laravel-env setup-laravel-key run-migrations node-frontend-deps build-frontend-prod fix-permissions make-storage-link

