97 lines
2.7 KiB
Swift
97 lines
2.7 KiB
Swift
//
|
|
// TrashModel.swift
|
|
// TrashTrack
|
|
//
|
|
// Created by Oliver Hnát on 12.01.2024.
|
|
//
|
|
|
|
import Foundation
|
|
import SwiftUI
|
|
|
|
struct Trash {
|
|
var type: String
|
|
var color: Color
|
|
var image: String
|
|
}
|
|
|
|
struct TrashEvent: Identifiable {
|
|
var id: Int
|
|
var trash: Trash
|
|
var date: Date
|
|
}
|
|
|
|
struct TrashModel {
|
|
private (set) var trashTypes: [Trash]
|
|
private var trashEvents: [TrashEvent]
|
|
|
|
init() {
|
|
self.trashTypes = [
|
|
Trash(type: "plastic", color: .orange, image: "waterbottle"),
|
|
Trash(type: "paper", color: .blue, image: "newspaper"),
|
|
Trash(type: "bio", color: .green, image: "tree"),
|
|
Trash(type: "residual", color: .gray, image: "trash"),
|
|
Trash(type: "none", color: .white, image: "")
|
|
]
|
|
|
|
self.trashEvents = []
|
|
let numberOfEvents = 10
|
|
let start = 1
|
|
for i in start..<numberOfEvents {
|
|
self.trashEvents.append(
|
|
TrashEvent(
|
|
id: i,
|
|
trash: self.trashTypes[0],
|
|
date: Calendar.current.date(byAdding: .day, value: 3 + 7*i, to: Date())!
|
|
)
|
|
)
|
|
}
|
|
|
|
for i in start..<numberOfEvents {
|
|
self.trashEvents.append(
|
|
TrashEvent(
|
|
id: i + 4 + 7,
|
|
trash: self.trashTypes[1],
|
|
date: Calendar.current.date(byAdding: .day, value: 4 + 7 + 7*i, to: Date())!
|
|
)
|
|
)
|
|
}
|
|
|
|
for i in start..<numberOfEvents {
|
|
self.trashEvents.append(
|
|
TrashEvent(
|
|
id: i + 5,
|
|
trash: self.trashTypes[2],
|
|
date: Calendar.current.date(byAdding: .day, value: 5 + 7*i, to: Date())!
|
|
)
|
|
)
|
|
}
|
|
|
|
for i in start..<numberOfEvents {
|
|
self.trashEvents.append(
|
|
TrashEvent(
|
|
id: i + 6 + 7,
|
|
trash: self.trashTypes[3],
|
|
date: Calendar.current.date(byAdding: .day, value: 6 + 7 + 7*i, to: Date())!
|
|
)
|
|
)
|
|
}
|
|
|
|
for i in 1..<30 {
|
|
if !self.trashEvents.contains(where: { $0.id == i }) {
|
|
self.trashEvents.append(
|
|
TrashEvent(
|
|
id: i,
|
|
trash: self.trashTypes[4],
|
|
date: Calendar.current.date(byAdding: .day, value: 3 + 7 + 7*i, to: Date())!
|
|
)
|
|
)
|
|
}
|
|
}
|
|
self.trashEvents.sort(by: { $0.id < $1.id })
|
|
}
|
|
|
|
func getTrashEvents() -> [TrashEvent] {
|
|
return self.trashEvents
|
|
}
|
|
}
|