from django.db import models

# Create your models here.

### STAR SCHEMA ###


### DIMENSIONS ###

class dCanais(models.Model):
    canal_id = models.BigIntegerField(primary_key=True)
    canal = models.CharField(max_length=40)
    
    def __str__(self):
        return self.canal

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dCanais'


class dCategorias(models.Model):
    categoria_id = models.BigIntegerField(primary_key=True)
    categoria = models.CharField(max_length=75)
    
    def __str__(self):
        return self.categoria

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dCategorias'

class dConsultores(models.Model):
    consultor_id = models.BigIntegerField(primary_key=True)
    consultor = models.CharField(max_length=255)
    
    def __str__(self):
        return self.consultor

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dConsultores'

class dEmpreendimentos(models.Model):
    empreendimento_id = models.BigIntegerField(primary_key=True)
    empreendimento = models.CharField(max_length=13)
    
    def __str__(self):
        return self.empreendimento

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dEmpreendimentos'

class dEstadosCivis(models.Model):
    estado_civil_id = models.BigIntegerField(primary_key=True)
    estado_civil = models.CharField(max_length=30)
    
    def __str__(self):
        return self.estado_civil

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dEstadosCivis'

class dEtapasFunil(models.Model):
    etapa_funil = models.CharField(max_length=70)
    funil = models.CharField(max_length=70)
    ordem = models.PositiveIntegerField()
    funil_id = models.CharField(max_length=50, primary_key=True)
    etapa = models.CharField(max_length=77)
    
    
    def __str__(self):
        return self.etapa_funil

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dEtapasFunil'

class dFaixasIdade(models.Model):
    idade_range_id = models.BigIntegerField(primary_key=True)
    idade_range = models.CharField(max_length=16)
    
    def __str__(self):
        return self.idade_range

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dFaixasIdade'

class dFechamentoDias(models.Model):
    fechamento_id = models.BigIntegerField(primary_key=True)
    finalizacao_range = models.CharField(max_length=16)
    
    def __str__(self):
        return self.finalizacao_range

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dFechamentoDias'

class dInteresses(models.Model):
    interesse_id = models.BigIntegerField(primary_key=True)
    interesse = models.CharField(max_length=75)
    
    def __str__(self):
        return self.interesse

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dInteresses'

class dMidias(models.Model):
    midia_id = models.BigIntegerField(primary_key=True)
    midia = models.CharField(max_length=70)
    
    def __str__(self):
        return self.midia

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dMidias'

class dMotivosPerdaPausa(models.Model):
    motivo_id = models.BigIntegerField(primary_key=True)
    motivo_perda_pausa = models.CharField(max_length=100)
    
    def __str__(self):
        return self.motivo_perda_pausa

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dMotivosPerdaPausa'

class dProfissoes(models.Model):
    profissao_id = models.BigIntegerField(primary_key=True)
    profissao = models.CharField(max_length=80)
    
    def __str__(self):
        return self.profissao

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dProfissoes'

class dQuartos(models.Model):
    quartos_id = models.BigIntegerField(primary_key=True)
    quartos = models.CharField(max_length=13)
    
    def __str__(self):
        return self.quartos

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dQuartos'

class dRegioes(models.Model):
    regiao_id = models.BigIntegerField(primary_key=True)
    cidade = models.CharField(max_length=60)
    estado = models.CharField(max_length=45)
    
    def __str__(self):
        return f"{self.cidade}, {self.estado}"

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dRegioes'

class dRendas(models.Model):
    renda_id = models.BigIntegerField(primary_key=True)
    renda = models.CharField(max_length=50)
    
    def __str__(self):
        return self.renda

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dRendas'

class dSexos(models.Model):
    sexo_id = models.BigIntegerField(primary_key=True)
    sexo = models.CharField(max_length=30)
    
    def __str__(self):
        return self.sexo

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dSexos'

class dStatus(models.Model):
    status_id = models.BigIntegerField(primary_key=True)
    status = models.CharField(max_length=13)
    
    def __str__(self):
        return self.status

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dStatus'

class dStatusAtividade(models.Model):
    status_atividade_id = models.BigIntegerField(primary_key=True)
    status_atividade = models.CharField(max_length=45)
    
    def __str__(self):
        return self.status_atividade

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dStatusAtividade'

class dStatusProposta(models.Model):
    status_proposta_id = models.BigIntegerField(primary_key=True)
    status_proposta = models.CharField(max_length=100)
    
    def __str__(self):
        return self.status_proposta

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dStatusProposta'

