efc406ace9
- Role-based workspace access: Property Manager gets Supply+Demand, Operations restricted to Super Admin + Reviewer only - Root redirect routes each persona to their first workspace - Match Center: replaced 3-panel with auto-sorted flat list + drawer - AI Search: unified form with dual-action (Jetzt suchen / Als Suchprofil speichern) - CompareTray hidden on non-Demand routes; Vergleichen removed from Supply - LocationIntelligencePanel: city KPIs, rent trends, soft factors, comparables - NegotiationInsightsPanel: price positioning, active demand, selling arguments - scoreCalculator: cap hardMatchScore and softFactorScore to max 100 - Layout: add display:flex to overflow:hidden wrappers so inner scroll works (MatchCenter drawer, MarketIntelligence, SourceMonitoring, SignalPipeline) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
388 lines
12 KiB
TypeScript
388 lines
12 KiB
TypeScript
import { AssetType } from '../domain/enums'
|
||
import type { Need } from '../domain/need'
|
||
|
||
export const mockNeeds: Need[] = [
|
||
// --- need-001: Innovatech AG — OFFICE Zürich ---
|
||
{
|
||
id: 'need-001',
|
||
companyName: 'Innovatech AG',
|
||
contactName: 'Sandra Meier',
|
||
assetType: AssetType.OFFICE,
|
||
requiredArea: { min: 600, max: 1000 },
|
||
preferredLocations: ['Zürich', 'Zürich-West', 'Zürich Kreis 5'],
|
||
excludedLocations: [],
|
||
budgetRange: { maxPerSqm: 45, maxMonthlyTotal: 40000, currency: 'CHF' },
|
||
timing: {
|
||
earliestMoveIn: '2025-08-01',
|
||
latestMoveIn: '2026-01-01',
|
||
contractDurationMonths: 60,
|
||
flexibleTiming: true,
|
||
},
|
||
mustCriteriaText: ['ÖV-Anbindung < 5 Min', 'Mindestfläche 600m²', 'Ausbaugrad modern'],
|
||
softFactors: {
|
||
minPrestige: 70,
|
||
minAccessibility: 80,
|
||
requireParking: false,
|
||
maxPublicTransportMinutes: 6,
|
||
},
|
||
weightingProfile: {
|
||
area: 0.20,
|
||
location: 0.20,
|
||
budget: 0.15,
|
||
timing: 0.15,
|
||
prestige: 0.10,
|
||
accessibility: 0.10,
|
||
expansionPotential: 0.05,
|
||
flexibility: 0.05,
|
||
},
|
||
confidenceInCriteria: 0.88,
|
||
extractedFromText: 'Wir suchen moderne Büroflächen in Zürich-West, ca. 700–900m², Budget max CHF 42/m², Bezug Herbst 2025.',
|
||
organizationId: 'org-wincasa',
|
||
createdAt: '2025-04-15T10:00:00Z',
|
||
updatedAt: '2025-05-01T09:00:00Z',
|
||
},
|
||
|
||
// --- need-002: Schweizer Logistik GmbH — LOGISTICS Basel ---
|
||
{
|
||
id: 'need-002',
|
||
companyName: 'Schweizer Logistik GmbH',
|
||
contactName: 'Thomas Brun',
|
||
assetType: AssetType.LOGISTICS,
|
||
requiredArea: { min: 1500, max: 4000 },
|
||
preferredLocations: ['Basel', 'Muttenz', 'Pratteln', 'Reinach BL'],
|
||
budgetRange: { maxPerSqm: 18, currency: 'CHF' },
|
||
timing: {
|
||
earliestMoveIn: '2025-09-01',
|
||
latestMoveIn: '2026-06-01',
|
||
contractDurationMonths: 36,
|
||
flexibleTiming: false,
|
||
},
|
||
mustCriteriaText: ['Autobahnanschluss < 5 Min', 'Rampe / Andienung', 'Hallenhöhe min 6m'],
|
||
softFactors: {
|
||
requireParking: true,
|
||
},
|
||
weightingProfile: {
|
||
area: 0.25,
|
||
location: 0.20,
|
||
budget: 0.20,
|
||
timing: 0.15,
|
||
prestige: 0.02,
|
||
accessibility: 0.10,
|
||
expansionPotential: 0.05,
|
||
flexibility: 0.03,
|
||
},
|
||
confidenceInCriteria: 0.94,
|
||
organizationId: 'org-wincasa',
|
||
createdAt: '2025-03-20T14:00:00Z',
|
||
updatedAt: '2025-04-10T11:00:00Z',
|
||
},
|
||
|
||
// --- need-003: Pharma Holding AG — OFFICE Basel ---
|
||
{
|
||
id: 'need-003',
|
||
companyName: 'Pharma Holding AG',
|
||
contactName: 'Ursula Schmid',
|
||
assetType: AssetType.OFFICE,
|
||
requiredArea: { min: 500, max: 800 },
|
||
preferredLocations: ['Basel', 'Allschwil', 'Binningen', 'Dreispitz'],
|
||
excludedLocations: [],
|
||
budgetRange: { maxPerSqm: 40, maxMonthlyTotal: 32000, currency: 'CHF' },
|
||
timing: {
|
||
earliestMoveIn: '2025-10-01',
|
||
latestMoveIn: '2026-04-01',
|
||
contractDurationMonths: 48,
|
||
flexibleTiming: true,
|
||
},
|
||
mustCriteriaText: ['Repräsentative Lage', 'Ausbaugrad gehoben', 'Konferenzräume vorhanden'],
|
||
softFactors: {
|
||
minPrestige: 75,
|
||
minAccessibility: 75,
|
||
requireParking: true,
|
||
maxPublicTransportMinutes: 10,
|
||
},
|
||
weightingProfile: {
|
||
area: 0.20,
|
||
location: 0.25,
|
||
budget: 0.20,
|
||
timing: 0.10,
|
||
prestige: 0.12,
|
||
accessibility: 0.08,
|
||
expansionPotential: 0.03,
|
||
flexibility: 0.02,
|
||
},
|
||
confidenceInCriteria: 0.91,
|
||
extractedFromText: 'Suche repräsentative Büroflächen im Raum Basel/Allschwil, 500–800m², max. CHF 38/m², Bezug Q4 2025.',
|
||
organizationId: 'org-wincasa',
|
||
createdAt: '2025-04-20T09:00:00Z',
|
||
updatedAt: '2025-05-05T14:00:00Z',
|
||
},
|
||
|
||
// --- need-004: Retailer Zürich AG — RETAIL Zürich ---
|
||
{
|
||
id: 'need-004',
|
||
companyName: 'Retailer Zürich AG',
|
||
contactName: 'Marco Colombo',
|
||
assetType: AssetType.RETAIL,
|
||
requiredArea: { min: 200, max: 500 },
|
||
preferredLocations: ['Zürich Innenstadt', 'Zürich Bahnhofstrasse', 'Zürich Niederdorf', 'Zürich City'],
|
||
excludedLocations: [],
|
||
budgetRange: { maxPerSqm: 100, maxMonthlyTotal: 50000, currency: 'CHF' },
|
||
timing: {
|
||
earliestMoveIn: '2025-09-01',
|
||
latestMoveIn: '2026-03-01',
|
||
contractDurationMonths: 60,
|
||
flexibleTiming: false,
|
||
},
|
||
mustCriteriaText: ['Laufkundschaft', 'Schaufensterfront', 'Erdgeschoss', 'Hohe Passantenfrequenz'],
|
||
softFactors: {
|
||
minPrestige: 85,
|
||
requireParking: false,
|
||
maxPublicTransportMinutes: 5,
|
||
},
|
||
weightingProfile: {
|
||
area: 0.15,
|
||
location: 0.35,
|
||
budget: 0.15,
|
||
timing: 0.10,
|
||
prestige: 0.15,
|
||
accessibility: 0.05,
|
||
expansionPotential: 0.02,
|
||
flexibility: 0.03,
|
||
},
|
||
confidenceInCriteria: 0.96,
|
||
extractedFromText: 'Exklusive Retailfläche in Zürich Innenstadt gesucht, 250–450m², Schaufenster, max. CHF 95/m².',
|
||
organizationId: 'org-wincasa',
|
||
createdAt: '2025-03-10T11:00:00Z',
|
||
updatedAt: '2025-04-22T08:00:00Z',
|
||
},
|
||
|
||
// --- need-005: TechStart GmbH — OFFICE Zug/Zürich ---
|
||
{
|
||
id: 'need-005',
|
||
companyName: 'TechStart GmbH',
|
||
contactName: 'Florian Keller',
|
||
assetType: AssetType.OFFICE,
|
||
requiredArea: { min: 300, max: 700 },
|
||
preferredLocations: ['Zug', 'Zürich', 'Baar', 'Steinhausen'],
|
||
excludedLocations: [],
|
||
budgetRange: { maxPerSqm: 48, maxMonthlyTotal: 33000, currency: 'CHF' },
|
||
timing: {
|
||
earliestMoveIn: '2025-10-01',
|
||
latestMoveIn: '2026-06-01',
|
||
contractDurationMonths: 36,
|
||
flexibleTiming: true,
|
||
},
|
||
mustCriteriaText: ['Moderner Ausbau', 'Schnelles Internet', 'Fahrradabstellplätze'],
|
||
softFactors: {
|
||
minPrestige: 65,
|
||
minAccessibility: 75,
|
||
requireParking: false,
|
||
maxPublicTransportMinutes: 10,
|
||
},
|
||
weightingProfile: {
|
||
area: 0.20,
|
||
location: 0.25,
|
||
budget: 0.20,
|
||
timing: 0.15,
|
||
prestige: 0.05,
|
||
accessibility: 0.10,
|
||
expansionPotential: 0.03,
|
||
flexibility: 0.02,
|
||
},
|
||
confidenceInCriteria: 0.85,
|
||
extractedFromText: 'Junges Tech-Unternehmen sucht Büro in Zug oder Zürich, 350–600m², moderner Ausbau, max. CHF 45/m².',
|
||
organizationId: 'org-wincasa',
|
||
createdAt: '2025-04-28T13:00:00Z',
|
||
updatedAt: '2025-05-08T10:00:00Z',
|
||
},
|
||
|
||
// --- need-006: Lager & Spedition AG — LOGISTICS Winterthur ---
|
||
{
|
||
id: 'need-006',
|
||
companyName: 'Lager & Spedition AG',
|
||
contactName: 'Beat Zimmermann',
|
||
assetType: AssetType.LOGISTICS,
|
||
requiredArea: { min: 1200, max: 3000 },
|
||
preferredLocations: ['Winterthur', 'Wülflingen', 'Oberwinterthur', 'Töss'],
|
||
budgetRange: { maxPerSqm: 16, currency: 'CHF' },
|
||
timing: {
|
||
earliestMoveIn: '2025-11-01',
|
||
latestMoveIn: '2026-05-01',
|
||
contractDurationMonths: 60,
|
||
flexibleTiming: false,
|
||
},
|
||
mustCriteriaText: ['Autobahn A1 < 10 Min', 'Ebenerdig', 'Lkw-Zufahrt', 'Sprinkleranlage'],
|
||
softFactors: {
|
||
requireParking: true,
|
||
},
|
||
weightingProfile: {
|
||
area: 0.30,
|
||
location: 0.25,
|
||
budget: 0.20,
|
||
timing: 0.10,
|
||
prestige: 0.01,
|
||
accessibility: 0.10,
|
||
expansionPotential: 0.02,
|
||
flexibility: 0.02,
|
||
},
|
||
confidenceInCriteria: 0.92,
|
||
organizationId: 'org-wincasa',
|
||
createdAt: '2025-05-02T08:30:00Z',
|
||
updatedAt: '2025-05-09T16:00:00Z',
|
||
},
|
||
|
||
// --- need-007: Creative Studios AG — MIXED Zürich/Bern ---
|
||
{
|
||
id: 'need-007',
|
||
companyName: 'Creative Studios AG',
|
||
contactName: 'Nora Hauser',
|
||
assetType: AssetType.MIXED,
|
||
requiredArea: { min: 800, max: 1500 },
|
||
preferredLocations: ['Zürich', 'Zürich-West', 'Zürich Altstetten', 'Bern'],
|
||
excludedLocations: [],
|
||
budgetRange: { maxPerSqm: 55, maxMonthlyTotal: 75000, currency: 'CHF' },
|
||
timing: {
|
||
earliestMoveIn: '2026-01-01',
|
||
latestMoveIn: '2026-07-01',
|
||
contractDurationMonths: 48,
|
||
flexibleTiming: true,
|
||
},
|
||
mustCriteriaText: ['Gemischte Nutzung möglich', 'Hohe Decken', 'Kreative Atmosphäre'],
|
||
softFactors: {
|
||
minPrestige: 55,
|
||
minAccessibility: 70,
|
||
requireParking: false,
|
||
maxPublicTransportMinutes: 12,
|
||
},
|
||
weightingProfile: {
|
||
area: 0.20,
|
||
location: 0.20,
|
||
budget: 0.15,
|
||
timing: 0.15,
|
||
prestige: 0.10,
|
||
accessibility: 0.10,
|
||
expansionPotential: 0.05,
|
||
flexibility: 0.05,
|
||
},
|
||
confidenceInCriteria: 0.82,
|
||
extractedFromText: 'Kreativagentur sucht Gewerbe-/Bürofläche in Zürich oder Bern, 900–1400m², gemischte Nutzung, Budget max. CHF 50/m².',
|
||
organizationId: 'org-wincasa',
|
||
createdAt: '2025-04-05T10:00:00Z',
|
||
updatedAt: '2025-05-03T11:00:00Z',
|
||
},
|
||
|
||
// --- need-008: Berner Produzenten GmbH — PRODUCTION Bern ---
|
||
{
|
||
id: 'need-008',
|
||
companyName: 'Berner Produzenten GmbH',
|
||
contactName: 'Hans Lüthi',
|
||
assetType: AssetType.PRODUCTION,
|
||
requiredArea: { min: 2000, max: 4000 },
|
||
preferredLocations: ['Bern', 'Brünnen', 'Münchenbuchsee', 'Bern West'],
|
||
budgetRange: { maxPerSqm: 14, currency: 'CHF' },
|
||
timing: {
|
||
earliestMoveIn: '2025-12-01',
|
||
latestMoveIn: '2026-09-01',
|
||
contractDurationMonths: 120,
|
||
flexibleTiming: false,
|
||
},
|
||
mustCriteriaText: ['Kranbahn möglich', 'Hallenhöhe min 8m', 'Drehstrom 400V', 'Lkw-Andienung'],
|
||
softFactors: {
|
||
requireParking: true,
|
||
},
|
||
weightingProfile: {
|
||
area: 0.30,
|
||
location: 0.20,
|
||
budget: 0.20,
|
||
timing: 0.10,
|
||
prestige: 0.01,
|
||
accessibility: 0.10,
|
||
expansionPotential: 0.07,
|
||
flexibility: 0.02,
|
||
},
|
||
confidenceInCriteria: 0.95,
|
||
organizationId: 'org-wincasa',
|
||
createdAt: '2025-03-15T09:00:00Z',
|
||
updatedAt: '2025-04-20T12:00:00Z',
|
||
},
|
||
|
||
// --- need-009: Geneva Commerce SA — RETAIL Genf ---
|
||
{
|
||
id: 'need-009',
|
||
companyName: 'Geneva Commerce SA',
|
||
contactName: 'Pierre Dupont',
|
||
assetType: AssetType.RETAIL,
|
||
requiredArea: { min: 150, max: 400 },
|
||
preferredLocations: ['Genf', 'Genf Rive', 'Genf Centre'],
|
||
excludedLocations: [],
|
||
budgetRange: { maxPerSqm: 120, maxMonthlyTotal: 48000, currency: 'CHF' },
|
||
timing: {
|
||
earliestMoveIn: '2026-01-01',
|
||
latestMoveIn: '2026-06-01',
|
||
contractDurationMonths: 60,
|
||
flexibleTiming: false,
|
||
},
|
||
mustCriteriaText: ['Centre-ville Genève', 'Vitrine', 'Rez-de-chaussée', 'Passage piétonnier'],
|
||
softFactors: {
|
||
minPrestige: 88,
|
||
requireParking: false,
|
||
maxPublicTransportMinutes: 5,
|
||
},
|
||
weightingProfile: {
|
||
area: 0.15,
|
||
location: 0.35,
|
||
budget: 0.15,
|
||
timing: 0.10,
|
||
prestige: 0.15,
|
||
accessibility: 0.05,
|
||
expansionPotential: 0.02,
|
||
flexibility: 0.03,
|
||
},
|
||
confidenceInCriteria: 0.93,
|
||
extractedFromText: 'Recherche surface commerciale en centre-ville de Genève, 200–350m², vitrine obligatoire, budget max CHF 115/m².',
|
||
organizationId: 'org-wincasa',
|
||
createdAt: '2025-02-28T15:00:00Z',
|
||
updatedAt: '2025-04-18T09:00:00Z',
|
||
},
|
||
|
||
// --- need-010: St.Galler Büros AG — OFFICE St.Gallen ---
|
||
{
|
||
id: 'need-010',
|
||
companyName: 'St.Galler Büros AG',
|
||
contactName: 'Brigitte Fässler',
|
||
assetType: AssetType.OFFICE,
|
||
requiredArea: { min: 400, max: 800 },
|
||
preferredLocations: ['St. Gallen', 'St. Gallen Centrum', 'Riethüsli', 'Ostschweiz'],
|
||
excludedLocations: [],
|
||
budgetRange: { maxPerSqm: 35, maxMonthlyTotal: 28000, currency: 'CHF' },
|
||
timing: {
|
||
earliestMoveIn: '2025-11-01',
|
||
latestMoveIn: '2026-04-01',
|
||
contractDurationMonths: 48,
|
||
flexibleTiming: true,
|
||
},
|
||
mustCriteriaText: ['Stadtzentrumsnähe', 'ÖV < 8 Min', 'Helligkeit und Ausbauqualität'],
|
||
softFactors: {
|
||
minPrestige: 60,
|
||
minAccessibility: 70,
|
||
requireParking: true,
|
||
maxPublicTransportMinutes: 8,
|
||
},
|
||
weightingProfile: {
|
||
area: 0.22,
|
||
location: 0.28,
|
||
budget: 0.20,
|
||
timing: 0.12,
|
||
prestige: 0.08,
|
||
accessibility: 0.06,
|
||
expansionPotential: 0.02,
|
||
flexibility: 0.02,
|
||
},
|
||
confidenceInCriteria: 0.87,
|
||
extractedFromText: 'Büroflächen in St. Gallen oder Umgebung gesucht, 450–750m², max. CHF 32/m², Bezug Anfang 2026.',
|
||
organizationId: 'org-wincasa',
|
||
createdAt: '2025-04-10T08:00:00Z',
|
||
updatedAt: '2025-05-06T13:00:00Z',
|
||
},
|
||
]
|