-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmodels.py
124 lines (93 loc) · 4.57 KB
/
models.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
from datetime import datetime
from ext.database import db
from sqlalchemy.inspection import inspect
from flask_login import UserMixin
# tabelas compartilhadas
class Placas(db.Model):
__tablename__ = "placas"
id = db.Column(db.Integer, primary_key=True, autoincrement=True, nullable=False)
placa = db.Column(db.String(10), nullable=False)
veiculo = db.Column(db.String(30))
km_necessario = db.Column(db.Boolean, default=True)
def to_dict(self):
return {c.key: getattr(self, c.key) for c in inspect(self).mapper.column_attrs}
def __repr__(self):
return f"<Placa id={self.id} placa={self.placa}>"
class Motoristas(db.Model):
__tablename__ = "motoristas"
id = db.Column(db.Integer, primary_key=True, autoincrement=True, nullable=False)
motorista = db.Column(db.String(50), nullable=False)
cidade = db.Column(db.String(30))
def to_dict(self):
return {c.key: getattr(self, c.key) for c in inspect(self).mapper.column_attrs}
def __repr__(self):
return f"<Motorista id={self.id} motorista={self.motorista}>"
# tabelas exclusivas
class Visitantes(db.Model):
__tablename__ = 'visitantes'
id = db.Column(db.Integer, primary_key=True, autoincrement=True, nullable=False)
nome = db.Column(db.String(50), nullable=False)
documento = db.Column(db.String(50))
empresa = db.Column(db.String(50))
def to_dict(self):
return {c.key: getattr(self, c.key) for c in inspect(self).mapper.column_attrs}
def __repr__(self):
return f'<Visitante id={self.id} nome={self.nome}>'
class RegistrosEmpresa(db.Model):
__tablename__ = 'registros_empresa'
id = db.Column(db.Integer, primary_key=True, autoincrement=True, nullable=False)
user = db.Column(db.String(10), nullable=False)
data_lanc = db.Column(db.DateTime, nullable=False)
data_reg = db.Column(db.DateTime, nullable=False)
categoria = db.Column(db.String(10), nullable=False)
motorista = db.Column(db.String(50), nullable=False)
placa = db.Column(db.String(10), nullable=False)
descricao = db.Column(db.String(100))
quilometragem = db.Column(db.Integer)
destino = db.Column(db.String(50), nullable=False)
observacoes = db.Column(db.String(100))
def to_dict(self):
return {c.key: getattr(self, c.key) for c in inspect(self).mapper.column_attrs}
class RegistrosVisitantes(db.Model):
__tablename__ = 'registros_visitantes'
id = db.Column(db.Integer, primary_key=True, autoincrement=True, nullable=False)
user = db.Column(db.String(10), nullable=False)
data_lanc = db.Column(db.DateTime, nullable=False)
data_reg = db.Column(db.DateTime, nullable=False)
categoria = db.Column(db.String(10), nullable=False)
nome = db.Column(db.String(50), nullable=False)
documento = db.Column(db.String(50), nullable=False)
placa = db.Column(db.String(10))
empresa = db.Column(db.String(50))
destino = db.Column(db.String(50))
observacoes = db.Column(db.String(100))
def to_dict(self):
return {c.key: getattr(self, c.key) for c in inspect(self).mapper.column_attrs}
class PortariaHistory(db.Model):
__tablename__ = 'portaria_history'
id = db.Column(db.Integer, primary_key=True, autoincrement=True, nullable=False)
id_reg = db.Column(db.Integer, nullable=False)
user = db.Column(db.String(32), nullable=False)
colunas_alteradas = db.Column(db.String(512))
valores_antigos = db.Column(db.String(512))
def to_dict(self):
return {c.key: getattr(self, c.key) for c in inspect(self).mapper.column_attrs}
class User(db.Model, UserMixin):
__tablename__ = "portaria_users"
id = db.Column(db.Integer, primary_key=True, autoincrement=True, nullable=False)
username = db.Column(db.String(140), nullable=False)
password = db.Column(db.String(512), nullable=False)
is_admin = db.Column(db.Boolean, default=False)
is_manager = db.Column(db.Boolean, default=False)
is_editor = db.Column(db.Boolean, default=False)
def __init__(self, username, password):
self.username = username
self.password = password
class PortariaToken(db.Model):
__tablename__ = "portaria_tokens"
id = db.Column(db.Integer, primary_key=True)
token = db.Column(db.String(36), unique=True, nullable=False)
created_at = db.Column(db.DateTime, default=datetime.now)
tables_dict = {table.__tablename__: table for table in db.Model.__subclasses__()}
def table_object(table_name):
return tables_dict.get(table_name)