class dSuites(models.Model):
    suites_id = models.BigIntegerField(primary_key=True)
    suites = models.CharField(max_length=13)
    
    def __str__(self):
        return self.suites

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dSuites'

class dTemperaturas(models.Model):
    temperatura_id = models.BigIntegerField(primary_key=True)
    temperatura = models.CharField(max_length=100)
    
    def __str__(self):
        return self.temperatura

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dTemperaturas'

class dTipos(models.Model):
    tipo_id = models.BigIntegerField(primary_key=True)
    tipo = models.CharField(max_length=13)
    
    def __str__(self):
        return self.tipo

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dTipos'

class dTiposAtividade(models.Model):
    tipo_atividade_id = models.BigIntegerField(primary_key=True)
    tipo_atividade = models.CharField(max_length=200)
    
    def __str__(self):
        return self.tipo_atividade

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dTiposAtividade'

class dUnidades(models.Model):
    unidade_id = models.BigIntegerField(primary_key=True)
    unidade = models.CharField(max_length=255)
    
    def __str__(self):
        return self.unidade

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dUnidades'

class dUnidadesEmpreendimento(models.Model):
    unidade_empreendimento_id = models.BigIntegerField(primary_key=True)
    empreendimento = models.CharField(max_length=13)
    unidade = models.CharField(max_length=13)
    
    def __str__(self):
        return f"{self.empreendimento}, {self.unidade}"

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dUnidadesEmpreendimento'

class dUTMCampaign(models.Model):
    utm_campaign_id = models.BigIntegerField(primary_key=True)
    utm_campaign = models.TextField()
    
    def __str__(self):
        return self.utm_campaign

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dUTMCampaign'

class dUTMContent(models.Model):
    utm_content_id = models.BigIntegerField(primary_key=True)
    utm_content = models.TextField()
    
    def __str__(self):
        return self.utm_content

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dUTMContent'

class dUTMMedium(models.Model):
    utm_medium_id = models.BigIntegerField(primary_key=True)
    utm_medium = models.TextField()
    
    def __str__(self):
        return self.utm_medium

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dUTMMedium'

class dUTMSource(models.Model):
    utm_source_id = models.BigIntegerField(primary_key=True)
    utm_source = models.CharField(max_length=255)
    
    def __str__(self):
        return self.utm_source

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dUTMSource'

class dUTMTerm(models.Model):
    utm_term_id = models.BigIntegerField(primary_key=True)
    utm_term = models.TextField()
    
    def __str__(self):
        return self.utm_term

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dUTMTerm'

class dVagas(models.Model):
    vagas_id = models.BigIntegerField(primary_key=True)
    vagas = models.CharField(max_length=13)
    
    def __str__(self):
        return self.vagas

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'dVagas'
        

### FACTS ###


class fAcessos(models.Model):
    acesso_id = models.PositiveIntegerField(primary_key=True)
    data = models.CharField(max_length=10)
    hora = models.CharField(max_length=7)
    consultor_id = models.ForeignKey(dConsultores, on_delete=models.CASCADE, db_column='consultor_id')
    unidade_id = models.ForeignKey(dUnidades, on_delete=models.CASCADE, db_column='unidade_id')
    
    def __str__(self):
        return f"{self.acesso_id} - {self.data}"

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'fAcessos'

