| |
|
| | from sqlalchemy import (
|
| | Column,
|
| | Integer,
|
| | String,
|
| | Date,
|
| | DateTime,
|
| | Boolean,
|
| | ForeignKey,
|
| | Text
|
| | )
|
| | from sqlalchemy.orm import relationship
|
| |
|
| |
|
| |
|
| | from datetime import datetime
|
| | from banco import Base
|
| | from sqlalchemy.sql import func
|
| |
|
| |
|
| |
|
| |
|
| | class Equipamento(Base):
|
| | __tablename__ = "equipamentos"
|
| |
|
| | id = Column(Integer, primary_key=True, index=True)
|
| |
|
| |
|
| | fpso1 = Column(String, index=True, nullable=False)
|
| | fpso = Column(String, index=True, nullable=False)
|
| | data_coleta = Column(String, index=True, nullable=False)
|
| |
|
| |
|
| | especialista = Column(String, nullable=False)
|
| | conferente = Column(String, nullable=False)
|
| | osm = Column(String, nullable=False)
|
| |
|
| |
|
| | modal = Column(String, index=True, nullable=False)
|
| | quant_equip = Column(Integer, default=0)
|
| | mrob = Column(String, nullable=False)
|
| |
|
| |
|
| | linhas_osm = Column(Integer, default=0)
|
| | linhas_mrob = Column(Integer, default=0)
|
| | linhas_erros = Column(Integer, default=0)
|
| |
|
| |
|
| | erro_storekeeper = Column(String)
|
| | erro_operacao = Column(String)
|
| | erro_especialista = Column(String)
|
| | erro_outros = Column(String)
|
| |
|
| |
|
| | inclusao_exclusao = Column(String)
|
| | po = Column(String)
|
| | part_number = Column(String)
|
| | material = Column(String)
|
| |
|
| | solicitante = Column(String, nullable=False)
|
| | motivo = Column(String)
|
| | requisitante = Column(String, nullable=False)
|
| | nota_fiscal = Column(String, nullable=False)
|
| | impacto = Column(String, nullable=False)
|
| | dimensao = Column(String, nullable=False)
|
| |
|
| | observacoes = Column(String)
|
| |
|
| |
|
| | dia_inclusao = Column(String, nullable=True, index=True)
|
| |
|
| |
|
| | data_hora_input = Column(DateTime, default=datetime.utcnow, index=True)
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | class FPSO(Base):
|
| | __tablename__ = "fpsos"
|
| |
|
| | id = Column(Integer, primary_key=True)
|
| | nome = Column(String, unique=True, nullable=False, index=True)
|
| | ativo = Column(Boolean, default=True)
|
| | data_cadastro = Column(DateTime, default=datetime.utcnow)
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | class LogAcesso(Base):
|
| | __tablename__ = "log_acesso"
|
| |
|
| | id = Column(Integer, primary_key=True)
|
| |
|
| | usuario = Column(String, nullable=False, index=True)
|
| | acao = Column(String, nullable=False)
|
| | tabela = Column(String, nullable=True)
|
| | registro_id = Column(Integer, nullable=True)
|
| |
|
| | data_hora = Column(DateTime, default=datetime.utcnow, index=True)
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | class Usuario(Base):
|
| | __tablename__ = "usuarios"
|
| |
|
| | id = Column(Integer, primary_key=True)
|
| |
|
| |
|
| | usuario = Column(String, unique=True, nullable=False, index=True)
|
| | senha = Column(String, nullable=False)
|
| |
|
| |
|
| | perfil = Column(String, nullable=False)
|
| | ativo = Column(Boolean, default=True)
|
| |
|
| |
|
| | data_criacao = Column(DateTime, default=datetime.utcnow)
|
| |
|
| |
|
| | nome = Column(String, nullable=True, index=True)
|
| | email = Column(String, unique=True, index=True, nullable=True)
|
| |
|
| |
|
| | data_aniversario = Column(Date, nullable=True)
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | class QuizPergunta(Base):
|
| | __tablename__ = "quiz_perguntas"
|
| |
|
| | id = Column(Integer, primary_key=True)
|
| | pergunta = Column(String, nullable=False)
|
| | ativo = Column(Boolean, default=True)
|
| | data_criacao = Column(DateTime, default=datetime.utcnow)
|
| |
|
| | respostas = relationship(
|
| | "QuizResposta",
|
| | back_populates="pergunta",
|
| | cascade="all, delete-orphan"
|
| | )
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | class QuizResposta(Base):
|
| | __tablename__ = "quiz_respostas"
|
| |
|
| | id = Column(Integer, primary_key=True)
|
| | pergunta_id = Column(Integer, ForeignKey("quiz_perguntas.id"), nullable=False)
|
| | texto = Column(String, nullable=False)
|
| | correta = Column(Boolean, default=False)
|
| |
|
| | pergunta = relationship("QuizPergunta", back_populates="respostas")
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | class QuizPontuacao(Base):
|
| | __tablename__ = "quiz_pontuacoes"
|
| |
|
| | id = Column(Integer, primary_key=True)
|
| | usuario = Column(String, nullable=False, index=True)
|
| | pontos = Column(Integer, nullable=False, default=0)
|
| | data = Column(DateTime, default=datetime.utcnow, index=True)
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | class VideoCategoria(Base):
|
| | __tablename__ = "video_categorias"
|
| |
|
| | id = Column(Integer, primary_key=True)
|
| | nome = Column(String, nullable=False, unique=True)
|
| | ativo = Column(Boolean, default=True)
|
| | data_criacao = Column(DateTime, default=datetime.utcnow)
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | class Video(Base):
|
| | __tablename__ = "videos"
|
| |
|
| | id = Column(Integer, primary_key=True)
|
| | titulo = Column(String, nullable=False)
|
| | descricao = Column(String)
|
| | url = Column(String, nullable=False)
|
| |
|
| | categoria_id = Column(Integer, ForeignKey("video_categorias.id"))
|
| | categoria = relationship("VideoCategoria")
|
| |
|
| | ativo = Column(Boolean, default=True)
|
| | data_criacao = Column(DateTime, default=datetime.utcnow)
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | class EventoCalendario(Base):
|
| | __tablename__ = "eventos_calendario"
|
| |
|
| | id = Column(Integer, primary_key=True)
|
| | titulo = Column(String, nullable=False)
|
| | descricao = Column(String)
|
| | data_evento = Column(Date, nullable=False)
|
| | data_lembrete = Column(Date)
|
| | ativo = Column(Boolean, default=True)
|
| | usuario_criacao = Column(String, nullable=False)
|
| | data_criacao = Column(DateTime, default=datetime.utcnow)
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | class IOIRunSugestao(Base):
|
| | __tablename__ = "ioirun_sugestao"
|
| |
|
| | id = Column(Integer, primary_key=True, index=True)
|
| |
|
| |
|
| | usuario = Column(String, nullable=False, index=True)
|
| |
|
| |
|
| | area = Column(String, nullable=True, index=True)
|
| | mensagem = Column(Text, nullable=False)
|
| |
|
| |
|
| | resposta = Column(Text, nullable=True)
|
| | status = Column(String, default="pendente", nullable=False, index=True)
|
| | responsavel = Column(String, nullable=True)
|
| |
|
| |
|
| | data_envio = Column(DateTime, default=datetime.utcnow, nullable=False, index=True)
|
| | data_resposta = Column(DateTime, nullable=True)
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | class RNC(Base):
|
| | __tablename__ = "rnc"
|
| |
|
| | id = Column(Integer, primary_key=True, index=True)
|
| |
|
| |
|
| | codigo = Column(String(20), unique=True, index=True)
|
| | titulo = Column(String(200), nullable=False)
|
| | descricao = Column(Text, nullable=False)
|
| |
|
| |
|
| | data_form = Column(Date, nullable=True, index=True)
|
| | emitente = Column(String(120), nullable=True, index=True)
|
| | rnc_cliente_numero = Column(String(50), nullable=True)
|
| | cliente_emitente = Column(String(120), nullable=True)
|
| | area_solicitante = Column(String(120), nullable=True, index=True)
|
| | area_notificada = Column(String(120), nullable=True, index=True)
|
| | origem = Column(String(50), nullable=True, index=True)
|
| |
|
| |
|
| | envolvido1_nome = Column(String(120), nullable=True)
|
| | envolvido1_matricula = Column(String(50), nullable=True)
|
| | envolvido1_funcao = Column(String(120), nullable=True)
|
| | envolvido2_nome = Column(String(120), nullable=True)
|
| | envolvido2_matricula = Column(String(50), nullable=True)
|
| | envolvido2_funcao = Column(String(120), nullable=True)
|
| |
|
| |
|
| | tipo = Column(String(50), nullable=True)
|
| | severidade = Column(String(20), nullable=True)
|
| | prioridade = Column(String(20), nullable=True)
|
| |
|
| |
|
| | status = Column(String(30), default="Aberta", nullable=False, index=True)
|
| | data_abertura = Column(DateTime, default=datetime.utcnow, index=True)
|
| | prazo = Column(DateTime, nullable=True, index=True)
|
| | encerrada_em = Column(DateTime, nullable=True, index=True)
|
| |
|
| |
|
| | responsavel = Column(String(120), nullable=True, index=True)
|
| | criado_por = Column(String(120), nullable=False, index=True)
|
| |
|
| |
|
| | cliente = Column(String(120), nullable=True)
|
| | local = Column(String(120), nullable=True)
|
| |
|
| |
|
| | metodologia = Column(String(120), nullable=True)
|
| | causa_raiz = Column(Text, nullable=True)
|
| | ishikawa_json = Column(Text, nullable=True)
|
| |
|
| |
|
| | data_hora_input = Column(DateTime, default=datetime.utcnow, index=True)
|
| |
|
| |
|
| | comentarios = relationship("RNCComentario", back_populates="rnc", cascade="all, delete-orphan")
|
| | acoes = relationship("RNCAcaoCorretiva", back_populates="rnc", cascade="all, delete-orphan")
|
| | anexos = relationship("RNCAnexo", back_populates="rnc", cascade="all, delete-orphan")
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | class RNCComentario(Base):
|
| | __tablename__ = "rnc_comentario"
|
| |
|
| | id = Column(Integer, primary_key=True, index=True)
|
| | rnc_id = Column(Integer, ForeignKey("rnc.id"), nullable=False, index=True)
|
| |
|
| | data = Column(DateTime, default=datetime.utcnow, index=True)
|
| | autor = Column(String(120), nullable=False, index=True)
|
| | mensagem = Column(Text, nullable=False)
|
| |
|
| | status_novo = Column(String(30), nullable=True, index=True)
|
| | prazo_novo = Column(DateTime, nullable=True, index=True)
|
| | responsavel_novo = Column(String(120), nullable=True, index=True)
|
| |
|
| | rnc = relationship("RNC", back_populates="comentarios")
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | class RNCAcaoCorretiva(Base):
|
| | __tablename__ = "rnc_acao"
|
| |
|
| | id = Column(Integer, primary_key=True, index=True)
|
| | rnc_id = Column(Integer, ForeignKey("rnc.id"), nullable=False, index=True)
|
| |
|
| | descricao = Column(Text, nullable=False)
|
| | responsavel = Column(String(120), nullable=True, index=True)
|
| | prazo = Column(DateTime, nullable=True, index=True)
|
| |
|
| | status = Column(String(30), default="Planejada", nullable=False, index=True)
|
| | eficacia = Column(String(30), nullable=True, index=True)
|
| | conclusao_em = Column(DateTime, nullable=True, index=True)
|
| |
|
| | rnc = relationship("RNC", back_populates="acoes")
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | class RNCAnexo(Base):
|
| | __tablename__ = "rnc_anexo"
|
| |
|
| | id = Column(Integer, primary_key=True, index=True)
|
| | rnc_id = Column(Integer, ForeignKey("rnc.id"), nullable=False, index=True)
|
| |
|
| | nome_arquivo = Column(String(255), nullable=False)
|
| | caminho = Column(String(500), nullable=False)
|
| | conteudo_tipo = Column(String(120), nullable=True)
|
| |
|
| | enviado_por = Column(String(120), nullable=True, index=True)
|
| | enviado_em = Column(DateTime, default=datetime.utcnow, index=True)
|
| |
|
| | rnc = relationship("RNC", back_populates="anexos")
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | class AvisoGlobal(Base):
|
| | __tablename__ = "aviso_global"
|
| |
|
| | id = Column(Integer, primary_key=True, index=True)
|
| | mensagem = Column(Text, nullable=False)
|
| |
|
| |
|
| | bg_color = Column(String(32), default="#FFF3CD")
|
| | text_color = Column(String(32), default="#664D03")
|
| | largura = Column(String(16), default="100%")
|
| | efeito = Column(String(16), default="marquee")
|
| | velocidade = Column(Integer, default=20)
|
| | font_size = Column(Integer, default=14)
|
| |
|
| |
|
| | ativo = Column(Boolean, default=True, index=True)
|
| |
|
| |
|
| | created_at = Column(DateTime(timezone=True), server_default=func.now())
|
| | updated_at = Column(DateTime(timezone=True), server_default=func.now(), onupdate=func.now())
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | class RecebimentoRegistro(Base):
|
| | __tablename__ = "recebimento_registros"
|
| |
|
| |
|
| | id = Column(Integer, primary_key=True, autoincrement=True, index=True)
|
| | id_planilha = Column(Integer, nullable=True, index=True, unique=True)
|
| |
|
| |
|
| | data = Column(Date, nullable=True)
|
| | data_emissao = Column(Date, nullable=True)
|
| |
|
| |
|
| | hora_chegada_portaria = Column(String(8), nullable=True)
|
| | hora_chegada_ifs = Column(String(8), nullable=True)
|
| | hora_saida_ifs_wms = Column(String(8), nullable=True)
|
| | hora_liberacao_operacao = Column(String(8), nullable=True)
|
| | hora_chegada_operacao = Column(String(8), nullable=True)
|
| | hora_saida_operacao = Column(String(8), nullable=True)
|
| | hora_retorno_operacao = Column(String(8), nullable=True)
|
| | hora_liberacao_motorista = Column(String(8), nullable=True)
|
| |
|
| |
|
| | placa_veiculo = Column(String(50), nullable=True)
|
| | transportadora = Column(String(255), nullable=True)
|
| | po = Column(String(60), nullable=True)
|
| | incoterms = Column(String(30), nullable=True)
|
| | qtd_sku = Column(Integer, nullable=True)
|
| | nota_fiscal = Column(String(80), nullable=True)
|
| | fornecedor = Column(String(255), nullable=True)
|
| |
|
| |
|
| | quimicos = Column(Boolean, nullable=True)
|
| | fds = Column(Boolean, nullable=True)
|
| | repetro = Column(Boolean, nullable=True)
|
| | aprovado = Column(Boolean, nullable=True)
|
| |
|
| |
|
| | natureza_operacao = Column(String(120), nullable=True)
|
| | tipo_operacao = Column(String(120), nullable=True)
|
| | barco = Column(String(80), nullable=True)
|
| |
|
| |
|
| | divergencia = Column(String(200), nullable=True)
|
| |
|
| | ifs = Column(String(120), nullable=True)
|
| | wms = Column(String(120), nullable=True)
|
| | fotografia = Column(String(255), nullable=True)
|
| | entrega = Column(String(120), nullable=True)
|
| | projeto = Column(String(120), nullable=True)
|
| | good_receipt = Column(String(120), nullable=True)
|
| | divergencia_recebimento = Column(String(255), nullable=True)
|
| | qualidade = Column(String(120), nullable=True)
|
| | divergencia_qualidade = Column(String(255), nullable=True)
|
| | observacao = Column(Text, nullable=True)
|
| | agendamento = Column(String(120), nullable=True)
|
| | responsavel = Column(String(120), nullable=True)
|
| |
|
| |
|
| | po_alt = Column(String(60), nullable=True)
|
| | pn = Column(String(120), nullable=True)
|
| | lot_batch = Column(String(120), nullable=True)
|
| |
|
| |
|
| | created_by = Column(String(150), nullable=True)
|
| | updated_by = Column(String(150), nullable=True)
|
| | created_at = Column(DateTime, default=datetime.utcnow)
|
| | updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
|
| |
|