{
  "ConnectionStrings": {
    "DefaultConnection": "Host=localhost;Port=5434;Database=meezi;Username=meezi;Password=meezi_local_pass",
    "Redis": "localhost:6381"
  },
  "Jwt": {
    "Key": "meezi-dev-secret-key-min-32-chars!!",
    "Issuer": "meezi",
    "Audience": "meezi",
    "AccessTokenExpiryDays": 30,
    "RefreshTokenExpiryDays": 365
  },
  "App": {
    "PublicBaseUrl": "https://localhost:7208",
    "QrPublicBaseUrl": "https://meezi.ir"
  },
  "Auth": {
    "MaxOtpAttemptsPerHour": 5
  },
  "Security": {
    "Enabled": true,
    "RequireCaptchaOnPublicWrites": false,
    "Turnstile": {
      "SiteKey": "",
      "SecretKey": ""
    },
    "RateLimits": {
      "AuthOtpPerIpPerHour": 15,
      "PublicReadsPerIpPerMinute": 120,
      "PublicWritesPerIpPerMinute": 30
    },
    "GuestOrders": {
      "PerIpPerCafePerHour": 25,
      "PerCafePerHour": 200,
      "PerIpGlobalPerHour": 60
    }
  },
  "Kavenegar": {
    "ApiKey": "",
    "SenderNumber": "90005671",
    "OtpTemplate": "meeziotp"
  },
  "ZarinPal": {
    "MerchantId": "",
    "Sandbox": true
  },
  "Billing": {
    "DashboardBaseUrl": "http://localhost:3101"
  },
  "Snappfood": {
    "WebhookSecret": "meezi-dev-snappfood-secret",
    "ApiKey": "",
    "ApiBaseUrl": ""
  },
  "DeliveryPlatforms": {
    "DefaultSnappfoodCommissionPercent": 18,
    "DefaultTap30CommissionPercent": 15,
    "DefaultDigikalaCommissionPercent": 12,
    "Snappfood": {
      "WebhookSecret": "meezi-dev-snappfood-secret",
      "ApiKey": "",
      "ApiBaseUrl": ""
    },
    "Tap30": {
      "WebhookSecret": "meezi-dev-tap30-secret",
      "ApiKey": "",
      "ApiBaseUrl": ""
    },
    "Digikala": {
      "WebhookSecret": "",
      "Enabled": false
    }
  },
  "Taraz": {
    "Username": ""
  },
  "OpenAI": {
    "ApiKey": "",
    "Model": "gpt-4o-mini"
  },
  "Cors": {
    "Origins": [ "http://localhost:3000", "http://localhost:3100", "http://localhost:3101" ]
  },
  "Serilog": {
    "MinimumLevel": {
      "Default": "Information",
      "Override": {
        "Microsoft": "Warning",
        "Microsoft.EntityFrameworkCore": "Warning",
        "Hangfire": "Information"
      }
    }
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "Ai3d": {
    "ApiKey": "",
    "BaseUrl": "https://api.meshy.ai",
    "ImageTo3dPath": "/openapi/v1/image-to-3d",
    "PollIntervalSeconds": 4,
    "PollTimeoutSeconds": 300,
    "AllowDevStub": false
  }
}
