UNPKG

@horizon-modules/arbo-crm-integration

Version:

Integração CRM Arbo para conversion de dados imobiliários para property-model-v3

1,691 lines (1,683 loc) 118 kB
import { z } from 'zod'; export { PropertyModel } from '@horizon-modules/property-model-v3'; declare const ArboImovelSchema: z.ZodObject<{ ref_id: z.ZodNumber; codigo: z.ZodString; titulo: z.ZodString; descricao: z.ZodString; finalidade: z.ZodString; categoria: z.ZodString; tipo_imovel: z.ZodString; status_comercial: z.ZodOptional<z.ZodString>; categoria_imovel: z.ZodOptional<z.ZodString>; valor_venda: z.ZodOptional<z.ZodNumber>; valor_aluguel: z.ZodOptional<z.ZodNumber>; valor_condominio: z.ZodOptional<z.ZodNumber>; valor_iptu: z.ZodOptional<z.ZodNumber>; qtd_banheiro: z.ZodOptional<z.ZodNumber>; qtd_quartos: z.ZodOptional<z.ZodNumber>; qtd_suites: z.ZodOptional<z.ZodNumber>; qtd_vagas: z.ZodOptional<z.ZodNumber>; area_total: z.ZodOptional<z.ZodNumber>; area_privativa: z.ZodOptional<z.ZodNumber>; end_cep: z.ZodOptional<z.ZodString>; end_estado: z.ZodOptional<z.ZodString>; end_cidade: z.ZodOptional<z.ZodString>; end_bairro: z.ZodOptional<z.ZodString>; end_logradouro: z.ZodOptional<z.ZodString>; end_numero: z.ZodOptional<z.ZodNumber>; end_complemento: z.ZodOptional<z.ZodString>; end_condominio: z.ZodOptional<z.ZodString>; latitude: z.ZodOptional<z.ZodNumber>; longitude: z.ZodOptional<z.ZodNumber>; caracteristicas: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; mobiliado: z.ZodOptional<z.ZodBoolean>; permuta: z.ZodOptional<z.ZodBoolean>; financiamento: z.ZodOptional<z.ZodBoolean>; fotos: z.ZodOptional<z.ZodArray<z.ZodObject<{ url: z.ZodString; ordem: z.ZodOptional<z.ZodNumber>; principal: z.ZodOptional<z.ZodBoolean>; marcadagua_url: z.ZodOptional<z.ZodString>; sizes: z.ZodOptional<z.ZodObject<{ medium: z.ZodOptional<z.ZodString>; small: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { medium?: string | undefined; small?: string | undefined; }, { medium?: string | undefined; small?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { url: string; ordem?: number | undefined; principal?: boolean | undefined; marcadagua_url?: string | undefined; sizes?: { medium?: string | undefined; small?: string | undefined; } | undefined; }, { url: string; ordem?: number | undefined; principal?: boolean | undefined; marcadagua_url?: string | undefined; sizes?: { medium?: string | undefined; small?: string | undefined; } | undefined; }>, "many">>; url_video: z.ZodOptional<z.ZodString>; url_tour: z.ZodOptional<z.ZodString>; corretor: z.ZodOptional<z.ZodObject<{ codigo: z.ZodOptional<z.ZodNumber>; nome: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { codigo?: number | undefined; nome?: string | undefined; }, { codigo?: number | undefined; nome?: string | undefined; }>>; created_at: z.ZodString; updated_at: z.ZodString; }, "strip", z.ZodTypeAny, { categoria: string; codigo: string; ref_id: number; titulo: string; descricao: string; finalidade: string; tipo_imovel: string; created_at: string; updated_at: string; qtd_banheiro?: number | undefined; area_privativa?: number | undefined; qtd_quartos?: number | undefined; valor_venda?: number | undefined; area_total?: number | undefined; categoria_imovel?: string | undefined; end_bairro?: string | undefined; latitude?: number | undefined; caracteristicas?: string[] | undefined; end_cep?: string | undefined; longitude?: number | undefined; end_cidade?: string | undefined; fotos?: { url: string; ordem?: number | undefined; principal?: boolean | undefined; marcadagua_url?: string | undefined; sizes?: { medium?: string | undefined; small?: string | undefined; } | undefined; }[] | undefined; end_logradouro?: string | undefined; status_comercial?: string | undefined; valor_aluguel?: number | undefined; valor_condominio?: number | undefined; valor_iptu?: number | undefined; qtd_suites?: number | undefined; qtd_vagas?: number | undefined; end_estado?: string | undefined; end_numero?: number | undefined; end_complemento?: string | undefined; end_condominio?: string | undefined; mobiliado?: boolean | undefined; permuta?: boolean | undefined; financiamento?: boolean | undefined; url_video?: string | undefined; url_tour?: string | undefined; corretor?: { codigo?: number | undefined; nome?: string | undefined; } | undefined; }, { categoria: string; codigo: string; ref_id: number; titulo: string; descricao: string; finalidade: string; tipo_imovel: string; created_at: string; updated_at: string; qtd_banheiro?: number | undefined; area_privativa?: number | undefined; qtd_quartos?: number | undefined; valor_venda?: number | undefined; area_total?: number | undefined; categoria_imovel?: string | undefined; end_bairro?: string | undefined; latitude?: number | undefined; caracteristicas?: string[] | undefined; end_cep?: string | undefined; longitude?: number | undefined; end_cidade?: string | undefined; fotos?: { url: string; ordem?: number | undefined; principal?: boolean | undefined; marcadagua_url?: string | undefined; sizes?: { medium?: string | undefined; small?: string | undefined; } | undefined; }[] | undefined; end_logradouro?: string | undefined; status_comercial?: string | undefined; valor_aluguel?: number | undefined; valor_condominio?: number | undefined; valor_iptu?: number | undefined; qtd_suites?: number | undefined; qtd_vagas?: number | undefined; end_estado?: string | undefined; end_numero?: number | undefined; end_complemento?: string | undefined; end_condominio?: string | undefined; mobiliado?: boolean | undefined; permuta?: boolean | undefined; financiamento?: boolean | undefined; url_video?: string | undefined; url_tour?: string | undefined; corretor?: { codigo?: number | undefined; nome?: string | undefined; } | undefined; }>; type ArboImovel = z.infer<typeof ArboImovelSchema>; declare const PropertyModelSchema: z.ZodObject<{ reference: z.ZodString; title: z.ZodString; description: z.ZodString; media_assets: z.ZodObject<{ images: z.ZodOptional<z.ZodArray<z.ZodObject<{ full: z.ZodString; md: z.ZodOptional<z.ZodString>; sm: z.ZodOptional<z.ZodString>; cover: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { full: string; md?: string | undefined; sm?: string | undefined; cover?: boolean | undefined; }, { full: string; md?: string | undefined; sm?: string | undefined; cover?: boolean | undefined; }>, "many">>; videos: z.ZodOptional<z.ZodArray<z.ZodObject<{ provider: z.ZodOptional<z.ZodString>; id: z.ZodOptional<z.ZodString>; embed_url: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { provider?: string | undefined; id?: string | undefined; embed_url?: string | undefined; }, { provider?: string | undefined; id?: string | undefined; embed_url?: string | undefined; }>, "many">>; virtual_tours: z.ZodOptional<z.ZodArray<z.ZodObject<{ embed_url: z.ZodString; }, "strip", z.ZodTypeAny, { embed_url: string; }, { embed_url: string; }>, "many">>; documents: z.ZodOptional<z.ZodArray<z.ZodObject<{ name: z.ZodString; url: z.ZodString; }, "strip", z.ZodTypeAny, { url: string; name: string; }, { url: string; name: string; }>, "many">>; }, "strip", z.ZodTypeAny, { images?: { full: string; md?: string | undefined; sm?: string | undefined; cover?: boolean | undefined; }[] | undefined; videos?: { provider?: string | undefined; id?: string | undefined; embed_url?: string | undefined; }[] | undefined; virtual_tours?: { embed_url: string; }[] | undefined; documents?: { url: string; name: string; }[] | undefined; }, { images?: { full: string; md?: string | undefined; sm?: string | undefined; cover?: boolean | undefined; }[] | undefined; videos?: { provider?: string | undefined; id?: string | undefined; embed_url?: string | undefined; }[] | undefined; virtual_tours?: { embed_url: string; }[] | undefined; documents?: { url: string; name: string; }[] | undefined; }>; attributes: z.ZodRecord<z.ZodString, z.ZodAny>; settings: z.ZodOptional<z.ZodObject<{ currency_unit: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"BRL">, z.ZodLiteral<"USD">]>>; area_unit: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"m2">, z.ZodLiteral<"ft2">]>>; distance_unit: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"km">, z.ZodLiteral<"mi">, z.ZodLiteral<"meters">]>>; exibir_no_mapa: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { currency_unit?: "BRL" | "USD" | undefined; area_unit?: "m2" | "ft2" | undefined; distance_unit?: "km" | "mi" | "meters" | undefined; exibir_no_mapa?: boolean | undefined; }, { currency_unit?: "BRL" | "USD" | undefined; area_unit?: "m2" | "ft2" | undefined; distance_unit?: "km" | "mi" | "meters" | undefined; exibir_no_mapa?: boolean | undefined; }>>; updated_at: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { reference: string; title: string; description: string; media_assets: { images?: { full: string; md?: string | undefined; sm?: string | undefined; cover?: boolean | undefined; }[] | undefined; videos?: { provider?: string | undefined; id?: string | undefined; embed_url?: string | undefined; }[] | undefined; virtual_tours?: { embed_url: string; }[] | undefined; documents?: { url: string; name: string; }[] | undefined; }; attributes: Record<string, any>; updated_at?: string | undefined; settings?: { currency_unit?: "BRL" | "USD" | undefined; area_unit?: "m2" | "ft2" | undefined; distance_unit?: "km" | "mi" | "meters" | undefined; exibir_no_mapa?: boolean | undefined; } | undefined; }, { reference: string; title: string; description: string; media_assets: { images?: { full: string; md?: string | undefined; sm?: string | undefined; cover?: boolean | undefined; }[] | undefined; videos?: { provider?: string | undefined; id?: string | undefined; embed_url?: string | undefined; }[] | undefined; virtual_tours?: { embed_url: string; }[] | undefined; documents?: { url: string; name: string; }[] | undefined; }; attributes: Record<string, any>; updated_at?: string | undefined; settings?: { currency_unit?: "BRL" | "USD" | undefined; area_unit?: "m2" | "ft2" | undefined; distance_unit?: "km" | "mi" | "meters" | undefined; exibir_no_mapa?: boolean | undefined; } | undefined; }>; type PropertyModel = z.infer<typeof PropertyModelSchema>; declare function convertArboToPropertyV3(imovel: ArboImovel): PropertyModel; interface ArboApiClientConfig { token: string; baseUrl?: string; } interface ArboApiResponse<T> { data: T; meta?: { current_page: number; from: number; last_page: number; per_page: number; to: number; total: number; }; } interface ArboDownloaderConfig { token: string; outputDir: string; baseUrl?: string; } interface DownloadOptions { page?: number; perPage?: number; startPage?: number; endPage?: number; maxPages?: number; } interface DownloadResult { totalPages: number; totalItems: number; downloadedItems: number; errors: string[]; } interface ApiUploadConfig { endpoint: string; headers?: Record<string, string>; } interface UploadResult { totalProcessed: number; totalSent: number; totalErrors: number; errors: string[]; } declare class ArboApiClient { private token; private baseUrl; constructor(config: ArboApiClientConfig); private request; getImoveis(page?: number, perPage?: number): Promise<ArboApiResponse<ArboImovel[]>>; getImovel(id: string | number): Promise<ArboImovel>; searchImoveis(searchParams: Record<string, any>, page?: number, perPage?: number): Promise<ArboApiResponse<ArboImovel[]>>; getAllPages(perPage?: number): Promise<ArboImovel[]>; } declare class ArboDownloader { private apiClient; private outputDir; constructor(config: ArboDownloaderConfig); private ensureOutputDir; private savePageData; downloadPage(page: number, perPage?: number): Promise<void>; downloadPages(options?: DownloadOptions): Promise<DownloadResult>; downloadAll(perPage?: number): Promise<DownloadResult>; uploadToApi(uploadConfig: ApiUploadConfig): Promise<UploadResult>; downloadAndUpload(downloadOptions: DownloadOptions, uploadConfig: ApiUploadConfig): Promise<{ downloadResult: DownloadResult; uploadResult: UploadResult; }>; } interface FieldConfig { maxExamples?: number; } interface ProfilerConfig { inputDir: string; outputDir: string; outputFileName?: string; fieldConfigs?: Record<string, FieldConfig>; defaultMaxExamples?: number; verbose?: boolean; } type ProfileResult = Record<string, any[]>; declare class ProfilerService { private config; private fieldData; private fieldExamples; constructor(config: ProfilerConfig); profile(): Promise<ProfileResult>; private loadData; private processData; private processObject; private processArrayField; private processSimpleField; private generateResult; private saveResult; } declare const testMocks: { validos: ({ codigo: string; titulo: string; descricao: string; categoria: string; finalidade: string; ativo: boolean; publicado: boolean; created_at: string; updated_at: string; qtd_quartos: number; valor_venda: number; area_privativa: number; "corretor.codigo": number; end_logradouro: string; end_bairro: string; end_cidade: string; end_estado: string; longitude: number; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; observacoes: string; qtd_banheiro?: undefined; area_construida?: undefined; area_terreno?: undefined; area_total?: undefined; caracteristicas?: undefined; condominio?: undefined; end_numero?: undefined; latitude?: undefined; end_cep?: undefined; codigo_origem?: undefined; categoria_imovel?: undefined; qtd_suites?: undefined; valor_locacao?: undefined; andar?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; finalidade: string; ativo: boolean; publicado: boolean; created_at: string; updated_at: string; qtd_quartos: number; qtd_banheiro: number; area_construida: number; area_terreno: number; valor_venda: number; area_total: number; caracteristicas: string; condominio: number; "corretor.codigo": number; end_logradouro: string; end_numero: number; latitude: number; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; area_privativa?: undefined; end_bairro?: undefined; end_cidade?: undefined; end_estado?: undefined; longitude?: undefined; observacoes?: undefined; end_cep?: undefined; codigo_origem?: undefined; categoria_imovel?: undefined; qtd_suites?: undefined; valor_locacao?: undefined; andar?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; finalidade: string; ativo: boolean; publicado: boolean; created_at: string; updated_at: string; qtd_quartos: number; qtd_banheiro: number; area_construida: number; valor_venda: number; area_total: number; end_bairro: string; end_cep: string; longitude: number; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; end_logradouro: string; end_numero: string; end_cidade: string; end_estado: string; area_privativa?: undefined; "corretor.codigo"?: undefined; observacoes?: undefined; area_terreno?: undefined; caracteristicas?: undefined; condominio?: undefined; latitude?: undefined; codigo_origem?: undefined; categoria_imovel?: undefined; qtd_suites?: undefined; valor_locacao?: undefined; andar?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; finalidade: string; ativo: boolean; publicado: boolean; created_at: string; updated_at: string; qtd_banheiro: number; area_construida: number; valor_venda: number; area_privativa: number; area_total: number; codigo_origem: string; condominio: number; "corretor.codigo": number; end_logradouro: string; end_numero: number; end_cidade: string; end_estado: string; longitude: number; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; qtd_quartos?: undefined; end_bairro?: undefined; observacoes?: undefined; area_terreno?: undefined; caracteristicas?: undefined; latitude?: undefined; end_cep?: undefined; categoria_imovel?: undefined; qtd_suites?: undefined; valor_locacao?: undefined; andar?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; finalidade: string; ativo: boolean; publicado: boolean; created_at: string; updated_at: string; qtd_quartos: number; valor_venda: number; area_total: number; categoria_imovel: string; end_logradouro: string; end_bairro: string; end_cidade: string; end_estado: string; end_cep: string; latitude: number; longitude: number; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; qtd_suites: number; area_privativa?: undefined; "corretor.codigo"?: undefined; observacoes?: undefined; qtd_banheiro?: undefined; area_construida?: undefined; area_terreno?: undefined; caracteristicas?: undefined; condominio?: undefined; end_numero?: undefined; codigo_origem?: undefined; valor_locacao?: undefined; andar?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; finalidade: string; ativo: boolean; publicado: boolean; created_at: string; updated_at: string; area_construida: number; valor_locacao: number; area_privativa: number; area_total: number; caracteristicas: string; categoria_imovel: string; "corretor.codigo": number; end_logradouro: string; end_bairro: string; end_cidade: string; end_estado: string; end_cep: string; latitude: number; longitude: number; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; observacoes: string; qtd_quartos?: undefined; valor_venda?: undefined; qtd_banheiro?: undefined; area_terreno?: undefined; condominio?: undefined; end_numero?: undefined; codigo_origem?: undefined; qtd_suites?: undefined; andar?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; finalidade: string; ativo: boolean; publicado: boolean; created_at: string; updated_at: string; qtd_quartos: number; qtd_banheiro: number; area_construida: number; area_privativa: number; area_total: number; condominio: number; "corretor.codigo": number; qtd_suites: number; end_logradouro: string; end_numero: string; end_bairro: string; end_cidade: string; end_estado: string; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; valor_venda?: undefined; longitude?: undefined; observacoes?: undefined; area_terreno?: undefined; caracteristicas?: undefined; latitude?: undefined; end_cep?: undefined; codigo_origem?: undefined; categoria_imovel?: undefined; valor_locacao?: undefined; andar?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; finalidade: string; ativo: boolean; publicado: boolean; created_at: string; updated_at: string; area_construida: number; qtd_banheiro: number; valor_locacao: number; andar: number; area_privativa: number; caracteristicas: string; categoria_imovel: string; end_logradouro: string; end_numero: string; end_bairro: string; end_cidade: string; end_estado: string; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; qtd_quartos?: undefined; valor_venda?: undefined; "corretor.codigo"?: undefined; longitude?: undefined; observacoes?: undefined; area_terreno?: undefined; area_total?: undefined; condominio?: undefined; latitude?: undefined; end_cep?: undefined; codigo_origem?: undefined; qtd_suites?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; finalidade: string; ativo: boolean; publicado: boolean; created_at: string; updated_at: string; area_construida: number; andar: number; caracteristicas: string; codigo_origem: string; condominio: number; "corretor.codigo": number; end_logradouro: string; end_bairro: string; end_estado: string; end_cep: string; longitude: number; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; qtd_quartos?: undefined; valor_venda?: undefined; area_privativa?: undefined; end_cidade?: undefined; observacoes?: undefined; qtd_banheiro?: undefined; area_terreno?: undefined; area_total?: undefined; end_numero?: undefined; latitude?: undefined; categoria_imovel?: undefined; qtd_suites?: undefined; valor_locacao?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; finalidade: string; ativo: boolean; publicado: boolean; created_at: string; updated_at: string; qtd_quartos: number; qtd_banheiro: number; area_construida: number; area_terreno: number; area_privativa: number; area_total: number; "corretor.codigo": number; end_numero: string; end_bairro: string; end_cidade: string; end_estado: string; latitude: number; longitude: number; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; qtd_suites: number; end_logradouro: string; valor_venda?: undefined; observacoes?: undefined; caracteristicas?: undefined; condominio?: undefined; end_cep?: undefined; codigo_origem?: undefined; categoria_imovel?: undefined; valor_locacao?: undefined; andar?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; finalidade: string; ativo: boolean; publicado: boolean; created_at: string; updated_at: string; qtd_quartos: number; qtd_banheiro: number; valor_venda: number; area_privativa: number; area_total: number; caracteristicas: string; categoria_imovel: string; condominio: number; "corretor.codigo": number; qtd_suites: number; end_logradouro: string; end_numero: string; end_bairro: string; end_cidade: string; end_estado: string; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; longitude?: undefined; observacoes?: undefined; area_construida?: undefined; area_terreno?: undefined; latitude?: undefined; end_cep?: undefined; codigo_origem?: undefined; valor_locacao?: undefined; andar?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; finalidade: string; ativo: boolean; publicado: boolean; created_at: string; updated_at: string; qtd_quartos: number; area_construida: number; valor_venda: number; caracteristicas: string; categoria_imovel: string; "corretor.codigo": number; qtd_suites: number; end_logradouro: string; end_numero: string; end_bairro: string; end_cidade: string; end_estado: string; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; area_privativa?: undefined; longitude?: undefined; observacoes?: undefined; qtd_banheiro?: undefined; area_terreno?: undefined; area_total?: undefined; condominio?: undefined; latitude?: undefined; end_cep?: undefined; codigo_origem?: undefined; valor_locacao?: undefined; andar?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; finalidade: string; ativo: boolean; publicado: boolean; created_at: string; updated_at: string; area_construida: number; qtd_banheiro: number; valor_locacao: number; andar: number; area_privativa: number; area_total: number; caracteristicas: string; categoria_imovel: string; codigo_origem: string; condominio: number; end_logradouro: string; end_numero: string; end_bairro: string; end_cidade: string; end_estado: string; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; qtd_quartos?: undefined; valor_venda?: undefined; "corretor.codigo"?: undefined; longitude?: undefined; observacoes?: undefined; area_terreno?: undefined; latitude?: undefined; end_cep?: undefined; qtd_suites?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; finalidade: string; ativo: boolean; publicado: boolean; created_at: string; updated_at: string; qtd_quartos: number; area_construida: number; area_terreno: number; valor_venda: number; caracteristicas: string; categoria_imovel: string; codigo_origem: string; qtd_suites: number; end_logradouro: string; end_numero: string; end_bairro: string; end_cidade: string; end_estado: string; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; area_privativa?: undefined; "corretor.codigo"?: undefined; longitude?: undefined; observacoes?: undefined; qtd_banheiro?: undefined; area_total?: undefined; condominio?: undefined; latitude?: undefined; end_cep?: undefined; valor_locacao?: undefined; andar?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; finalidade: string; ativo: boolean; publicado: boolean; created_at: string; updated_at: string; qtd_quartos: number; qtd_banheiro: number; area_construida: number; valor_venda: number; area_total: number; caracteristicas: string; codigo_origem: string; "corretor.codigo": number; end_logradouro: string; end_numero: number; end_bairro: string; end_cidade: string; end_estado: string; longitude: number; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; area_privativa?: undefined; observacoes?: undefined; area_terreno?: undefined; condominio?: undefined; latitude?: undefined; end_cep?: undefined; categoria_imovel?: undefined; qtd_suites?: undefined; valor_locacao?: undefined; andar?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; finalidade: string; ativo: boolean; publicado: boolean; created_at: string; updated_at: string; valor_venda: number; area_privativa: number; condominio: number; "corretor.codigo": number; end_logradouro: string; end_numero: number; end_bairro: string; end_cidade: string; end_estado: string; latitude: number; longitude: number; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; qtd_quartos?: undefined; observacoes?: undefined; qtd_banheiro?: undefined; area_construida?: undefined; area_terreno?: undefined; area_total?: undefined; caracteristicas?: undefined; end_cep?: undefined; codigo_origem?: undefined; categoria_imovel?: undefined; qtd_suites?: undefined; valor_locacao?: undefined; andar?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; finalidade: string; ativo: boolean; publicado: boolean; created_at: string; updated_at: string; area_construida: number; qtd_banheiro: number; valor_locacao: number; andar: number; area_total: number; categoria_imovel: string; codigo_origem: string; condominio: number; "corretor.codigo": number; end_numero: string; end_bairro: string; end_cidade: string; end_estado: string; end_cep: string; latitude: number; longitude: number; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; end_logradouro: string; qtd_quartos?: undefined; valor_venda?: undefined; area_privativa?: undefined; observacoes?: undefined; area_terreno?: undefined; caracteristicas?: undefined; qtd_suites?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; finalidade: string; ativo: boolean; publicado: boolean; created_at: string; updated_at: string; qtd_quartos: number; qtd_banheiro: number; area_terreno: number; valor_venda: number; codigo_origem: string; condominio: number; "corretor.codigo": number; end_logradouro: string; end_bairro: string; end_cidade: string; end_estado: string; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; qtd_suites: number; area_privativa?: undefined; longitude?: undefined; observacoes?: undefined; area_construida?: undefined; area_total?: undefined; caracteristicas?: undefined; end_numero?: undefined; latitude?: undefined; end_cep?: undefined; categoria_imovel?: undefined; valor_locacao?: undefined; andar?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; finalidade: string; ativo: boolean; publicado: boolean; created_at: string; updated_at: string; area_construida: number; qtd_banheiro: number; valor_locacao: number; andar: number; area_privativa: number; area_total: number; caracteristicas: string; condominio: number; end_logradouro: string; end_numero: string; end_bairro: string; end_cidade: string; end_estado: string; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; qtd_quartos?: undefined; valor_venda?: undefined; "corretor.codigo"?: undefined; longitude?: undefined; observacoes?: undefined; area_terreno?: undefined; latitude?: undefined; end_cep?: undefined; codigo_origem?: undefined; categoria_imovel?: undefined; qtd_suites?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; finalidade: string; ativo: boolean; publicado: boolean; created_at: string; updated_at: string; qtd_quartos: number; qtd_banheiro: number; area_construida: number; valor_venda: number; area_privativa: number; caracteristicas: string; condominio: number; end_logradouro: string; end_bairro: string; end_cep: string; longitude: number; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; "corretor.codigo"?: undefined; end_cidade?: undefined; end_estado?: undefined; observacoes?: undefined; area_terreno?: undefined; area_total?: undefined; end_numero?: undefined; latitude?: undefined; codigo_origem?: undefined; categoria_imovel?: undefined; qtd_suites?: undefined; valor_locacao?: undefined; andar?: undefined; })[]; problematicos: ({ codigo: string; titulo: string; descricao: null; categoria: string; valor_venda: number; area_construida: null; qtd_quartos?: undefined; qtd_banheiro?: undefined; andar?: undefined; end_logradouro?: undefined; end_numero?: undefined; observacoes?: undefined; fotos?: undefined; caracteristicas?: undefined; emp_fields?: undefined; valor_locacao?: undefined; finalidade?: undefined; end_cidade?: undefined; end_bairro?: undefined; ativo?: undefined; } | { codigo: string; titulo: string; descricao: string; qtd_quartos: number; qtd_banheiro: number; area_construida: number; valor_venda: number; andar: number; categoria?: undefined; end_logradouro?: undefined; end_numero?: undefined; observacoes?: undefined; fotos?: undefined; caracteristicas?: undefined; emp_fields?: undefined; valor_locacao?: undefined; finalidade?: undefined; end_cidade?: undefined; end_bairro?: undefined; ativo?: undefined; } | { codigo: string; titulo: string; descricao: string; end_logradouro: string; end_numero: string; observacoes: string; categoria?: undefined; valor_venda?: undefined; area_construida?: undefined; qtd_quartos?: undefined; qtd_banheiro?: undefined; andar?: undefined; fotos?: undefined; caracteristicas?: undefined; emp_fields?: undefined; valor_locacao?: undefined; finalidade?: undefined; end_cidade?: undefined; end_bairro?: undefined; ativo?: undefined; } | { codigo: string; titulo: string; descricao: string; fotos: never[]; caracteristicas: never[]; emp_fields: never[]; categoria?: undefined; valor_venda?: undefined; area_construida?: undefined; qtd_quartos?: undefined; qtd_banheiro?: undefined; andar?: undefined; end_logradouro?: undefined; end_numero?: undefined; observacoes?: undefined; valor_locacao?: undefined; finalidade?: undefined; end_cidade?: undefined; end_bairro?: undefined; ativo?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; qtd_quartos: number; area_construida: number; valor_locacao: number; finalidade: string; valor_venda?: undefined; qtd_banheiro?: undefined; andar?: undefined; end_logradouro?: undefined; end_numero?: undefined; observacoes?: undefined; fotos?: undefined; caracteristicas?: undefined; emp_fields?: undefined; end_cidade?: undefined; end_bairro?: undefined; ativo?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: null; end_cidade: string; end_bairro: string; valor_venda?: undefined; area_construida?: undefined; qtd_quartos?: undefined; qtd_banheiro?: undefined; andar?: undefined; end_logradouro?: undefined; end_numero?: undefined; observacoes?: undefined; fotos?: undefined; caracteristicas?: undefined; emp_fields?: undefined; valor_locacao?: undefined; finalidade?: undefined; ativo?: undefined; } | { codigo: string; titulo: string; descricao: string; qtd_quartos: number; area_construida: number; valor_venda: number; andar: number; categoria?: undefined; qtd_banheiro?: undefined; end_logradouro?: undefined; end_numero?: undefined; observacoes?: undefined; fotos?: undefined; caracteristicas?: undefined; emp_fields?: undefined; valor_locacao?: undefined; finalidade?: undefined; end_cidade?: undefined; end_bairro?: undefined; ativo?: undefined; } | { codigo: string; titulo: string; descricao: string; qtd_quartos: string; area_construida: string; valor_venda: string; ativo: string; categoria?: undefined; qtd_banheiro?: undefined; andar?: undefined; end_logradouro?: undefined; end_numero?: undefined; observacoes?: undefined; fotos?: undefined; caracteristicas?: undefined; emp_fields?: undefined; valor_locacao?: undefined; finalidade?: undefined; end_cidade?: undefined; end_bairro?: undefined; })[]; }; declare const fakeData: { apartamentos: ({ codigo: string; titulo: string; descricao: string; categoria: string; ativo: boolean; publicado: boolean; destaque: boolean; created_at: string; updated_at: string; finalidade: string; qtd_quartos: number; qtd_banheiro: number; qtd_suites: number; area_construida: number; qtd_vagas: number; andar: number; valor_venda: number; valor_locacao: number; valor_condominio: number; end_bairro: string; end_cidade: string; end_estado: string; end_cep: string; end_logradouro: string; end_numero: string; area_privativa: number; categoria_imovel: string; codigo_origem: string; condominio: number; observacoes: string; data_disponibilidade: string; status: string; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; area_total?: undefined; caracteristicas?: undefined; "corretor.codigo"?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; ativo: boolean; publicado: boolean; destaque: boolean; created_at: string; updated_at: string; finalidade: string; qtd_quartos: number; qtd_banheiro: number; qtd_suites: number; area_construida: number; qtd_vagas: number; andar: number; valor_venda: number; valor_locacao: number; valor_condominio: number; end_bairro: string; end_cidade: string; end_estado: string; end_cep: string; end_logradouro: string; end_numero: string; area_privativa: number; area_total: number; data_disponibilidade: string; status: string; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; categoria_imovel?: undefined; codigo_origem?: undefined; condominio?: undefined; observacoes?: undefined; caracteristicas?: undefined; "corretor.codigo"?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; ativo: boolean; publicado: boolean; destaque: boolean; created_at: string; updated_at: string; finalidade: string; qtd_quartos: number; qtd_banheiro: number; qtd_suites: number; area_construida: number; qtd_vagas: number; andar: number; valor_venda: number; valor_locacao: number; valor_condominio: number; end_bairro: string; end_cidade: string; end_estado: string; end_cep: string; end_logradouro: string; end_numero: string; codigo_origem: string; data_disponibilidade: string; status: string; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; area_privativa?: undefined; categoria_imovel?: undefined; condominio?: undefined; observacoes?: undefined; area_total?: undefined; caracteristicas?: undefined; "corretor.codigo"?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; ativo: boolean; publicado: boolean; destaque: boolean; created_at: string; updated_at: string; finalidade: string; qtd_quartos: number; qtd_banheiro: number; qtd_suites: number; area_construida: number; qtd_vagas: number; andar: number; valor_venda: number; valor_locacao: number; valor_condominio: number; end_bairro: string; end_cidade: string; end_estado: string; end_cep: string; end_logradouro: string; end_numero: string; caracteristicas: string[]; codigo_origem: string; condominio: number; "corretor.codigo": number; observacoes: string; data_disponibilidade: string; status: string; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; area_privativa?: undefined; categoria_imovel?: undefined; area_total?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; ativo: boolean; publicado: boolean; destaque: boolean; created_at: string; updated_at: string; finalidade: string; qtd_quartos: number; qtd_banheiro: number; qtd_suites: number; area_construida: number; qtd_vagas: number; andar: number; valor_venda: number; valor_locacao: number; valor_condominio: number; end_bairro: string; end_cidade: string; end_estado: string; end_cep: string; end_logradouro: string; end_numero: string; area_privativa: number; categoria_imovel: string; codigo_origem: string; condominio: number; data_disponibilidade: string; status: string; fotos: { id: string; url: string; descricao: string; destaque: boolean; ordem: number; }[]; observacoes?: undefined; area_total?: undefined; caracteristicas?: undefined; "corretor.codigo"?: undefined; } | { codigo: string; titulo: string; descricao: string; categoria: string; ativo: boolean; publicado: boolean; destaque: boolean; created_at: string; updated_at: string; finalidade: string; qtd_quartos: number; qtd_banheiro: number; qtd_suites: number; area_construida: number; qtd_vagas: