Нема описа

DashboardModels.swift 2.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. //
  2. // DashboardModels.swift
  3. // App for Indeed
  4. //
  5. import Foundation
  6. struct SidebarItem {
  7. let title: String
  8. let systemImage: String
  9. let badge: String?
  10. }
  11. struct JobListing: Hashable, Codable {
  12. let title: String
  13. let description: String
  14. }
  15. struct DashboardData {
  16. let subtitle: String
  17. let sidebarItems: [SidebarItem]
  18. let jobListings: [JobListing]
  19. }
  20. protocol DashboardDataProviding {
  21. func loadDashboardData() -> DashboardData
  22. }
  23. final class MockDashboardDataProvider: DashboardDataProviding {
  24. func loadDashboardData() -> DashboardData {
  25. DashboardData(
  26. subtitle: "Find your perfect job with the power of AI.",
  27. sidebarItems: [
  28. SidebarItem(title: "Home", systemImage: "house.fill", badge: nil),
  29. SidebarItem(title: "Saved Jobs", systemImage: "heart", badge: nil),
  30. SidebarItem(title: "CV Maker", systemImage: "doc.text", badge: nil),
  31. SidebarItem(title: "Profile", systemImage: "person", badge: nil),
  32. SidebarItem(title: "Settings", systemImage: "gearshape", badge: nil)
  33. ],
  34. jobListings: [
  35. JobListing(
  36. title: "Senior iOS Engineer",
  37. description: "Build polished native software in Swift and SwiftUI. Remote-friendly team, strong product focus, and mentorship for mid-level engineers."
  38. ),
  39. JobListing(
  40. title: "Product Designer",
  41. description: "Own end-to-end UX for job seeker flows—from discovery to apply. Figma systems, accessibility, and close collaboration with engineering."
  42. ),
  43. JobListing(
  44. title: "Machine Learning Engineer",
  45. description: "Improve search and recommendations using large-scale data. Python, PyTorch, and production software for ML pipelines; research-to-ship mindset."
  46. ),
  47. JobListing(
  48. title: "Technical Recruiter",
  49. description: "Partner with hiring managers to grow engineering teams. Full-cycle recruiting, inclusive sourcing, and a high-trust candidate experience."
  50. ),
  51. JobListing(
  52. title: "Customer Success Manager",
  53. description: "Help employers get the most from their hiring tools. Onboarding, training, and proactive check-ins with a metrics-driven playbook."
  54. )
  55. ]
  56. )
  57. }
  58. }