feat: Marktchancen — Netzwerk-Hinweise tab (human-sourced market intel)

- MarktHinweis domain type: SUCHE/VERFUEGBARKEIT direction, INTERN/PLATTFORM
  visibility, anonymization flag, source tracking
- Full data layer: IMarktHinweisProvider, MockupMarktHinweisProvider, service, hooks
- 7 seed entries: mix of intern/shared, demand/supply, own/partner Verwaltungen
- Marktchancen gets two-tab layout: Digitale Signale (crawler) + Netzwerk (human)
- HinweisListItem: direction icon, visibility badge (Intern/Geteilt/partner name)
- HinweisDetail: note card, portfolio match (SUCHE) or availability info (VERFUEGBARKEIT)
- HinweisErfassenDialog: direction toggle, asset type, location, area range,
  company + anonymize switch, source, note, card-based visibility picker
- HinweisPropertyCard: same Anschreiben composer pattern as crawler side

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Sutter
2026-05-24 23:47:50 +02:00
parent 63909c8caf
commit 7f6b7766e6
7 changed files with 960 additions and 53 deletions
+130
View File
@@ -0,0 +1,130 @@
import { AssetType } from '../domain/enums'
import type { MarktHinweis } from '../domain/marktHinweis'
export const marktHinweise: MarktHinweis[] = [
{
id: 'mh-001',
createdAt: '2026-05-22T09:15:00Z',
createdBy: 'Thomas Müller',
verwaltungId: 'v-001',
verwaltungName: 'Wincasa AG',
direction: 'SUCHE',
assetType: AssetType.OFFICE,
locationHint: 'Zürich Innenstadt',
areaSqmMin: 200,
areaSqmMax: 400,
companyName: 'Fintech Solutions AG',
isAnonymized: false,
quelle: 'NETZWERKEVENT',
note: 'Sucht modernes Büro, Nähe HB, max CHF 350/m²/J. Kontakt: CEO Andreas Baum',
visibility: 'INTERN',
status: 'OFFEN',
},
{
id: 'mh-002',
createdAt: '2026-05-21T14:30:00Z',
createdBy: 'Sarah Keller',
verwaltungId: 'v-001',
verwaltungName: 'Wincasa AG',
direction: 'SUCHE',
assetType: AssetType.LOGISTICS,
locationHint: 'Pratteln / Muttenz',
areaSqmMin: 800,
areaSqmMax: 1500,
companyName: 'Elektro Bernhard GmbH',
isAnonymized: false,
quelle: 'TELEFONAT',
note: 'Benötigt Lagerfläche mit Rampe und Kran. Einzug Q1/2027.',
visibility: 'INTERN',
status: 'OFFEN',
},
{
id: 'mh-003',
createdAt: '2026-05-20T11:00:00Z',
createdBy: 'Thomas Müller',
verwaltungId: 'v-001',
verwaltungName: 'Wincasa AG',
direction: 'VERFUEGBARKEIT',
assetType: AssetType.OFFICE,
locationHint: 'Basel',
areaSqmMin: 350,
areaSqmMax: 350,
companyName: 'Fläche frei per Sept. 2026',
isAnonymized: false,
quelle: 'BESICHTIGUNG',
note: 'Bürofläche 350m², guter Zustand, 4. OG, Aufzug.',
visibility: 'INTERN',
status: 'OFFEN',
},
{
id: 'mh-004',
createdAt: '2026-05-19T08:45:00Z',
createdBy: 'Thomas Müller',
verwaltungId: 'v-001',
verwaltungName: 'Wincasa AG',
direction: 'SUCHE',
assetType: AssetType.RETAIL,
locationHint: 'Winterthur Altstadt',
areaSqmMin: 80,
areaSqmMax: 150,
companyName: 'Boutique-Kette',
isAnonymized: false,
quelle: 'MESSE',
note: 'Ladenfläche EG, Fussgängerzone bevorzugt.',
visibility: 'PLATTFORM',
status: 'OFFEN',
},
{
id: 'mh-005',
createdAt: '2026-05-18T16:20:00Z',
createdBy: 'Petra Züst',
verwaltungId: 'v-002',
verwaltungName: 'Livit AG',
direction: 'SUCHE',
assetType: AssetType.LIGHT_INDUSTRIAL,
locationHint: 'Raum Bern',
areaSqmMin: 400,
areaSqmMax: 700,
isAnonymized: true,
quelle: 'TELEFONAT',
note: 'Produktionsfirma sucht Gewerbehalle, Deckenhöhe mind. 5m.',
visibility: 'PLATTFORM',
status: 'OFFEN',
},
{
id: 'mh-006',
createdAt: '2026-05-17T10:30:00Z',
createdBy: 'Marco Lüthi',
verwaltungId: 'v-003',
verwaltungName: 'Zurich Invest AG',
direction: 'VERFUEGBARKEIT',
assetType: AssetType.OFFICE,
locationHint: 'Zürich West',
areaSqmMin: 550,
areaSqmMax: 550,
companyName: 'Fläche frei per April 2027',
isAnonymized: false,
quelle: 'SONSTIGES',
note: 'Repräsentatives Büro, Ausbaustandard A, direkte SBB-Anbindung.',
visibility: 'PLATTFORM',
status: 'OFFEN',
},
{
id: 'mh-007',
createdAt: '2026-05-15T09:00:00Z',
createdBy: 'Sarah Keller',
verwaltungId: 'v-001',
verwaltungName: 'Wincasa AG',
direction: 'SUCHE',
assetType: AssetType.OFFICE,
locationHint: 'Luzern',
areaSqmMin: 180,
areaSqmMax: 320,
companyName: 'Startup Hub Luzern',
isAnonymized: false,
quelle: 'NETZWERKEVENT',
note: 'Flexibler Ausbau gewünscht, Co-Working-tauglich.',
visibility: 'INTERN',
status: 'IN_BEARBEITUNG',
},
]