from faker import Faker from dmp.core.types import EncryptedToken, PlainToken from dmp.fandata.utils import make_fan_id class FakerTyped: def __init__(self) -> None: self._faker = Faker(["es-ES"]) def uuid4_string(self) -> str: return str(self._faker.uuid4()) def pystr(self) -> str: return self._faker.pystr() def email(self) -> str: return self._faker.email() def domain_name(self) -> str: return self._faker.domain_name() def name(self) -> str: return self._faker.name() def image_url(self) -> str: return self._faker.image_url() def fan_id(self) -> str: return make_fan_id(self.email()) def integer(self, length: int = 9, fixed_length: bool = True) -> int: return self._faker.random_number(digits=length, fix_len=fixed_length) def choice[T](self, items: list[T]) -> T: return self._faker.random_choices(elements=items, length=1)[0] def ipv4(self) -> str: return self._faker.ipv4() def country(self) -> str: return self._faker.country() def country_code(self) -> str: return self._faker.country_code() def url(self) -> str: return self._faker.url() def plain_token(self) -> PlainToken: return PlainToken(self.pystr()) def encrypted_token(self) -> EncryptedToken: return EncryptedToken(self.pystr())