Skip to Content
Tiposproperty
property.d.ts
import type { CondoEmbed, Media } from "~/types/condo"; import type { Address, Location, UF, MinMax, } from "~/types/general"; import type { UserEmbed } from "~/types/user"; export type Transaction = "sale" | "longStay"; interface Values { sale: number | null; longStay: number | null; condoFee: number | null; propertyTax: number | null; } interface Areas { private: number | null; total: number | null; land: number | null; } export type PropertyType = | "APARTAMENTO_GARDEN" | "APARTAMENTO_TIPO" | "COBERTURA" | "DUPLEX" | "FLAT" | "KITNET" | "LOFT" | "STUDIO" | "TRIPLEX" | "CASA_COMERCIAL" | "CASA_DE_VILA" | "CASA_EM_CONDOMINIO" | "CASA_TIPO" | "SOBRADO" | "CONJUNTO_COMERCIAL" | "EDIFICIO_MONOUSUARIO" | "LAGE_CORPORATIVA" | "GALPAO" | "LOJA_DE_RUA" | "TERRENO_COMERCIAL" | "TERRENO_RESIDENCIAL"; interface Available { sale: boolean; longStay: boolean; } type Accepts = "PERMUTA" | "FINANCIAMENTO"; type Status = "LANCAMENTO" | "CONSTRUCAO" | "REFORMA" | "NOVO" | "PADRAO"; type Face = "N" | "NE" | "E" | "SE" | "S" | "SW" | "W" | "NW"; type Feature = | "ADEGA_CLIMATIZADA" | "AGUA_QUENTE" | "AQUECIMENTO_CENTRAL" | "AQUECIMENTO_SOLAR" | "ALARME" | "AR_CONDICIONADO_CENTRAL" | "AREA_SERVICO" | "BANHEIRO_SERVICO" | "BANHEIRO_SR_SRA" | "CARPETE" | "CHURRASQUEIRA" | "CLOSET" | "COPA" | "COZINHA_INTEGRADA" | "DEPENDENCIA_DE_FUNCIONARIO" | "DEPOSITO" | "DESPENSA" | "ELEVADOR_PRIVATIVO" | "ESPACO_GOURMET" | "GAS_ENCANADO" | "HALL_PRIVATIVO" | "HIDROMASSAGEM" | "HOME_OFFICE" | "HOME_THEATER" | "INFRAESTRUTURA_AR_CONDICIONADO" | "INTERFONE" | "JANELA_TETO_CHAO" | "JARDIM" | "LAREIRA" | "LAVABO" | "LOCACAO_NAO_ACEITA_PET" | "MOBILIADO" | "MOVEIS_PLANEJADOS" | "OFURO" | "PISCINA" | "PISO_MADEIRA" | "PISO_PORCELANATO" | "PISO_LAMINADO" | "PISO_VINILICO" | "SACADA" | "SALA_INTIMA" | "SALA_CINEMA" | "SAUNA_SECA" | "SAUNA_UMIDA" | "VISTA_PARA_CIDADE" | "VISTA_PARA_MAR" | "VISTA_PANORAMICA" | "VISTA_PERMANENTE"; interface Mgmt { hideAddress: boolean; hideFloor: boolean; hidePrice: boolean; disallowPortals: boolean; } interface Fees { /** Percentual do VGV (ex: 0.06 = 6%) */ total: number | null; /** Percentual da comissão paga para parceiro PJ (ex: 0.5 = 50%) */ juridical: number | null; /** Percentual da comissão paga para parceiro PF (ex: 0.5 = 50% ou 0.4 = 40%) */ natural: number | null; } type Pendency = | "ALIENACAO_FIDUCIARIA" | "DEBITO_DE_CONDOMINIO" | "DEBITO_DE_IPTU" | "INVENTARIO" | "PENHORA" | "PROPRIETARIO_INCAPAZ" | "USUFRUTO"; type TransactionStatus = | "SEM_OBSERVACOES" | "EM_NEGOCIACAO" | "VENDIDO" | "ALUGADO" type ResidentialType = | "TERRENO_RESIDENCIAL" | "APARTAMENTO_GARDEN" | "APARTAMENTO_TIPO" | "CASA_DE_VILA" | "CASA_EM_CONDOMINIO" | "CASA_TIPO" | "COBERTURA" | "DUPLEX" | "FLAT" | "KITNET" | "LOFT" | "SOBRADO" | "STUDIO" | "TRIPLEX"; export type CommercialType = | "TERRENO_COMERCIAL" | "CASA_COMERCIAL" | "CONJUNTO_COMERCIAL" | "EDIFICIO_MONOUSUARIO" | "GALPAO" | "LAGE_CORPORATIVA" | "LOJA_DE_RUA"; type PropertySort = | "_id" | "user.name" | "type" | "address.street" | "address.area" | "values.sale" | "valuePerSquareMeter" | "values.longStay" | "transactionStatus"; type FilterCondoFeature = | "ACADEMIA" | "BRINQUEDOTECA" | "CHURRASQUEIRA" | "ELEVADOR" | "PISCINA" | "PLAYGROUND" | "PORTARIA_24_HORAS" | "QUADRA_POLIESPORTIVA" | "SALAO_DE_FESTAS" | "SALA_DE_JOGOS" | "SAUNA"; type FilterFeature = | "ADEGA_CLIMATIZADA" | "AGUA_QUENTE" | "AQUECIMENTO_CENTRAL" | "AQUECIMENTO_SOLAR" | "ALARME" | "AR_CONDICIONADO_CENTRAL" | "AREA_SERVICO" | "BANHEIRO_SERVICO" | "BANHEIRO_SR_SRA" | "CARPETE" | "CHURRASQUEIRA" | "CLOSET" | "COPA" | "COZINHA_INTEGRADA" | "DEPENDENCIA_DE_FUNCIONARIO" | "DEPOSITO" | "DESPENSA" | "ELEVADOR_PRIVATIVO" | "ESPACO_GOURMET" | "GAS_ENCANADO" | "HALL_PRIVATIVO" | "HIDROMASSAGEM" | "HOME_OFFICE" | "HOME_THEATER" | "INFRAESTRUTURA_AR_CONDICIONADO" | "INTERFONE" | "JANELA_TETO_CHAO" | "JARDIM" | "LAREIRA" | "LAVABO" | "LOCACAO_NAO_ACEITA_PET" | "MOBILIADO" | "MOVEIS_PLANEJADOS" | "OFURO" | "PISCINA" | "PISO_MADEIRA" | "PISO_PORCELANATO" | "PISO_LAMINADO" | "PISO_VINILICO" | "SACADA" | "SALA_INTIMA" | "SALA_CINEMA" | "SAUNA_SECA" | "SAUNA_UMIDA" | "VISTA_PARA_CIDADE" | "VISTA_PARA_MAR" | "VISTA_PANORAMICA" | "VISTA_PERMANENTE" export interface ParkingLot { id: string; size: "PEQUENA" | "MEDIA" | "GRANDE"; type: "DETERMINADA" | "INDETERMINADA"; notes: string | null; } type Use = "COMERCIAL" | "RESIDENCIAL"; interface PropertyFilter { state: UF | null; city: string | null; area: string | null; use: Use[]; residentialTypes: ResidentialType[]; commercialTypes: CommercialType[]; status: Status[]; accepts: (Accepts | "INDIFERENTE")[]; face: (Face | "ANY")[]; minBaths: number | null; minRooms: number | null; minSuites: number | null; minParkingLots: number | null; values: { sale: MinMax; longStay: MinMax; propertyTax: MinMax; condoFee: MinMax; }; } interface MapBounds { NE: Location; SW: Location; }

