{
  "Database": {
    "DataSources": {
      "AppDatabase": {
        "Write": "Host=120.53.222.17;Port=5432;Database=takeout_app_db;Username=app_user;Password=AppUser112233;Pooling=true;Minimum Pool Size=5;Maximum Pool Size=50",
        "Reads": [
          "Host=120.53.222.17;Port=5432;Database=takeout_app_db;Username=app_user;Password=AppUser112233;Pooling=true;Minimum Pool Size=5;Maximum Pool Size=50"
        ],
        "CommandTimeoutSeconds": 30,
        "MaxRetryCount": 3,
        "MaxRetryDelaySeconds": 5
      },
      "IdentityDatabase": {
        "Write": "Host=120.53.222.17;Port=5432;Database=takeout_identity_db;Username=identity_user;Password=IdentityUser112233;Pooling=true;Minimum Pool Size=5;Maximum Pool Size=50",
        "Reads": [
          "Host=120.53.222.17;Port=5432;Database=takeout_identity_db;Username=identity_user;Password=IdentityUser112233;Pooling=true;Minimum Pool Size=5;Maximum Pool Size=50"
        ],
        "CommandTimeoutSeconds": 30,
        "MaxRetryCount": 3,
        "MaxRetryDelaySeconds": 5
      },
      "DictionaryDatabase": {
        "Write": "Host=120.53.222.17;Port=5432;Database=takeout_dictionary_db;Username=dictionary_user;Password=DictionaryUser112233;Pooling=true;Minimum Pool Size=5;Maximum Pool Size=50",
        "Reads": [
          "Host=120.53.222.17;Port=5432;Database=takeout_dictionary_db;Username=dictionary_user;Password=DictionaryUser112233;Pooling=true;Minimum Pool Size=5;Maximum Pool Size=50"
        ],
        "CommandTimeoutSeconds": 30,
        "MaxRetryCount": 3,
        "MaxRetryDelaySeconds": 5
      },
      "LogsDatabase": {
        "Write": "Host=120.53.222.17;Port=5432;Database=takeout_logs_db;Username=logs_user;Password=Logs112233;Pooling=true;Minimum Pool Size=5;Maximum Pool Size=50",
        "Reads": [
          "Host=120.53.222.17;Port=5432;Database=takeout_logs_db;Username=logs_user;Password=Logs112233;Pooling=true;Minimum Pool Size=5;Maximum Pool Size=50"
        ],
        "CommandTimeoutSeconds": 30,
        "MaxRetryCount": 3,
        "MaxRetryDelaySeconds": 5
      }
    }
  },
  "Redis": "49.232.6.45:6379,password=MsuMshk112233,abortConnect=false",
  "Identity": {
    "Jwt": {
      "Issuer": "takeout-saas",
      "Audience": "takeout-saas-clients",
      "Secret": "psZEx_O##]Mq(W.1$?8Aia*LM03sXGGx",
      "AccessTokenExpirationMinutes": 120,
      "RefreshTokenExpirationMinutes": 10080
    },
    "LoginRateLimit": {
      "WindowSeconds": 60,
      "MaxAttempts": 5
    },
    "RefreshTokenStore": {
      "Prefix": "identity:refresh:"
    }
  },
  "Dictionary": {
    "Cache": {
      "SlidingExpiration": "00:30:00"
    }
  },
  "Tenancy": {
    "TenantIdHeaderName": "X-Tenant-Id",
    "TenantCodeHeaderName": "X-Tenant-Code",
    "IgnoredPaths": [
      "/health"
    ],
    "RootDomain": ""
  },
  "Otel": {
    "Endpoint": "",
    "Sampling": "ParentBasedAlwaysOn",
    "UseConsoleExporter": true
  }
}

