from pydantic import BaseModel from typing import Optional class Prestador(BaseModel): cpfCnpj: str class Endereco(BaseModel): descricaoCidade: str cep: str tipoLogradouro: str logradouro: str tipoBairro: Optional[str] = None codigoCidade: str complemento: Optional[str] = None estado: str numero: str bairro: str class Tomador(BaseModel): cpfCnpj: str razaoSocial: str inscricaoMunicipal: Optional[str] = None email: str endereco: dict class ISS(BaseModel): tipoTributacao: int exigibilidade: int aliquota: float class Valor(BaseModel): servico: float descontoCondicionado: Optional[float] = 0 descontoIncondicionado: Optional[float] = 0 class Servico(BaseModel): codigo: str codigoTributacao: str discriminacao: str cnae: str iss: ISS valor: Valor # Estrutura padrão de envio de uma NFSe contendo Prestador, Tomador e Serviço prestado class NFSe(BaseModel): idIntegracao: str prestador: Prestador tomador: Tomador servico: Servico