// // DataModels.swift // Nextcloud Cookbook iOS Client // // Created by Vincent Meilinger on 15.09.23. // import Foundation import SwiftUI struct Category: Codable { let name: String let recipe_count: Int private enum CodingKeys: String, CodingKey { case name, recipe_count } } extension Category: Identifiable, Hashable { var id: String { name } static func == (lhs: Category, rhs: Category) -> Bool { lhs.name == rhs.name } func hash(into hasher: inout Hasher) { hasher.combine(name) } } // MARK: - Login flow struct LoginV2Request: Codable { let poll: LoginV2Poll let login: String } struct LoginV2Poll: Codable { let token: String let endpoint: String } struct LoginV2Response: Codable { let server: String let loginName: String let appPassword: String } struct LoginValidation: Codable { let ocs: Ocs } struct Ocs: Codable { let meta: MetaData } struct MetaData: Codable { let status: String let statuscode: Int }