---
version: "3.7"
services:
  function:
    platform: linux/amd64
    build:
      context: .
      args:
        version: "local-dev"
    volumes:
      - ./json_contract_file_import:/var/task/json_contract_file_import
      - ./config.py:/var/task/config.py
    ports:
      - "9000:8080"
    environment:
      - DD_ENV=dev
      - DD_SERVICE=json_contract_file_import
      - DD_TRACE_ENABLED=false
      - DD_ENHANCED_METRICS=false
      - DD_LOCAL_TEST=true
      - ENVIRONMENT
      - OWSREQUEST_SERVICE_MAP=$OWSREQUEST_SERVICE_MAP
      - AWS_ACCESS_KEY_ID
      - AWS_DEFAULT_REGION=us-east-1
      - AWS_SECRET_ACCESS_KEY
      - AWS_SESSION_TOKEN
      - S3_BUCKET_NAME
  lint-and-test:
    platform: linux/amd64
    build:
      context: .
      dockerfile: Dockerfile.tests
    ports:
      - "8000:8000"
    environment:
      - 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:
      - AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
      - AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
      - AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN
      - RUN_INTEGRATION=1
      - SKIP_LINT=1
      - TEST_ARGS=-vv
      - COV_REPORT=term  # --cov-report pytest-cov option or OFF (try html!)

  json-contract-file-import-lambda:
    image: 086679231553.dkr.ecr.us-east-1.amazonaws.com/lambda-abacus-json-contract-file-import:latest
    volumes:
      - ./json_contract_file_import:/var/task/json_contract_file_import
      - ./config.py:/var/task/config.py
    depends_on:
      - json-contract-import-ows-abacus-account
      - json-contract-import-ows-royalties
    environment:
      - AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
      - AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
      - AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN
      - MYSQL_DB_HOST=json-contract-file-import-mysql
      - MYSQL_DB_USER=db_user
      - MYSQL_DB_PASS=db_pass
      - MYSQL_DB_PORT=3306
      - MYSQL_DB_NAME=royalty_accounting
      - DD_ENV=dev
      - DD_SERVICE=json_contract_file_import
      - DD_TRACE_ENABLED=false
      - DD_ENHANCED_METRICS=false
      - DD_LOCAL_TEST=true
      - S3_BUCKET_NAME=qa-abacus-json-contract-file-import
      # yamllint disable rule:line-length
      - OWSREQUEST_SERVICE_MAP={"ows-abacus-account":"http://json-contract-import-ows-abacus-account:8080","ows-royalties":"http://json-contract-import-ows-royalties:8080"}
      # yamllint enable rule:line-length
    ports:
      - "6801:8080"

  json-contract-file-import-mysql:
    platform: linux/amd64
    image: mysql:8.0.36
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=royalty_accounting
      - MYSQL_USER=db_user
      - MYSQL_PASSWORD=db_pass
    ports:
      - "6802:3306"

  json-contract-import-liquibase-runner:
    image: 437795906767.dkr.ecr.us-east-1.amazonaws.com/royalties-liquibase-runner:latest
    depends_on:
      - json-contract-file-import-mysql
    environment:
      - MYSQL_DB_HOST=json-contract-file-import-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

  json-contract-import-ows-abacus-account:
    platform: linux/amd64
    image: 086679231553.dkr.ecr.us-east-1.amazonaws.com/ows-abacus-account:latest
    depends_on:
      - json-contract-import-liquibase-runner
    environment:
      - MYSQL_DB_HOST=json-contract-file-import-mysql
      - MYSQL_DB_USER=db_user
      - MYSQL_DB_PASS=db_pass
      - MYSQL_DB_PORT=3306
      - MYSQL_DB_NAME=royalty_accounting
      # yamllint disable rule:line-length
      - OWSREQUEST_SERVICE_MAP={"ows-royalties":"http://json-contract-import-ows-royalties:8080"}
      # yamllint enable rule:line-length
      - LC_ALL=en_US.utf-8
    ports:
      - "6803:8080"

  json-contract-import-ows-royalties:
    platform: linux/amd64
    image: 086679231553.dkr.ecr.us-east-1.amazonaws.com/ows-royalties:latest
    depends_on:
      - json-contract-import-liquibase-runner
    environment:
      - MYSQL_DB_HOST=json-contract-file-import-mysql
      - MYSQL_DB_USER=db_user
      - MYSQL_DB_PASS=db_pass
      - MYSQL_DB_PORT=3306
      - MYSQL_DB_NAME=royalty_accounting
      # yamllint disable rule:line-length
      - OWSREQUEST_SERVICE_MAP={"ows-abacus-account":"http://json-contract-import-ows-abacus-account:8080"}
      # yamllint enable rule:line-length
    ports:
      - "6805:8080"
