diff --git a/Modules/Sources/Browse/Logic/Models/File.swift b/Modules/Sources/Browse/Logic/Models/File.swift new file mode 100644 index 0000000..e4a5cf3 --- /dev/null +++ b/Modules/Sources/Browse/Logic/Models/File.swift @@ -0,0 +1,30 @@ +// +// File.swift +// Browse +// +// Created by Javier Cicchelli on 13/12/2022. +// Copyright © 2022 Röck+Cöde. All rights reserved. +// + +struct File { + + // MARK: Properties + + public let id: String + public let name: String + + // MARK: Initialisers + + public init( + id: String, + name: String + ) { + self.id = id + self.name = name + } + +} + +// MARK: - ModelIdentifiable + +extension File: ModelIdentifiable {} diff --git a/Modules/Sources/Browse/UI/Models/Folder.swift b/Modules/Sources/Browse/Logic/Models/Folder.swift similarity index 67% rename from Modules/Sources/Browse/UI/Models/Folder.swift rename to Modules/Sources/Browse/Logic/Models/Folder.swift index 1c2596b..55054ef 100644 --- a/Modules/Sources/Browse/UI/Models/Folder.swift +++ b/Modules/Sources/Browse/Logic/Models/Folder.swift @@ -16,11 +16,15 @@ public struct Folder { // MARK: Initialisers public init( - id: String? = nil, - name: String? = nil + id: String, + name: String ) { - self.id = id ?? "-" - self.name = name ?? "-" + self.id = id + self.name = name } } + +// MARK: - ModelIdentifiable + +extension Folder: ModelIdentifiable {} diff --git a/Modules/Sources/Browse/Logic/Protocols/Model.swift b/Modules/Sources/Browse/Logic/Protocols/Model.swift new file mode 100644 index 0000000..30accae --- /dev/null +++ b/Modules/Sources/Browse/Logic/Protocols/Model.swift @@ -0,0 +1,16 @@ +// +// Model.swift +// Browse +// +// Created by Javier Cicchelli on 13/12/2022. +// Copyright © 2022 Röck+Cöde. All rights reserved. +// + +protocol Model { + var id: String { get } + var name: String { get } +} + +// MARK: - Type aliases + +typealias ModelIdentifiable = Model & Identifiable