Initial commit

This commit is contained in:
Benjamin Sutter
2026-05-15 00:48:18 +02:00
commit 9e827c50f9
72 changed files with 10477 additions and 0 deletions
+192
View File
@@ -0,0 +1,192 @@
import { AssetType, ResultType, AvailabilityStatus, DataFreshness, RiskLevel } from '../domain/enums'
import type { Property } from '../domain/property'
export const mockProperties: Property[] = [
// --- VERIFIED_PORTFOLIO ---
{
id: 'prop-001',
title: 'Bürofläche Zollstrasse 12',
assetType: AssetType.OFFICE,
resultType: ResultType.VERIFIED_PORTFOLIO,
location: { city: 'Zürich', district: 'Zürich-West', canton: 'ZH', country: 'CH', coordinates: { lat: 47.3882, lng: 8.5132 } },
address: { street: 'Zollstrasse', houseNumber: '12', postalCode: '8005', city: 'Zürich', country: 'CH' },
areaSqm: 850,
rentPricePerSqm: 38,
totalRentMonthly: 32300,
availabilityDate: '2025-09-01',
availabilityStatus: AvailabilityStatus.AVAILABLE_SOON,
sourceType: 'ERP_IMPORT',
confidenceScore: 0.97,
dataQuality: {
score: 0.92,
missingCriticalFields: [],
missingOptionalFields: ['expansionPotentialSqm'],
lastVerifiedAt: '2025-04-28',
freshness: DataFreshness.FRESH,
warnings: [],
},
softFactors: {
prestige: 78,
accessibility: 90,
visibilityScore: 65,
talentAccess: 85,
parkingSpots: 12,
publicTransportMinutes: 4,
},
floorLevel: 3,
contractDurationMonths: 60,
ancillaryCosts: 5.5,
riskLevel: RiskLevel.LOW,
organizationId: 'org-wincasa',
createdAt: '2025-01-10T08:00:00Z',
updatedAt: '2025-04-28T10:30:00Z',
},
{
id: 'prop-002',
title: 'Lagerfläche Hardstrasse 44',
assetType: AssetType.LOGISTICS,
resultType: ResultType.VERIFIED_PORTFOLIO,
location: { city: 'Basel', district: 'Kleinhüningen', canton: 'BS', country: 'CH', coordinates: { lat: 47.5736, lng: 7.5946 } },
address: { street: 'Hardstrasse', houseNumber: '44', postalCode: '4057', city: 'Basel', country: 'CH' },
areaSqm: 2400,
rentPricePerSqm: 14,
totalRentMonthly: 33600,
availabilityDate: '2025-07-01',
availabilityStatus: AvailabilityStatus.AVAILABLE_NOW,
sourceType: 'ERP_IMPORT',
confidenceScore: 0.99,
dataQuality: {
score: 0.96,
missingCriticalFields: [],
missingOptionalFields: [],
lastVerifiedAt: '2025-05-05',
freshness: DataFreshness.FRESH,
warnings: [],
},
softFactors: {
prestige: 40,
accessibility: 88,
parkingSpots: 30,
publicTransportMinutes: 12,
},
floorLevel: 0,
expansionPotentialSqm: 800,
contractDurationMonths: 36,
ancillaryCosts: 3.0,
riskLevel: RiskLevel.LOW,
organizationId: 'org-wincasa',
createdAt: '2024-11-20T09:00:00Z',
updatedAt: '2025-05-05T11:00:00Z',
},
// --- EXTERNAL_MARKET ---
{
id: 'prop-003',
title: 'Retail-Fläche Bahnhofstrasse 88',
assetType: AssetType.RETAIL,
resultType: ResultType.EXTERNAL_MARKET,
location: { city: 'Bern', district: 'Innenstadt', canton: 'BE', country: 'CH', coordinates: { lat: 46.9483, lng: 7.4474 } },
address: { street: 'Bahnhofstrasse', houseNumber: '88', postalCode: '3011', city: 'Bern', country: 'CH' },
areaSqm: 320,
rentPricePerSqm: 95,
totalRentMonthly: 30400,
availabilityDate: '2025-08-15',
availabilityStatus: AvailabilityStatus.AVAILABLE_SOON,
sourceType: 'MATCHOFFICE_SCRAPE',
sourceUrl: 'https://example.com/listing/prop-003',
confidenceScore: 0.71,
dataQuality: {
score: 0.62,
missingCriticalFields: ['contractDurationMonths'],
missingOptionalFields: ['ancillaryCosts', 'floorLevel'],
lastVerifiedAt: '2025-04-10',
freshness: DataFreshness.STALE,
warnings: ['Mietpreis nicht bestätigt', 'Verfügbarkeit nicht verifiziert'],
},
softFactors: {
prestige: 92,
visibilityScore: 98,
passerbyFrequency: 'VERY_HIGH',
publicTransportMinutes: 2,
},
riskLevel: RiskLevel.MEDIUM,
createdAt: '2025-02-15T14:00:00Z',
updatedAt: '2025-04-10T09:00:00Z',
},
{
id: 'prop-004',
title: 'Gemischte Gewerbeeinheit Europaallee',
assetType: AssetType.MIXED,
resultType: ResultType.EXTERNAL_MARKET,
location: { city: 'Zürich', district: 'Kreis 4', canton: 'ZH', country: 'CH', coordinates: { lat: 47.3775, lng: 8.5398 } },
address: { street: 'Europaallee', houseNumber: '21', postalCode: '8004', city: 'Zürich', country: 'CH' },
areaSqm: 1150,
rentPricePerSqm: 52,
totalRentMonthly: 59800,
availabilityDate: '2025-10-01',
availabilityStatus: AvailabilityStatus.AVAILABLE_SOON,
sourceType: 'IMMOSCOUT_SCRAPE',
confidenceScore: 0.68,
dataQuality: {
score: 0.55,
missingCriticalFields: ['contractDurationMonths', 'ancillaryCosts'],
missingOptionalFields: ['softFactors'],
lastVerifiedAt: '2025-03-20',
freshness: DataFreshness.STALE,
warnings: ['Daten aus Drittquelle nicht verifiziert'],
},
riskLevel: RiskLevel.MEDIUM,
createdAt: '2025-03-01T10:00:00Z',
updatedAt: '2025-03-20T15:00:00Z',
},
// --- FUTURE_AVAILABILITY ---
{
id: 'prop-005',
title: 'Bürofläche Technoparkstrasse (Signal: Expansion)',
assetType: AssetType.OFFICE,
resultType: ResultType.FUTURE_AVAILABILITY,
location: { city: 'Zürich', district: 'Technopark', canton: 'ZH', country: 'CH', coordinates: { lat: 47.3923, lng: 8.5142 } },
address: { street: 'Technoparkstrasse', houseNumber: '1', postalCode: '8005', city: 'Zürich', country: 'CH' },
areaSqm: 600,
rentPricePerSqm: 42,
availabilityDate: '2026-03-01',
availabilityStatus: AvailabilityStatus.FUTURE_SIGNAL,
sourceType: 'AI_SIGNAL',
confidenceScore: 0.55,
dataQuality: {
score: 0.38,
missingCriticalFields: ['totalRentMonthly', 'contractDurationMonths'],
missingOptionalFields: ['ancillaryCosts', 'floorLevel', 'parkingSpots'],
freshness: DataFreshness.FRESH,
warnings: ['Probabilistisches Signal kein bestätigtes Objekt', 'Daten nicht verifiziert'],
},
riskLevel: RiskLevel.HIGH,
createdAt: '2025-05-01T07:00:00Z',
updatedAt: '2025-05-10T07:00:00Z',
},
{
id: 'prop-006',
title: 'Produktionsfläche Reinach (Signal: möglicher Auszug)',
assetType: AssetType.PRODUCTION,
resultType: ResultType.FUTURE_AVAILABILITY,
location: { city: 'Reinach', district: 'Industriezone Nord', canton: 'BL', country: 'CH', coordinates: { lat: 47.4978, lng: 7.5933 } },
address: { street: 'Industriestrasse', houseNumber: '18', postalCode: '4153', city: 'Reinach', country: 'CH' },
areaSqm: 3200,
rentPricePerSqm: 11,
availabilityDate: '2026-06-01',
availabilityStatus: AvailabilityStatus.FUTURE_SIGNAL,
sourceType: 'AI_SIGNAL',
confidenceScore: 0.48,
dataQuality: {
score: 0.30,
missingCriticalFields: ['totalRentMonthly', 'rentPricePerSqm', 'contractDurationMonths'],
missingOptionalFields: ['ancillaryCosts', 'softFactors'],
freshness: DataFreshness.FRESH,
warnings: ['Probabilistisches Signal kein bestätigtes Objekt', 'Mietpreis geschätzt'],
},
riskLevel: RiskLevel.HIGH,
createdAt: '2025-05-03T08:00:00Z',
updatedAt: '2025-05-10T08:00:00Z',
},
]