<gh_stars>0
from datetime import date
from utils.helper import date_para_str, str_para_date


class Cliente:
    contador: int = 1001

    def __init__(self: object, nome: str, email: str, cpf: str, datanascimento: str) -> None:
        self.__codigo: int = Cliente.contador
        self.__nome: str = nome
        self.__email: str = email
        self.__cpf: str = cpf
        self.__datanascimento: date = str_para_date(datanascimento)
        self.__datacadastro: date = date.today()
        Cliente.contador += 1

    @property
    def codigo(self: object) -> int:
        return self.__codigo

    @property
    def nome(self:object) -> str:
        return self.__nome

    @property
    def email(self: object) -> str:
        return self.__email

    @property
    def cpf(self: object) -> str:
        return self.__cpf

    @property
    def datanascimento(self: object) -> str:
        return date_para_str(self.__datanascimento)

    @property
    def datacadastro(self: object) -> str:
        return date_para_str(self.__datacadastro)

    def __str__(self: object) -> str:
        return f'Código: {self.codigo} \nNome: {self.nome} \nData de Nascimento: {self.datanascimento} \n' \
               f'Data de cadastro: {self.datacadastro}\n'



from datetime import date
from utils.helper import date_para_str, str_para_date


class Cliente:
    contador: int = 1001

    def __init__(self: object, nome: str, email: str, cpf: str, datanascimento: str) -> None:
        self.__codigo: int = Cliente.contador
        self.__nome: str = nome
        self.__email: str = email
        self.__cpf: str = cpf
        self.__datanascimento: date = str_para_date(datanascimento)
        self.__datacadastro: date = date.today()
        Cliente.contador += 1

    @property
    def codigo(self: object) -> int:
        return self.__codigo

    @property
    def nome(self:object) -> str:
        return self.__nome

    @property
    def email(self: object) -> str:
        return self.__email

    @property
    def cpf(self: object) -> str:
        return self.__cpf

    @property
    def datanascimento(self: object) -> str:
        return date_para_str(self.__datanascimento)

    @property
    def datacadastro(self: object) -> str:
        return date_para_str(self.__datacadastro)

    def __str__(self: object) -> str:
        return f'Código: {self.codigo} \nNome: {self.nome} \nData de Nascimento: {self.datanascimento} \n' \
               f'Data de cadastro: {self.datacadastro}\n'