class AssistenciaJudiciaria(db.Model): __tablename__ = "assistencias_judiciarias" id = db.Column(db.Integer, primary_key=True) nome = db.Column(db.String(150, collation='latin1_general_ci'), nullable=False) regiao = db.Column(db.String(80, collation='latin1_general_ci'), nullable=False) areas_atendidas = db.Column(db.String(1000, collation='latin1_general_ci'), nullable=False) endereco_id = db.Column(db.Integer, db.ForeignKey("enderecos.id")) endereco = db.relationship("Endereco", lazy="joined") telefone = db.Column(db.String(18, collation='latin1_general_ci'), nullable=False) email = db.Column(db.String(80, collation='latin1_general_ci'), unique=True, nullable=False) status = db.Column(db.Integer, nullable=False) orientacoesJuridicas = db.relationship( "OrientacaoJuridica", secondary="assistenciasJudiciarias_xOrientacao_juridica") def setAreas_atendidas(self, opcoes): self.areas_atendidas = ",".join(opcoes) def getAreas_atendidas(self): return self.areas_atendidas.split(",") def as_dict(self): return {c.name: getattr(self, c.name) for c in self.__table__.columns}
class OrientacaoJuridica(db.Model): __tablename__ = "orientacao_juridica" id = db.Column(db.Integer, primary_key=True) area_direito = db.Column(db.String(50, collation='latin1_general_ci'), nullable=False) sub_area = db.Column(db.String(50, collation='latin1_general_ci')) descricao = db.Column(db.String(1000, collation='latin1_general_ci'), nullable=False) status = db.Column(db.Integer, nullable=False) assistenciasJudiciarias = db.relationship( "AssistenciaJudiciaria", secondary="assistenciasJudiciarias_xOrientacao_juridica", backref='AssistenciaJudiciaria') atendidos = db.relationship("Atendido", secondary="atendido_xOrientacaoJuridica") def setSubAreas(self, area_direito, sub_area, sub_areaAdmin): if area_direito == area_do_direito['CIVEL'][0]: self.sub_area = sub_area elif area_direito == area_do_direito['ADMINISTRATIVO'][0]: self.sub_area = sub_areaAdmin else: self.sub_area = null() def as_dict(self): return {c.name: getattr(self, c.name) for c in self.__table__.columns}
class Processo(db.Model): __tablename__ = 'processos' id = db.Column(db.Integer, primary_key=True) especie = db.Column(db.String(25, collation='latin1_general_ci'), nullable=False) numero = db.Column(db.Integer, unique=True) identificacao = db.Column(db.Text(collation='latin1_general_ci')) vara = db.Column(db.String(200, collation='latin1_general_ci')) link = db.Column(db.String(1000, collation='latin1_general_ci')) probabilidade = db.Column(db.String(25, collation='latin1_general_ci')) posicao_assistido = db.Column(db.String(25, collation='latin1_general_ci')) valor_causa_inicial = db.Column(db.Integer) valor_causa_atual = db.Column(db.Integer) data_distribuicao = db.Column(db.Date) data_transito_em_julgado = db.Column(db.Date) obs = db.Column(db.Text(collation='latin1_general_ci')) id_caso = db.Column(db.Integer, db.ForeignKey("casos.id"), nullable=False) caso = db.relationship("Caso", lazy="joined") status = db.Column(db.Boolean, default=True, nullable=False) id_criado_por = db.Column(db.Integer, db.ForeignKey('usuarios.id'), nullable=False, default=1) criado_por = db.relationship('Usuario', foreign_keys=[id_criado_por])
class Evento(db.Model): __tablename__ = 'eventos' id = db.Column(db.Integer, primary_key=True) id_caso = db.Column(db.Integer, db.ForeignKey("casos.id"), nullable=False) caso = db.relationship("Caso") tipo = db.Column(db.String(50, collation='latin1_general_ci'), nullable=False) descricao = db.Column(db.String(1000, collation='latin1_general_ci')) arquivo = db.Column(db.String(100, collation='latin1_general_ci')) data_evento = db.Column(db.Date, nullable=False) data_criacao = db.Column(db.DateTime, nullable=False) id_criado_por = db.Column(db.Integer, db.ForeignKey('usuarios.id'), nullable=False) id_usuario_responsavel = db.Column(db.Integer, db.ForeignKey('usuarios.id'), nullable=True) usuario_responsavel = db.relationship( 'Usuario', foreign_keys=[id_usuario_responsavel]) criado_por = db.relationship('Usuario', foreign_keys=[id_criado_por]) status = db.Column(db.Boolean, default=True, nullable=False)
class Historico(db.Model): __tablename__ = 'historicos' id = db.Column(db.Integer, primary_key=True) id_usuario = db.Column(db.Integer, db.ForeignKey("usuarios.id"), nullable=False) usuario = db.relationship("Usuario", lazy="joined") id_caso = db.Column(db.Integer, db.ForeignKey("casos.id"), nullable=False) caso = db.relationship("Caso", lazy="joined") data = db.Column(db.DateTime, nullable=False)
class Atendido_xOrientacaoJuridica(db.Model): __tablename__ = "atendido_xOrientacaoJuridica" id = db.Column(db.Integer, primary_key=True) id_orientacaoJuridica = db.Column(db.Integer, db.ForeignKey('orientacao_juridica.id')) id_atendido = db.Column(db.Integer, db.ForeignKey('atendidos.id')) atendido = db.relationship( Atendido, backref=db.backref("atendido_xOrientacaoJuridica")) orientacaoJuridica = db.relationship( OrientacaoJuridica, backref=db.backref("atendido_xOrientacaoJuridica"))
class Notificacao(db.Model): __tablename__ = 'notificacao' id_executor_acao = db.Column(db.Integer, db.ForeignKey('usuarios.id')) executor_acao = db.relationship('Usuario', foreign_keys=[id_executor_acao]) id_usu_notificar = db.Column(db.Integer, db.ForeignKey('usuarios.id')) usu_notificar = db.relationship('Usuario', foreign_keys=[id_usu_notificar]) id = db.Column(db.Integer, primary_key=True) acao = db.Column(db.String(200, collation='latin1_general_ci'), nullable=False) data = db.Column(db.Date, nullable=False)
class AssistenciaJudiciaria_xOrientacaoJuridica(db.Model): __tablename__ = "assistenciasJudiciarias_xOrientacao_juridica" id = db.Column(db.Integer, primary_key=True) id_orientacaoJuridica = db.Column(db.Integer, db.ForeignKey('orientacao_juridica.id')) id_assistenciaJudiciaria = db.Column( db.Integer, db.ForeignKey('assistencias_judiciarias.id')) assistenciaJudiciaria = db.relationship( AssistenciaJudiciaria, backref=db.backref("assistenciasJudiciarias_xOrientacao_juridica")) orientacaoJuridica = db.relationship( OrientacaoJuridica, backref=db.backref("assistenciasJudiciarias_xOrientacao_juridica"))
class Lembrete(db.Model): __tablename__ = 'lembretes' id = db.Column(db.Integer, primary_key=True) id_do_criador = db.Column(db.Integer, db.ForeignKey('usuarios.id'), nullable=False) criador = db.relationship('Usuario', foreign_keys=[id_do_criador]) id_caso = db.Column(db.Integer, db.ForeignKey('casos.id'), nullable=False) caso = db.relationship('Caso', foreign_keys=[id_caso]) id_usuario = db.Column(db.Integer, db.ForeignKey('usuarios.id'), nullable=False) usuario = db.relationship('Usuario', foreign_keys=[id_usuario]) data_criacao = db.Column(db.DateTime, nullable=False) data_lembrete = db.Column(db.DateTime, nullable=False) descricao = db.Column(db.String(1000, collation='latin1_general_ci'), nullable=False) status = db.Column(db.Boolean, default=True, nullable=False)
class Cidade(db.Model): __tablename__ = "cidades" id = db.Column(db.Integer, primary_key=True) cidade = db.Column(db.String(60, collation="latin1_general_ci"), nullable=False) estado_id = db.Column(db.Integer, db.ForeignKey("estados.id")) estado = db.relationship("Estado", lazy='joined')
class DiasMarcadosPlantao(db.Model): __tablename__ = "dias_marcados_plantao" id = db.Column(db.Integer, primary_key=True) data_marcada = db.Column(db.Date) confirmacao = db.Column(db.String(15, collation='latin1_general_ci'), nullable=False, default="aberto") id_usuario = db.Column(db.Integer, db.ForeignKey('usuarios.id')) usuario = db.relationship(Usuario, backref=db.backref("dias_marcados_plantao"))
class RegistroEntrada(db.Model): __tablename__ = "registro_entrada" id = db.Column(db.Integer, primary_key=True) data_entrada = db.Column(db.DateTime, nullable=False) data_saida = db.Column(db.DateTime, nullable=False) status = db.Column(db.Boolean(), nullable=False, default=True) confirmacao = db.Column(db.String(15, collation='latin1_general_ci'), nullable=False, default="aberto") id_usuario = db.Column(db.Integer, db.ForeignKey('usuarios.id')) usuario = db.relationship(Usuario, backref=db.backref("registro_entrada"))
class Caso(db.Model): __tablename__ = 'casos' id = db.Column(db.Integer, primary_key=True) id_usuario_responsavel = db.Column(db.Integer, db.ForeignKey('usuarios.id'), nullable=False) usuario_responsavel = db.relationship( 'Usuario', foreign_keys=[id_usuario_responsavel]) area_direito = db.Column(db.String(50, collation='latin1_general_ci'), nullable=False) clientes = db.relationship('Atendido', secondary=associacao_casos_atendidos, back_populates='casos') id_orientador = db.Column(db.Integer, db.ForeignKey('usuarios.id')) orientador = db.relationship('Usuario', foreign_keys=[id_orientador]) id_estagiario = db.Column(db.Integer, db.ForeignKey('usuarios.id')) estagiario = db.relationship('Usuario', foreign_keys=[id_estagiario]) id_colaborador = db.Column(db.Integer, db.ForeignKey('usuarios.id')) colaborador = db.relationship('Usuario', foreign_keys=[id_colaborador]) data_criacao = db.Column(db.DateTime, nullable=False) id_criado_por = db.Column(db.Integer, db.ForeignKey('usuarios.id'), nullable=False) criado_por = db.relationship('Usuario', foreign_keys=[id_criado_por]) data_modificacao = db.Column(db.DateTime) id_modificado_por = db.Column(db.Integer, db.ForeignKey('usuarios.id')) modificado_por = db.relationship('Usuario', foreign_keys=[id_modificado_por]) situacao_deferimento = db.Column(db.String(50, collation='latin1_general_ci'), nullable=False, default='aguardando_deferimento') justif_indeferimento = db.Column(db.String(280, collation='latin1_general_ci'), nullable=True) status = db.Column(db.Boolean, default=True, nullable=False) descricao = db.Column(db.Text(collation='latin1_general_ci')) arquivo = db.Column(db.String(300, collation='latin1_general_ci')) numero_ultimo_processo = db.Column(db.Integer, nullable=True)
class AssistidoPessoaJuridica(db.Model): __tablename__ = "assistidos_pessoa_juridica" id = db.Column(db.Integer, primary_key=True) id_assistido = db.Column(db.Integer, db.ForeignKey("assistidos.id")) assistido = db.relationship("Assistido", lazy="joined") #Dados específicos socios = db.Column(db.String(1000, collation='latin1_general_ci')) situacao_receita = db.Column(db.String(100, collation='latin1_general_ci'), nullable=False) enquadramento = db.Column(db.String(100, collation='latin1_general_ci'), nullable=False) sede_bh = db.Column(db.Boolean, nullable=False) regiao_sede_bh = db.Column(db.String(50, collation='latin1_general_ci')) regiao_sede_outros = db.Column( db.String(100, collation='latin1_general_ci')) area_atuacao = db.Column(db.String(50, collation='latin1_general_ci'), nullable=False) negocio_nascente = db.Column(db.Boolean, nullable=False) orgao_registro = db.Column(db.String(100, collation='latin1_general_ci'), nullable=False) faturamento_anual = db.Column(db.Numeric(10, 2), nullable=False) ultimo_balanco_neg = db.Column(db.String(50, collation='latin1_general_ci')) resultado_econ_neg = db.Column(db.String(50, collation='latin1_general_ci')) tem_funcionarios = db.Column(db.String(20, collation='latin1_general_ci'), nullable=False) qtd_funcionarios = db.Column(db.String(7, collation='latin1_general_ci')) def setCamposRegiao_sede(self, sede_bh, regiao_sede_bh, regiao_sede_outros): if sede_bh: self.regiao_sede_bh = regiao_sede_bh self.regiao_sede_outros = null() else: self.regiao_sede_bh = null() self.regiao_sede_outros = regiao_sede_outros def setQtd_funcionarios(self, tem_funcionarios, qtd_funcionarios): if tem_funcionarios: self.qtd_funcionarios = qtd_funcionarios else: self.qtd_funcionarios = null() def __repr__(self): return f"RG:{self.enquadramento}"
class Endereco(db.Model): __tablename__ = "enderecos" id = db.Column(db.Integer, primary_key=True) logradouro = db.Column(db.String(100, collation="latin1_general_ci"), nullable=False) numero = db.Column(db.String(8, collation="latin1_general_ci"), nullable=False) complemento = db.Column(db.String(100, collation="latin1_general_ci")) bairro = db.Column(db.String(100, collation="latin1_general_ci"), nullable=False) cep = db.Column(db.String(9, collation="latin1_general_ci"), nullable=False) cidade_id = db.Column(db.Integer, db.ForeignKey("cidades.id")) cidade = db.relationship("Cidade", lazy='joined')
class Atendido(db.Model): __tablename__ = 'atendidos' id = db.Column(db.Integer, primary_key=True) orientacoesJuridicas = db.relationship( "OrientacaoJuridica", secondary="atendido_xOrientacaoJuridica") casos = db.relationship("Caso", secondary=associacao_casos_atendidos, back_populates='clientes') #Dados básicos nome = db.Column(db.String(80, collation='latin1_general_ci'), nullable=False) data_nascimento = db.Column(db.Date, nullable=False) cpf = db.Column(db.String(14, collation='latin1_general_ci'), nullable=False) cnpj = db.Column(db.String(18, collation='latin1_general_ci')) endereco_id = db.Column(db.Integer, db.ForeignKey("enderecos.id")) endereco = db.relationship("Endereco", lazy="joined") telefone = db.Column(db.String(18, collation='latin1_general_ci')) celular = db.Column(db.String(18, collation='latin1_general_ci'), nullable=False) email = db.Column(db.String(80, collation='latin1_general_ci'), unique=True, nullable=False) estado_civil = db.Column(db.String(80, collation='latin1_general_ci'), nullable=False) #antiga Área_demanda area_juridica = db.Column(db.String(80, collation='latin1_general_ci'), nullable=False) como_conheceu = db.Column(db.String(80, collation='latin1_general_ci'), nullable=False) indicacao_orgao = db.Column(db.String(80, collation='latin1_general_ci')) procurou_outro_local = db.Column(db.String(80, collation='latin1_general_ci'), nullable=False) procurou_qual_local = db.Column( db.String(80, collation='latin1_general_ci')) obs = db.Column(db.Text(collation='latin1_general_ci')) pj_constituida = db.Column(db.String(80, collation='latin1_general_ci'), nullable=False) repres_legal = db.Column(db.Boolean) nome_repres_legal = db.Column(db.String(80, collation='latin1_general_ci')) cpf_repres_legal = db.Column(db.String(14, collation='latin1_general_ci')) contato_repres_legal = db.Column( db.String(18, collation='latin1_general_ci')) rg_repres_legal = db.Column(db.String(50, collation='latin1_general_ci')) nascimento_repres_legal = db.Column(db.Date) pretende_constituir_pj = db.Column( db.String(80, collation='latin1_general_ci')) status = db.Column(db.Integer, nullable=False) def setIndicacao_orgao(self, indicacao_orgao, como_conheceu): if como_conheceu == como_conheceu_daj['ORGAOSPUBLICOS'][0]: self.indicacao_orgao = indicacao_orgao else: self.indicacao_orgao = null() def setCnpj(self, pj_constituida, cnpj, repres_legal): if pj_constituida: self.cnpj = cnpj self.repres_legal = repres_legal else: self.cnpj = null() self.repres_legal = null() def setRepres_legal(self, repres_legal, pj_constituida, nome_repres_legal, cpf_repres_legal, contato_repres_legal, rg_repres_legal, nascimento_repres_legal): if (repres_legal == False) and pj_constituida: self.nome_repres_legal = nome_repres_legal self.cpf_repres_legal = cpf_repres_legal self.contato_repres_legal = contato_repres_legal self.rg_repres_legal = rg_repres_legal self.nascimento_repres_legal = nascimento_repres_legal else: self.nome_repres_legal = null() self.cpf_repres_legal = null() self.contato_repres_legal = null() self.rg_repres_legal = null() self.nascimento_repres_legal = null() def setProcurou_qual_local(self, procurou_outro_local, procurou_qual_local): if procurou_outro_local: self.procurou_qual_local = procurou_qual_local else: self.procurou_qual_local = null() def as_dict(self): return {c.name: getattr(self, c.name) for c in self.__table__.columns} def __repr__(self): return f"Nome:{self.nome}"
class Assistido(db.Model): __tablename__ = "assistidos" id = db.Column(db.Integer, primary_key=True) id_atendido = db.Column(db.Integer, db.ForeignKey("atendidos.id")) atendido = db.relationship("Atendido", lazy="joined") #Dados pessoais sexo = db.Column(db.String(1, collation='latin1_general_ci'), nullable=False) profissao = db.Column(db.String(80, collation='latin1_general_ci'), nullable=False) raca = db.Column(db.String(20, collation='latin1_general_ci'), nullable=False) rg = db.Column(db.String(50, collation='latin1_general_ci'), nullable=False) #Dados sociais grau_instrucao = db.Column(db.String(100, collation='latin1_general_ci'), nullable=False) #Renda e patrimônio salario = db.Column(db.Numeric(10, 2), nullable=False) beneficio = db.Column(db.String(30, collation='latin1_general_ci'), nullable=False) contribui_inss = db.Column(db.String(20, collation='latin1_general_ci'), nullable=False) qtd_pessoas_moradia = db.Column(db.Integer, nullable=False) renda_familiar = db.Column(db.Numeric(10, 2), nullable=False) participacao_renda = db.Column(db.String(100, collation='latin1_general_ci'), nullable=False) tipo_moradia = db.Column(db.String(100, collation='latin1_general_ci'), nullable=False) possui_outros_imoveis = db.Column(db.Boolean, nullable=False) possui_veiculos = db.Column(db.Boolean, nullable=False) possui_veiculos_obs = db.Column( db.String(100, collation='latin1_general_ci')) quantos_veiculos = db.Column(db.Integer) ano_veiculo = db.Column(db.String(5, collation='latin1_general_ci')) doenca_grave_familia = db.Column(db.String(20, collation='latin1_general_ci'), nullable=False) pessoa_doente = db.Column(db.String(50, collation='latin1_general_ci')) pessoa_doente_obs = db.Column(db.String(100, collation='latin1_general_ci')) gastos_medicacao = db.Column(db.Numeric(10, 2)) obs = db.Column(db.String(1000, collation='latin1_general_ci')) def setCamposVeiculo(self, possui_veiculos, possui_veiculos_obs, quantos_veiculos, ano_veiculo): if possui_veiculos: self.possui_veiculos_obs = possui_veiculos_obs self.quantos_veiculos = quantos_veiculos self.ano_veiculo = ano_veiculo else: self.possui_veiculos_obs = null() self.quantos_veiculos = null() self.ano_veiculo = null() def setCamposDoenca(self, doenca_grave_familia, pessoa_doente, pessoa_doente_obs, gastos_medicacao): if doenca_grave_familia == 'sim': self.pessoa_doente = pessoa_doente self.gastos_medicacao = gastos_medicacao if pessoa_doente == 'sim': self.pessoa_doente_obs = pessoa_doente_obs else: self.pessoa_doente_obs = null() else: self.pessoa_doente = null() self.pessoa_doente_obs = null() self.gastos_medicacao = null() def __repr__(self): return f"RG:{self.rg}"
class Usuario(db.Model, UserMixin): bcrypt = Bcrypt() __tablename__ = 'usuarios' id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String(80, collation='latin1_general_ci'), unique=True, nullable=False) senha = db.Column(db.String(60, collation='latin1_general_ci'), nullable=False) urole = db.Column(db.String(50, collation='latin1_general_ci'), nullable=False) nome = db.Column(db.String(60, collation='latin1_general_ci'), nullable=False) sexo = db.Column(db.String(60, collation='latin1_general_ci'), nullable=False) rg = db.Column(db.String(18, collation='latin1_general_ci'), nullable=False) cpf = db.Column(db.String(14, collation='latin1_general_ci'), nullable=False) profissao = db.Column(db.String(45, collation='latin1_general_ci'), nullable=False) estado_civil = db.Column(db.String(45, collation='latin1_general_ci'), nullable=False) nascimento = db.Column(db.Date, nullable=False) telefone = db.Column(db.String(18, collation='latin1_general_ci')) celular = db.Column(db.String(18, collation='latin1_general_ci'), nullable=False) oab = db.Column(db.String(30, collation='latin1_general_ci')) obs = db.Column(db.Text(collation='latin1_general_ci')) data_entrada = db.Column(db.Date, nullable=False) data_saida = db.Column(db.Date, nullable=True) criado = db.Column(db.DateTime, nullable=False) modificado = db.Column(db.DateTime) criadopor = db.Column(db.Integer, nullable=False) matricula = db.Column(db.String(45, collation='latin1_general_ci')) modificadopor = db.Column(db.Integer) bolsista = db.Column(db.Boolean, nullable=False) tipo_bolsa = db.Column(db.String(50, collation='latin1_general_ci')) #TODO: Analisar necessidade de separar dia/horário de atendimento #dia_atendimento = db.Column(db.String(255, collation = 'latin1_general_ci')) #!!! horario_atendimento = db.Column( db.String(30, collation='latin1_general_ci')) #!!! suplente = db.Column(db.String(30, collation='latin1_general_ci')) #TODO: Ver qual é o Input de Ferias se é data ou só um status ferias = db.Column(db.String(150, collation='latin1_general_ci')) status = db.Column(db.Boolean, nullable=False) cert_atuacao_DAJ = db.Column(db.String(3, collation='latin1_general_ci'), nullable=False, default="nao") inicio_bolsa = db.Column(db.DateTime) fim_bolsa = db.Column(db.DateTime) endereco_id = db.Column(db.Integer, db.ForeignKey("enderecos.id")) endereco = db.relationship("Endereco", lazy="joined") def setSenha(self, senha): self.senha = self.bcrypt.generate_password_hash(senha).decode('utf-8') def checa_senha(self, senha): return self.bcrypt.check_password_hash(self.senha, senha) def atualizaCamposModificao(self, modificadoPor): self.modificado = datetime.now() self.modificadopor = modificadoPor def setCamposBolsista(self, bolsista, tipo_bolsa, inicio_bolsa, fim_bolsa): self.bolsista = bolsista if self.bolsista == True: self.inicio_bolsa = inicio_bolsa self.fim_bolsa = fim_bolsa self.tipo_bolsa = tipo_bolsa else: self.inicio_bolsa = null() self.fim_bolsa = null() self.tipo_bolsa = null()