class fAcoesFunil(models.Model):
    acao_id = models.PositiveIntegerField(primary_key=True)
    data = models.CharField(max_length=10)
    funil_id = models.ForeignKey(dEtapasFunil, on_delete=models.CASCADE, db_column='funil_id')
    consultor_id = models.ForeignKey(dConsultores, on_delete=models.CASCADE, db_column='consultor_id')
    unidade_id = models.ForeignKey(dUnidades, on_delete=models.CASCADE, db_column='unidade_id')
    status_id = models.ForeignKey(dStatus, on_delete=models.CASCADE, db_column='status_id')
    midia_id = models.ForeignKey(dMidias, on_delete=models.CASCADE, db_column='midia_id')
    motivo_id = models.ForeignKey(dMotivosPerdaPausa, on_delete=models.CASCADE, db_column='motivo_id')
    categoria_id = models.ForeignKey(dCategorias, on_delete=models.CASCADE, db_column='categoria_id')
    tipo_id = models.ForeignKey(dTipos, on_delete=models.CASCADE, db_column='tipo_id')
    regiao_id = models.ForeignKey(dRegioes, on_delete=models.CASCADE, db_column='regiao_id')
    empreendimento_id = models.ForeignKey(dEmpreendimentos, on_delete=models.CASCADE, db_column='empreendimento_id')
    renda_id = models.ForeignKey(dRendas, on_delete=models.CASCADE, db_column='renda_id')
    estado_civil_id = models.ForeignKey(dEstadosCivis, on_delete=models.CASCADE, db_column='estado_civil_id')
    profissao_id = models.ForeignKey(dProfissoes, on_delete=models.CASCADE, db_column='profissao_id')
    sexo_id = models.ForeignKey(dSexos, on_delete=models.CASCADE, db_column='sexo_id')
    interesse_id = models.ForeignKey(dInteresses, on_delete=models.CASCADE, db_column='interesse_id')
    idade_range_id = models.ForeignKey(dFaixasIdade, on_delete=models.CASCADE, db_column='idade_range_id')
    utm_source_id = models.ForeignKey(dUTMSource, on_delete=models.CASCADE, db_column='utm_source_id')
    utm_medium_id = models.ForeignKey(dUTMMedium, on_delete=models.CASCADE, db_column='utm_medium_id')
    utm_campaign_id = models.ForeignKey(dUTMCampaign, on_delete=models.CASCADE, db_column='utm_campaign_id')
    utm_content_id = models.ForeignKey(dUTMContent, on_delete=models.CASCADE, db_column='utm_content_id')
    utm_term_id = models.ForeignKey(dUTMTerm, on_delete=models.CASCADE, db_column='utm_term_id')
    
    def __str__(self):
        return f"{self.acao_id} - {self.data} - {self.funil}"
    
    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'fAcoesFunil'
    
class fAtividades(models.Model):
    atividade_id = models.PositiveIntegerField(primary_key=True)
    data = models.CharField(max_length=10)
    tipo_atividade_id = models.ForeignKey(dTiposAtividade, on_delete=models.CASCADE, db_column='tipo_atividade_id')
    status_atividade_id = models.ForeignKey(dStatusAtividade, on_delete=models.CASCADE,  db_column='status_atividade_id')
    dias_finalizacao = models.PositiveIntegerField()
    consultor_id = models.ForeignKey(dConsultores, on_delete=models.CASCADE, db_column='consultor_id')
    unidade_id = models.ForeignKey(dUnidades, on_delete=models.CASCADE, db_column='unidade_id')
    status_id = models.ForeignKey(dStatus, on_delete=models.CASCADE, db_column='status_id')
    funil_id = models.ForeignKey(dEtapasFunil, on_delete=models.CASCADE, db_column='funil_id')
    midia_id = models.ForeignKey(dMidias, on_delete=models.CASCADE, db_column='midia_id')
    motivo_id = models.ForeignKey(dMotivosPerdaPausa, on_delete=models.CASCADE, db_column='motivo_id')
    categoria_id = models.ForeignKey(dCategorias, on_delete=models.CASCADE, db_column='categoria_id')
    tipo_id = models.ForeignKey(dTipos, on_delete=models.CASCADE, db_column='tipo_id')
    regiao_id = models.ForeignKey(dRegioes, on_delete=models.CASCADE, db_column='regiao_id')
    empreendimento_id = models.ForeignKey(dEmpreendimentos, on_delete=models.CASCADE, db_column='empreendimento_id')
    renda_id = models.ForeignKey(dRendas, on_delete=models.CASCADE, db_column='renda_id')
    estado_civil_id = models.ForeignKey(dEstadosCivis, on_delete=models.CASCADE, db_column='estado_civil_id')
    profissao_id = models.ForeignKey(dProfissoes, on_delete=models.CASCADE, db_column='profissao_id')
    sexo_id = models.ForeignKey(dSexos, on_delete=models.CASCADE, db_column='sexo_id')
    interesse_id = models.ForeignKey(dInteresses, on_delete=models.CASCADE, db_column='interesse_id')
    idade_range_id = models.ForeignKey(dFaixasIdade, on_delete=models.CASCADE, db_column='idade_range_id')
    utm_source_id = models.ForeignKey(dUTMSource, on_delete=models.CASCADE, db_column='utm_source_id')
    utm_medium_id = models.ForeignKey(dUTMMedium, on_delete=models.CASCADE, db_column='utm_medium_id')
    utm_campaign_id = models.ForeignKey(dUTMCampaign, on_delete=models.CASCADE, db_column='utm_campaign_id')
    utm_content_id = models.ForeignKey(dUTMContent, on_delete=models.CASCADE, db_column='utm_content_id')
    utm_term_id = models.ForeignKey(dUTMTerm, on_delete=models.CASCADE, db_column='utm_term_id')
    canal_id = models.ForeignKey(dCanais, on_delete=models.CASCADE, db_column='canal_id')
    temperatura_id = models.ForeignKey(dTemperaturas, on_delete=models.CASCADE, db_column='temperatura_id')
    
    def __str__(self):
        return f"{self.atividade_id} - {self.data}"

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'fAtividades'

class fOportunidades(models.Model):
    oportunidade_id = models.PositiveIntegerField(primary_key=True)
    dias_finalizacao = models.PositiveIntegerField()
    data = models.CharField(max_length=10)
    hora = models.CharField(max_length=13)
    consultor_id = models.ForeignKey(dConsultores, on_delete=models.CASCADE, db_column='consultor_id')
    unidade_id = models.ForeignKey(dUnidades, on_delete=models.CASCADE, db_column='unidade_id')
    status_id = models.ForeignKey(dStatus, on_delete=models.CASCADE, db_column='status_id')
    funil_id = models.ForeignKey(dEtapasFunil, on_delete=models.CASCADE, db_column='funil_id')
    midia_id = models.ForeignKey(dMidias, on_delete=models.CASCADE, db_column='midia_id')
    motivo_id = models.ForeignKey(dMotivosPerdaPausa, on_delete=models.CASCADE, db_column='motivo_id')
    categoria_id = models.ForeignKey(dCategorias, on_delete=models.CASCADE, db_column='categoria_id')
    tipo_id = models.ForeignKey(dTipos, on_delete=models.CASCADE, db_column='tipo_id')
    regiao_id = models.ForeignKey(dRegioes, on_delete=models.CASCADE, db_column='regiao_id')
    empreendimento_id = models.ForeignKey(dEmpreendimentos, on_delete=models.CASCADE, db_column='empreendimento_id')
    renda_id = models.ForeignKey(dRendas, on_delete=models.CASCADE, db_column='renda_id')
    estado_civil_id = models.ForeignKey(dEstadosCivis, on_delete=models.CASCADE, db_column='estado_civil_id')
    profissao_id = models.ForeignKey(dProfissoes, on_delete=models.CASCADE, db_column='profissao_id')
    sexo_id = models.ForeignKey(dSexos, on_delete=models.CASCADE, db_column='sexo_id')
    interesse_id = models.ForeignKey(dInteresses, on_delete=models.CASCADE, db_column='interesse_id')
    idade_range_id = models.ForeignKey(dFaixasIdade, on_delete=models.CASCADE, db_column='idade_range_id')
    utm_source_id = models.ForeignKey(dUTMSource, on_delete=models.CASCADE, db_column='utm_source_id')
    utm_medium_id = models.ForeignKey(dUTMMedium, on_delete=models.CASCADE, db_column='utm_medium_id')
    utm_campaign_id = models.ForeignKey(dUTMCampaign, on_delete=models.CASCADE, db_column='utm_campaign_id')
    utm_content_id = models.ForeignKey(dUTMContent, on_delete=models.CASCADE, db_column='utm_content_id')
    utm_term_id = models.ForeignKey(dUTMTerm, on_delete=models.CASCADE, db_column='utm_term_id')
    canal_id = models.ForeignKey(dCanais, on_delete=models.CASCADE, db_column='canal_id')
    temperatura_id = models.ForeignKey(dTemperaturas, on_delete=models.CASCADE, db_column='temperatura_id')
    link_crm = models.URLField(max_length=70)

    def __str__(self):
        return f"{self.oportunidade_id} - {self.data}"

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'fOportunidades'
        
class fPropostas(models.Model):
    proposta_id = models.PositiveIntegerField(primary_key=True)
    data_proposta = models.CharField(max_length=10)
    data_venda = models.CharField(max_length=10)
    dias_fechamento = models.PositiveIntegerField()
    valor = models.DecimalField(max_digits=13, decimal_places=2)
    cancelada = models.CharField(max_length=3)
    consultor_id = models.ForeignKey(dConsultores, on_delete=models.CASCADE, db_column='consultor_id')
    unidade_id = models.ForeignKey(dUnidades, on_delete=models.CASCADE, db_column='unidade_id')
    funil_id = models.ForeignKey(dEtapasFunil, on_delete=models.CASCADE, db_column='funil_id')
    midia_id = models.ForeignKey(dMidias, on_delete=models.CASCADE, db_column='midia_id')
    motivo_id = models.ForeignKey(dMotivosPerdaPausa, on_delete=models.CASCADE, db_column='motivo_id')
    categoria_id = models.ForeignKey(dCategorias, on_delete=models.CASCADE, db_column='categoria_id')
    tipo_id = models.ForeignKey(dTipos, on_delete=models.CASCADE, db_column='tipo_id')
    regiao_id = models.ForeignKey(dRegioes, on_delete=models.CASCADE, db_column='regiao_id')
    renda_id = models.ForeignKey(dRendas, on_delete=models.CASCADE, db_column='renda_id')
    estado_civil_id = models.ForeignKey(dEstadosCivis, on_delete=models.CASCADE, db_column='estado_civil_id')
    profissao_id = models.ForeignKey(dProfissoes, on_delete=models.CASCADE, db_column='profissao_id')
    sexo_id = models.ForeignKey(dSexos, on_delete=models.CASCADE, db_column='sexo_id')
    interesse_id = models.ForeignKey(dInteresses, on_delete=models.CASCADE, db_column='interesse_id')
    idade_range_id = models.ForeignKey(dFaixasIdade, on_delete=models.CASCADE, db_column='idade_range_id')
    utm_source_id = models.ForeignKey(dUTMSource, on_delete=models.CASCADE, db_column='utm_source_id')
    utm_medium_id = models.ForeignKey(dUTMMedium, on_delete=models.CASCADE, db_column='utm_medium_id')
    utm_campaign_id = models.ForeignKey(dUTMCampaign, on_delete=models.CASCADE, db_column='utm_campaign_id')
    utm_content_id = models.ForeignKey(dUTMContent, on_delete=models.CASCADE, db_column='utm_content_id')
    utm_term_id = models.ForeignKey(dUTMTerm, on_delete=models.CASCADE, db_column='utm_term_id')
    fechamento_id = models.ForeignKey(dFechamentoDias, on_delete=models.CASCADE, db_column='fechamento_id')
    status_proposta_id = models.ForeignKey(dStatusProposta, on_delete=models.CASCADE, db_column='status_proposta_id')
    unidade_empreendimento_id = models.ForeignKey(dUnidadesEmpreendimento, on_delete=models.CASCADE, db_column='unidade_empreendimento_id')
    empreendimento_id = models.ForeignKey(dEmpreendimentos, on_delete=models.CASCADE, db_column='empreendimento_id')
    link_crm = models.URLField(max_length=66)

    
    def __str__(self):
        return f"{self.proposta_id} - {self.data_proposta}"

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'fPropostas'

class fVendas(models.Model):
    venda_id = models.PositiveIntegerField(primary_key=True)
    data_venda = models.CharField(max_length=10)
    dias_fechamento = models.PositiveIntegerField()
    valor = models.DecimalField(max_digits=13, decimal_places=2)
    consultor_id = models.ForeignKey(dConsultores, on_delete=models.CASCADE, db_column='consultor_id')
    unidade_id = models.ForeignKey(dUnidades, on_delete=models.CASCADE, db_column='unidade_id')
    funil_id = models.ForeignKey(dEtapasFunil, on_delete=models.CASCADE, db_column='funil_id')
    midia_id = models.ForeignKey(dMidias, on_delete=models.CASCADE, db_column='midia_id')
    motivo_id = models.ForeignKey(dMotivosPerdaPausa, on_delete=models.CASCADE, db_column='motivo_id')
    categoria_id = models.ForeignKey(dCategorias, on_delete=models.CASCADE, db_column='categoria_id')
    tipo_id = models.ForeignKey(dTipos, on_delete=models.CASCADE, db_column='tipo_id')
    regiao_id = models.ForeignKey(dRegioes, on_delete=models.CASCADE, db_column='regiao_id')
    renda_id = models.ForeignKey(dRendas, on_delete=models.CASCADE, db_column='renda_id')
    estado_civil_id = models.ForeignKey(dEstadosCivis, on_delete=models.CASCADE, db_column='estado_civil_id')
    profissao_id = models.ForeignKey(dProfissoes, on_delete=models.CASCADE, db_column='profissao_id')
    sexo_id = models.ForeignKey(dSexos, on_delete=models.CASCADE, db_column='sexo_id')
    interesse_id = models.ForeignKey(dInteresses, on_delete=models.CASCADE, db_column='interesse_id')
    idade_range_id = models.ForeignKey(dFaixasIdade, on_delete=models.CASCADE, db_column='idade_range_id')
    utm_source_id = models.ForeignKey(dUTMSource, on_delete=models.CASCADE, db_column='utm_source_id')
    utm_medium_id = models.ForeignKey(dUTMMedium, on_delete=models.CASCADE, db_column='utm_medium_id')
    utm_campaign_id = models.ForeignKey(dUTMCampaign, on_delete=models.CASCADE, db_column='utm_campaign_id')
    utm_content_id = models.ForeignKey(dUTMContent, on_delete=models.CASCADE, db_column='utm_content_id')
    utm_term_id = models.ForeignKey(dUTMTerm, on_delete=models.CASCADE, db_column='utm_term_id')
    unidade_empreendimento_id = models.ForeignKey(dUnidadesEmpreendimento, on_delete=models.CASCADE, db_column='unidade_empreendimento_id')
    empreendimento_id = models.ForeignKey(dEmpreendimentos, on_delete=models.CASCADE, db_column='empreendimento_id')
    link_crm = models.URLField(max_length=66)
    
    def __str__(self):
        return f"{self.venda_id} - {self.data_venda}"

    class Meta:
        managed = False
        app_label='incompany'
        db_table = 'fVendas'
    

# class fUTMs(models.Model):
    
#     utm_id = models.PositiveIntegerField(primary_key=True, db_column='utm_id')
#     oportunidade_id = models.ForeignKey(fOportunidades, on_delete=models.CASCADE, db_column='oportunidade_id')
#     tipo = models.CharField(max_length=50, db_column='tipo')
#     valor = models.TextField(db_column='valor')
#     consultor_id = models.ForeignKey(dConsultores, on_delete=models.CASCADE, db_column='consultor_id')
#     unidade_id = models.ForeignKey(dUnidades, on_delete=models.CASCADE, db_column='unidade_id')
#     funil_id = models.ForeignKey(dEtapasFunil, on_delete=models.CASCADE, db_column='funil_id')
#     midia_id = models.ForeignKey(dMidias, on_delete=models.CASCADE, db_column='midia_id')
#     motivo_id = models.ForeignKey(dMotivosPerdaPausa, on_delete=models.CASCADE, db_column='motivo_id')
#     categoria_id = models.ForeignKey(dCategorias, on_delete=models.CASCADE, db_column='categoria_id')
#     tipo_id = models.ForeignKey(dTipos, on_delete=models.CASCADE, db_column='tipo_id')
#     regiao_id = models.ForeignKey(dRegioes, on_delete=models.CASCADE, db_column='regiao_id')
#     renda_id = models.ForeignKey(dRendas, on_delete=models.CASCADE, db_column='renda_id')
#     estado_civil_id = models.ForeignKey(dEstadosCivis, on_delete=models.CASCADE, db_column='estado_civil_id')
#     profissao_id = models.ForeignKey(dProfissoes, on_delete=models.CASCADE, db_column='profissao_id')
#     sexo_id = models.ForeignKey(dSexos, on_delete=models.CASCADE, db_column='sexo_id')
#     interesse_id = models.ForeignKey(dInteresses, on_delete=models.CASCADE, db_column='interesse_id')
#     idade_range_id = models.ForeignKey(dFaixasIdade, on_delete=models.CASCADE, db_column='idade_range_id')
    
#     def __str__(self):
#         return f"{self.oportunidade_id} - {self.tipo} - {self.valor}"

#     class Meta:
#         managed = False
#         app_label='incompany'
#         db_table = 'fUTMs'



