# This is the main configuration file for the application.
# ~~~~~

# Secret key
# ~~~~~
# The secret key is used to secure cryptographics functions.
# If you deploy your application to several instances be sure to use the same key!
play.crypto.secret = "]plvsqIOx02py7>9aoiugbDZejiGPDEE[bQL5z@/NAKbtnQ5E@KZwKGUf3kJqLgT"

# The application languages
# ~~~~~
play.i18n.langs = ["en"]

# The application DI modules
play.modules {
  enabled += "modules.AppModule"
  enabled += "modules.ActorModule"
  #enabled += "play.modules.swagger.SwaggerModule"
}

# Evolutions
# ~~~~~
# You can disable evolutions if needed
# evolutionplugin=disabled
play.evolutions.enabled = true
play.evolutions.autoApply = true

# Logger
# ~~~~~
# You can also configure logback (http://logback.qos.ch/),
# by providing an application-logger.xml file in the conf directory.

# Root logger:
logger.root = ERROR

# Logger used by the framework:
logger.play = INFO

# Logger provided to your application:
logger.application = DEBUG


# WS
play.ws.timeout {
  connection = 6s // evolutions.evolutions is 120
  idle = 30s // evolutions.evolutions is 120
  request = 6s //evolutions.evolutions is 120
}

play.http {
  forwarded.trustedProxies = [ "0.0.0.0/0" ]
  parser.maxDiskBuffer=209715200 //200M default
  parser.maxMemoryBuffer=2M
}

# Filter
play.filters.enabled += "play.filters.cors.CORSFilter"
play.filters.cors {
  pathPrefixes = ["/"]
  allowedHttpMethods = ["POST", "GET", "PUT", "DELETE", "OPTIONS"]
  allowedHttpHeaders = ["Origin", "X-Requested-With", "Content-Type", "Accept", "Referer", "User-Agent", "X-Auth-Token"]
  supportsCredentials = false
}


# Global object class
# ~~~~~
# Define the Global object class for this application.
# Default to Global in the root package.
# application.global=Global

# Router
# ~~~~~
# Define the Router object to use for this application.
# This router will be looked up first when the application is starting up,
# so make sure this is the entry point.
# Furthermore, it's assumed your route file is named properly.
# So for an application router like `my.application.Router`,
# you may need to define a router file `conf/my.application.routes`.
# Default to Routes in the root package (and conf/routes)
# application.router=my.application.Routes

# Database configuration
# ~~~~~
# You can declare as many datasources as you want.
# By convention, the evolutions.evolutions datasource is named `evolutions.evolutions`
#
# db.evolutions.evolutions.driver=org.h2.Driver
# db.evolutions.evolutions.url="jdbc:h2:mem:play"
# db.evolutions.evolutions.user=sa
# db.evolutions.evolutions.password=""
slick {
  dbs {
    default {
      profile = "slick.jdbc.PostgresProfile$"
      db {
        driver = "org.postgresql.Driver"
        url = "jdbc:postgresql://wtest-core.crwogqkovwba.ap-southeast-1.rds.amazonaws.com/fms_api"
        user = "postgres"
        password = "R9QdHGHdXgk5YyiR"
        connectionTimeout = "10000"
        numThreads = 3 // evolutions is 20
        maxConnections = 3 // evolutions is 5*numThread

      }
    }
  }
}

# Redis
jedis {
  hosts = ["172.20.24.171:6379"]
  maxIdle = 80
  maxTotal = 80
  timeout = 3000
  maxWaitMillis = 3000
  isCluster = false
  database = 8
  testOnBorrow = true
  testOnReturn = true
}

# Kafka
provider.kafka.producerNum=6
provider.kafka.producerClientID=fleet_api_prod
#kafka.server.address="b-1.mkfleet.k48ako.c2.kafka.ap-southeast-1.amazonaws.com:9092,b-2.mkfleet.k48ako.c2.kafka.ap-southeast-1.amazonaws.com:9092"
kafka.server.address="172.20.24.171:9092"

kafka.gps.topic=fleet-api-gps
kafka.notification.topic=fleet-api-notification

# fms_gps Server (waylens-fms-clip)
fms_gps.server.address = "http://100.66.240.213:9004"
# notification push server (waylens-fms-notification)
provider.waylens.notificationPusher.endpoint="http://172.20.24.171:8060/fmsKafka"


