49 lines
1 KiB
Python
49 lines
1 KiB
Python
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
|