Imóvel

Sobre a entidade Imóvel.

A entidade imóvel representa um imóvel dentro da plataforma imobiliária.

Propriedades

A entidade imóvel possui as seguintes propriedades:

property.go
type Property struct {
	ID       uuid.UUID
	Status   Status
	Kind     Kind
	WaterID  string
	EnergyID string
	UserID   uuid.UUID
	OwnerID  uuid.UUID
	Address  *types.Address
}

Tipos

Status

O status do imóvel pode ser um dos seguintes:

property.go
type Status string
const (
	StatusAvailable   Status = "Disponível"
	StatusOccupied    Status = "Ocupado"
	StatusUnavailable Status = "Indisponível"
	StatusReserved    Status = "Reservado"
	StatusRenovating  Status = "Reformando"
)

Address

O endereço do imóvel é representado por uma estrutura que contém os seguintes campos:

address.go
type Address struct {
	FullAddress  string
	MiniAddress  string
	Street       string
	Number       string
	Neighborhood string
	Complement   string
	City         string
	State        string
	ZipCode      string
}

DTOs

A entidade Usuário possui os seguintes DTOs:

DTO

O DTO de imóvel é utilizado para representar a resposta de um imóvel na plataforma. Ele contém os seguintes campos:

dto.go
type DTO struct {
	ID       string           `json:"id"`
	Status   Status           `json:"status"`
	Kind     Kind             `json:"kind"`
	WaterID  string           `json:"water_id"`
	EnergyID string           `json:"energy_id"`
	OwnerID  string           `json:"owner_id"`
	Address  types.AddressDTO `json:"address"`
}

CreateDTO

O DTO de criação de imóvel é utilizado para criar um novo imóvel na plataforma. Ele contém os seguintes campos:

dto.go
type CreateDTO struct {
	Status   Status                  `json:"status"`
	Kind     Kind                    `json:"kind"`
	WaterID  string                  `json:"water_id"`
	EnergyID string                  `json:"energy_id"`
	Address  *types.AddressCreateDTO `json:"address"`
}