# mptool server
internal {
  # mptool which provides camera information
  mp {
    server = "https://horn.vidit.com.cn"
    getMPSyncInfoApi = "/api/mp/v1.0/cameras/"
  }
}

# att
provider.att {
  endpoint = "https://api-iotdevice.att.com/rws/api/v1"
  licensekey {
    default = "todo"
  }
  customer {
    default = "todo"
  }
  username {
    default = "todo"
  }
  custom {
    default = "todo"
  }
  defaultDataPlan {
    default  = "todo"
  }
  overageLimitOverride {
    default = "PERMANENT_OVERRIDE"
  }
  billingDay = 19  
}

# clip server (waylens-fms-clip)
provider.backend {
  endpoint="http://172.20.24.171:36458/v.1.0"
  key="dqy0S3MAdDLOp50R"
  endpointForRemuxMp4 ="http://172.20.24.171:16587/v.1.0"  
}

# AWS
provider.aws {
  key = "AKIAVZFGACWSFXGVXCNA"
  secret = "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"
  region = "ap-southeast-1"

  sns {
    region = "ap-southeast-1"
    fleetArn = "arn:aws:sns:ap-southeast-1:397632607652:wtest-sns-forward"
    protocol = "https"
  }

  cloudFront {
    keyPairId = "K19X44RTV6O2RC"
    keyPairFile = "./wtest_fleet_private_key.pem"
  }  
}

# Wowza parameters
provider.wowza {
  defaultPublishServer = "rtmp://13.229.12.162"
  appName = "live_fleet"
  publishUsername = "publishfleet"
  publishPassword = "E54d22d793"
  playSecret = "Sh4Tgsl2l43lB"
  playParam = "fleet"
  playProtocol = "rtmp"
  playProtocolCN = "rtmp"
  audio{
    host="13.229.12.162"
    port=1935
    appName="live_audio",
    publishUsername = "fleet_audio"
    publishPassword = "waylensfleet2019"
  }
  privateIPMap {
    #"18.116.56.97": "172.31.34.99"
  }

  domainMap {
    #"172.31.9.208"  : "13.229.12.162"
    #"172.31.9.208": "616e881f8f6db.streamlock.net"
    #"13.229.12.162": "616e881f8f6db.streamlock.net"
    #"172.31.9.208": "619c7e3c4e66c.streamlock.net"
    #"13.229.12.162": "619c7e3c4e66c.streamlock.net"
    "172.31.9.208": "13.229.12.162"
  }
}

# Sendgrid Mail
mail {
  midend.recipient = "midend@waylens.com"
  internal.from = "fleet@waylens.com"
}

sendgrid {
  apikey="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"
}


# clip storage & cloudfront
clip.storage.bucket = "/wtestfleet/clip/"
clip.storage.address {
  default = "https://cdn.fleet.autosecure360.com/clip/"
}

# streaming storage & cloudfront
streaming.storage.bucket = "/wtestfleet/live_video/"
streaming.storage.address {
  default = "https://cdn.fleet.autosecure360.com/live_video/"
}

# firmware storage & cloudfront
firmware.storage.bucket= "/wtestfleet/firmware"
firmware.storage.address {
  default  = "https://cdn.fleet.autosecure360.com/firmware/"
}

# gpsReport.storage cloudfront
gpsReport.storage.address {
  default = "https://cdn.fleet.autosecure360.com/gps_data_report/"
}

# fleetReport.storage cloudfront
fleetReport.storage.address {
  default = "https://cdn.fleet.autosecure360.com/fleet_report/"
}

# log storage cloudfront
log.storage.address = "https://cdn.fleet.autosecure360.com/log/"

# audio storage & cloudfront
audio.storage.bucket="wtestfleet"
audio.storage.address="https://cdn.fleet.autosecure360.com/audio/"


clip.request.pendingTimeout = 604800
clip.storage.maxAge {
  default = 15811200
}
clip.uploading.supportResume = true



provider.backend.useDomain=true

# log autoupload parameters
log.autoUpload.enable=true
log.autoUpload.periodInDay=30
log.autoUpload.minIntervalInMinute=720

# test update parameters
test.UpdateOldUnfinishedTrip=true
test.UpdateLastSysTimeDurationInMs=3000

# some other parameters
dataUsage.cacheTime = 21600
ota.firstTime.delayInDays = 0
server.waylensPricing = false
api.version="v3.05"
server.env="MK"