From 56ed83da4ce4c1349bdf89bfa6287c0a9d196f07 Mon Sep 17 00:00:00 2001 From: Park Seo Yeon Date: Fri, 7 Feb 2025 21:42:13 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[Chore]=20tuist=20graph=20=EC=97=85?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Home/Trainer/TrainerHomeView.swift | 8 ++++++-- TnT/Projects/TnTApp/Sources/ContentView.swift | 14 +++++++++++++- TnT/graph.png | Bin 23196 -> 39556 bytes 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/TnT/Projects/Presentation/Sources/Home/Trainer/TrainerHomeView.swift b/TnT/Projects/Presentation/Sources/Home/Trainer/TrainerHomeView.swift index ff92de21..41596a23 100644 --- a/TnT/Projects/Presentation/Sources/Home/Trainer/TrainerHomeView.swift +++ b/TnT/Projects/Presentation/Sources/Home/Trainer/TrainerHomeView.swift @@ -114,6 +114,8 @@ public struct TrainerHomeView: View { ForEach(record.lessons, id: \.id) { record in SessionCellView(session: record) { send(.tapSessionCompleted(id: record.ptLessonId)) + } onTap: { + // TODO: - 트레이너 기록 추가 } } } else { @@ -131,9 +133,10 @@ public struct TrainerHomeView: View { .frame(width: 126, height: 58) .overlay { HStack(spacing: 4) { - Image(.icnPlusEmpty) + Image(.icnPlus) .resizable() .frame(width: 24, height: 24) + .tint(Color.common0) Text("수업추가") .typographyStyle(.body1Medium, with: .neutral50) } @@ -215,6 +218,7 @@ extension TrainerHomeView { struct SessionCellView: View { var session: SessonEntity var onTapComplete: () -> Void + var onTap: (() -> Void)? var body: some View { HStack(spacing: 20) { @@ -237,7 +241,7 @@ extension TrainerHomeView { if session.isCompleted { Button { - // + onTap?() } label: { HStack(spacing: 4) { Image(.icnWriteWhite) diff --git a/TnT/Projects/TnTApp/Sources/ContentView.swift b/TnT/Projects/TnTApp/Sources/ContentView.swift index 3e3f4b1a..9aea7678 100644 --- a/TnT/Projects/TnTApp/Sources/ContentView.swift +++ b/TnT/Projects/TnTApp/Sources/ContentView.swift @@ -12,7 +12,19 @@ import ComposableArchitecture struct ContentView: View { var body: some View { - Text("") + TrainerHomeView(store: Store(initialState: TrainerHomeFeature.State(), reducer: { + TrainerHomeFeature() + })) +// TrainerMypageView(store: Store(initialState: TrainerMypageFeature.State( +// userName: "홍길동", +// userImageUrl: nil, +// studentCount: 10, +// oldStudentCount: 5, +// appPushNotificationAllowed: true, +// versionInfo: "1.0.0" +// ), reducer: { +// TrainerMypageFeature() +// })) } } diff --git a/TnT/graph.png b/TnT/graph.png index 4f816f5ff9c46ff0bdc34d3d8869c3a99a141ada..f4309e4d2eb4345dc0daeff10ed713cf304aa61a 100644 GIT binary patch literal 39556 zcma&OWmH^Q7cCm11cC(!4#C~s6M}1y;1b;3JqhkoXmE$%?hZi;3GVLhZf{qA@7^)q zzt`OvJ!q=V*|yf2YtFel=&P(45&|y5vuDqcB*cXko;`zufIp4!ufczLz2?FL`#&Fn;>H&xxx5p#W;# zU%cj(!HedSJ$LF*(JVA#U(`$-iz0$g@WjGNr;P=38!-OnXpMF!V}L{ z(Z)&mknGI9+2ngcMTb$0SxDz+IQ&JM;;RaU5d27-R*m%O*;yi!u8>yLOaC^!xpwGM z^o)95w8!<wjQFP4n(1hSa>hq;{8J~~{ zUJInqrQ}`k)DxXneqS+WA*1p&ac1ylp9<~K-G7HDYPykW+*Z2u6OvR7fhYFu?jtxB zf+zkh(=QAbwo(GDh_49;H9A=CL5ly+D#rw&3I!TLSis9hEEK@f{NFFJ@02&IC`BTj z@Z#wV4I=u>GCy6`cp|MGJ)7I~HidmK_ePB3?cK7E81Wv4Qp|X>=Z)3$^;@Ob&nq_# zM8{H3rjG}vfA%I9uJkKg>AoC$B2aXGWu zN7!M}ID?WIz*GG$OI-Z2w`i31b2#mF7F>mF=V|=+wY>B(?YT=YXAe$?9VGkI0{5o? z6vkF7SsITk*@Y#!t~O)2_Q}#+7Og=RFso;Z@9ee0ignt(u|C^cY2nxgi(P##%y`pS0m9r~IMCch3YKoELidJ#{w<9be@Y_hsqQ&%mKj#;l2d9C}!d%lpp{6J-BwH(w;;p~mE-jbj;d4^2h_g#GhY$gdA(!mVl&BY~k=UdQ_-9@uMPuB_BZ`>>wP<9Jv7F&qgX9)N_ z7@A9alXh#GPbWeIRn!n%alD(nk162^UuIc1|L-w%(q3wB)9C)(x$pmNa2J2{P%3lg z-&a$)x_aV&u{AuIvNhdYbJ)A)J^V>Rd#t9`i@NFYSu!`m5*?gRi*B5LYsVrH9)m{0 zS^6HRIRR!J5F2yq0a_3>ZarduQ?p&eh0J_3&1r z$)EJxiW?}1#%Hq{iQ83dpc8PpS3SlBKz@H)j64WFN>;V)rV^p@x0ZB;At$ z7Qal0|3Bh)^L)$oFL(wLgoQc&i^fV8Q#Zfhjl)+i*AVC-rnXt z?}gwi8}p@$OviF%q|*da6!T<9vcyo#d+LpnI4t!Z?{6@$u+HY~hnc+}JuECOiwUIQ zi3f5;V*83~7bWH8(RiH?tDItt3QJ0i`l893PWx%kcg6z11QXhQ-e~Z~ftibh)U(x< zl|{-Vao8?-Ua9d0OK|bj=s_fBs`{q58o)9=WXA}%F0fL>)9dr z{o=OYjEs)%s4^X^+e&p$5b)&L8cL~jVgnxz`XEp728D1P)UtW^qh|00Wo>Qk`>WO` z!>JOj?3^654t0%)LKq4O{k!^c=IPx|gPUR;fBU9xK?l!4bUv%4}&&p5(ufrUmFEHibsq}|=!^R_(%U^JKujm}$nX9yrlY#?POUkbsS|Y9`zhPM}s}frH0kvAo>w zQ{^ee;<$EDs6AsJr+ z-eX}IAE*k!!>N`_gCo&*P`eZ^nNtBi+|$<=w7qSDOu*yY+{_PoA1eK?Z~g1j z<@#jgK3v?QwF|2UAFynDP9Qc>Vz(Zx35ZUw{Ap^(cTTDqRxs1w0bQ z^5j^}C+Vb)8f5TTjoyK2>z}N4)2UVXg784c!!!Tyr5&sPy|lsUKvG!PH^+Hl6YPvQ z2vE^*{Jvyvdn!7*DzJ#cc*Z9zYK>0C?`#v*t_~Mw8XRetyzc1dYAi|V=t2#laec6N zSC*S3;&a*j7#~-{S*?f!i6SyNd7wzGvhHfp9f#8jzpt-vGMwDk#D`9uqEMwY*Zu17 z9X3;2bfe`IA0OW?WkgYaetsICLe_{X?{ARi%2gAw!$c=bwC1eRH1sUd(9pX6{ym*F zFP)GhtoOWgf~Aovv=6k97jKXwQ&WdRaaif9rB1L~

jFV!D37y-47)C1EulB4cD6 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

ca+VE@*9NGou7;ek8NZi%AM7GLuw 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

    hrj{<2;%+@I};{+&w%wIVkHIZ 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 N002ovPDHLkV1ha{)!G06 literal 23196 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 From a74ca2d68a3c3d69378fe3483a0eaa28471acb92 Mon Sep 17 00:00:00 2001 From: Park Seo Yeon Date: Thu, 13 Feb 2025 08:58:38 +0900 Subject: [PATCH 2/2] =?UTF-8?q?[Feat]=20=ED=8A=B8=EB=A0=88=EC=9D=B4?= =?UTF-8?q?=EB=84=88=20=EC=BA=98=EB=A6=B0=EB=8D=94=20api=20=EC=97=B0?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Calendar/TCalendarRepresentable.swift | 3 +- .../DTO/Trainer/TrainerHomeResponseDTO.swift | 76 +++++++++++++++++++ .../Home/Trainer/TrainerHomeFeature.swift | 59 +++++++++++++- .../Home/Trainer/TrainerHomeView.swift | 8 +- 4 files changed, 142 insertions(+), 4 deletions(-) diff --git a/TnT/Projects/DesignSystem/Sources/Components/Calendar/TCalendarRepresentable.swift b/TnT/Projects/DesignSystem/Sources/Components/Calendar/TCalendarRepresentable.swift index 8715c777..f67d5cb3 100644 --- a/TnT/Projects/DesignSystem/Sources/Components/Calendar/TCalendarRepresentable.swift +++ b/TnT/Projects/DesignSystem/Sources/Components/Calendar/TCalendarRepresentable.swift @@ -64,9 +64,10 @@ public struct TCalendarRepresentable: UIViewRepresentable { calendar.appearance.titleDefaultColor = .clear calendar.calendarWeekdayView.weekdayLabels[0].textColor = UIColor(.red500) + return calendar } - + public func updateUIView(_ uiView: FSCalendar, context: Context) { // `selectedDate` 반영 uiView.select(selectedDate) diff --git a/TnT/Projects/Domain/Sources/DTO/Trainer/TrainerHomeResponseDTO.swift b/TnT/Projects/Domain/Sources/DTO/Trainer/TrainerHomeResponseDTO.swift index 615efca2..dcf33eb1 100644 --- a/TnT/Projects/Domain/Sources/DTO/Trainer/TrainerHomeResponseDTO.swift +++ b/TnT/Projects/Domain/Sources/DTO/Trainer/TrainerHomeResponseDTO.swift @@ -98,3 +98,79 @@ public struct SessonEntity: Equatable, Encodable { self.isCompleted = isCompleted } } + +// mapper +// MARK: - GetDateSessionListDTO -> GetDateSessionListEntity +public extension GetDateSessionListDTO { + func toEntity() -> GetDateSessionListEntity { + return GetDateSessionListEntity( + count: self.count, + date: self.date, + lessons: self.lessons.map { $0.toEntity() } + ) + } + + // GetDateSessionListEntity -> GetDateSessionListDTO + func toDTO() -> GetDateSessionListDTO { + return GetDateSessionListDTO( + count: self.count, + date: self.date, + lessons: self.lessons.map { $0.toDTO() } + ) + } +} + +// MARK: - SessonDTO -> SessonEntity +public extension SessonDTO { + public func toEntity() -> SessonEntity { + return SessonEntity( + ptLessonId: self.ptLessonId, + traineeId: self.traineeId, + traineeName: self.traineeName, + session: self.session, + startTime: self.startTime, + endTime: self.endTime, + isCompleted: self.isCompleted + ) + } + + // SessonEntity -> SessonDTO + public func toDTO() -> SessonDTO { + return SessonDTO( + ptLessonId: self.ptLessonId, + traineeId: self.traineeId, + traineeName: self.traineeName, + session: self.session, + startTime: self.startTime, + endTime: self.endTime, + isCompleted: self.isCompleted + ) + } +} + +// MARK: - GetDateSessionListEntity -> GetDateSessionListDTO +public extension GetDateSessionListEntity { + public func toDTO() -> GetDateSessionListDTO { + return GetDateSessionListDTO( + count: self.count, + date: self.date, + lessons: self.lessons.map { $0.toDTO() } + ) + } +} + +// MARK: - SessonEntity -> SessonDTO +public extension SessonEntity { + public func toDTO() -> SessonDTO { + return SessonDTO( + ptLessonId: self.ptLessonId, + traineeId: self.traineeId, + traineeName: self.traineeName, + session: self.session, + startTime: self.startTime, + endTime: self.endTime, + isCompleted: self.isCompleted + ) + } +} + diff --git a/TnT/Projects/Presentation/Sources/Home/Trainer/TrainerHomeFeature.swift b/TnT/Projects/Presentation/Sources/Home/Trainer/TrainerHomeFeature.swift index 82328202..43a7fd70 100644 --- a/TnT/Projects/Presentation/Sources/Home/Trainer/TrainerHomeFeature.swift +++ b/TnT/Projects/Presentation/Sources/Home/Trainer/TrainerHomeFeature.swift @@ -78,6 +78,7 @@ public struct TrainerHomeFeature { } @Dependency(\.traineeUseCase) private var traineeUseCase: TraineeUseCase + @Dependency(\.trainerRepoUseCase) private var trainerRepoUseCase: TrainerRepository public enum Action: Sendable, ViewAction { /// 뷰에서 발생한 액션을 처리합니다. @@ -103,6 +104,14 @@ public struct TrainerHomeFeature { case tapPopUpConnectButton /// 화면이 표시될 때 case onAppear + /// events 타입에 맞춰서 달력 스케줄 캐수 표시 데이터 계산 + case fetchMonthlyLessons(year: Int, month: Int) + /// 달력 스케줄 캐수 표시 데이터 업데이트 + case updateEvents([Date: Int]) + /// 특정 날짜 탭 + case calendarDateTap + /// 탭한 일자 api 형태에 맞춰 변환하기(yyyy-mm-dd) + case settingSessionList(sessions: GetDateSessionListEntity) } } @@ -117,7 +126,7 @@ public struct TrainerHomeFeature { case .view(let action): switch action { case .binding(\.selectedDate): - print(state.events[state.selectedDate]) + print("state.events[state.selectedDate] \(state.events[state.selectedDate])") return .none case .binding: @@ -157,11 +166,59 @@ public struct TrainerHomeFeature { return .send(.setNavigating(.trainerMakeInvitationCodePage)) case .onAppear: + let year: Int = Calendar.current.component(.year, from: state.selectedDate) + let month: Int = Calendar.current.component(.month, from: state.selectedDate) + if let hideUntil = state.hidePopupUntil, hideUntil > Date() { state.view_isPopUpPresented = false } else { state.view_isPopUpPresented = true } + + return .send(.view(.fetchMonthlyLessons(year: year, month: month))) + + case .fetchMonthlyLessons(year: let year, month: let month): + return .run { send in + do { + let temp: GetMonthlyLessonListResDTO = try await trainerRepoUseCase.getMonthlyLessonList( + year: year, + month: month + ) + + let dateFormatter: DateFormatter = DateFormatter() + dateFormatter.dateFormat = "yyyy-MM-dd" + + var events: [Date: Int] = [:] + for lesson in temp.calendarPtLessonCounts { + if let date = dateFormatter.date(from: lesson.date) { + events[date] = lesson.count + } else { + print("Invalid date format: \(lesson.date)") + } + } + await send(.view(.updateEvents(events))) + } catch { + print("리스트 Fetching Error: \(error)") + } + } + case .updateEvents(let events): + state.events = events + return .none + + case .calendarDateTap: + let formattedDate = TDateFormatUtility.formatter(for: .yyyyMMdd).string(from: state.selectedDate) + + return .run { send in + do { + let sessionList: GetDateSessionListEntity = try await trainerRepoUseCase.getDateSessionList(date: formattedDate).toEntity() + await send(.view(.settingSessionList(sessions: sessionList))) + } catch { + print("error \(error.localizedDescription)") + } + } + + case .settingSessionList(let list): + state.tappedsessionInfo = list return .none } case .setNavigating: diff --git a/TnT/Projects/Presentation/Sources/Home/Trainer/TrainerHomeView.swift b/TnT/Projects/Presentation/Sources/Home/Trainer/TrainerHomeView.swift index 41596a23..70232296 100644 --- a/TnT/Projects/Presentation/Sources/Home/Trainer/TrainerHomeView.swift +++ b/TnT/Projects/Presentation/Sources/Home/Trainer/TrainerHomeView.swift @@ -75,11 +75,15 @@ public struct TrainerHomeView: View { currentPage: $store.view_currentPage, events: store.events ) + .onChange(of: store.state.selectedDate, { oldValue, newValue in + let startOfDay = Calendar.current.startOfDay(for: newValue) + store.selectedDate = startOfDay + store.send(.view(.calendarDateTap)) + }) .padding(.horizontal, 20) } } .padding(.vertical, 12) - } /// 수업 리스트 상단 타이틀 @@ -110,7 +114,7 @@ public struct TrainerHomeView: View { @ViewBuilder private func RecordList() -> some View { VStack { - if let record = store.tappedsessionInfo { + if let record = store.tappedsessionInfo, !record.lessons.isEmpty { ForEach(record.lessons, id: \.id) { record in SessionCellView(session: record) { send(.tapSessionCompleted(id: record.ptLessonId))