// // DashboardModels.swift // App for Indeed // import Foundation struct SidebarItem { let title: String let systemImage: String let badge: String? } struct StatCard { let title: String let value: String let trend: String } struct JobRecommendation { let title: String let company: String let location: String let matchRate: String let postedAgo: String } struct InsightItem { let title: String let description: String let systemImage: String } struct DashboardData { let greetingName: String let sidebarItems: [SidebarItem] let stats: [StatCard] let recommendations: [JobRecommendation] let insights: [InsightItem] } protocol DashboardDataProviding { func loadDashboardData() -> DashboardData } final class MockDashboardDataProvider: DashboardDataProviding { func loadDashboardData() -> DashboardData { DashboardData( greetingName: "Olivia", sidebarItems: [ SidebarItem(title: "Overview", systemImage: "house.fill", badge: nil), SidebarItem(title: "AI Job Search", systemImage: "wand.and.stars", badge: "New"), SidebarItem(title: "My Jobs", systemImage: "bookmark", badge: nil), SidebarItem(title: "Saved Jobs", systemImage: "heart", badge: nil), SidebarItem(title: "Applications", systemImage: "doc.text", badge: nil), SidebarItem(title: "Profile", systemImage: "person", badge: nil), SidebarItem(title: "Settings", systemImage: "gearshape", badge: nil) ], stats: [ StatCard(title: "Jobs Found", value: "128", trend: "+24 this week"), StatCard(title: "Saved Jobs", value: "32", trend: "+6 this week"), StatCard(title: "Applications", value: "14", trend: "+3 this week"), StatCard(title: "Interviews", value: "5", trend: "Upcoming") ], recommendations: [ JobRecommendation(title: "Senior Product Designer", company: "Dropbox", location: "San Francisco, CA", matchRate: "95% Match", postedAgo: "2h ago"), JobRecommendation(title: "UX Researcher", company: "Airbnb", location: "Remote", matchRate: "90% Match", postedAgo: "4h ago"), JobRecommendation(title: "Product Manager", company: "Stripe", location: "New York, NY", matchRate: "88% Match", postedAgo: "6h ago") ], insights: [ InsightItem(title: "High Demand", description: "Product designer roles are in high demand right now.", systemImage: "chart.line.uptrend.xyaxis"), InsightItem(title: "Improve Your Profile", description: "Add more skills to increase your match rate.", systemImage: "person.crop.circle.badge.checkmark"), InsightItem(title: "New Opportunities", description: "24 new jobs match your profile this week.", systemImage: "briefcase.fill") ] ) } }