from typing import Optional from pydantic import Field, NonNegativeInt, PositiveInt from pydantic_settings import BaseSettings class RedisConfig(BaseSettings): """ Redis configs """ REDIS_HOST: str = Field( description='Redis host', default='localhost', ) REDIS_PORT: PositiveInt = Field( description='Redis port', default=6379, ) REDIS_USERNAME: Optional[str] = Field( description='Redis username', default=None, ) REDIS_PASSWORD: Optional[str] = Field( description='Redis password', default=None, ) REDIS_DB: NonNegativeInt = Field( description='Redis database id, default to 0', default=0, ) REDIS_USE_SSL: bool = Field( description='whether to use SSL for Redis connection', default=False, )