CardProperty

card-property.d.ts
export interface CardProperty { id: string; type: PropertyType; image?: string | undefined; rooms?: number | null; parkingLots: number; url: string; condo: CondoEmbed | null; base36Id: string; transactionStatus: TransactionStatus; baths: number | null; values: Values; areas: Areas; address: Address; user: UserEmbed; mgmt: Mgmt; sharedMgmtUser: UserEmbed | null; createdAt: Date; }

Property

property.d.ts
export interface CommonFields { id: string; available: Available; accepts: Accepts[]; title: string status: Status; baths: number | null; floor: number | null; face: Face | null; user: UserEmbed; sharedMgmtUser: UserEmbed | null; values: Values; areas: Areas; yearOfConstruction: number | null; condo: CondoEmbed | null address: Address; description: string; parkingLots: ParkingLot[]; features: Feature[]; mgmt: Mgmt; fees: Fees; pendencies: Pendency[]; base36Id: string; transactionStatus: TransactionStatus; media: Media; updatedAt: Date; createdAt: Date; } interface ResidentialProperty extends CommonFields { use: "RESIDENCIAL"; type: ResidentialType; rooms: number | null; suites: number | null; } interface CommercialProperty extends CommonFields { use: "COMERCIAL"; type: CommercialType; } export type Property = ResidentialProperty | CommercialProperty;

Marker

marker.d.ts
export interface Marker { id: string; size: number; selected: boolean; position: Location; base36Ids: string[] //O marker só vem com os base36Ids para pontos únicos ou clusters em zoom > 16. }
Last updated on