diff --git a/Attendance/Projects/Core/Networking/Model/Sources/Event/AttendanceType.swift b/Attendance/Projects/Core/Networking/Model/Sources/Event/AttendanceType.swift
index 14e4383..fae2129 100644
--- a/Attendance/Projects/Core/Networking/Model/Sources/Event/AttendanceType.swift
+++ b/Attendance/Projects/Core/Networking/Model/Sources/Event/AttendanceType.swift
@@ -35,5 +35,37 @@ public enum AttendanceType: String, Codable {
return "NONE"
}
}
+
+ public var koreanDesc: String {
+ switch self {
+ case .present:
+ return "출석"
+ case .absent:
+ return "결석"
+ case .late:
+ return "지각"
+ case .run:
+ return "탈주"
+
+ default:
+ return ""
+
+ }
+ }
+
+ public var imageDesc: String {
+ switch self {
+ case .present:
+ return "Present_icons"
+ case .absent:
+ return "Abesent_icons"
+ case .late:
+ return "Late_icons"
+
+ default:
+ return "Present_icons"
+
+ }
+ }
}
diff --git a/Attendance/Projects/Core/Networking/Model/Sources/SignUp/MemberType/SelectPart.swift b/Attendance/Projects/Core/Networking/Model/Sources/SignUp/MemberType/SelectPart.swift
index 615189c..0278625 100644
--- a/Attendance/Projects/Core/Networking/Model/Sources/SignUp/MemberType/SelectPart.swift
+++ b/Attendance/Projects/Core/Networking/Model/Sources/SignUp/MemberType/SelectPart.swift
@@ -37,10 +37,8 @@ public enum SelectPart: String, CaseIterable, Codable, Equatable {
public var attendanceListDesc: String {
switch self {
- case .all:
- return "전체"
case .pm:
- return "PM"
+ return "Product Manager"
case .design:
return "Designer"
case .android:
@@ -48,9 +46,11 @@ public enum SelectPart: String, CaseIterable, Codable, Equatable {
case .iOS:
return "iOS"
case .web:
- return "FE"
+ return "Frontend"
case .server:
- return "BE"
+ return "Backend"
+ default:
+ return ""
}
}
diff --git a/Attendance/Projects/Core/Networking/Model/Sources/SignUp/MemberType/SelectTeam.swift b/Attendance/Projects/Core/Networking/Model/Sources/SignUp/MemberType/SelectTeam.swift
index 9701b0a..82ad71d 100644
--- a/Attendance/Projects/Core/Networking/Model/Sources/SignUp/MemberType/SelectTeam.swift
+++ b/Attendance/Projects/Core/Networking/Model/Sources/SignUp/MemberType/SelectTeam.swift
@@ -126,4 +126,24 @@ public enum SelectTeam: String, CaseIterable, Codable {
public var isDescEqualToAttendanceListDesc: Bool {
return desc == attendanceListDesc
}
+
+ public var attandanceCardDesc: String {
+ switch self {
+ case .web1:
+ return "Web1팀"
+ case .web2:
+ return "Web2팀"
+ case .and1:
+ return "Android1팀"
+ case .and2:
+ return "Android2팀"
+ case .ios1:
+ return "iOS1팀"
+ case .ios2:
+ return "iOS2팀"
+ default:
+ return ""
+ } }
+
+
}
diff --git a/Attendance/Projects/Presentation/Presentation/Sources/CoreMember/AttandanceCheck/View/AttandanceCheckView.swift b/Attendance/Projects/Presentation/Presentation/Sources/CoreMember/AttandanceCheck/View/AttandanceCheckView.swift
index c9f21f6..566712e 100644
--- a/Attendance/Projects/Presentation/Presentation/Sources/CoreMember/AttandanceCheck/View/AttandanceCheckView.swift
+++ b/Attendance/Projects/Presentation/Presentation/Sources/CoreMember/AttandanceCheck/View/AttandanceCheckView.swift
@@ -20,6 +20,9 @@ struct AttandanceCheckView: View {
selectPartType()
+
+ AttendanceCheckStatusCard(attandanceType: .present, selectPart: .design, selectTeam: store.selectPart ?? .ios1, name: "김디디")
+ .padding(.horizontal, 24)
}
}
}
diff --git a/Attendance/Projects/Shared/DesignSystem/Resources/ImageAssets.xcassets/Attandance/Abesent_icons.imageset/Abesent_icons.svg b/Attendance/Projects/Shared/DesignSystem/Resources/ImageAssets.xcassets/Attandance/Abesent_icons.imageset/Abesent_icons.svg
new file mode 100644
index 0000000..214cbd0
--- /dev/null
+++ b/Attendance/Projects/Shared/DesignSystem/Resources/ImageAssets.xcassets/Attandance/Abesent_icons.imageset/Abesent_icons.svg
@@ -0,0 +1,16 @@
+
diff --git a/Attendance/Projects/Shared/DesignSystem/Resources/ImageAssets.xcassets/Attandance/Abesent_icons.imageset/Contents.json b/Attendance/Projects/Shared/DesignSystem/Resources/ImageAssets.xcassets/Attandance/Abesent_icons.imageset/Contents.json
new file mode 100644
index 0000000..12027fc
--- /dev/null
+++ b/Attendance/Projects/Shared/DesignSystem/Resources/ImageAssets.xcassets/Attandance/Abesent_icons.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "Abesent_icons.svg",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Attendance/Projects/Shared/DesignSystem/Resources/ImageAssets.xcassets/Attandance/Contents.json b/Attendance/Projects/Shared/DesignSystem/Resources/ImageAssets.xcassets/Attandance/Contents.json
new file mode 100644
index 0000000..73c0059
--- /dev/null
+++ b/Attendance/Projects/Shared/DesignSystem/Resources/ImageAssets.xcassets/Attandance/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Attendance/Projects/Shared/DesignSystem/Resources/ImageAssets.xcassets/Attandance/Late_icons.imageset/Contents.json b/Attendance/Projects/Shared/DesignSystem/Resources/ImageAssets.xcassets/Attandance/Late_icons.imageset/Contents.json
new file mode 100644
index 0000000..3d6d243
--- /dev/null
+++ b/Attendance/Projects/Shared/DesignSystem/Resources/ImageAssets.xcassets/Attandance/Late_icons.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "Late_icons.svg",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Attendance/Projects/Shared/DesignSystem/Resources/ImageAssets.xcassets/Attandance/Late_icons.imageset/Late_icons.svg b/Attendance/Projects/Shared/DesignSystem/Resources/ImageAssets.xcassets/Attandance/Late_icons.imageset/Late_icons.svg
new file mode 100644
index 0000000..686af34
--- /dev/null
+++ b/Attendance/Projects/Shared/DesignSystem/Resources/ImageAssets.xcassets/Attandance/Late_icons.imageset/Late_icons.svg
@@ -0,0 +1,5 @@
+
diff --git a/Attendance/Projects/Shared/DesignSystem/Resources/ImageAssets.xcassets/Attandance/Present_icons.imageset/Contents.json b/Attendance/Projects/Shared/DesignSystem/Resources/ImageAssets.xcassets/Attandance/Present_icons.imageset/Contents.json
new file mode 100644
index 0000000..78b7013
--- /dev/null
+++ b/Attendance/Projects/Shared/DesignSystem/Resources/ImageAssets.xcassets/Attandance/Present_icons.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "Present_icons.svg",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Attendance/Projects/Shared/DesignSystem/Resources/ImageAssets.xcassets/Attandance/Present_icons.imageset/Present_icons.svg b/Attendance/Projects/Shared/DesignSystem/Resources/ImageAssets.xcassets/Attandance/Present_icons.imageset/Present_icons.svg
new file mode 100644
index 0000000..e99f896
--- /dev/null
+++ b/Attendance/Projects/Shared/DesignSystem/Resources/ImageAssets.xcassets/Attandance/Present_icons.imageset/Present_icons.svg
@@ -0,0 +1,9 @@
+
diff --git a/Attendance/Projects/Shared/DesignSystem/Sources/Image/ImageAsset.swift b/Attendance/Projects/Shared/DesignSystem/Sources/Image/ImageAsset.swift
index f7ec89c..58c89a5 100644
--- a/Attendance/Projects/Shared/DesignSystem/Sources/Image/ImageAsset.swift
+++ b/Attendance/Projects/Shared/DesignSystem/Sources/Image/ImageAsset.swift
@@ -43,4 +43,10 @@ public enum ImageAsset: String {
// MARK: - 멤버 출석 현황
case danger
+
+
+ //MARK: - attandance
+ case Abesent_icons
+ case Late_icons
+ case Present_icons
}
diff --git a/Attendance/Projects/Shared/DesignSystem/Sources/UI/Card/AttendanceCheckStatusCard.swift b/Attendance/Projects/Shared/DesignSystem/Sources/UI/Card/AttendanceCheckStatusCard.swift
new file mode 100644
index 0000000..14e04e6
--- /dev/null
+++ b/Attendance/Projects/Shared/DesignSystem/Sources/UI/Card/AttendanceCheckStatusCard.swift
@@ -0,0 +1,77 @@
+//
+// AttendanceCheckStatusCard.swift
+// DesignSystem
+//
+// Created by Wonji Suh on 1/27/25.
+//
+
+import SwiftUI
+import Model
+
+public struct AttendanceCheckStatusCard: View {
+ private let attandanceType: AttendanceType
+ private let selectPart: SelectPart
+ private let selectTeam: SelectTeam
+ private let name: String
+
+ public init(
+ attandanceType: AttendanceType,
+ selectPart: SelectPart,
+ selectTeam: SelectTeam,
+ name: String
+ ) {
+ self.attandanceType = attandanceType
+ self.selectPart = selectPart
+ self.selectTeam = selectTeam
+ self.name = name
+ }
+
+ public var body: some View {
+ VStack {
+ VStack(spacing: .zero) {
+ Spacer()
+ .frame(height: 16)
+
+ HStack {
+ VStack(alignment: .leading, spacing: .zero) {
+ HStack {
+ Text(name)
+ .pretendardCustomFont(textStyle: .title3NormalBold)
+ .foregroundStyle(.staticWhite)
+ Spacer()
+ }
+
+ Text("\(selectTeam.attandanceCardDesc) / \(selectPart.attendanceListDesc) ")
+ .pretendardCustomFont(textStyle: .body2NormalBold)
+ .foregroundStyle(.staticWhite)
+ }
+
+ Spacer()
+
+ HStack(spacing: .zero) {
+ Text(attandanceType.koreanDesc)
+ .pretendardCustomFont(textStyle: .body2NormalMedium)
+ .foregroundStyle(.staticWhite)
+
+ Spacer()
+ .frame(width: 12)
+
+ Image(assetName: attandanceType.imageDesc)
+ .resizable()
+ .scaledToFit()
+ .frame(width: 24, height: 24)
+ }
+
+ }
+
+
+ Spacer()
+ .frame(height: 16)
+ }
+ .padding(.horizontal, 20)
+ }
+ .background(.borderInverse)
+ .frame(height: 84)
+ .cornerRadius(15)
+ }
+}