Files
mdb/app/constants/rechercheMarche.ts
Bastien COIGNOUX 2b8741de08 recherche
2026-05-04 21:52:51 +02:00

104 lines
3.5 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

export type SectorTool = {
id: string;
title: string;
description: string;
url: string;
/** Nom Ionicons (outline). */
icon: string;
};
export const SECTOR_TOOLS: SectorTool[] = [
{
id: 'ma',
title: 'Prix au m² — Meilleurs Agents',
description: 'Prix moyen, évolution, comparaison communes',
url: 'https://www.meilleursagents.com/prix-immobilier/',
icon: 'stats-chart-outline',
},
{
id: 'dvf',
title: 'Transactions réelles — DVF',
description: 'Prix de vente réels, toutes transactions',
url: 'https://dvf.etalab.gouv.fr/',
icon: 'document-text-outline',
},
{
id: 'moteur',
title: 'Annonces actives — Moteur Immo',
description: 'Agrège tous les sites, historique baisses de prix',
url: 'https://www.moteurimmo.fr/',
icon: 'search-outline',
},
{
id: 'insee',
title: 'Données INSEE',
description: 'Revenus médians, démographie, vacance logements',
url: 'https://www.insee.fr/fr/statistiques/zones/1405599',
icon: 'business-outline',
},
{
id: 'geo',
title: 'Carte & PLU — Géoportail',
description: 'Transports, écoles, zones PLU, foncier',
url: 'https://www.geoportail.gouv.fr/',
icon: 'map-outline',
},
{
id: 'pappers',
title: 'Concurrence MDB — Pappers Immo',
description: 'Historique transactions, propriétaires, sociétés actives',
url: 'https://immobilier.pappers.fr/',
icon: 'people-outline',
},
];
export const OFF_MARKET_KEYWORDS: { id: string; label: string; text: string }[] = [
{
id: 'k1',
label: 'Pack division studios',
text: '"studio" + "lots réunis" + "vendu libre" + "deux studios"',
},
{
id: 'k2',
label: 'Multi-lots / réunion',
text: '"appartements réunis" + "configuration possible" + "immeuble" + "multi-lots"',
},
];
export const PROSPECTION_CHECKLIST: { id: string; label: string; question: string }[] = [
{ id: 'agent_immo', label: 'Agents immo', question: 'À combien ça part vraiment ? Cest rapide à vendre ?' },
{ id: 'notaire', label: 'Notaires', question: 'Quelles tendances dans vos actes récents ?' },
{ id: 'geometre', label: 'Géomètres', question: 'Divisions fréquentes sur ce secteur ?' },
{ id: 'banquier', label: 'Banquiers', question: 'Vous financez souvent des projets ici ?' },
{ id: 'mdb', label: 'Autres MDB', question: 'Tu trouves facilement sur ce secteur ?' },
{ id: 'artisan', label: 'Artisans', question: 'Vous travaillez beaucoup dans ce quartier ?' },
];
export const CATEGORIE_NOTES_PROSPECTION = 'recherche_opportunites';
export const LEGI_L151_36 =
'https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000031211239';
export const LEGI_L152_6 =
'https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000043978020/2021-08-25';
export function meilleursAgentsUrlForVille(ville: string): string {
const v = ville.trim();
if (!v) return SECTOR_TOOLS[0].url;
return `https://www.meilleursagents.com/prix-immobilier/${encodeURIComponent(v)}/`;
}
export function dvfSearchUrl(ville: string): string {
const v = ville.trim();
if (!v) return 'https://dvf.etalab.gouv.fr/';
return `https://dvf.etalab.gouv.fr/?q=${encodeURIComponent(v)}`;
}
export function geoportailBienUrl(lat: number, lon: number): string {
return `https://www.geoportail.gouv.fr/?lon=${lon}&lat=${lat}&z=17`;
}
export function marginPctFromPrices(achat: number, revente: number): number | null {
if (!Number.isFinite(achat) || !Number.isFinite(revente) || achat <= 0) return null;
return ((revente - achat) / achat) * 100;
}