Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
87f6a01
chore: Font, Image, Icon 리소스 추가
kangddong Feb 12, 2026
074a82d
docs: 클코 문서 업데이트
kangddong Feb 12, 2026
b0cd60e
feat: 삼립 호빵체, lineheight 적용
kangddong Feb 12, 2026
707e49d
tuist: 의존성 추가 및 ProjectDescriptionHelpers 를 통한 리팩토링
kangddong Feb 12, 2026
8962c2f
chore: 구현되지 않은 모듈의 View, Feature placeholder 추가
kangddong Feb 12, 2026
1ebe01f
Merge branch 'develop' into feature/14-mypage
kangddong Feb 13, 2026
fd4ff2a
chore(tuist): tuist 헬퍼 리팩토링
kangddong Feb 14, 2026
fd610ee
feat: TypoStyle -> TypoToken /TypoSemantic으로 분리
kangddong Feb 14, 2026
04d71cf
feat: 커스텀 얼럿 화면 기능 개발
kangddong Feb 14, 2026
7b9f3f9
feat: 도리 토스트 기능 개발
kangddong Feb 14, 2026
d1dd865
fix: 누락 된 에러 케이스 추가
kangddong Feb 14, 2026
b5c49aa
Merge branch 'develop' into feature/19-dori-list
kangddong Feb 19, 2026
b8b6dd3
Merge branch 'develop' into feature/19-dori-list
kangddong Feb 20, 2026
6498046
chore(core): Add/Edit/List 공용 도메인 모델을 Core로 정리
kangddong Feb 23, 2026
2314ab1
chore(design-system): Add/Edit/List 공용 컴포넌트를 디자인시스템으로 이관
kangddong Feb 23, 2026
710c533
chore(design-system): 리스트/Add/Edit 공용 리소스 에셋 추가
kangddong Feb 23, 2026
61e883d
feat(infra-network): 리스트/상세/삭제 API 요청과 응답 스펙 추가
kangddong Feb 23, 2026
10a539e
feat(feature-history): 도리 리스트와 파트너 상세 플로우 구현
kangddong Feb 23, 2026
120ff23
fix(feature-adddori): Add/Edit 백그라운드 버그와 상태 복원 문제 수정
kangddong Feb 23, 2026
2ea2bb1
feat(app): 히스토리 API 의존성 주입과 탭 라우팅 연결
kangddong Feb 23, 2026
56e482e
chore(tuist): 피처 의존성과 빌드 설정 정리
kangddong Feb 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Projects/App/Sources/AppFeature.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import FeatureOnboarding
@Reducer
struct AppFeature {
@ObservableState
struct State: Equatable {
struct State {
enum Route: Equatable {
case splash
case intro
Expand All @@ -25,7 +25,7 @@ struct AppFeature {
var mainTab = MainTabFeature.State()
}

enum Action: Equatable {
enum Action {
case splash(SplashFeature.Action)
case intro(IntroFeature.Action)
case mainTab(MainTabFeature.Action)
Expand Down
5 changes: 4 additions & 1 deletion Projects/App/Sources/DoriApp.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import DoriNetworkImpl
import FeatureMyPage
import FeatureOnboarding
import FeatureAddDori
import FeatureHistory
import PlatformKakaoAuth
import PlatformKeychain

Expand Down Expand Up @@ -46,7 +47,9 @@ struct DoriApp: App {
)

$0.addDoriAPIClient = .live(networkService: networkService)


$0.historyAPIClient = .live(networkService: networkService)

$0.myPageAPIClient = .live(
networkService: networkService,
tokenStore: tokenStore
Expand Down
6 changes: 3 additions & 3 deletions Projects/App/Sources/MainTabView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import FeatureMyPage
@Reducer
struct MainTabFeature {
@ObservableState
struct State: Equatable {
struct State {
var selectedTab: Tab = .calendar
var calendar = CalendarFeature.State()
var history = HistoryFeature.State()
Expand All @@ -25,13 +25,13 @@ struct MainTabFeature {
}
}

enum Action: Equatable {
enum Action {
case tabSelected(State.Tab)
case calendar(CalendarFeature.Action)
case history(HistoryFeature.Action)
case myPage(MyPageFeature.Action)
case delegate(Delegate)

enum Delegate: Equatable {
case needsAuthentication
}
Expand Down
25 changes: 10 additions & 15 deletions Projects/Core/DoriCore/Sources/Models/DoriDomain.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,28 +8,30 @@

import Foundation

public struct Dori: Equatable, Sendable {
public struct Dori: Identifiable, Equatable, Hashable, Sendable {
public var id: Int64 { doriId }

public let doriId: Int64
public let userId: Int64
public let partnerId: Int64
public let direction: Direction
public let direction: TransactionType
public let partnerName: String
public let relationship: Relationship
public let eventType: EventType
public let relationship: String
public let eventType: String
public let amount: Int32
public let eventDate: String
public let isVisited: Bool
public let memo: String
public let createdAt: String

public init(
doriId: Int64,
userId: Int64,
partnerId: Int64,
direction: Direction,
direction: TransactionType,
partnerName: String,
relationship: Relationship,
eventType: EventType,
relationship: String,
eventType: String,
amount: Int32,
eventDate: String,
isVisited: Bool,
Expand All @@ -50,10 +52,3 @@ public struct Dori: Equatable, Sendable {
self.createdAt = createdAt
}
}

public extension Dori {
enum Direction: String, Equatable, Sendable {
case `in` = "IN"
case out = "OUT"
}
}
71 changes: 71 additions & 0 deletions Projects/Core/DoriCore/Sources/Models/DoriInput.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
//
// DoriInput.swift
// Dori-iOS
//
// Created by 강동영 on 2/23/26.
//

import Foundation

// MARK: - 생성 요청용

public struct DoriPostInput: Equatable, Sendable {
public let partnerId: Int64?
public let direction: TransactionType
public let partnerName: String
public let relationship: String
public let eventType: String
public let amount: Int32
public let eventDate: String
public let isVisited: Bool
public let memo: String?

public init(
partnerId: Int64? = nil,
direction: TransactionType,
partnerName: String,
relationship: String,
eventType: String,
amount: Int32,
eventDate: String,
isVisited: Bool,
memo: String? = nil
) {
self.partnerId = partnerId
self.direction = direction
self.partnerName = partnerName
self.relationship = relationship
self.eventType = eventType
self.amount = amount
self.eventDate = eventDate
self.isVisited = isVisited
self.memo = memo
}
}

// MARK: - 수정 요청용

public struct DoriUpdateInput: Equatable, Sendable {
public let direction: TransactionType?
public let eventType: String?
public let amount: Int32?
public let eventDate: String?
public let isVisited: Bool?
public let memo: String?

public init(
direction: TransactionType? = nil,
eventType: String? = nil,
amount: Int32? = nil,
eventDate: String? = nil,
isVisited: Bool? = nil,
memo: String? = nil
) {
self.direction = direction
self.eventType = eventType
self.amount = amount
self.eventDate = eventDate
self.isVisited = isVisited
self.memo = memo
}
}
39 changes: 39 additions & 0 deletions Projects/Core/DoriCore/Sources/Models/PartnerDoriList.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
//
// PartnerDoriList.swift
// Dori-iOS
//
// Created by 강동영 on 2/23/26.
//

import Foundation

public struct PartnerDoriList: Equatable, Sendable {
public let userId: Int64
public let partnerId: Int64
public let partnerName: String
public let relationship: String
public let inDoriTotalAmount: Int64
public let inDoriList: [Dori]
public let outDoriTotalAmount: Int64
public let outDoriList: [Dori]

public init(
userId: Int64,
partnerId: Int64,
partnerName: String,
relationship: String,
inDoriTotalAmount: Int64,
inDoriList: [Dori],
outDoriTotalAmount: Int64,
outDoriList: [Dori]
) {
self.userId = userId
self.partnerId = partnerId
self.partnerName = partnerName
self.relationship = relationship
self.inDoriTotalAmount = inDoriTotalAmount
self.inDoriList = inDoriList
self.outDoriTotalAmount = outDoriTotalAmount
self.outDoriList = outDoriList
}
}
35 changes: 35 additions & 0 deletions Projects/Core/DoriCore/Sources/Models/PartnerSummary.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
//
// PartnerSummary.swift
// Dori-iOS
//
// Created by 강동영 on 2/23/26.
//

import Foundation

public struct PartnerSummary: Identifiable, Equatable, Hashable, Sendable {
public var id: Int64 { partnerId }

public let partnerId: Int64
public let partnerName: String
public let relationship: String
public let recentDoriList: [Dori]
public let inDoriTotalAmount: Int64
public let outDoriTotalAmount: Int64

public init(
partnerId: Int64,
partnerName: String,
relationship: String,
recentDoriList: [Dori],
inDoriTotalAmount: Int64,
outDoriTotalAmount: Int64
) {
self.partnerId = partnerId
self.partnerName = partnerName
self.relationship = relationship
self.recentDoriList = recentDoriList
self.inDoriTotalAmount = inDoriTotalAmount
self.outDoriTotalAmount = outDoriTotalAmount
}
}
13 changes: 11 additions & 2 deletions Projects/Core/DoriCore/Sources/Models/TransactionType.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,17 @@
import Foundation

public enum TransactionType: String, CaseIterable, Codable, Equatable, Sendable, Hashable, Identifiable {
case given = "주도리"
case received = "받도리"
case judori = "OUT"
case baddori = "IN"

public var id: String { rawValue }

public var displayName: String {
switch self {
case .judori:
"주도리"
case .baddori:
"받도리"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public enum Visited: String, CaseIterable, Hashable, Sendable {
case yes = "예"
case no = "아니오"

var boolValue: Bool {
public var boolValue: Bool {
switch self {
case .yes: return true
case .no: return false
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "baddori_birthday.svg",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "baddori_etc.svg",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading