Dicionário de Dados - gabrafo/ohara-imoveis GitHub Wiki
Dicionário de Dados - Sistema Ohara Imóveis
Tabela: feature_type
Armazena os tipos de características/recursos que um imóvel pode possuir (ex: piscina, churrasqueira, etc).
Coluna | Tipo | Obrigatório | Valor Padrão | Restrição | Descrição |
---|---|---|---|---|---|
featureId | Integer | Sim | Auto incremento | Chave Primária | Identificador único do tipo de característica |
name | Varchar | Sim | - | - | Nome da característica (ex: "Piscina", "Churrasqueira") |
unit | Varchar | Não | - | - | Unidade de medida, se aplicável (ex: "m²") |
allowsQuantity | Boolean | Sim | false | - | Indica se a característica pode ter quantidade específica |
Tabela: owner
Armazena informações sobre os proprietários dos imóveis.
Coluna | Tipo | Obrigatório | Valor Padrão | Restrição | Descrição |
---|---|---|---|---|---|
ownerId | Integer | Sim | Auto incremento | Chave Primária | Identificador único do proprietário |
name | Varchar | Sim | - | - | Nome completo do proprietário |
contactPhone | Varchar | Sim | - | - | Número de telefone de contato |
cpf | Varchar | Não | - | Único | CPF do proprietário (opcional) |
Tabela: property
Armazena informações sobre os imóveis disponíveis.
Coluna | Tipo | Obrigatório | Valor Padrão | Restrição | Descrição |
---|---|---|---|---|---|
propertyId | Integer | Sim | Auto incremento | Chave Primária | Identificador único do imóvel |
price | Numeric | Sim | - | - | Valor do imóvel em reais |
status | Enum | Sim | 'AVAILABLE' | - | Status do imóvel (AVAILABLE, UNAVAILABLE, PENDING, CONCLUDED) |
offerType | Enum | Sim | - | - | Tipo de oferta (FOR_RENTAL, FOR_SALE, FOR_COMMERCIAL_RENT) |
area | Numeric | Sim | - | - | Área total do imóvel em metros quadrados |
registrationDate | Date | Sim | now() | - | Data de registro do imóvel no sistema |
ownerId | Integer | Não | - | Chave Estrangeira | Referência ao proprietário do imóvel |
addressZipcode | Varchar | Sim | - | - | CEP do endereço do imóvel |
addressNeighborhood | Varchar | Sim | - | - | Bairro do imóvel |
addressNumber | Integer | Sim | - | - | Número do imóvel |
addressStreet | Varchar | Sim | - | - | Rua/logradouro do imóvel |
addressCity | Varchar | Sim | - | - | Cidade do imóvel |
addressState | Enum | Sim | - | - | Estado (UF) do imóvel |
addressComplement | Varchar | Não | - | - | Complemento do endereço (apto, bloco, etc) |
Tabela: property_feature
Relaciona imóveis com suas características específicas.
Coluna | Tipo | Obrigatório | Valor Padrão | Restrição | Descrição |
---|---|---|---|---|---|
propertyFeatureId | Integer | Sim | Auto incremento | Chave Primária | Identificador único da característica do imóvel |
quantity | Integer | Não | - | - | Quantidade da característica (ex: número de quartos) |
details | Varchar | Não | - | - | Detalhes adicionais sobre a característica |
propertyId | Integer | Não | - | Chave Estrangeira | Referência ao imóvel |
featureTypeId | Integer | Não | - | Chave Estrangeira | Referência ao tipo de característica |
Tabela: property_image
Armazena imagens associadas aos imóveis.
Coluna | Tipo | Obrigatório | Valor Padrão | Restrição | Descrição |
---|---|---|---|---|---|
imageId | Integer | Sim | Auto incremento | Chave Primária | Identificador único da imagem |
filename | Varchar | Sim | - | - | Nome do arquivo da imagem |
path | Varchar | Sim | - | - | Caminho do arquivo no sistema |
isMain | Boolean | Sim | false | - | Indica se é a imagem principal do imóvel |
description | Varchar | Não | - | - | Descrição da imagem |
uploadedAt | Timestamp | Sim | now() | - | Data e hora do upload da imagem |
propertyId | Integer | Não | - | Chave Estrangeira | Referência ao imóvel associado |
Tabela: user
Armazena informações dos usuários do sistema.
Coluna | Tipo | Obrigatório | Valor Padrão | Restrição | Descrição |
---|---|---|---|---|---|
userId | Integer | Sim | Auto incremento | Chave Primária | Identificador único do usuário |
name | Varchar | Sim | - | - | Nome completo do usuário |
birthDate | Date | Sim | - | - | Data de nascimento do usuário |
Varchar | Sim | - | Único | Email do usuário (usado para login) | |
password | Varchar | Sim | - | - | Senha criptografada do usuário |
phone | Varchar | Sim | - | Único | Número de telefone do usuário |
role | Enum | Sim | 'CUSTOMER' | - | Papel do usuário no sistema (CUSTOMER, BROKER, ADMIN) |
tokenVersion | Integer | Sim | 1 | - | Versão do token para controle de sessões |
Tabela: visit
Armazena informações sobre visitas agendadas aos imóveis.
Coluna | Tipo | Obrigatório | Valor Padrão | Restrição | Descrição |
---|---|---|---|---|---|
visitId | Integer | Sim | Auto incremento | Chave Primária | Identificador único da visita |
visitDateTime | Timestamp | Sim | - | - | Data e hora agendada para a visita |
visitStatus | Enum | Sim | 'WAITING_CONFIRMATION' | - | Status da visita (WAITING_CONFIRMATION, SCHEDULED, CANCELED, DONE) |
customerId | Integer | Não | - | Chave Estrangeira | Referência ao usuário cliente que agendou a visita |
brokerId | Integer | Não | - | Chave Estrangeira | Referência ao corretor responsável pela visita |
propertyId | Integer | Não | - | Chave Estrangeira | Referência ao imóvel a ser visitado |
Legenda
- Chave Primária: Identifica unicamente cada registro na tabela
- Chave Estrangeira: Estabelece relacionamento com outra tabela
- Único: Valor deve ser único em toda a tabela