From 0509bac926549167c184d66f2381aa7830423c32 Mon Sep 17 00:00:00 2001 From: eemdeeks Date: Sat, 20 Jan 2024 20:09:28 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20Domain=20=EC=84=A0=EC=88=98=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20=EA=B8=B0=EB=8A=A5(#128)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Projects/Domain/Sources/Entity/Player.swift | 8 +++++++- Projects/Domain/Sources/Entity/Team.swift | 4 +++- .../Repositories/TeamDBRepositoryInterface.swift | 2 ++ .../Sources/UseCase/Player/PlayerUseCase.swift | 16 +++++++++++----- .../Sources/UseCase/Team/FetchTeamUseCase.swift | 7 ++++++- 5 files changed, 29 insertions(+), 8 deletions(-) diff --git a/Projects/Domain/Sources/Entity/Player.swift b/Projects/Domain/Sources/Entity/Player.swift index 4d46812..13f8b84 100644 --- a/Projects/Domain/Sources/Entity/Player.swift +++ b/Projects/Domain/Sources/Entity/Player.swift @@ -8,8 +8,14 @@ import Foundation -public struct Player { +public struct Player: Identifiable { public let id: UUID public var name: String public var backNumber: Int + + public init(id: UUID, name: String, backNumber: Int) { + self.id = id + self.name = name + self.backNumber = backNumber + } } diff --git a/Projects/Domain/Sources/Entity/Team.swift b/Projects/Domain/Sources/Entity/Team.swift index 33bc507..3eca013 100644 --- a/Projects/Domain/Sources/Entity/Team.swift +++ b/Projects/Domain/Sources/Entity/Team.swift @@ -11,9 +11,11 @@ import Foundation public struct Team: Identifiable { public let id: UUID public var name: String + public var members: [Player] - public init(id: UUID, name: String) { + public init(id: UUID, name: String, members: [Player]) { self.id = id self.name = name + self.members = members } } diff --git a/Projects/Domain/Sources/Repositories/TeamDBRepositoryInterface.swift b/Projects/Domain/Sources/Repositories/TeamDBRepositoryInterface.swift index fc1462f..50dc677 100644 --- a/Projects/Domain/Sources/Repositories/TeamDBRepositoryInterface.swift +++ b/Projects/Domain/Sources/Repositories/TeamDBRepositoryInterface.swift @@ -13,4 +13,6 @@ public protocol TeamDBRepositoryInterface { func load() -> [Team] func save(name: String) + + func addPlayer(player: Player) } diff --git a/Projects/Domain/Sources/UseCase/Player/PlayerUseCase.swift b/Projects/Domain/Sources/UseCase/Player/PlayerUseCase.swift index 16c2381..0e48729 100644 --- a/Projects/Domain/Sources/UseCase/Player/PlayerUseCase.swift +++ b/Projects/Domain/Sources/UseCase/Player/PlayerUseCase.swift @@ -8,12 +8,18 @@ import Foundation -protocol PlayerUseCase { - func addPlayer(name: String, backNumber: Int) -> Player +public protocol PlayerUseCase { + func addPlayer(name: String, backNumber: Int) } -class PlayerSelectionUseCase: PlayerUseCase { - func addPlayer(name: String, backNumber: Int) -> Player { - Player(id: UUID(), name: name, backNumber: backNumber) +public class PlayerSelectionUseCase: PlayerUseCase { + private let teamDBRepository: TeamDBRepositoryInterface + + public init(teamDBRepository: TeamDBRepositoryInterface) { + self.teamDBRepository = teamDBRepository + } + + public func addPlayer(name: String, backNumber: Int) { + teamDBRepository.addPlayer(player: Player(id: UUID(), name: name, backNumber: backNumber)) } } diff --git a/Projects/Domain/Sources/UseCase/Team/FetchTeamUseCase.swift b/Projects/Domain/Sources/UseCase/Team/FetchTeamUseCase.swift index e7a6a0a..9802f61 100644 --- a/Projects/Domain/Sources/UseCase/Team/FetchTeamUseCase.swift +++ b/Projects/Domain/Sources/UseCase/Team/FetchTeamUseCase.swift @@ -10,11 +10,12 @@ import Foundation public protocol FetchTeamUseCase { func excute() -> [Team] + func getDB() -> TeamDBRepositoryInterface } public final class DefaultFetchTeamUseCase: FetchTeamUseCase { - private let teamDBRepository: TeamDBRepositoryInterface + public let teamDBRepository: TeamDBRepositoryInterface public init(teamDBRepository: TeamDBRepositoryInterface) { self.teamDBRepository = teamDBRepository @@ -23,4 +24,8 @@ public final class DefaultFetchTeamUseCase: FetchTeamUseCase { public func excute() -> [Team] { teamDBRepository.load() } + + public func getDB() -> TeamDBRepositoryInterface{ + return self.teamDBRepository + } }