Files
TrashBack/TrashTrack/TrashModel.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
}
}