"""

--
-- Estrutura stand-in para view `dCanais`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dCanais` (
`canal_id` bigint(21)
,`canal` varchar(40)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dCategorias`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dCategorias` (
`categoria_id` bigint(21)
,`categoria` varchar(75)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dConsultores`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dConsultores` (
`consultor_id` bigint(21)
,`consultor` varchar(255)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dEmpreendimentos`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dEmpreendimentos` (
`empreendimento_id` bigint(21)
,`empreendimento` varchar(13)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dEstadosCivis`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dEstadosCivis` (
`estado_civil_id` bigint(21)
,`estado_civil` varchar(30)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dEtapasFunil`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dEtapasFunil` (
`etapa_funil` varchar(70)
,`funil_id` tinyint(4)
,`etapa` varchar(77)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dFaixasIdade`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dFaixasIdade` (
`idade_range_id` bigint(21)
,`idade_range` varchar(16)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dFechamentoDias`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dFechamentoDias` (
`fechamento_id` bigint(21)
,`finalizacao_range` varchar(16)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dInteresses`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dInteresses` (
`interesse_id` bigint(21)
,`interesse` varchar(75)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dMidias`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dMidias` (
`midia_id` bigint(21)
,`midia` varchar(70)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dMotivosPerdaPausa`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dMotivosPerdaPausa` (
`motivo_id` bigint(21)
,`motivo_perda_pausa` varchar(100)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dProfissoes`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dProfissoes` (
`profissao_id` bigint(21)
,`profissao` varchar(80)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dQuartos`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dQuartos` (
`quartos_id` bigint(21)
,`quartos` varchar(13)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dRegioes`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dRegioes` (
`regiao_id` bigint(21)
,`cidade` varchar(60)
,`estado` varchar(45)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dRendas`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dRendas` (
`renda_id` bigint(21)
,`renda` varchar(50)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dSexos`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dSexos` (
`sexo_id` bigint(21)
,`sexo` varchar(30)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dStatus`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dStatus` (
`status_id` bigint(21)
,`status` varchar(13)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dStatusAtividade`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dStatusAtividade` (
`status_atividade_id` bigint(21)
,`status_atividade` varchar(45)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dStatusProposta`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dStatusProposta` (
`status_proposta_id` bigint(21)
,`status_proposta` varchar(100)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dSuites`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dSuites` (
`suites_id` bigint(21)
,`suites` varchar(13)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dTemperaturas`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dTemperaturas` (
`temperatura_id` bigint(21)
,`temperatura` varchar(100)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dTipos`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dTipos` (
`tipo_id` bigint(21)
,`tipo` varchar(13)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dTiposAtividade`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dTiposAtividade` (
`tipo_atividade_id` bigint(21)
,`tipo_atividade` varchar(200)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dUnidades`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dUnidades` (
`unidade_id` bigint(21)
,`unidade` varchar(255)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dUnidadesEmpreendimento`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dUnidadesEmpreendimento` (
`unidade_empreendimento_id` bigint(21)
,`empreendimento` varchar(13)
,`unidade` varchar(13)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dUTMCampaign`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dUTMCampaign` (
`utm_campaign_id` bigint(21)
,`utm_campaign` longtext
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dUTMContent`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dUTMContent` (
`utm_content_id` bigint(21)
,`utm_content` longtext
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dUTMMedium`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dUTMMedium` (
`utm_medium_id` bigint(21)
,`utm_medium` longtext
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dUTMSource`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dUTMSource` (
`utm_source_id` bigint(21)
,`utm_source` varchar(255)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dUTMTerm`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dUTMTerm` (
`utm_term_id` bigint(21)
,`utm_term` longtext
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `dVagas`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `dVagas` (
`vagas_id` bigint(21)
,`vagas` varchar(13)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `fAcessos`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `fAcessos` (
`acesso_id` int(10) unsigned
,`data` varchar(10)
,`hora` varchar(7)
,`consultor_id` bigint(21)
,`unidade_id` bigint(21)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `fAcoesFunil`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `fAcoesFunil` (
`data` varchar(10)
,`funil_id` tinyint(4)
,`consultor_id` bigint(21)
,`unidade_id` bigint(21)
,`status_id` bigint(21)
,`midia_id` bigint(21)
,`motivo_id` bigint(21)
,`categoria_id` bigint(21)
,`tipo_id` bigint(21)
,`regiao_id` bigint(21)
,`empreendimento_id` bigint(21)
,`renda_id` bigint(21)
,`estado_civil_id` bigint(21)
,`profissao_id` bigint(21)
,`sexo_id` bigint(21)
,`interesse_id` bigint(21)
,`idade_range_id` bigint(21)
,`utm_source_id` bigint(21)
,`utm_medium_id` bigint(21)
,`utm_campaign_id` bigint(21)
,`utm_content_id` bigint(21)
,`utm_term_id` bigint(21)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `fAtividades`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `fAtividades` (
`atividade_id` int(10) unsigned
,`data` varchar(10)
,`tipo_atividade_id` bigint(21)
,`status_atividade_id` bigint(21)
,`dias_finalizacao` int(7)
,`consultor_id` bigint(21)
,`unidade_id` bigint(21)
,`status_id` bigint(21)
,`funil_id` tinyint(4)
,`midia_id` bigint(21)
,`motivo_id` bigint(21)
,`categoria_id` bigint(21)
,`tipo_id` bigint(21)
,`regiao_id` bigint(21)
,`empreendimento_id` bigint(21)
,`renda_id` bigint(21)
,`estado_civil_id` bigint(21)
,`profissao_id` bigint(21)
,`sexo_id` bigint(21)
,`interesse_id` bigint(21)
,`idade_range_id` bigint(21)
,`utm_source_id` bigint(21)
,`utm_medium_id` bigint(21)
,`utm_campaign_id` bigint(21)
,`utm_content_id` bigint(21)
,`canal_id` bigint(21)
,`temperatura_id` bigint(21)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `fOportunidades`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `fOportunidades` (
`oportunidade_id` int(10) unsigned
,`dias_finalizacao` int(7)
,`DATA` varchar(10)
,`Hora` varchar(13)
,`consultor_id` bigint(21)
,`unidade_id` bigint(21)
,`status_id` bigint(21)
,`funil_id` tinyint(4)
,`midia_id` bigint(21)
,`motivo_id` bigint(21)
,`categoria_id` bigint(21)
,`tipo_id` bigint(21)
,`regiao_id` bigint(21)
,`empreendimento_id` bigint(21)
,`renda_id` bigint(21)
,`estado_civil_id` bigint(21)
,`profissao_id` bigint(21)
,`sexo_id` bigint(21)
,`interesse_id` bigint(21)
,`idade_range_id` bigint(21)
,`utm_source_id` bigint(21)
,`utm_medium_id` bigint(21)
,`utm_campaign_id` bigint(21)
,`utm_content_id` bigint(21)
,`utm_term_id` bigint(21)
,`canal_id` bigint(21)
,`temperatura_id` bigint(21)
,`link_crm` varchar(70)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `fPropostas`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `fPropostas` (
`proposta_id` int(10) unsigned
,`data_proposta` varchar(10)
,`data_venda` varchar(10)
,`dias_fechamento` int(7)
,`valor` decimal(13,2)
,`cancelada` varchar(3)
,`consultor_id` bigint(21)
,`unidade_id` bigint(21)
,`funil_id` tinyint(4)
,`midia_id` bigint(21)
,`motivo_id` bigint(21)
,`categoria_id` bigint(21)
,`tipo_id` bigint(21)
,`regiao_id` bigint(21)
,`renda_id` bigint(21)
,`estado_civil_id` bigint(21)
,`profissao_id` bigint(21)
,`sexo_id` bigint(21)
,`interesse_id` bigint(21)
,`idade_range_id` bigint(21)
,`utm_source_id` bigint(21)
,`utm_medium_id` bigint(21)
,`utm_campaign_id` bigint(21)
,`utm_content_id` bigint(21)
,`utm_term_id` bigint(21)
,`fechamento_id` bigint(21)
,`unidade_empreendimento_id` bigint(21)
,`empreendimento_id` bigint(21)
,`link_crm` varchar(66)
);

-- --------------------------------------------------------

--
-- Estrutura stand-in para view `fVendas`
-- (Veja abaixo para a visão atual)
--
CREATE TABLE `fVendas` (
`venda_id` int(10) unsigned
,`data_venda` varchar(10)
,`dias_fechamento` int(7)
,`valor` decimal(13,2)
,`consultor_id` bigint(21)
,`unidade_id` bigint(21)
,`funil_id` tinyint(4)
,`midia_id` bigint(21)
,`motivo_id` bigint(21)
,`categoria_id` bigint(21)
,`tipo_id` bigint(21)
,`regiao_id` bigint(21)
,`renda_id` bigint(21)
,`estado_civil_id` bigint(21)
,`profissao_id` bigint(21)
,`sexo_id` bigint(21)
,`interesse_id` bigint(21)
,`idade_range_id` bigint(21)
,`utm_source_id` bigint(21)
,`utm_medium_id` bigint(21)
,`utm_campaign_id` bigint(21)
,`utm_content_id` bigint(21)
,`utm_term_id` bigint(21)
,`fechamento_id` bigint(21)
,`unidade_empreendimento_id` bigint(21)
,`empreendimento_id` bigint(21)
,`link_crm` varchar(66)
);


"""