class Produto(BaseDbTable): id = IntegerPrimaryKey() nome = VarcharField(size=100, db_name='nome') categoria = VarcharField(size=100, db_name='categoria') valor_unitario = NumericField(db_name='valor_unitario', scale=2, precision=20)
class MarcaFipe(BaseDbTable): id = IntegerPrimaryKey() nome = VarcharField(db_name='nome', size=50, index=True, nullable=False) @classmethod def get_db_name(cls): return 'marca_fipe'
class VendaMultipla(BaseDbTable): id = IntegerPrimaryKey() data_venda = DateField() cancelada = CharacterField(size=1, permitted_values=('T', 'F'), default='F') produtos = ManyToManyField(related_to_class=Produto)
class FonteDeAnuncio(BaseDbTable): id = IntegerPrimaryKey() nome = VarcharField(db_name='nome', size=200, unique=True, nullable=False) url_pagina_pricipal = VarcharField(db_name='url', size=200) @classmethod def get_db_name(cls): return 'fonte_de_anuncio'
class ModeloVeiculo(BaseDbTable): id = IntegerPrimaryKey() marca = ForeignKey(related_to_class=MarcaVeiculo, index=True) modelo = VarcharField(db_name="modelo", size= 250, index=True) codigo_integracao = VarcharField(db_name='codigo_integracao', size=10) @classmethod def get_db_name(cls): return 'modelo_veiculo'
class MarcaVeiculo(BaseDbTable): id = IntegerPrimaryKey() nome = VarcharField(db_name='nome', size=50, unique=True, nullable=False) codigo_integracao = VarcharField(db_name='codigo_integracao', size=10) marca_fipe = ForeignKey(related_to_class=MarcaFipe, index=True) fonte_do_anuncio = ForeignKey(FonteDeAnuncio) @classmethod def get_db_name(cls): return 'marca_veiculo'
class ModeloFipe(BaseDbTable): id = IntegerPrimaryKey() marca_fipe = ForeignKey(related_to_class=MarcaFipe, nullable=False) nome = VarcharField(db_name='nome', size=250, index=True, nullable=False) ano = IntegerField(db_name='ano') @classmethod def get_db_name(cls): return 'modelo_fipe' @classmethod def compound_indexes_list(cls): return [('ix_modelo_fipe_marca_nome', False, (cls.marca_fipe, cls.nome))]
class Anuncio(BaseDbTable): id = IntegerPrimaryKey() titulo = VarcharField(db_name='titulo', size=255, nullable=False) descricao = VarcharField(db_name='descricao', size=1000) modelo = ForeignKey(ModeloVeiculo, index=True) ano_fabricacao = IntegerField(db_name='ano_fabricacao') ano_modelo = IntegerField(db_name='ano_modelo') quilometragem = IntegerField(db_name='quilometragem') valor = NumericField(db_name='valor', scale=2, precision=20) cambio = CharacterField(db_name='cambio', size=1, permitted_values=tipo_cambio) cidade = ForeignKey(Cidade) motorizacao = VarcharField(db_name='motorizacao', size=50) novo_seminovo = CharacterField(db_name="novo_seminovo", size=1, permitted_values=tipo_carro_novo_seminovo) data_de_inclusao = DateField(db_name='data_inclusao', index=True, nullable=False, default=CurrentDate)
class Venda(BaseDbTable): id = IntegerPrimaryKey() produto = ForeignKey(Produto, nullable=True) quantidade = IntegerField(db_name='quantidade')
class Estado(BaseDbTable): id = IntegerPrimaryKey() pais = ForeignKey(related_to_class=Pais, nullable=False) nome = VarcharField(size=50, db_name='nome', nullable=False) sigla = VarcharField(size=2, db_name='sigla')
class Cidade(BaseDbTable): id = IntegerPrimaryKey() estado = ForeignKey(related_to_class=Estado) nome = VarcharField(size=50, db_name='nome', nullable=False)