package config import ( "time" ) type Config struct { Server ServerConfig Log LoggingConfig JWT JWTConfig DB DBConfig TG TGConfig CronJobs CronJobConfig Cache struct { Type string MaxSize int RedisAddr string RedisPass string } } type ServerConfig struct { Port int GracefulShutdown time.Duration EnablePprof bool ReadTimeout time.Duration WriteTimeout time.Duration } type CronJobConfig struct { Enable bool CleanFilesInterval time.Duration CleanUploadsInterval time.Duration FolderSizeInterval time.Duration } type TGConfig struct { AppId int AppHash string RateLimit bool RateBurst int Rate int DeviceModel string SystemVersion string AppVersion string LangCode string SystemLangCode string LangPack string SessionFile string BgBotsLimit int DisableStreamBots bool BgBotsTimeout time.Duration BgBotsCheckInterval time.Duration Proxy string ReconnectTimeout time.Duration PoolSize int64 EnableLogging bool Uploads struct { EncryptionKey string Threads int MaxRetries int Retention time.Duration } Stream struct { BotsOffset int MultiThreads int Buffers int ChunkTimeout time.Duration } } type LoggingConfig struct { Level int Development bool File string } type JWTConfig struct { Secret string SessionTime time.Duration AllowedUsers []string } type DBConfig struct { DataSource string PrepareStmt bool LogLevel int Pool struct { Enable bool MaxOpenConnections int MaxIdleConnections int MaxLifetime time.Duration } }