All checks were successful
continuous-integration/drone/push Build is passing
97 lines
3.1 KiB
Python
Executable File
97 lines
3.1 KiB
Python
Executable File
# 📄 models.py
|
|
from sqlalchemy import Column, String, Integer, Float, DateTime, Text, ForeignKey
|
|
from sqlalchemy.dialects.postgresql import UUID
|
|
import uuid
|
|
from datetime import datetime
|
|
from app.database import Base
|
|
from sqlalchemy import Boolean
|
|
from sqlalchemy import Column, Integer, String, Numeric
|
|
|
|
|
|
class ParametrosFormula(Base):
|
|
__tablename__ = "parametros_formula"
|
|
__table_args__ = {"schema": "faturas"}
|
|
|
|
id = Column(Integer, primary_key=True)
|
|
nome = Column(String(50))
|
|
formula = Column(Text)
|
|
ativo = Column(Boolean, default=True)
|
|
|
|
class Fatura(Base):
|
|
__tablename__ = "faturas"
|
|
__table_args__ = {'schema': 'faturas'}
|
|
|
|
id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
|
|
nome = Column(String)
|
|
classificacao_tarifaria = Column("classificacao_tarifaria", String)
|
|
unidade_consumidora = Column("unidade_consumidora", String)
|
|
referencia = Column(String)
|
|
valor_total = Column(Float)
|
|
|
|
pis_aliq = Column("pis_aliq", Float)
|
|
pis_valor = Column("pis_valor", Float)
|
|
pis_base = Column("pis_base", Float)
|
|
|
|
icms_aliq = Column("icms_aliq", Float)
|
|
icms_valor = Column("icms_valor", Float)
|
|
icms_base = Column("icms_base", Float)
|
|
|
|
cofins_aliq = Column("cofins_aliq", Float)
|
|
cofins_valor = Column("cofins_valor", Float)
|
|
cofins_base = Column("cofins_base", Float)
|
|
|
|
consumo = Column("consumo", Float)
|
|
tarifa = Column("tarifa", Float)
|
|
|
|
nota_fiscal = Column(String)
|
|
data_processamento = Column(DateTime, default=datetime.utcnow)
|
|
arquivo_pdf = Column("arquivo_pdf", String)
|
|
cidade = Column(String)
|
|
estado = Column(String)
|
|
distribuidora = Column(String)
|
|
link_arquivo = Column("link_arquivo", String)
|
|
cliente_id = Column(UUID(as_uuid=True), ForeignKey("faturas.clientes.id"), nullable=False)
|
|
|
|
|
|
|
|
class LogProcessamento(Base):
|
|
__tablename__ = "logs_processamento"
|
|
__table_args__ = {'schema': 'faturas'}
|
|
|
|
id = Column(Integer, primary_key=True, autoincrement=True)
|
|
nome_arquivo = Column(String)
|
|
status = Column(String)
|
|
mensagem = Column(Text)
|
|
acao = Column(String) # nova coluna existente no banco
|
|
data_log = Column("data_log", DateTime, default=datetime.utcnow)
|
|
|
|
|
|
class AliquotaUF(Base):
|
|
__tablename__ = "aliquotas_uf"
|
|
__table_args__ = {'schema': 'faturas'}
|
|
|
|
id = Column(Integer, primary_key=True, autoincrement=True)
|
|
uf = Column(String)
|
|
exercicio = Column(Integer)
|
|
aliq_icms = Column(Numeric(6, 4))
|
|
|
|
class SelicMensal(Base):
|
|
__tablename__ = "selic_mensal"
|
|
__table_args__ = {'schema': 'faturas'}
|
|
|
|
ano = Column(Integer, primary_key=True)
|
|
mes = Column(Integer, primary_key=True)
|
|
percentual = Column(Numeric(6, 4))
|
|
|
|
class Cliente(Base):
|
|
__tablename__ = "clientes"
|
|
__table_args__ = {"schema": "faturas"}
|
|
|
|
id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
|
|
nome_fantasia = Column(String, nullable=False)
|
|
cnpj = Column(String(14), unique=True)
|
|
ativo = Column(Boolean, default=True)
|
|
data_criacao = Column(DateTime, default=datetime.utcnow)
|
|
data_atualizacao = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
|
|
|