version: "3.8"
services:
    royalty-collection-territory-backfill-liquibase-runner:
        image: 437795906767.dkr.ecr.us-east-1.amazonaws.com/royalties-liquibase-runner:latest
        depends_on:
            - royalty-collection-territory-backfill-abacus-mysql
        environment:
            - MYSQL_DB_HOST=royalty-collection-territory-backfill-abacus-mysql
            - MYSQL_DB_PORT=3306
            - MYSQL_DB_NAME=royalty_accounting
            - MYSQL_DEPLOY_USER=root
            - MYSQL_DEPLOY_PASSWORD=root
            - MYSQL_SERVICE_USER=db_user
            - GITHUB_USER=theorchard
            - GITHUB_REPO=database
            - GITHUB_BRANCH=master
            - GITHUB_REPO_DIR=royalty_accounting

    royalty-collection-territory-backfill-abacus-mysql:
        image: mysql:8.0.36
        environment:
            - MYSQL_ROOT_PASSWORD=root
            - MYSQL_DATABASE=royalty_accounting
            - MYSQL_USER=db_user
            - MYSQL_PASSWORD=db_pass
        ports:
            - "6814:3306"

    royalty-collection-territory-backfill-ar-mysql:
        image: mysql:8.0.36
        environment:
            - MYSQL_ROOT_PASSWORD=root
            - MYSQL_DATABASE=art_relations
            - MYSQL_USER=db_user
            - MYSQL_PASSWORD=db_pass
        ports:
            - "6815:3306"
        volumes:
            - ./db_scripts:/docker-entrypoint-initdb.d
        entrypoint: ["/docker-entrypoint-initdb.d/init.sh"]

    royalty-collection-territory-backfill-lambda:
        image: 086679231553.dkr.ecr.us-east-1.amazonaws.com/lambda-abacus-royalty-collection-territory-backfill:latest
        environment:
            - ROYALTY_ACCOUNTING_MYSQL_DB_HOST=royalty-collection-territory-backfill-abacus-mysql
            - ROYALTY_ACCOUNTING_MYSQL_DB_USER=db_user
            - ROYALTY_ACCOUNTING_MYSQL_DB_PASS=db_pass
            - ROYALTY_ACCOUNTING_MYSQL_DB_PORT=3306
            - ROYALTY_ACCOUNTING_MYSQL_DB_NAME=royalty_accounting

            - ART_RELATIONS_MYSQL_DB_HOST=royalty-collection-territory-backfill-ar-mysql
            - ART_RELATIONS_MYSQL_DB_USER=db_user
            - ART_RELATIONS_MYSQL_DB_PASS=db_pass
            - ART_RELATIONS_MYSQL_DB_PORT=3306
            - ART_RELATIONS_MYSQL_DB_NAME=art_relations

            - ACCOUNT_BATCH_SIZE=${ACCOUNT_BATCH_SIZE}
        ports:
            - "6821:8080"

    lint-and-test:
        platform: linux/amd64
        build:
            context: .
            dockerfile: Dockerfile.tests
        ports:
            - "8000:8000"
        environment:
            - ACCOUNT_BATCH_SIZE=1000
            - RUN_INTEGRATION=0
            - SKIP_LINT=0
            - TEST_ARGS=-v
            - COV_REPORT=term  # --cov-report pytest-cov option or OFF (try html!)

    integration-test:
        platform: linux/amd64
        volumes:
            - ./:/var/task/
        build:
            context: .
            dockerfile: Dockerfile.tests
        ports:
            - "8000:8000"
        environment:
            - ACCOUNT_BATCH_SIZE=${ACCOUNT_BATCH_SIZE}
            - RUN_INTEGRATION=1
            - SKIP_LINT=1
            - TEST_ARGS=-v
            - COV_REPORT=term  # --cov-report pytest-cov option or OFF (try html!)

    # LOCAL
    function:
        platform: linux/amd64
        build:
            context: .
            args:
                version: "local-dev"
        volumes:
            - ./royalty-collection-territory-backfill:/var/task/royalty-collection-territory-backfill
            - ./config.py:/var/task/config.py
            - ~/.ssh/snowflake/rsa_key.p8:/var/task/rsa_key.p8
        ports:
            - "9000:8080"
        environment:
            - ENVIRONMENT=dev
            - DD_ENV=dev
            - DD_SERVICE=
            - DD_TRACE_ENABLED=false
            - DD_ENHANCED_METRICS=
            - ROYALTY_ACCOUNTING_MYSQL_DB_HOST=royalty-collection-territory-backfill-abacus-mysql
            - ROYALTY_ACCOUNTING_MYSQL_DB_USER=db_user
            - ROYALTY_ACCOUNTING_MYSQL_DB_PASS=db_pass
            - ROYALTY_ACCOUNTING_MYSQL_DB_PORT=3306
            - ROYALTY_ACCOUNTING_MYSQL_DB_NAME=royalty_accounting
            - ART_RELATIONS_MYSQL_DB_HOST=royalty-collection-territory-backfill-ar-mysql
            - ART_RELATIONS_MYSQL_DB_USER=db_user
            - ART_RELATIONS_MYSQL_DB_PASS=db_pass
            - ART_RELATIONS_MYSQL_DB_PORT=3306
            - ART_RELATIONS_MYSQL_DB_NAME=art_relations
            - ACCOUNT_BATCH_SIZE=${ACCOUNT_BATCH_SIZE}
