---
# Container info
- descriptor: "pip-services:container-info:default:default:*"
  name: "facade-public"
  description: "External facade template"

# Console logger
- descriptor: "pip-services:logger:console:default:*"
  level: trace

# Log counters
- descriptor: "pip-services:counters:log:default:*"

# Main facade service
- descriptor: "pip-services:endpoint:http:default:*"
  root_path: ""
  cors_headers: 'x-session-id'
  connection:
    protocol: "http"
    host: "0.0.0.0"
    port: 8080
  options:
    debug: true
    maintenance_enabled: false
    max_req_size: "1mb"

# Facade API V1
- descriptor: "facade-public:controller:http:default:1.0"
  payment_system: "stripe"
  options:
    timeout: 80000
    batch_size: 100
    retries_limit: 5
  credential:
    access_key: "{{STRIPE_ACCESS_KEY}}"

# Hearbeat service
- descriptor: "pip-services:heartbeat-controller:http:default:1.0"

# Status service
- descriptor: "pip-services:status-controller:http:default:1.0"

{{#unless PRODUCTS_SERVICE_HOST}}{{#unless PRODUCTS_SERVICE_PORT}}
# Product file persistence
- descriptor: "service-products:persistence:file:default:1.0"
  path: {{FILE_PATH}}{{#unless FILE_PATH}}"./data/products.json"{{/unless}}

# Product service
- descriptor: "service-products:service:default:default:1.0"

# Product direct client
- descriptor: "service-products:client:direct:default:1.0"
{{/unless}}{{/unless}}

{{#unless PURCHASEORDERS_SERVICE_HOST}}{{#unless PURCHASEORDERS_SERVICE_PORT}}
# Orders memory persistence
- descriptor: "service-purchaseorders:persistence:memory:default:1.0"

# Orders service
- descriptor: "service-purchaseorders:service:default:default:1.0"

# Orders direct client
- descriptor: "service-purchaseorders:client:direct:default:1.0"
{{/unless}}{{/unless}}

{{#if PRODUCTS_SERVICE_HOST}}{{#if PRODUCTS_SERVICE_PORT}}
# Product HTTP client
- descriptor: "service-products:client:http:default:1.0"
  connection:
    protocol: "http"
    host: {{{PRODUCTS_SERVICE_HOST}}}{{#unless PRODUCTS_SERVICE_HOST}}"0.0.0.0"{{/unless}}
    port: {{{PRODUCTS_SERVICE_PORT}}}{{#unless PRODUCTS_SERVICE_PORT}}8081{{/unless}}
{{/if}}{{/if}}

{{#if PURCHASEORDERS_SERVICE_HOST}}{{#if PURCHASEORDERS_SERVICE_PORT}}
# Orders HTTP client
- descriptor: "service-purchaseorders:client:http:default:1.0"
  connection:
    protocol: "http"
    host: {{{PURCHASEORDERS_SERVICE_HOST}}}{{#unless PURCHASEORDERS_SERVICE_HOST}}"0.0.0.0"{{/unless}}
    port: {{{PURCHASEORDERS_SERVICE_PORT}}}{{#unless PURCHASEORDERS_SERVICE_PORT}}8082{{/unless}}
{{/if}}{{/if}}

{{#if PAYMENTS_SERVICE_HOST}}{{#if PAYMENTS_SERVICE_PORT}}
# Payments HTTP client
- descriptor: "service-payments:client:http:default:1.0"
  connection:
    protocol: "http"
    host: {{{PAYMENTS_SERVICE_HOST}}}{{#unless PAYMENTS_SERVICE_HOST}}"0.0.0.0"{{/unless}}
    port: {{{PAYMENTS_SERVICE_PORT}}}{{#unless PAYMENTS_SERVICE_PORT}}8083{{/unless}}
{{/if}}{{/if}}