{
    "Logging": {
        "LogLevel": {
            "Default": "Information",
            "Microsoft.AspNetCore": "Warning",
            "Microsoft.EntityFrameworkCore": "Warning"
        }
    },
    "Serilog": {
        "MinimumLevel": {
            "Default": "Information",
            "Override": {
                "Microsoft": "Warning",
                "Microsoft.EntityFrameworkCore": "Warning",
                "System": "Warning"
            }
        },
        "WriteTo": [
            {
                "Name": "Console",
                "Args": {
                    "outputTemplate": "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj} {Properties:j}{NewLine}{Exception}"
                }
            }
        ],
        "Enrich": [
            "FromLogContext",
            "WithMachineName",
            "WithThreadId"
        ]
    },
    "AllowedHosts": "*",
    "ConnectionStrings": {
        "DefaultConnection": "Host=localhost;Database=storage_service;Username=goodgo;Password=goodgo-local-2024"
    },
    "Storage": {
        "Provider": "minio",
        "DefaultBucket": "goodgo",
        "PreSignedUrlExpirationSeconds": 3600,
        "MaxFileSizeBytes": 104857600,
        "MinIO": {
            "Endpoint": "localhost:9000",
            "AccessKey": "minioadmin",
            "SecretKey": "minioadmin",
            "UseSSL": false,
            "Region": "us-east-1"
        },
        "AliyunOSS": {
            "Endpoint": "",
            "AccessKeyId": "",
            "AccessKeySecret": "",
            "Region": ""
        }
    },
    "IamService": {
        "BaseUrl": "http://localhost:5001",
        "ServiceName": "storage-service",
        "TimeoutSeconds": 30,
        "CacheDurationSeconds": 300,
        "HealthCheckCacheDurationSeconds": 60
    },
    "Redis": {
        "Host": "localhost",
        "Port": 6379,
        "Password": "",
        "Database": 0,
        "ConnectTimeout": 5000,
        "SyncTimeout": 5000
    },
    "Jwt": {
        "Secret": "goodgo-iam-service-secret-key-32chars!",
        "Issuer": "goodgo-platform",
        "Audience": "goodgo-services",
        "AccessTokenExpiryMinutes": 15,
        "RefreshTokenExpiryDays": 7
    }
}