diff --git a/.gitignore b/.gitignore index a948fd1..c0a73b2 100644 --- a/.gitignore +++ b/.gitignore @@ -73,6 +73,7 @@ xcuserdata !*.xcworkspace/contents.xcworkspacedata /*.gcno **/xcshareddata/WorkspaceSettings.xcsettings -API_URL.plist +MarketPlace/API_URL.plist -MarketPlace/KakaoMapKey.xcconfig +MarketPlace/Resources/KakaoMapKey.xcconfig +MarektPlace/Resources/Font/ diff --git a/MarketPlace.xcodeproj/project.pbxproj b/MarketPlace.xcodeproj/project.pbxproj index 7b06785..bee0573 100644 --- a/MarketPlace.xcodeproj/project.pbxproj +++ b/MarketPlace.xcodeproj/project.pbxproj @@ -3,176 +3,17 @@ archiveVersion = 1; classes = { }; - objectVersion = 56; + objectVersion = 71; objects = { /* Begin PBXBuildFile section */ - 290A71AD2E026969009AEAF8 /* TopClosingCouponResDto.swift in Sources */ = {isa = PBXBuildFile; fileRef = 290A71AC2E026969009AEAF8 /* TopClosingCouponResDto.swift */; }; - 290A71AF2E027909009AEAF8 /* ShimmeringAsyncImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 290A71AE2E027909009AEAF8 /* ShimmeringAsyncImage.swift */; }; - 290A71B12E02792A009AEAF8 /* ShimmerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 290A71B02E02792A009AEAF8 /* ShimmerView.swift */; }; - 290A71B32E029F04009AEAF8 /* View+.swift in Sources */ = {isa = PBXBuildFile; fileRef = 290A71B22E029F04009AEAF8 /* View+.swift */; }; - 290A71B52E02C8AE009AEAF8 /* CouponPopupViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 290A71B42E02C8AE009AEAF8 /* CouponPopupViewModel.swift */; }; - 290D92D32DE55AD5008AC190 /* CommonMsgResDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 290D92D22DE55AD5008AC190 /* CommonMsgResDTO.swift */; }; - 290D93522DE57CDE008AC190 /* CouponInfoCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 290D93512DE57CDE008AC190 /* CouponInfoCellViewModel.swift */; }; - 290D93542DE58418008AC190 /* CouponBasicModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 290D93532DE58418008AC190 /* CouponBasicModel.swift */; }; - 293DCF142DE6CD2E000122C5 /* KakaoMapView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 293DCF132DE6CD2E000122C5 /* KakaoMapView.swift */; }; - 293DCF442DE6FE43000122C5 /* Array+.swift in Sources */ = {isa = PBXBuildFile; fileRef = 293DCF432DE6FE43000122C5 /* Array+.swift */; }; 293DCF4D2DE7449F000122C5 /* KakaoMapsSDK-SPM in Frameworks */ = {isa = PBXBuildFile; productRef = 293DCF4C2DE7449F000122C5 /* KakaoMapsSDK-SPM */; }; - 2941F76C2DE596590063CEFE /* SearchMarketViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F76B2DE596590063CEFE /* SearchMarketViewModel.swift */; }; - 2941F76E2DE597280063CEFE /* MarketSearchModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F76D2DE597280063CEFE /* MarketSearchModel.swift */; }; - 2941F77E2DE5A0350063CEFE /* CouponEndpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F76F2DE5A0350063CEFE /* CouponEndpoint.swift */; }; - 2941F77F2DE5A0350063CEFE /* Endpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F7702DE5A0350063CEFE /* Endpoint.swift */; }; - 2941F7802DE5A0350063CEFE /* MarketEndpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F7712DE5A0350063CEFE /* MarketEndpoint.swift */; }; - 2941F7812DE5A0350063CEFE /* MemberCouponEndpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F7722DE5A0350063CEFE /* MemberCouponEndpoint.swift */; }; - 2941F7822DE5A0350063CEFE /* MemberEndPoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F7732DE5A0350063CEFE /* MemberEndPoint.swift */; }; - 2941F7832DE5A0350063CEFE /* NetworkError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F7752DE5A0350063CEFE /* NetworkError.swift */; }; - 2941F7842DE5A0350063CEFE /* NetworkService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F7762DE5A0350063CEFE /* NetworkService.swift */; }; - 2941F7852DE5A0350063CEFE /* URLManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F7772DE5A0350063CEFE /* URLManager.swift */; }; - 2941F7872DE5A0350063CEFE /* KeychainManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F77A2DE5A0350063CEFE /* KeychainManager.swift */; }; - 2941F7892DE5A0350063CEFE /* NetworkResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F77C2DE5A0350063CEFE /* NetworkResult.swift */; }; - 2941F78D2DE5A28A0063CEFE /* CouponService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F78C2DE5A28A0063CEFE /* CouponService.swift */; }; - 2941F78F2DE5A2BB0063CEFE /* MarketService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F78E2DE5A2BB0063CEFE /* MarketService.swift */; }; - 2941F7912DE5A2E00063CEFE /* MemberService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F7902DE5A2E00063CEFE /* MemberService.swift */; }; - 2941F7932DE5A2FD0063CEFE /* MemberCouponService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F7922DE5A2FD0063CEFE /* MemberCouponService.swift */; }; - 2941F7952DE5A5760063CEFE /* Top20DetailViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F7942DE5A5760063CEFE /* Top20DetailViewModel.swift */; }; - 2941F7972DE5AAB50063CEFE /* NewEventViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F7962DE5AAB50063CEFE /* NewEventViewModel.swift */; }; - 2941F79B2DE5DFDB0063CEFE /* MapViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F79A2DE5DFDB0063CEFE /* MapViewModel.swift */; }; - 295948BB2E8E198100F641DC /* ViewModelable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 295948BA2E8E198100F641DC /* ViewModelable.swift */; }; - 295DCBB02DED6DC0009B5D82 /* MyPageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 295DCBAF2DED6DC0009B5D82 /* MyPageViewModel.swift */; }; - 295DCBB62DED78C0009B5D82 /* MyCouponViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 295DCBB52DED78C0009B5D82 /* MyCouponViewModel.swift */; }; - 295DCBB82DED7C92009B5D82 /* CouponStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 295DCBB72DED7C92009B5D82 /* CouponStatus.swift */; }; - 295DE7842ED4236400DB16E7 /* CheerMarketResDto.swift in Sources */ = {isa = PBXBuildFile; fileRef = 295DE7832ED4236400DB16E7 /* CheerMarketResDto.swift */; }; - 296085B72E1B88CD009CE38B /* ConvertAddress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 296085B62E1B88C9009CE38B /* ConvertAddress.swift */; }; - 296085B92E1B8EE5009CE38B /* DropdownMenuView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 296085B82E1B8EE5009CE38B /* DropdownMenuView.swift */; }; 296CF4192DE806070000F200 /* FirebaseMessaging in Frameworks */ = {isa = PBXBuildFile; productRef = 296CF4182DE806070000F200 /* FirebaseMessaging */; }; - 296D23682EF5ABA200122AD5 /* FullNoticePopUp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 296D23672EF5ABA200122AD5 /* FullNoticePopUp.swift */; }; 296D236D2EF5AC1000122AD5 /* KakaoMapsSDK-SPM in Frameworks */ = {isa = PBXBuildFile; productRef = 296D236C2EF5AC1000122AD5 /* KakaoMapsSDK-SPM */; }; 296D23702EF5ACA400122AD5 /* FirebaseAuth in Frameworks */ = {isa = PBXBuildFile; productRef = 296D236F2EF5ACA400122AD5 /* FirebaseAuth */; }; 296D23722EF5ACA400122AD5 /* FirebaseCore in Frameworks */ = {isa = PBXBuildFile; productRef = 296D23712EF5ACA400122AD5 /* FirebaseCore */; }; 296D23742EF5ACA400122AD5 /* FirebaseInAppMessaging-Beta in Frameworks */ = {isa = PBXBuildFile; productRef = 296D23732EF5ACA400122AD5 /* FirebaseInAppMessaging-Beta */; }; 296D23762EF5ACA400122AD5 /* FirebaseMessaging in Frameworks */ = {isa = PBXBuildFile; productRef = 296D23752EF5ACA400122AD5 /* FirebaseMessaging */; }; - 2976FA292DFC4B56009782D1 /* MainViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2976FA282DFC4B56009782D1 /* MainViewModel.swift */; }; - 2976FA2B2DFC4D2F009782D1 /* CouponTopModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2976FA2A2DFC4D2F009782D1 /* CouponTopModel.swift */; }; - 2976FA2F2DFC5D90009782D1 /* MainBannerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2976FA2E2DFC5D90009782D1 /* MainBannerView.swift */; }; - 29B3EBA72E03CE0D0095A310 /* UserDefaultsKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B3EBA62E03CE0D0095A310 /* UserDefaultsKeys.swift */; }; - 29B3EBA92E03CF800095A310 /* KeyChainKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B3EBA82E03CF800095A310 /* KeyChainKeys.swift */; }; - 29B3EBB42E03D94E0095A310 /* Pretendard-SemiBold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 29B3EBB22E03D94E0095A310 /* Pretendard-SemiBold.otf */; }; - 29B3EBB52E03D94E0095A310 /* Pretendard-Thin.otf in Resources */ = {isa = PBXBuildFile; fileRef = 29B3EBB32E03D94E0095A310 /* Pretendard-Thin.otf */; }; - 29B3EBB62E03D94E0095A310 /* Pretendard-Bold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 29B3EBAC2E03D94E0095A310 /* Pretendard-Bold.otf */; }; - 29B3EBB72E03D94E0095A310 /* Pretendard-ExtraLight.otf in Resources */ = {isa = PBXBuildFile; fileRef = 29B3EBAE2E03D94E0095A310 /* Pretendard-ExtraLight.otf */; }; - 29B3EBB82E03D94E0095A310 /* Pretendard-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = 29B3EBB12E03D94E0095A310 /* Pretendard-Regular.otf */; }; - 29B3EBB92E03D94E0095A310 /* Pretendard-Black.otf in Resources */ = {isa = PBXBuildFile; fileRef = 29B3EBAB2E03D94E0095A310 /* Pretendard-Black.otf */; }; - 29B3EBBA2E03D94E0095A310 /* Pretendard-Medium.otf in Resources */ = {isa = PBXBuildFile; fileRef = 29B3EBB02E03D94E0095A310 /* Pretendard-Medium.otf */; }; - 29B3EBBB2E03D94E0095A310 /* Pretendard-ExtraBold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 29B3EBAD2E03D94E0095A310 /* Pretendard-ExtraBold.otf */; }; - 29B3EBBC2E03D94E0095A310 /* Pretendard-Light.otf in Resources */ = {isa = PBXBuildFile; fileRef = 29B3EBAF2E03D94E0095A310 /* Pretendard-Light.otf */; }; - 29B3EBBE2E03DABD0095A310 /* Font+.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B3EBBD2E03DABD0095A310 /* Font+.swift */; }; - 29B3EBC02E03F3260095A310 /* CustomAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B3EBBF2E03F3260095A310 /* CustomAlertView.swift */; }; - 29B5236B2E1503DF00120AE3 /* RegisterReceiptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B5236A2E1503DF00120AE3 /* RegisterReceiptView.swift */; }; - 29B5236D2E15054300120AE3 /* ImagePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B5236C2E15054300120AE3 /* ImagePicker.swift */; }; - 29B5236F2E150C9300120AE3 /* CouponType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B5236E2E150C9300120AE3 /* CouponType.swift */; }; - 29B523732E152E0400120AE3 /* MyFavoriteMarketListViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B523722E152E0400120AE3 /* MyFavoriteMarketListViewModel.swift */; }; - 29BF18B02DE4492C00836D7E /* API_URL.plist in Resources */ = {isa = PBXBuildFile; fileRef = 29BF18AF2DE4492C00836D7E /* API_URL.plist */; }; - 29BF18BF2DE45B3900836D7E /* Category.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29BF18BE2DE45B3900836D7E /* Category.swift */; }; - 29BF18C12DE4950700836D7E /* APIResDto.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29BF18C02DE4950700836D7E /* APIResDto.swift */; }; - 29BF193A2DE4AC9600836D7E /* MainHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29BF19392DE4AC9600836D7E /* MainHeaderView.swift */; }; - 29CA0F212E54821C00EB4890 /* LoginRequiredView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CA0F202E54821C00EB4890 /* LoginRequiredView.swift */; }; - 29CA0F232E5484B100EB4890 /* MarketInfoCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CA0F222E5484B100EB4890 /* MarketInfoCellViewModel.swift */; }; - 29CC3F292E6819E5008F79F6 /* UIImage+.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CC3F282E6819E5008F79F6 /* UIImage+.swift */; }; - 29CC3F2B2E681ECD008F79F6 /* KakaoMapPoi.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CC3F2A2E681ECD008F79F6 /* KakaoMapPoi.swift */; }; - 29CF81A22EBC60920065AE9A /* KakaoMapPoiWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CF81A12EBC60920065AE9A /* KakaoMapPoiWrapper.swift */; }; - 29D11E362EC3390D001CEA92 /* KakaoAPIEndpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29D11E352EC3390D001CEA92 /* KakaoAPIEndpoint.swift */; }; - 29D19D1C2E13CC2000DEEADD /* KakaoMarketDataResDto.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29D19D1B2E13CC2000DEEADD /* KakaoMarketDataResDto.swift */; }; - 29D19D202E13E63B00DEEADD /* RequestMarketMapView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29D19D1F2E13E63B00DEEADD /* RequestMarketMapView.swift */; }; - 29D19D2D2E14234900DEEADD /* RequestMarketMapViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29D19D2C2E14234900DEEADD /* RequestMarketMapViewModel.swift */; }; - 29D53BF52DE83F82008E4F2E /* CheerViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29D53BF42DE83F82008E4F2E /* CheerViewModel.swift */; }; - 29D53BF72DE8412E008E4F2E /* CheerMarketEndpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29D53BF62DE8412E008E4F2E /* CheerMarketEndpoint.swift */; }; - 29D53BF92DE84728008E4F2E /* CheerMarketService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29D53BF82DE84728008E4F2E /* CheerMarketService.swift */; }; - 29D53BFD2DE84F5D008E4F2E /* CheerListViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29D53BFC2DE84F5D008E4F2E /* CheerListViewModel.swift */; }; - 29D87F442DE8560500CE9011 /* HotCheerCardCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29D87F432DE8560500CE9011 /* HotCheerCardCellViewModel.swift */; }; - 29D87F462DE85AC500CE9011 /* CheerCardCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29D87F452DE85AC500CE9011 /* CheerCardCellViewModel.swift */; }; - 29D87F4A2DE8629900CE9011 /* CircleCategoryTabView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29D87F492DE8629900CE9011 /* CircleCategoryTabView.swift */; }; - 29D87F832DE86D6900CE9011 /* MemberInfoModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29D87F822DE86D6900CE9011 /* MemberInfoModel.swift */; }; - 29DAD79B2E72A6780087CA53 /* CouponCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29DAD79A2E72A6780087CA53 /* CouponCategory.swift */; }; - 29E749322DEEA91100E765E0 /* MyCouponCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29E749312DEEA91100E765E0 /* MyCouponCellViewModel.swift */; }; - 29E749342DEEABFA00E765E0 /* MyCouponResDto.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29E749332DEEABFA00E765E0 /* MyCouponResDto.swift */; }; - 29E749362DEECFBA00E765E0 /* FavoriteMarketModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29E749352DEECFBA00E765E0 /* FavoriteMarketModel.swift */; }; - 29F588FB2E548EE00022EE89 /* LoginRequriedPopup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29F588FA2E548EE00022EE89 /* LoginRequriedPopup.swift */; }; - B207A25F2D54B18C0099A8DB /* MyCouponCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B207A25E2D54B18C0099A8DB /* MyCouponCell.swift */; }; - B210EC242D3D686500B1551E /* MyHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B210EC232D3D686500B1551E /* MyHeaderView.swift */; }; - B210EC282D3D797F00B1551E /* SearchHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = B210EC272D3D797F00B1551E /* SearchHeader.swift */; }; - B2122E3B2D6F7AB400BD37F8 /* MapMarketListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2122E3A2D6F7AB400BD37F8 /* MapMarketListView.swift */; }; - B2122E3D2D6F7C0000BD37F8 /* MarketResDtos.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2122E3C2D6F7C0000BD37F8 /* MarketResDtos.swift */; }; - B2122E3F2D6F7D4000BD37F8 /* MarketCategoryDetailViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2122E3E2D6F7D4000BD37F8 /* MarketCategoryDetailViewModel.swift */; }; - B215F2912DE61C8400F53C51 /* AlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B215F2902DE61C8400F53C51 /* AlertView.swift */; }; - B215F2942DE61D9600F53C51 /* AlertButtonView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B215F2932DE61D9600F53C51 /* AlertButtonView.swift */; }; - B215F2962DE6D77B00F53C51 /* AlertListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B215F2952DE6D77B00F53C51 /* AlertListView.swift */; }; - B21F3CF22D267AF900B83B34 /* MarketInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B21F3CDD2D267AF900B83B34 /* MarketInfoCell.swift */; }; - B21F3CF42D267AF900B83B34 /* CategoryDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B21F3CE02D267AF900B83B34 /* CategoryDetailView.swift */; }; - B21F3CF52D267AF900B83B34 /* MainCategoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B21F3CE22D267AF900B83B34 /* MainCategoryView.swift */; }; - B21F3CF62D267AF900B83B34 /* Top20View.swift in Sources */ = {isa = PBXBuildFile; fileRef = B21F3CE32D267AF900B83B34 /* Top20View.swift */; }; - B21F3CF72D267AF900B83B34 /* NewEventView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B21F3CE42D267AF900B83B34 /* NewEventView.swift */; }; - B21F3CF82D267AF900B83B34 /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B21F3CE62D267AF900B83B34 /* MainView.swift */; }; - B21F3CF92D267AF900B83B34 /* MyCouponView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B21F3CE82D267AF900B83B34 /* MyCouponView.swift */; }; - B21F3CFA2D267AF900B83B34 /* MyPageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B21F3CE92D267AF900B83B34 /* MyPageView.swift */; }; - B21F3CFC2D267AF900B83B34 /* MarketDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B21F3CED2D267AF900B83B34 /* MarketDetailView.swift */; }; - B21F3D012D2685F500B83B34 /* ImageTextOverlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = B21F3D002D2685F500B83B34 /* ImageTextOverlay.swift */; }; - B21F3D052D2B057000B83B34 /* Top20DetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B21F3D042D2B057000B83B34 /* Top20DetailView.swift */; }; - B21F3D072D2B066F00B83B34 /* NewEventDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B21F3D062D2B066F00B83B34 /* NewEventDetailView.swift */; }; - B21F3D092D2D57BE00B83B34 /* Color.swift in Sources */ = {isa = PBXBuildFile; fileRef = B21F3D082D2D57BE00B83B34 /* Color.swift */; }; - B22AB94C2D9B08FD006E13B4 /* CouponInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B22AB94B2D9B08FD006E13B4 /* CouponInfoCell.swift */; }; - B24272612E26537F00E3B0ED /* ReceiptModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B24272602E26537F00E3B0ED /* ReceiptModel.swift */; }; - B24272632E2657C700E3B0ED /* SubmitReceiptViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B24272622E2657C700E3B0ED /* SubmitReceiptViewModel.swift */; }; - B255A5CE2D6218A000954837 /* MarketModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B255A5CD2D6218A000954837 /* MarketModel.swift */; }; - B26F4E872E54400F00C39C37 /* NotificationModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B26F4E862E54400F00C39C37 /* NotificationModel.swift */; }; - B26F4E892E54650C00C39C37 /* NotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = B26F4E882E54650C00C39C37 /* NotificationService.swift */; }; - B26F4E8B2E57308F00C39C37 /* NotificationEndpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = B26F4E8A2E57308F00C39C37 /* NotificationEndpoint.swift */; }; - B26F4E8E2E57504C00C39C37 /* AlertViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B26F4E8D2E57504C00C39C37 /* AlertViewModel.swift */; }; - B27E56CD2D7037AF000D2881 /* CheerMarketModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B27E56CC2D7037AF000D2881 /* CheerMarketModel.swift */; }; - B27E56D32D703FBB000D2881 /* CheerCardCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B27E56D22D703FBB000D2881 /* CheerCardCell.swift */; }; - B27E56D52D704438000D2881 /* HotCheerCardCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B27E56D42D704438000D2881 /* HotCheerCardCell.swift */; }; - B28349112D2E548A00EEDB02 /* MapView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B28349102D2E548A00EEDB02 /* MapView.swift */; }; - B28349132D2E5CA800EEDB02 /* CategoryTabView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B28349122D2E5CA800EEDB02 /* CategoryTabView.swift */; }; - B28349162D2E604800EEDB02 /* ShopModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B28349152D2E604800EEDB02 /* ShopModel.swift */; }; - B28349532D2FBBD800EEDB02 /* RecentSearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B28349522D2FBBD800EEDB02 /* RecentSearchView.swift */; }; - B28349552D2FBC4B00EEDB02 /* PopularityBenefitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B28349542D2FBC4B00EEDB02 /* PopularityBenefitView.swift */; }; - B28349572D2FBD2F00EEDB02 /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B28349562D2FBD2F00EEDB02 /* SearchView.swift */; }; - B28349662D36C02C00EEDB02 /* CouponModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B28349652D36C02C00EEDB02 /* CouponModel.swift */; }; - B28889A32D4BC9370040EC3F /* CouponResDtos.swift in Sources */ = {isa = PBXBuildFile; fileRef = B28889A22D4BC9370040EC3F /* CouponResDtos.swift */; }; - B28889AA2D4BD5A50040EC3F /* CouponCategoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B28889A92D4BD5A50040EC3F /* CouponCategoryView.swift */; }; - B28889AC2D4BD5F10040EC3F /* CouponPopup.swift in Sources */ = {isa = PBXBuildFile; fileRef = B28889AB2D4BD5F10040EC3F /* CouponPopup.swift */; }; - B28889AE2D4BDC4D0040EC3F /* MembersCouponModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B28889AD2D4BDC4D0040EC3F /* MembersCouponModel.swift */; }; - B28A22A62D64B06F00E86EF6 /* MarketDetailModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B28A22A52D64B06F00E86EF6 /* MarketDetailModel.swift */; }; - B28A22A82D64B0F900E86EF6 /* MarketDetailViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B28A22A72D64B0F900E86EF6 /* MarketDetailViewModel.swift */; }; - B28A22AB2D64F1A700E86EF6 /* StoreInfoRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = B28A22AA2D64F1A700E86EF6 /* StoreInfoRow.swift */; }; - B28A22AD2D64F1C000E86EF6 /* StoreSearchButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = B28A22AC2D64F1C000E86EF6 /* StoreSearchButton.swift */; }; - B28A22AF2D64F1ED00E86EF6 /* StoreImageSlider.swift in Sources */ = {isa = PBXBuildFile; fileRef = B28A22AE2D64F1ED00E86EF6 /* StoreImageSlider.swift */; }; - B28A22B52D66636800E86EF6 /* MarketCouponListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B28A22B42D66636800E86EF6 /* MarketCouponListView.swift */; }; - B28A22BE2D666E7500E86EF6 /* CouponGetPopupView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B28A22BD2D666E7500E86EF6 /* CouponGetPopupView.swift */; }; - B28A22C02D668B0600E86EF6 /* MyFavoriteShopListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B28A22BF2D668B0600E86EF6 /* MyFavoriteShopListView.swift */; }; - B293A1522D6FDC7B003E8505 /* CheerListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B293A1512D6FDC7B003E8505 /* CheerListView.swift */; }; - B293A1542D6FDCB2003E8505 /* HotCheerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B293A1532D6FDCB2003E8505 /* HotCheerView.swift */; }; - B293A15A2D6FE0B4003E8505 /* CheerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B293A1592D6FE0B4003E8505 /* CheerView.swift */; }; - B293A15C2D6FE2A8003E8505 /* CheerSearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B293A15B2D6FE2A8003E8505 /* CheerSearchView.swift */; }; - B2A42DCF2D8B3716005FAF15 /* LoginViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2A42DCE2D8B3716005FAF15 /* LoginViewModel.swift */; }; - B2B2CFBA2EC877EC00F0F588 /* KakaoMapKey.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = B2B2CFB92EC877EC00F0F588 /* KakaoMapKey.xcconfig */; }; - B2B40B102E880009006816CD /* NotificationFilterCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2B40B0F2E880008006816CD /* NotificationFilterCategory.swift */; }; - B2C398FD2CA145CB004800DD /* MarketPlaceApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2C398FC2CA145CB004800DD /* MarketPlaceApp.swift */; }; - B2C398FF2CA145CB004800DD /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2C398FE2CA145CB004800DD /* ContentView.swift */; }; - B2C399012CA145CC004800DD /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B2C399002CA145CC004800DD /* Assets.xcassets */; }; - B2C399042CA145CC004800DD /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B2C399032CA145CC004800DD /* Preview Assets.xcassets */; }; - B2C3990E2CA145CC004800DD /* MarketPlaceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2C3990D2CA145CC004800DD /* MarketPlaceTests.swift */; }; - B2C399182CA145CC004800DD /* MarketPlaceUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2C399172CA145CC004800DD /* MarketPlaceUITests.swift */; }; - B2C3991A2CA145CC004800DD /* MarketPlaceUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2C399192CA145CC004800DD /* MarketPlaceUITestsLaunchTests.swift */; }; - B2C3992D2CA1BF7F004800DD /* CategoryButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2C3992C2CA1BF7F004800DD /* CategoryButton.swift */; }; - B2C462982D8172BE007637DC /* LoginView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2C462972D8172BE007637DC /* LoginView.swift */; }; - B2DC8CC32E03E2D000035476 /* RequestMainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2DC8CC22E03E2D000035476 /* RequestMainView.swift */; }; - B2DC8CC72E03F15600035476 /* RequestMarketViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2DC8CC62E03F15600035476 /* RequestMarketViewModel.swift */; }; - B2DC8CC92E03F2E500035476 /* MarketRequestModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2DC8CC82E03F2E500035476 /* MarketRequestModel.swift */; }; - B2DC8D162E0903FC00035476 /* CheerSearchCardCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2DC8D152E0903FC00035476 /* CheerSearchCardCell.swift */; }; - B2DCB0662DF02CFE00F9D4AB /* SearchSecondView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2DCB0652DF02CFE00F9D4AB /* SearchSecondView.swift */; }; - B2DCB0682DF031EC00F9D4AB /* SearchFailedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2DCB0672DF031EC00F9D4AB /* SearchFailedView.swift */; }; - B2E3F57A2E0D486100091250 /* CheerSearchfailedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2E3F5792E0D486100091250 /* CheerSearchfailedView.swift */; }; - B2F85BE72D6FAB210011DDF3 /* LocationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2F85BE62D6FAB210011DDF3 /* LocationManager.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -193,171 +34,27 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 290A71AC2E026969009AEAF8 /* TopClosingCouponResDto.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TopClosingCouponResDto.swift; sourceTree = ""; }; - 290A71AE2E027909009AEAF8 /* ShimmeringAsyncImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShimmeringAsyncImage.swift; sourceTree = ""; }; - 290A71B02E02792A009AEAF8 /* ShimmerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShimmerView.swift; sourceTree = ""; }; - 290A71B22E029F04009AEAF8 /* View+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+.swift"; sourceTree = ""; }; - 290A71B42E02C8AE009AEAF8 /* CouponPopupViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponPopupViewModel.swift; sourceTree = ""; }; - 290D92D22DE55AD5008AC190 /* CommonMsgResDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommonMsgResDTO.swift; sourceTree = ""; }; - 290D93512DE57CDE008AC190 /* CouponInfoCellViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponInfoCellViewModel.swift; sourceTree = ""; }; - 290D93532DE58418008AC190 /* CouponBasicModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponBasicModel.swift; sourceTree = ""; }; - 293DCF132DE6CD2E000122C5 /* KakaoMapView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KakaoMapView.swift; sourceTree = ""; }; - 293DCF432DE6FE43000122C5 /* Array+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Array+.swift"; sourceTree = ""; }; - 2941F76B2DE596590063CEFE /* SearchMarketViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchMarketViewModel.swift; sourceTree = ""; }; - 2941F76D2DE597280063CEFE /* MarketSearchModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarketSearchModel.swift; sourceTree = ""; }; - 2941F76F2DE5A0350063CEFE /* CouponEndpoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponEndpoint.swift; sourceTree = ""; }; - 2941F7702DE5A0350063CEFE /* Endpoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Endpoint.swift; sourceTree = ""; }; - 2941F7712DE5A0350063CEFE /* MarketEndpoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarketEndpoint.swift; sourceTree = ""; }; - 2941F7722DE5A0350063CEFE /* MemberCouponEndpoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MemberCouponEndpoint.swift; sourceTree = ""; }; - 2941F7732DE5A0350063CEFE /* MemberEndPoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MemberEndPoint.swift; sourceTree = ""; }; - 2941F7752DE5A0350063CEFE /* NetworkError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkError.swift; sourceTree = ""; }; - 2941F7762DE5A0350063CEFE /* NetworkService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkService.swift; sourceTree = ""; }; - 2941F7772DE5A0350063CEFE /* URLManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URLManager.swift; sourceTree = ""; }; - 2941F77A2DE5A0350063CEFE /* KeychainManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeychainManager.swift; sourceTree = ""; }; - 2941F77C2DE5A0350063CEFE /* NetworkResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkResult.swift; sourceTree = ""; }; - 2941F78C2DE5A28A0063CEFE /* CouponService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponService.swift; sourceTree = ""; }; - 2941F78E2DE5A2BB0063CEFE /* MarketService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarketService.swift; sourceTree = ""; }; - 2941F7902DE5A2E00063CEFE /* MemberService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MemberService.swift; sourceTree = ""; }; - 2941F7922DE5A2FD0063CEFE /* MemberCouponService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MemberCouponService.swift; sourceTree = ""; }; - 2941F7942DE5A5760063CEFE /* Top20DetailViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Top20DetailViewModel.swift; sourceTree = ""; }; - 2941F7962DE5AAB50063CEFE /* NewEventViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewEventViewModel.swift; sourceTree = ""; }; - 2941F79A2DE5DFDB0063CEFE /* MapViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapViewModel.swift; sourceTree = ""; }; - 295948BA2E8E198100F641DC /* ViewModelable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewModelable.swift; sourceTree = ""; }; - 295DCBAF2DED6DC0009B5D82 /* MyPageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyPageViewModel.swift; sourceTree = ""; }; - 295DCBB52DED78C0009B5D82 /* MyCouponViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyCouponViewModel.swift; sourceTree = ""; }; - 295DCBB72DED7C92009B5D82 /* CouponStatus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponStatus.swift; sourceTree = ""; }; - 295DE7832ED4236400DB16E7 /* CheerMarketResDto.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheerMarketResDto.swift; sourceTree = ""; }; - 296085B62E1B88C9009CE38B /* ConvertAddress.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConvertAddress.swift; sourceTree = ""; }; - 296085B82E1B8EE5009CE38B /* DropdownMenuView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DropdownMenuView.swift; sourceTree = ""; }; - 296D23672EF5ABA200122AD5 /* FullNoticePopUp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FullNoticePopUp.swift; sourceTree = ""; }; - 2976FA282DFC4B56009782D1 /* MainViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainViewModel.swift; sourceTree = ""; }; - 2976FA2A2DFC4D2F009782D1 /* CouponTopModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponTopModel.swift; sourceTree = ""; }; - 2976FA2E2DFC5D90009782D1 /* MainBannerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainBannerView.swift; sourceTree = ""; }; - 29B3EBA62E03CE0D0095A310 /* UserDefaultsKeys.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaultsKeys.swift; sourceTree = ""; }; - 29B3EBA82E03CF800095A310 /* KeyChainKeys.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyChainKeys.swift; sourceTree = ""; }; - 29B3EBAB2E03D94E0095A310 /* Pretendard-Black.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Pretendard-Black.otf"; sourceTree = ""; }; - 29B3EBAC2E03D94E0095A310 /* Pretendard-Bold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Pretendard-Bold.otf"; sourceTree = ""; }; - 29B3EBAD2E03D94E0095A310 /* Pretendard-ExtraBold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Pretendard-ExtraBold.otf"; sourceTree = ""; }; - 29B3EBAE2E03D94E0095A310 /* Pretendard-ExtraLight.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Pretendard-ExtraLight.otf"; sourceTree = ""; }; - 29B3EBAF2E03D94E0095A310 /* Pretendard-Light.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Pretendard-Light.otf"; sourceTree = ""; }; - 29B3EBB02E03D94E0095A310 /* Pretendard-Medium.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Pretendard-Medium.otf"; sourceTree = ""; }; - 29B3EBB12E03D94E0095A310 /* Pretendard-Regular.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Pretendard-Regular.otf"; sourceTree = ""; }; - 29B3EBB22E03D94E0095A310 /* Pretendard-SemiBold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Pretendard-SemiBold.otf"; sourceTree = ""; }; - 29B3EBB32E03D94E0095A310 /* Pretendard-Thin.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Pretendard-Thin.otf"; sourceTree = ""; }; - 29B3EBBD2E03DABD0095A310 /* Font+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Font+.swift"; sourceTree = ""; }; - 29B3EBBF2E03F3260095A310 /* CustomAlertView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomAlertView.swift; sourceTree = ""; }; - 29B5236A2E1503DF00120AE3 /* RegisterReceiptView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegisterReceiptView.swift; sourceTree = ""; }; - 29B5236C2E15054300120AE3 /* ImagePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImagePicker.swift; sourceTree = ""; }; - 29B5236E2E150C9300120AE3 /* CouponType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponType.swift; sourceTree = ""; }; - 29B523722E152E0400120AE3 /* MyFavoriteMarketListViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyFavoriteMarketListViewModel.swift; sourceTree = ""; }; - 29BF18AF2DE4492C00836D7E /* API_URL.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = API_URL.plist; sourceTree = ""; }; - 29BF18BE2DE45B3900836D7E /* Category.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Category.swift; sourceTree = ""; }; - 29BF18C02DE4950700836D7E /* APIResDto.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIResDto.swift; sourceTree = ""; }; - 29BF19392DE4AC9600836D7E /* MainHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainHeaderView.swift; sourceTree = ""; }; - 29CA0F202E54821C00EB4890 /* LoginRequiredView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginRequiredView.swift; sourceTree = ""; }; - 29CA0F222E5484B100EB4890 /* MarketInfoCellViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarketInfoCellViewModel.swift; sourceTree = ""; }; - 29CC3F282E6819E5008F79F6 /* UIImage+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+.swift"; sourceTree = ""; }; - 29CC3F2A2E681ECD008F79F6 /* KakaoMapPoi.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KakaoMapPoi.swift; sourceTree = ""; }; - 29CF81A12EBC60920065AE9A /* KakaoMapPoiWrapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KakaoMapPoiWrapper.swift; sourceTree = ""; }; - 29D11E352EC3390D001CEA92 /* KakaoAPIEndpoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KakaoAPIEndpoint.swift; sourceTree = ""; }; - 29D19D1B2E13CC2000DEEADD /* KakaoMarketDataResDto.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KakaoMarketDataResDto.swift; sourceTree = ""; }; - 29D19D1F2E13E63B00DEEADD /* RequestMarketMapView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestMarketMapView.swift; sourceTree = ""; }; - 29D19D2C2E14234900DEEADD /* RequestMarketMapViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestMarketMapViewModel.swift; sourceTree = ""; }; - 29D53BF42DE83F82008E4F2E /* CheerViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheerViewModel.swift; sourceTree = ""; }; - 29D53BF62DE8412E008E4F2E /* CheerMarketEndpoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheerMarketEndpoint.swift; sourceTree = ""; }; - 29D53BF82DE84728008E4F2E /* CheerMarketService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheerMarketService.swift; sourceTree = ""; }; - 29D53BFC2DE84F5D008E4F2E /* CheerListViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheerListViewModel.swift; sourceTree = ""; }; - 29D87F432DE8560500CE9011 /* HotCheerCardCellViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HotCheerCardCellViewModel.swift; sourceTree = ""; }; - 29D87F452DE85AC500CE9011 /* CheerCardCellViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheerCardCellViewModel.swift; sourceTree = ""; }; - 29D87F492DE8629900CE9011 /* CircleCategoryTabView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CircleCategoryTabView.swift; sourceTree = ""; }; - 29D87F822DE86D6900CE9011 /* MemberInfoModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MemberInfoModel.swift; sourceTree = ""; }; - 29DAD79A2E72A6780087CA53 /* CouponCategory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponCategory.swift; sourceTree = ""; }; - 29E749312DEEA91100E765E0 /* MyCouponCellViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyCouponCellViewModel.swift; sourceTree = ""; }; - 29E749332DEEABFA00E765E0 /* MyCouponResDto.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyCouponResDto.swift; sourceTree = ""; }; - 29E749352DEECFBA00E765E0 /* FavoriteMarketModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavoriteMarketModel.swift; sourceTree = ""; }; - 29F588FA2E548EE00022EE89 /* LoginRequriedPopup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginRequriedPopup.swift; sourceTree = ""; }; - B207A25E2D54B18C0099A8DB /* MyCouponCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyCouponCell.swift; sourceTree = ""; }; - B210EC232D3D686500B1551E /* MyHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyHeaderView.swift; sourceTree = ""; }; - B210EC272D3D797F00B1551E /* SearchHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchHeader.swift; sourceTree = ""; }; - B2122E3A2D6F7AB400BD37F8 /* MapMarketListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapMarketListView.swift; sourceTree = ""; }; - B2122E3C2D6F7C0000BD37F8 /* MarketResDtos.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarketResDtos.swift; sourceTree = ""; }; - B2122E3E2D6F7D4000BD37F8 /* MarketCategoryDetailViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarketCategoryDetailViewModel.swift; sourceTree = ""; }; - B215F2902DE61C8400F53C51 /* AlertView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertView.swift; sourceTree = ""; }; - B215F2932DE61D9600F53C51 /* AlertButtonView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertButtonView.swift; sourceTree = ""; }; - B215F2952DE6D77B00F53C51 /* AlertListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertListView.swift; sourceTree = ""; }; - B21F3CDD2D267AF900B83B34 /* MarketInfoCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarketInfoCell.swift; sourceTree = ""; }; - B21F3CE02D267AF900B83B34 /* CategoryDetailView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CategoryDetailView.swift; sourceTree = ""; }; - B21F3CE22D267AF900B83B34 /* MainCategoryView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainCategoryView.swift; sourceTree = ""; }; - B21F3CE32D267AF900B83B34 /* Top20View.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Top20View.swift; sourceTree = ""; }; - B21F3CE42D267AF900B83B34 /* NewEventView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NewEventView.swift; sourceTree = ""; }; - B21F3CE62D267AF900B83B34 /* MainView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainView.swift; sourceTree = ""; }; - B21F3CE82D267AF900B83B34 /* MyCouponView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MyCouponView.swift; sourceTree = ""; }; - B21F3CE92D267AF900B83B34 /* MyPageView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MyPageView.swift; sourceTree = ""; }; - B21F3CED2D267AF900B83B34 /* MarketDetailView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarketDetailView.swift; sourceTree = ""; }; - B21F3D002D2685F500B83B34 /* ImageTextOverlay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageTextOverlay.swift; sourceTree = ""; }; - B21F3D042D2B057000B83B34 /* Top20DetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Top20DetailView.swift; sourceTree = ""; }; - B21F3D062D2B066F00B83B34 /* NewEventDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewEventDetailView.swift; sourceTree = ""; }; - B21F3D082D2D57BE00B83B34 /* Color.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Color.swift; sourceTree = ""; }; - B22AB94B2D9B08FD006E13B4 /* CouponInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponInfoCell.swift; sourceTree = ""; }; - B24272602E26537F00E3B0ED /* ReceiptModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReceiptModel.swift; sourceTree = ""; }; - B24272622E2657C700E3B0ED /* SubmitReceiptViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubmitReceiptViewModel.swift; sourceTree = ""; }; - B255A5CD2D6218A000954837 /* MarketModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarketModel.swift; sourceTree = ""; }; - B26F4E862E54400F00C39C37 /* NotificationModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationModel.swift; sourceTree = ""; }; - B26F4E882E54650C00C39C37 /* NotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationService.swift; sourceTree = ""; }; - B26F4E8A2E57308F00C39C37 /* NotificationEndpoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationEndpoint.swift; sourceTree = ""; }; - B26F4E8D2E57504C00C39C37 /* AlertViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertViewModel.swift; sourceTree = ""; }; - B27E56CC2D7037AF000D2881 /* CheerMarketModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheerMarketModel.swift; sourceTree = ""; }; - B27E56D22D703FBB000D2881 /* CheerCardCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheerCardCell.swift; sourceTree = ""; }; - B27E56D42D704438000D2881 /* HotCheerCardCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HotCheerCardCell.swift; sourceTree = ""; }; - B28349102D2E548A00EEDB02 /* MapView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapView.swift; sourceTree = ""; }; - B28349122D2E5CA800EEDB02 /* CategoryTabView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CategoryTabView.swift; sourceTree = ""; }; - B28349152D2E604800EEDB02 /* ShopModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShopModel.swift; sourceTree = ""; }; - B28349522D2FBBD800EEDB02 /* RecentSearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecentSearchView.swift; sourceTree = ""; }; - B28349542D2FBC4B00EEDB02 /* PopularityBenefitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopularityBenefitView.swift; sourceTree = ""; }; - B28349562D2FBD2F00EEDB02 /* SearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchView.swift; sourceTree = ""; }; - B28349652D36C02C00EEDB02 /* CouponModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponModel.swift; sourceTree = ""; }; - B28889A22D4BC9370040EC3F /* CouponResDtos.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponResDtos.swift; sourceTree = ""; }; - B28889A92D4BD5A50040EC3F /* CouponCategoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponCategoryView.swift; sourceTree = ""; }; - B28889AB2D4BD5F10040EC3F /* CouponPopup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponPopup.swift; sourceTree = ""; }; - B28889AD2D4BDC4D0040EC3F /* MembersCouponModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MembersCouponModel.swift; sourceTree = ""; }; - B28A22A52D64B06F00E86EF6 /* MarketDetailModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarketDetailModel.swift; sourceTree = ""; }; - B28A22A72D64B0F900E86EF6 /* MarketDetailViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarketDetailViewModel.swift; sourceTree = ""; }; - B28A22AA2D64F1A700E86EF6 /* StoreInfoRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreInfoRow.swift; sourceTree = ""; }; - B28A22AC2D64F1C000E86EF6 /* StoreSearchButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreSearchButton.swift; sourceTree = ""; }; - B28A22AE2D64F1ED00E86EF6 /* StoreImageSlider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreImageSlider.swift; sourceTree = ""; }; - B28A22B42D66636800E86EF6 /* MarketCouponListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarketCouponListView.swift; sourceTree = ""; }; - B28A22BD2D666E7500E86EF6 /* CouponGetPopupView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponGetPopupView.swift; sourceTree = ""; }; - B28A22BF2D668B0600E86EF6 /* MyFavoriteShopListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyFavoriteShopListView.swift; sourceTree = ""; }; - B293A1512D6FDC7B003E8505 /* CheerListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheerListView.swift; sourceTree = ""; }; - B293A1532D6FDCB2003E8505 /* HotCheerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HotCheerView.swift; sourceTree = ""; }; - B293A1592D6FE0B4003E8505 /* CheerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheerView.swift; sourceTree = ""; }; - B293A15B2D6FE2A8003E8505 /* CheerSearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheerSearchView.swift; sourceTree = ""; }; - B2A42DCE2D8B3716005FAF15 /* LoginViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginViewModel.swift; sourceTree = ""; }; - B2B2CFB92EC877EC00F0F588 /* KakaoMapKey.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = KakaoMapKey.xcconfig; sourceTree = ""; }; - B2B40B0F2E880008006816CD /* NotificationFilterCategory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationFilterCategory.swift; sourceTree = ""; }; B2C398F92CA145CB004800DD /* MarketPlace.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MarketPlace.app; sourceTree = BUILT_PRODUCTS_DIR; }; - B2C398FC2CA145CB004800DD /* MarketPlaceApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarketPlaceApp.swift; sourceTree = ""; }; - B2C398FE2CA145CB004800DD /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; - B2C399002CA145CC004800DD /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - B2C399032CA145CC004800DD /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; B2C399092CA145CC004800DD /* MarketPlaceTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MarketPlaceTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - B2C3990D2CA145CC004800DD /* MarketPlaceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarketPlaceTests.swift; sourceTree = ""; }; B2C399132CA145CC004800DD /* MarketPlaceUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MarketPlaceUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - B2C399172CA145CC004800DD /* MarketPlaceUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarketPlaceUITests.swift; sourceTree = ""; }; - B2C399192CA145CC004800DD /* MarketPlaceUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarketPlaceUITestsLaunchTests.swift; sourceTree = ""; }; - B2C3992C2CA1BF7F004800DD /* CategoryButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CategoryButton.swift; sourceTree = ""; }; - B2C462972D8172BE007637DC /* LoginView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginView.swift; sourceTree = ""; }; - B2DC8CC22E03E2D000035476 /* RequestMainView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestMainView.swift; sourceTree = ""; }; - B2DC8CC62E03F15600035476 /* RequestMarketViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestMarketViewModel.swift; sourceTree = ""; }; - B2DC8CC82E03F2E500035476 /* MarketRequestModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarketRequestModel.swift; sourceTree = ""; }; - B2DC8D152E0903FC00035476 /* CheerSearchCardCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheerSearchCardCell.swift; sourceTree = ""; }; - B2DCB0652DF02CFE00F9D4AB /* SearchSecondView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchSecondView.swift; sourceTree = ""; }; - B2DCB0672DF031EC00F9D4AB /* SearchFailedView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchFailedView.swift; sourceTree = ""; }; - B2E3F5792E0D486100091250 /* CheerSearchfailedView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheerSearchfailedView.swift; sourceTree = ""; }; - B2F85BE62D6FAB210011DDF3 /* LocationManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationManager.swift; sourceTree = ""; }; - B2F85BE82D6FAE9A0011DDF3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; /* End PBXFileReference section */ +/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ + 294B92E02F1A38F600FAD075 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + Info.plist, + ); + target = B2C398F82CA145CB004800DD /* MarketPlace */; + }; +/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ + +/* Begin PBXFileSystemSynchronizedRootGroup section */ + 294B91412F1A37A600FAD075 /* MarketPlaceTests */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = MarketPlaceTests; sourceTree = ""; }; + 294B91452F1A37A900FAD075 /* MarketPlaceUITests */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = MarketPlaceUITests; sourceTree = ""; }; + 294B92432F1A38F600FAD075 /* MarketPlace */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (294B92E02F1A38F600FAD075 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = MarketPlace; sourceTree = ""; }; +/* End PBXFileSystemSynchronizedRootGroup section */ + /* Begin PBXFrameworksBuildPhase section */ B2C398F62CA145CB004800DD /* Frameworks */ = { isa = PBXFrameworksBuildPhase; @@ -390,416 +87,12 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 290D93502DE57CCD008AC190 /* Main */ = { - isa = PBXGroup; - children = ( - 29CA0F222E5484B100EB4890 /* MarketInfoCellViewModel.swift */, - B2122E3E2D6F7D4000BD37F8 /* MarketCategoryDetailViewModel.swift */, - B28A22A72D64B0F900E86EF6 /* MarketDetailViewModel.swift */, - 290D93512DE57CDE008AC190 /* CouponInfoCellViewModel.swift */, - 2941F7942DE5A5760063CEFE /* Top20DetailViewModel.swift */, - 2941F7962DE5AAB50063CEFE /* NewEventViewModel.swift */, - 2976FA282DFC4B56009782D1 /* MainViewModel.swift */, - 290A71B42E02C8AE009AEAF8 /* CouponPopupViewModel.swift */, - ); - path = Main; - sourceTree = ""; - }; - 293DCF422DE6FE3A000122C5 /* Extension */ = { - isa = PBXGroup; - children = ( - 293DCF432DE6FE43000122C5 /* Array+.swift */, - 290A71B22E029F04009AEAF8 /* View+.swift */, - 29B3EBBD2E03DABD0095A310 /* Font+.swift */, - 29CC3F282E6819E5008F79F6 /* UIImage+.swift */, - ); - path = Extension; - sourceTree = ""; - }; - 293DCF502DE74564000122C5 /* Components */ = { - isa = PBXGroup; - children = ( - ); - path = Components; - sourceTree = ""; - }; - 2941F7672DE592770063CEFE /* View */ = { - isa = PBXGroup; - children = ( - B21F3CE02D267AF900B83B34 /* CategoryDetailView.swift */, - B21F3D042D2B057000B83B34 /* Top20DetailView.swift */, - B21F3D062D2B066F00B83B34 /* NewEventDetailView.swift */, - B21F3CED2D267AF900B83B34 /* MarketDetailView.swift */, - B28A22BD2D666E7500E86EF6 /* CouponGetPopupView.swift */, - B21F3CE62D267AF900B83B34 /* MainView.swift */, - ); - path = View; - sourceTree = ""; - }; - 2941F76A2DE595540063CEFE /* View */ = { - isa = PBXGroup; - children = ( - B2DCB0652DF02CFE00F9D4AB /* SearchSecondView.swift */, - B2DCB0672DF031EC00F9D4AB /* SearchFailedView.swift */, - B28349562D2FBD2F00EEDB02 /* SearchView.swift */, - ); - path = View; - sourceTree = ""; - }; - 2941F7742DE5A0350063CEFE /* Endpoint */ = { - isa = PBXGroup; - children = ( - 2941F7702DE5A0350063CEFE /* Endpoint.swift */, - 2941F7712DE5A0350063CEFE /* MarketEndpoint.swift */, - 2941F7722DE5A0350063CEFE /* MemberCouponEndpoint.swift */, - 2941F7732DE5A0350063CEFE /* MemberEndPoint.swift */, - 29D53BF62DE8412E008E4F2E /* CheerMarketEndpoint.swift */, - 2941F76F2DE5A0350063CEFE /* CouponEndpoint.swift */, - B26F4E8A2E57308F00C39C37 /* NotificationEndpoint.swift */, - 29D11E352EC3390D001CEA92 /* KakaoAPIEndpoint.swift */, - ); - path = Endpoint; - sourceTree = ""; - }; - 2941F7782DE5A0350063CEFE /* Service */ = { - isa = PBXGroup; - children = ( - 2941F7752DE5A0350063CEFE /* NetworkError.swift */, - 2941F7762DE5A0350063CEFE /* NetworkService.swift */, - 2941F77A2DE5A0350063CEFE /* KeychainManager.swift */, - 2941F7772DE5A0350063CEFE /* URLManager.swift */, - ); - path = Service; - sourceTree = ""; - }; - 2941F77D2DE5A0350063CEFE /* API */ = { - isa = PBXGroup; - children = ( - 2941F7742DE5A0350063CEFE /* Endpoint */, - 2941F7782DE5A0350063CEFE /* Service */, - 2941F77C2DE5A0350063CEFE /* NetworkResult.swift */, - ); - path = API; - sourceTree = ""; - }; - 2941F78A2DE5A0EF0063CEFE /* Service */ = { - isa = PBXGroup; - children = ( - 2941F78C2DE5A28A0063CEFE /* CouponService.swift */, - 2941F78E2DE5A2BB0063CEFE /* MarketService.swift */, - 2941F7902DE5A2E00063CEFE /* MemberService.swift */, - 2941F7922DE5A2FD0063CEFE /* MemberCouponService.swift */, - 29D53BF82DE84728008E4F2E /* CheerMarketService.swift */, - B26F4E882E54650C00C39C37 /* NotificationService.swift */, - ); - path = Service; - sourceTree = ""; - }; - 2941F7982DE5DEB50063CEFE /* View */ = { - isa = PBXGroup; - children = ( - B28349102D2E548A00EEDB02 /* MapView.swift */, - B2122E3A2D6F7AB400BD37F8 /* MapMarketListView.swift */, - ); - path = View; - sourceTree = ""; - }; - 2941F7992DE5DFCE0063CEFE /* Map */ = { - isa = PBXGroup; - children = ( - 2941F79A2DE5DFDB0063CEFE /* MapViewModel.swift */, - ); - path = Map; - sourceTree = ""; - }; - 295DCBAD2DED6A22009B5D82 /* View */ = { - isa = PBXGroup; - children = ( - B21F3CE92D267AF900B83B34 /* MyPageView.swift */, - B21F3CE82D267AF900B83B34 /* MyCouponView.swift */, - B28A22BF2D668B0600E86EF6 /* MyFavoriteShopListView.swift */, - 29B5236A2E1503DF00120AE3 /* RegisterReceiptView.swift */, - ); - path = View; - sourceTree = ""; - }; - 295DCBAE2DED6DB0009B5D82 /* MyPage */ = { - isa = PBXGroup; - children = ( - 295DCBAF2DED6DC0009B5D82 /* MyPageViewModel.swift */, - 295DCBB52DED78C0009B5D82 /* MyCouponViewModel.swift */, - 29E749312DEEA91100E765E0 /* MyCouponCellViewModel.swift */, - 29B523722E152E0400120AE3 /* MyFavoriteMarketListViewModel.swift */, - B24272622E2657C700E3B0ED /* SubmitReceiptViewModel.swift */, - ); - path = MyPage; - sourceTree = ""; - }; - 2976FA262DFC3457009782D1 /* Search */ = { - isa = PBXGroup; - children = ( - 2941F76B2DE596590063CEFE /* SearchMarketViewModel.swift */, - ); - path = Search; - sourceTree = ""; - }; - 2976FA272DFC4507009782D1 /* Types */ = { - isa = PBXGroup; - children = ( - 29BF18BE2DE45B3900836D7E /* Category.swift */, - 295DCBB72DED7C92009B5D82 /* CouponStatus.swift */, - 29B3EBA62E03CE0D0095A310 /* UserDefaultsKeys.swift */, - 29B3EBA82E03CF800095A310 /* KeyChainKeys.swift */, - 29B5236E2E150C9300120AE3 /* CouponType.swift */, - 29DAD79A2E72A6780087CA53 /* CouponCategory.swift */, - ); - path = Types; - sourceTree = ""; - }; - 29B3EBAA2E03D8CF0095A310 /* Font */ = { - isa = PBXGroup; - children = ( - 29B3EBAB2E03D94E0095A310 /* Pretendard-Black.otf */, - 29B3EBAC2E03D94E0095A310 /* Pretendard-Bold.otf */, - 29B3EBAD2E03D94E0095A310 /* Pretendard-ExtraBold.otf */, - 29B3EBAE2E03D94E0095A310 /* Pretendard-ExtraLight.otf */, - 29B3EBAF2E03D94E0095A310 /* Pretendard-Light.otf */, - 29B3EBB02E03D94E0095A310 /* Pretendard-Medium.otf */, - 29B3EBB12E03D94E0095A310 /* Pretendard-Regular.otf */, - 29B3EBB22E03D94E0095A310 /* Pretendard-SemiBold.otf */, - 29B3EBB32E03D94E0095A310 /* Pretendard-Thin.otf */, - ); - path = Font; - sourceTree = ""; - }; - 29D53BF32DE83B06008E4F2E /* View */ = { - isa = PBXGroup; - children = ( - B293A1592D6FE0B4003E8505 /* CheerView.swift */, - B293A1512D6FDC7B003E8505 /* CheerListView.swift */, - B293A1532D6FDCB2003E8505 /* HotCheerView.swift */, - B293A15B2D6FE2A8003E8505 /* CheerSearchView.swift */, - B2E3F5792E0D486100091250 /* CheerSearchfailedView.swift */, - ); - path = View; - sourceTree = ""; - }; - B210EC212D3D682C00B1551E /* Components */ = { - isa = PBXGroup; - children = ( - B210EC232D3D686500B1551E /* MyHeaderView.swift */, - B28889A92D4BD5A50040EC3F /* CouponCategoryView.swift */, - B28889AB2D4BD5F10040EC3F /* CouponPopup.swift */, - B207A25E2D54B18C0099A8DB /* MyCouponCell.swift */, - 29B5236C2E15054300120AE3 /* ImagePicker.swift */, - 296085B82E1B8EE5009CE38B /* DropdownMenuView.swift */, - ); - path = Components; - sourceTree = ""; - }; - B2122E402D6F7E0900BD37F8 /* Market */ = { - isa = PBXGroup; - children = ( - B255A5CD2D6218A000954837 /* MarketModel.swift */, - B28A22A52D64B06F00E86EF6 /* MarketDetailModel.swift */, - 2941F76D2DE597280063CEFE /* MarketSearchModel.swift */, - B2DC8CC82E03F2E500035476 /* MarketRequestModel.swift */, - 29E749352DEECFBA00E765E0 /* FavoriteMarketModel.swift */, - ); - path = Market; - sourceTree = ""; - }; - B215F28F2DE619DF00F53C51 /* Alert */ = { - isa = PBXGroup; - children = ( - B215F2922DE61D4D00F53C51 /* component */, - B215F2902DE61C8400F53C51 /* AlertView.swift */, - ); - path = Alert; - sourceTree = ""; - }; - B215F2922DE61D4D00F53C51 /* component */ = { - isa = PBXGroup; - children = ( - B215F2932DE61D9600F53C51 /* AlertButtonView.swift */, - B2B40B0F2E880008006816CD /* NotificationFilterCategory.swift */, - B215F2952DE6D77B00F53C51 /* AlertListView.swift */, - ); - path = component; - sourceTree = ""; - }; - B21F3CDF2D267AF900B83B34 /* Components */ = { - isa = PBXGroup; - children = ( - B28349122D2E5CA800EEDB02 /* CategoryTabView.swift */, - B22AB94B2D9B08FD006E13B4 /* CouponInfoCell.swift */, - B21F3CDD2D267AF900B83B34 /* MarketInfoCell.swift */, - 29D87F492DE8629900CE9011 /* CircleCategoryTabView.swift */, - 290A71B02E02792A009AEAF8 /* ShimmerView.swift */, - 290A71AE2E027909009AEAF8 /* ShimmeringAsyncImage.swift */, - 29B3EBBF2E03F3260095A310 /* CustomAlertView.swift */, - ); - path = Components; - sourceTree = ""; - }; - B21F3CE52D267AF900B83B34 /* Components */ = { - isa = PBXGroup; - children = ( - B28A22AE2D64F1ED00E86EF6 /* StoreImageSlider.swift */, - B28A22B42D66636800E86EF6 /* MarketCouponListView.swift */, - B28A22AA2D64F1A700E86EF6 /* StoreInfoRow.swift */, - B28A22AC2D64F1C000E86EF6 /* StoreSearchButton.swift */, - B21F3CE32D267AF900B83B34 /* Top20View.swift */, - B21F3CE42D267AF900B83B34 /* NewEventView.swift */, - B21F3CE22D267AF900B83B34 /* MainCategoryView.swift */, - 29BF19392DE4AC9600836D7E /* MainHeaderView.swift */, - B21F3D002D2685F500B83B34 /* ImageTextOverlay.swift */, - 2976FA2E2DFC5D90009782D1 /* MainBannerView.swift */, - ); - path = Components; - sourceTree = ""; - }; - B21F3CE72D267AF900B83B34 /* Main */ = { - isa = PBXGroup; - children = ( - 2941F7672DE592770063CEFE /* View */, - B21F3CE52D267AF900B83B34 /* Components */, - ); - path = Main; - sourceTree = ""; - }; - B21F3CEA2D267AF900B83B34 /* MyPage */ = { - isa = PBXGroup; - children = ( - 295DCBAD2DED6A22009B5D82 /* View */, - B210EC212D3D682C00B1551E /* Components */, - ); - path = MyPage; - sourceTree = ""; - }; - B21F3CEE2D267AF900B83B34 /* View */ = { - isa = PBXGroup; - children = ( - B2DC8CC12E03E2BD00035476 /* Request */, - B215F28F2DE619DF00F53C51 /* Alert */, - B21F3CDF2D267AF900B83B34 /* Components */, - B2C462962D8172AC007637DC /* Login */, - B21F3CE72D267AF900B83B34 /* Main */, - B28349502D2FBBBD00EEDB02 /* Search */, - B283490F2D2E547F00EEDB02 /* Map */, - B2CD63EC2D4BAB4D000809F5 /* Cheer */, - B21F3CEA2D267AF900B83B34 /* MyPage */, - ); - name = View; - path = MarketPlace/View; - sourceTree = SOURCE_ROOT; - }; - B26F4E8C2E57503D00C39C37 /* Alert */ = { - isa = PBXGroup; - children = ( - B26F4E8D2E57504C00C39C37 /* AlertViewModel.swift */, - ); - path = Alert; - sourceTree = ""; - }; - B27E56CE2D703B0B000D2881 /* Cheer */ = { - isa = PBXGroup; - children = ( - 29D53BF42DE83F82008E4F2E /* CheerViewModel.swift */, - 29D53BFC2DE84F5D008E4F2E /* CheerListViewModel.swift */, - 29D87F432DE8560500CE9011 /* HotCheerCardCellViewModel.swift */, - 29D87F452DE85AC500CE9011 /* CheerCardCellViewModel.swift */, - ); - path = Cheer; - sourceTree = ""; - }; - B283490F2D2E547F00EEDB02 /* Map */ = { - isa = PBXGroup; - children = ( - 293DCF502DE74564000122C5 /* Components */, - 2941F7982DE5DEB50063CEFE /* View */, - 293DCF132DE6CD2E000122C5 /* KakaoMapView.swift */, - ); - path = Map; - sourceTree = ""; - }; - B28349142D2E603E00EEDB02 /* Model */ = { - isa = PBXGroup; - children = ( - 290D93532DE58418008AC190 /* CouponBasicModel.swift */, - B28349652D36C02C00EEDB02 /* CouponModel.swift */, - B26F4E862E54400F00C39C37 /* NotificationModel.swift */, - B28889AD2D4BDC4D0040EC3F /* MembersCouponModel.swift */, - B2122E402D6F7E0900BD37F8 /* Market */, - B28349152D2E604800EEDB02 /* ShopModel.swift */, - B27E56CC2D7037AF000D2881 /* CheerMarketModel.swift */, - 29D87F822DE86D6900CE9011 /* MemberInfoModel.swift */, - 2976FA2A2DFC4D2F009782D1 /* CouponTopModel.swift */, - B24272602E26537F00E3B0ED /* ReceiptModel.swift */, - 29CC3F2A2E681ECD008F79F6 /* KakaoMapPoi.swift */, - 29CF81A12EBC60920065AE9A /* KakaoMapPoiWrapper.swift */, - ); - path = Model; - sourceTree = ""; - }; - B28349502D2FBBBD00EEDB02 /* Search */ = { - isa = PBXGroup; - children = ( - B28349512D2FBBCB00EEDB02 /* Component */, - 2941F76A2DE595540063CEFE /* View */, - ); - path = Search; - sourceTree = ""; - }; - B28349512D2FBBCB00EEDB02 /* Component */ = { - isa = PBXGroup; - children = ( - B28349522D2FBBD800EEDB02 /* RecentSearchView.swift */, - B28349542D2FBC4B00EEDB02 /* PopularityBenefitView.swift */, - B210EC272D3D797F00B1551E /* SearchHeader.swift */, - ); - path = Component; - sourceTree = ""; - }; - B28349582D365D5300EEDB02 /* DTO */ = { - isa = PBXGroup; - children = ( - B28889A22D4BC9370040EC3F /* CouponResDtos.swift */, - B2122E3C2D6F7C0000BD37F8 /* MarketResDtos.swift */, - 29BF18C02DE4950700836D7E /* APIResDto.swift */, - 29E749332DEEABFA00E765E0 /* MyCouponResDto.swift */, - 290D92D22DE55AD5008AC190 /* CommonMsgResDTO.swift */, - 290A71AC2E026969009AEAF8 /* TopClosingCouponResDto.swift */, - 29D19D1B2E13CC2000DEEADD /* KakaoMarketDataResDto.swift */, - 295DE7832ED4236400DB16E7 /* CheerMarketResDto.swift */, - ); - path = DTO; - sourceTree = ""; - }; - B293A1502D6FDC65003E8505 /* Components */ = { - isa = PBXGroup; - children = ( - B27E56D22D703FBB000D2881 /* CheerCardCell.swift */, - B2DC8D152E0903FC00035476 /* CheerSearchCardCell.swift */, - B27E56D42D704438000D2881 /* HotCheerCardCell.swift */, - ); - path = Components; - sourceTree = ""; - }; - B2A42DCB2D843626005FAF15 /* Login */ = { - isa = PBXGroup; - children = ( - B2A42DCE2D8B3716005FAF15 /* LoginViewModel.swift */, - ); - path = Login; - sourceTree = ""; - }; B2C398F02CA145CB004800DD = { isa = PBXGroup; children = ( - B2C398FB2CA145CB004800DD /* MarketPlace */, - B2C3990C2CA145CC004800DD /* MarketPlaceTests */, - B2C399162CA145CC004800DD /* MarketPlaceUITests */, + 294B92432F1A38F600FAD075 /* MarketPlace */, + 294B91412F1A37A600FAD075 /* MarketPlaceTests */, + 294B91452F1A37A900FAD075 /* MarketPlaceUITests */, B2C398FA2CA145CB004800DD /* Products */, ); sourceTree = ""; @@ -814,120 +107,6 @@ name = Products; sourceTree = ""; }; - B2C398FB2CA145CB004800DD /* MarketPlace */ = { - isa = PBXGroup; - children = ( - B2B2CFB92EC877EC00F0F588 /* KakaoMapKey.xcconfig */, - 296085B62E1B88C9009CE38B /* ConvertAddress.swift */, - 29B3EBAA2E03D8CF0095A310 /* Font */, - 2976FA272DFC4507009782D1 /* Types */, - 293DCF422DE6FE3A000122C5 /* Extension */, - 2941F78A2DE5A0EF0063CEFE /* Service */, - 2941F77D2DE5A0350063CEFE /* API */, - B2F85BE82D6FAE9A0011DDF3 /* Info.plist */, - B28349582D365D5300EEDB02 /* DTO */, - B28349142D2E603E00EEDB02 /* Model */, - B2C3992B2CA1BF69004800DD /* UICommon */, - B21F3CEE2D267AF900B83B34 /* View */, - B2C399262CA14D85004800DD /* ViewModel */, - B2C398FC2CA145CB004800DD /* MarketPlaceApp.swift */, - B2C398FE2CA145CB004800DD /* ContentView.swift */, - B2C399002CA145CC004800DD /* Assets.xcassets */, - B2C399022CA145CC004800DD /* Preview Content */, - 29BF18AF2DE4492C00836D7E /* API_URL.plist */, - B2F85BE62D6FAB210011DDF3 /* LocationManager.swift */, - 295948BA2E8E198100F641DC /* ViewModelable.swift */, - ); - path = MarketPlace; - sourceTree = ""; - }; - B2C399022CA145CC004800DD /* Preview Content */ = { - isa = PBXGroup; - children = ( - B2C399032CA145CC004800DD /* Preview Assets.xcassets */, - ); - path = "Preview Content"; - sourceTree = ""; - }; - B2C3990C2CA145CC004800DD /* MarketPlaceTests */ = { - isa = PBXGroup; - children = ( - B2C3990D2CA145CC004800DD /* MarketPlaceTests.swift */, - ); - path = MarketPlaceTests; - sourceTree = ""; - }; - B2C399162CA145CC004800DD /* MarketPlaceUITests */ = { - isa = PBXGroup; - children = ( - B2C399172CA145CC004800DD /* MarketPlaceUITests.swift */, - B2C399192CA145CC004800DD /* MarketPlaceUITestsLaunchTests.swift */, - ); - path = MarketPlaceUITests; - sourceTree = ""; - }; - B2C399262CA14D85004800DD /* ViewModel */ = { - isa = PBXGroup; - children = ( - B26F4E8C2E57503D00C39C37 /* Alert */, - B2DC8CC52E03F14100035476 /* Request */, - 2976FA262DFC3457009782D1 /* Search */, - 295DCBAE2DED6DB0009B5D82 /* MyPage */, - 2941F7992DE5DFCE0063CEFE /* Map */, - 290D93502DE57CCD008AC190 /* Main */, - B2A42DCB2D843626005FAF15 /* Login */, - B27E56CE2D703B0B000D2881 /* Cheer */, - ); - path = ViewModel; - sourceTree = ""; - }; - B2C3992B2CA1BF69004800DD /* UICommon */ = { - isa = PBXGroup; - children = ( - B2C3992C2CA1BF7F004800DD /* CategoryButton.swift */, - B21F3D082D2D57BE00B83B34 /* Color.swift */, - 29CA0F202E54821C00EB4890 /* LoginRequiredView.swift */, - 29F588FA2E548EE00022EE89 /* LoginRequriedPopup.swift */, - 296D23672EF5ABA200122AD5 /* FullNoticePopUp.swift */, - ); - path = UICommon; - sourceTree = ""; - }; - B2C462962D8172AC007637DC /* Login */ = { - isa = PBXGroup; - children = ( - B2C462972D8172BE007637DC /* LoginView.swift */, - ); - path = Login; - sourceTree = ""; - }; - B2CD63EC2D4BAB4D000809F5 /* Cheer */ = { - isa = PBXGroup; - children = ( - 29D53BF32DE83B06008E4F2E /* View */, - B293A1502D6FDC65003E8505 /* Components */, - ); - path = Cheer; - sourceTree = ""; - }; - B2DC8CC12E03E2BD00035476 /* Request */ = { - isa = PBXGroup; - children = ( - B2DC8CC22E03E2D000035476 /* RequestMainView.swift */, - 29D19D1F2E13E63B00DEEADD /* RequestMarketMapView.swift */, - ); - path = Request; - sourceTree = ""; - }; - B2DC8CC52E03F14100035476 /* Request */ = { - isa = PBXGroup; - children = ( - B2DC8CC62E03F15600035476 /* RequestMarketViewModel.swift */, - 29D19D2C2E14234900DEEADD /* RequestMarketMapViewModel.swift */, - ); - path = Request; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -943,6 +122,9 @@ ); dependencies = ( ); + fileSystemSynchronizedGroups = ( + 294B92432F1A38F600FAD075 /* MarketPlace */, + ); name = MarketPlace; productName = MarketPlace; productReference = B2C398F92CA145CB004800DD /* MarketPlace.app */; @@ -961,6 +143,9 @@ dependencies = ( B2C3990B2CA145CC004800DD /* PBXTargetDependency */, ); + fileSystemSynchronizedGroups = ( + 294B91412F1A37A600FAD075 /* MarketPlaceTests */, + ); name = MarketPlaceTests; productName = MarketPlaceTests; productReference = B2C399092CA145CC004800DD /* MarketPlaceTests.xctest */; @@ -979,6 +164,9 @@ dependencies = ( B2C399152CA145CC004800DD /* PBXTargetDependency */, ); + fileSystemSynchronizedGroups = ( + 294B91452F1A37A900FAD075 /* MarketPlaceUITests */, + ); name = MarketPlaceUITests; productName = MarketPlaceUITests; productReference = B2C399132CA145CC004800DD /* MarketPlaceUITests.xctest */; @@ -1036,19 +224,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - B2C399042CA145CC004800DD /* Preview Assets.xcassets in Resources */, - 29B3EBB42E03D94E0095A310 /* Pretendard-SemiBold.otf in Resources */, - 29B3EBB52E03D94E0095A310 /* Pretendard-Thin.otf in Resources */, - 29B3EBB62E03D94E0095A310 /* Pretendard-Bold.otf in Resources */, - 29B3EBB72E03D94E0095A310 /* Pretendard-ExtraLight.otf in Resources */, - 29B3EBB82E03D94E0095A310 /* Pretendard-Regular.otf in Resources */, - 29B3EBB92E03D94E0095A310 /* Pretendard-Black.otf in Resources */, - B2B2CFBA2EC877EC00F0F588 /* KakaoMapKey.xcconfig in Resources */, - 29B3EBBA2E03D94E0095A310 /* Pretendard-Medium.otf in Resources */, - 29B3EBBB2E03D94E0095A310 /* Pretendard-ExtraBold.otf in Resources */, - 29B3EBBC2E03D94E0095A310 /* Pretendard-Light.otf in Resources */, - B2C399012CA145CC004800DD /* Assets.xcassets in Resources */, - 29BF18B02DE4492C00836D7E /* API_URL.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1073,150 +248,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - B28349132D2E5CA800EEDB02 /* CategoryTabView.swift in Sources */, - B21F3CFC2D267AF900B83B34 /* MarketDetailView.swift in Sources */, - 2976FA2B2DFC4D2F009782D1 /* CouponTopModel.swift in Sources */, - B26F4E8E2E57504C00C39C37 /* AlertViewModel.swift in Sources */, - B2DC8D162E0903FC00035476 /* CheerSearchCardCell.swift in Sources */, - B2DCB0682DF031EC00F9D4AB /* SearchFailedView.swift in Sources */, - B21F3CFC2D267AF900B83B34 /* MarketDetailView.swift in Sources */, - 29D53BF52DE83F82008E4F2E /* CheerViewModel.swift in Sources */, - 296085B92E1B8EE5009CE38B /* DropdownMenuView.swift in Sources */, - 29D53BF72DE8412E008E4F2E /* CheerMarketEndpoint.swift in Sources */, - B2C462982D8172BE007637DC /* LoginView.swift in Sources */, - 295DCBB62DED78C0009B5D82 /* MyCouponViewModel.swift in Sources */, - 2941F76C2DE596590063CEFE /* SearchMarketViewModel.swift in Sources */, - B2122E3B2D6F7AB400BD37F8 /* MapMarketListView.swift in Sources */, - B21F3D072D2B066F00B83B34 /* NewEventDetailView.swift in Sources */, - 29D53BFD2DE84F5D008E4F2E /* CheerListViewModel.swift in Sources */, - B2C3992D2CA1BF7F004800DD /* CategoryButton.swift in Sources */, - B2DC8CC92E03F2E500035476 /* MarketRequestModel.swift in Sources */, - 290D92D32DE55AD5008AC190 /* CommonMsgResDTO.swift in Sources */, - 2941F7952DE5A5760063CEFE /* Top20DetailViewModel.swift in Sources */, - B2F85BE72D6FAB210011DDF3 /* LocationManager.swift in Sources */, - 296D23682EF5ABA200122AD5 /* FullNoticePopUp.swift in Sources */, - B28349572D2FBD2F00EEDB02 /* SearchView.swift in Sources */, - B21F3CFA2D267AF900B83B34 /* MyPageView.swift in Sources */, - B28889AC2D4BD5F10040EC3F /* CouponPopup.swift in Sources */, - 296085B72E1B88CD009CE38B /* ConvertAddress.swift in Sources */, - B28A22AB2D64F1A700E86EF6 /* StoreInfoRow.swift in Sources */, - B2C398FF2CA145CB004800DD /* ContentView.swift in Sources */, - B293A1542D6FDCB2003E8505 /* HotCheerView.swift in Sources */, - B21F3CF42D267AF900B83B34 /* CategoryDetailView.swift in Sources */, - 29BF18C12DE4950700836D7E /* APIResDto.swift in Sources */, - B215F2912DE61C8400F53C51 /* AlertView.swift in Sources */, - B28A22AF2D64F1ED00E86EF6 /* StoreImageSlider.swift in Sources */, - 295DE7842ED4236400DB16E7 /* CheerMarketResDto.swift in Sources */, - B26F4E8B2E57308F00C39C37 /* NotificationEndpoint.swift in Sources */, - B210EC242D3D686500B1551E /* MyHeaderView.swift in Sources */, - 290A71B12E02792A009AEAF8 /* ShimmerView.swift in Sources */, - B210EC282D3D797F00B1551E /* SearchHeader.swift in Sources */, - 295948BB2E8E198100F641DC /* ViewModelable.swift in Sources */, - B293A15C2D6FE2A8003E8505 /* CheerSearchView.swift in Sources */, - 29BF193A2DE4AC9600836D7E /* MainHeaderView.swift in Sources */, - 29B3EBA92E03CF800095A310 /* KeyChainKeys.swift in Sources */, - 29B523732E152E0400120AE3 /* MyFavoriteMarketListViewModel.swift in Sources */, - 2976FA292DFC4B56009782D1 /* MainViewModel.swift in Sources */, - 29BF18BF2DE45B3900836D7E /* Category.swift in Sources */, - B255A5CE2D6218A000954837 /* MarketModel.swift in Sources */, - B28A22A82D64B0F900E86EF6 /* MarketDetailViewModel.swift in Sources */, - 29CC3F2B2E681ECD008F79F6 /* KakaoMapPoi.swift in Sources */, - B26F4E872E54400F00C39C37 /* NotificationModel.swift in Sources */, - B27E56D52D704438000D2881 /* HotCheerCardCell.swift in Sources */, - 2941F7932DE5A2FD0063CEFE /* MemberCouponService.swift in Sources */, - B215F2942DE61D9600F53C51 /* AlertButtonView.swift in Sources */, - 29CF81A22EBC60920065AE9A /* KakaoMapPoiWrapper.swift in Sources */, - B2122E3D2D6F7C0000BD37F8 /* MarketResDtos.swift in Sources */, - 29D19D202E13E63B00DEEADD /* RequestMarketMapView.swift in Sources */, - 29D19D2D2E14234900DEEADD /* RequestMarketMapViewModel.swift in Sources */, - B2122E3F2D6F7D4000BD37F8 /* MarketCategoryDetailViewModel.swift in Sources */, - 29E749362DEECFBA00E765E0 /* FavoriteMarketModel.swift in Sources */, - B28349552D2FBC4B00EEDB02 /* PopularityBenefitView.swift in Sources */, - 29D87F442DE8560500CE9011 /* HotCheerCardCellViewModel.swift in Sources */, - 295DCBB02DED6DC0009B5D82 /* MyPageViewModel.swift in Sources */, - B28349112D2E548A00EEDB02 /* MapView.swift in Sources */, - 290D93542DE58418008AC190 /* CouponBasicModel.swift in Sources */, - B2C398FD2CA145CB004800DD /* MarketPlaceApp.swift in Sources */, - 29CA0F232E5484B100EB4890 /* MarketInfoCellViewModel.swift in Sources */, - 29B3EBC02E03F3260095A310 /* CustomAlertView.swift in Sources */, - B28A22AD2D64F1C000E86EF6 /* StoreSearchButton.swift in Sources */, - 2941F78D2DE5A28A0063CEFE /* CouponService.swift in Sources */, - B21F3CF82D267AF900B83B34 /* MainView.swift in Sources */, - 29D11E362EC3390D001CEA92 /* KakaoAPIEndpoint.swift in Sources */, - 2941F7972DE5AAB50063CEFE /* NewEventViewModel.swift in Sources */, - B21F3CF62D267AF900B83B34 /* Top20View.swift in Sources */, - 29B3EBBE2E03DABD0095A310 /* Font+.swift in Sources */, - B21F3CF52D267AF900B83B34 /* MainCategoryView.swift in Sources */, - B28889AA2D4BD5A50040EC3F /* CouponCategoryView.swift in Sources */, - B28349662D36C02C00EEDB02 /* CouponModel.swift in Sources */, - B28A22A62D64B06F00E86EF6 /* MarketDetailModel.swift in Sources */, - 290A71B32E029F04009AEAF8 /* View+.swift in Sources */, - B2DC8CC72E03F15600035476 /* RequestMarketViewModel.swift in Sources */, - B21F3D092D2D57BE00B83B34 /* Color.swift in Sources */, - B27E56D32D703FBB000D2881 /* CheerCardCell.swift in Sources */, - B21F3D052D2B057000B83B34 /* Top20DetailView.swift in Sources */, - 2941F76E2DE597280063CEFE /* MarketSearchModel.swift in Sources */, - B24272612E26537F00E3B0ED /* ReceiptModel.swift in Sources */, - B2A42DCF2D8B3716005FAF15 /* LoginViewModel.swift in Sources */, - B2DCB0662DF02CFE00F9D4AB /* SearchSecondView.swift in Sources */, - B28A22BE2D666E7500E86EF6 /* CouponGetPopupView.swift in Sources */, - 2941F77E2DE5A0350063CEFE /* CouponEndpoint.swift in Sources */, - 29D87F4A2DE8629900CE9011 /* CircleCategoryTabView.swift in Sources */, - 29D19D1C2E13CC2000DEEADD /* KakaoMarketDataResDto.swift in Sources */, - 2941F7912DE5A2E00063CEFE /* MemberService.swift in Sources */, - 29D53BF92DE84728008E4F2E /* CheerMarketService.swift in Sources */, - 2941F77F2DE5A0350063CEFE /* Endpoint.swift in Sources */, - 2941F7802DE5A0350063CEFE /* MarketEndpoint.swift in Sources */, - B2DC8CC32E03E2D000035476 /* RequestMainView.swift in Sources */, - 2941F7812DE5A0350063CEFE /* MemberCouponEndpoint.swift in Sources */, - 29D87F832DE86D6900CE9011 /* MemberInfoModel.swift in Sources */, - 2941F7822DE5A0350063CEFE /* MemberEndPoint.swift in Sources */, - 29B5236D2E15054300120AE3 /* ImagePicker.swift in Sources */, - B2E3F57A2E0D486100091250 /* CheerSearchfailedView.swift in Sources */, - 29B3EBA72E03CE0D0095A310 /* UserDefaultsKeys.swift in Sources */, - 295DCBB82DED7C92009B5D82 /* CouponStatus.swift in Sources */, - 2941F7832DE5A0350063CEFE /* NetworkError.swift in Sources */, - 2941F7842DE5A0350063CEFE /* NetworkService.swift in Sources */, - 2941F7852DE5A0350063CEFE /* URLManager.swift in Sources */, - 293DCF442DE6FE43000122C5 /* Array+.swift in Sources */, - 2941F7872DE5A0350063CEFE /* KeychainManager.swift in Sources */, - 2941F7892DE5A0350063CEFE /* NetworkResult.swift in Sources */, - 2976FA2F2DFC5D90009782D1 /* MainBannerView.swift in Sources */, - B28889AE2D4BDC4D0040EC3F /* MembersCouponModel.swift in Sources */, - B2B40B102E880009006816CD /* NotificationFilterCategory.swift in Sources */, - B293A15A2D6FE0B4003E8505 /* CheerView.swift in Sources */, - 29E749342DEEABFA00E765E0 /* MyCouponResDto.swift in Sources */, - 290A71B52E02C8AE009AEAF8 /* CouponPopupViewModel.swift in Sources */, - 290D93522DE57CDE008AC190 /* CouponInfoCellViewModel.swift in Sources */, - 29CC3F292E6819E5008F79F6 /* UIImage+.swift in Sources */, - B293A1522D6FDC7B003E8505 /* CheerListView.swift in Sources */, - 293DCF142DE6CD2E000122C5 /* KakaoMapView.swift in Sources */, - B21F3CF22D267AF900B83B34 /* MarketInfoCell.swift in Sources */, - B22AB94C2D9B08FD006E13B4 /* CouponInfoCell.swift in Sources */, - B28A22B52D66636800E86EF6 /* MarketCouponListView.swift in Sources */, - 2941F78F2DE5A2BB0063CEFE /* MarketService.swift in Sources */, - B21F3D012D2685F500B83B34 /* ImageTextOverlay.swift in Sources */, - B21F3CF92D267AF900B83B34 /* MyCouponView.swift in Sources */, - B28349532D2FBBD800EEDB02 /* RecentSearchView.swift in Sources */, - 2941F79B2DE5DFDB0063CEFE /* MapViewModel.swift in Sources */, - 290A71AF2E027909009AEAF8 /* ShimmeringAsyncImage.swift in Sources */, - B27E56CD2D7037AF000D2881 /* CheerMarketModel.swift in Sources */, - 29F588FB2E548EE00022EE89 /* LoginRequriedPopup.swift in Sources */, - B28A22C02D668B0600E86EF6 /* MyFavoriteShopListView.swift in Sources */, - B24272632E2657C700E3B0ED /* SubmitReceiptViewModel.swift in Sources */, - B26F4E892E54650C00C39C37 /* NotificationService.swift in Sources */, - 29B5236B2E1503DF00120AE3 /* RegisterReceiptView.swift in Sources */, - 29D87F462DE85AC500CE9011 /* CheerCardCellViewModel.swift in Sources */, - 29E749322DEEA91100E765E0 /* MyCouponCellViewModel.swift in Sources */, - B28889A32D4BC9370040EC3F /* CouponResDtos.swift in Sources */, - B207A25F2D54B18C0099A8DB /* MyCouponCell.swift in Sources */, - 29DAD79B2E72A6780087CA53 /* CouponCategory.swift in Sources */, - 29B5236F2E150C9300120AE3 /* CouponType.swift in Sources */, - 290A71AD2E026969009AEAF8 /* TopClosingCouponResDto.swift in Sources */, - B215F2962DE6D77B00F53C51 /* AlertListView.swift in Sources */, - B28349162D2E604800EEDB02 /* ShopModel.swift in Sources */, - B21F3CF72D267AF900B83B34 /* NewEventView.swift in Sources */, - 29CA0F212E54821C00EB4890 /* LoginRequiredView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1224,7 +255,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - B2C3990E2CA145CC004800DD /* MarketPlaceTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1232,8 +262,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - B2C3991A2CA145CC004800DD /* MarketPlaceUITestsLaunchTests.swift in Sources */, - B2C399182CA145CC004800DD /* MarketPlaceUITests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1255,7 +283,8 @@ /* Begin XCBuildConfiguration section */ B2C3991B2CA145CC004800DD /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B2B2CFB92EC877EC00F0F588 /* KakaoMapKey.xcconfig */; + baseConfigurationReferenceAnchor = 294B92432F1A38F600FAD075 /* MarketPlace */; + baseConfigurationReferenceRelativePath = Resources/KakaoMapKey.xcconfig; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; @@ -1319,7 +348,8 @@ }; B2C3991C2CA145CC004800DD /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B2B2CFB92EC877EC00F0F588 /* KakaoMapKey.xcconfig */; + baseConfigurationReferenceAnchor = 294B92432F1A38F600FAD075 /* MarketPlace */; + baseConfigurationReferenceRelativePath = Resources/KakaoMapKey.xcconfig; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; @@ -1376,7 +406,8 @@ }; B2C3991E2CA145CC004800DD /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B2B2CFB92EC877EC00F0F588 /* KakaoMapKey.xcconfig */; + baseConfigurationReferenceAnchor = 294B92432F1A38F600FAD075 /* MarketPlace */; + baseConfigurationReferenceRelativePath = Resources/KakaoMapKey.xcconfig; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -1385,7 +416,7 @@ CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_ASSET_PATHS = "\"MarketPlace/Preview Content\""; - DEVELOPMENT_TEAM = 7RR74CRWQW; + DEVELOPMENT_TEAM = F7GYZYWC6V; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = MarketPlace/Info.plist; @@ -1417,7 +448,8 @@ }; B2C3991F2CA145CC004800DD /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B2B2CFB92EC877EC00F0F588 /* KakaoMapKey.xcconfig */; + baseConfigurationReferenceAnchor = 294B92432F1A38F600FAD075 /* MarketPlace */; + baseConfigurationReferenceRelativePath = Resources/KakaoMapKey.xcconfig; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -1425,7 +457,7 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = "\"MarketPlace/Preview Content\""; - DEVELOPMENT_TEAM = 7RR74CRWQW; + DEVELOPMENT_TEAM = F7GYZYWC6V; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = MarketPlace/Info.plist; @@ -1457,7 +489,8 @@ }; B2C399212CA145CC004800DD /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B2B2CFB92EC877EC00F0F588 /* KakaoMapKey.xcconfig */; + baseConfigurationReferenceAnchor = 294B92432F1A38F600FAD075 /* MarketPlace */; + baseConfigurationReferenceRelativePath = Resources/KakaoMapKey.xcconfig; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -1477,7 +510,8 @@ }; B2C399222CA145CC004800DD /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B2B2CFB92EC877EC00F0F588 /* KakaoMapKey.xcconfig */; + baseConfigurationReferenceAnchor = 294B92432F1A38F600FAD075 /* MarketPlace */; + baseConfigurationReferenceRelativePath = Resources/KakaoMapKey.xcconfig; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -1497,7 +531,8 @@ }; B2C399242CA145CC004800DD /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B2B2CFB92EC877EC00F0F588 /* KakaoMapKey.xcconfig */; + baseConfigurationReferenceAnchor = 294B92432F1A38F600FAD075 /* MarketPlace */; + baseConfigurationReferenceRelativePath = Resources/KakaoMapKey.xcconfig; buildSettings = { CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; @@ -1515,7 +550,8 @@ }; B2C399252CA145CC004800DD /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B2B2CFB92EC877EC00F0F588 /* KakaoMapKey.xcconfig */; + baseConfigurationReferenceAnchor = 294B92432F1A38F600FAD075 /* MarketPlace */; + baseConfigurationReferenceRelativePath = Resources/KakaoMapKey.xcconfig; buildSettings = { CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; diff --git a/MarketPlace/API_URL.plist b/MarketPlace/API_URL.plist deleted file mode 100644 index e10c09a..0000000 --- a/MarketPlace/API_URL.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - URL - https://marketplace.inuappcenter.kr/ - - diff --git a/MarketPlace/ConvertAddress.swift b/MarketPlace/Data/ConvertAddress.swift similarity index 100% rename from MarketPlace/ConvertAddress.swift rename to MarketPlace/Data/ConvertAddress.swift diff --git a/MarketPlace/API/Service/KeychainManager.swift b/MarketPlace/Data/KeychainManager.swift similarity index 100% rename from MarketPlace/API/Service/KeychainManager.swift rename to MarketPlace/Data/KeychainManager.swift diff --git a/MarketPlace/Types/KeyChainKeys.swift b/MarketPlace/Data/Local/KeyChainKeys.swift similarity index 100% rename from MarketPlace/Types/KeyChainKeys.swift rename to MarketPlace/Data/Local/KeyChainKeys.swift diff --git a/MarketPlace/Types/UserDefaultsKeys.swift b/MarketPlace/Data/Local/UserDefaultsKeys.swift similarity index 100% rename from MarketPlace/Types/UserDefaultsKeys.swift rename to MarketPlace/Data/Local/UserDefaultsKeys.swift diff --git a/MarketPlace/LocationManager.swift b/MarketPlace/Data/LocationManager.swift similarity index 100% rename from MarketPlace/LocationManager.swift rename to MarketPlace/Data/LocationManager.swift diff --git a/MarketPlace/DTO/APIResDto.swift b/MarketPlace/Data/Network/DTO/APIResDto.swift similarity index 100% rename from MarketPlace/DTO/APIResDto.swift rename to MarketPlace/Data/Network/DTO/APIResDto.swift diff --git a/MarketPlace/DTO/CheerMarketResDto.swift b/MarketPlace/Data/Network/DTO/CheerMarketResDto.swift similarity index 100% rename from MarketPlace/DTO/CheerMarketResDto.swift rename to MarketPlace/Data/Network/DTO/CheerMarketResDto.swift diff --git a/MarketPlace/DTO/CommonMsgResDTO.swift b/MarketPlace/Data/Network/DTO/CommonMsgResDTO.swift similarity index 100% rename from MarketPlace/DTO/CommonMsgResDTO.swift rename to MarketPlace/Data/Network/DTO/CommonMsgResDTO.swift diff --git a/MarketPlace/DTO/CouponResDtos.swift b/MarketPlace/Data/Network/DTO/CouponResDtos.swift similarity index 100% rename from MarketPlace/DTO/CouponResDtos.swift rename to MarketPlace/Data/Network/DTO/CouponResDtos.swift diff --git a/MarketPlace/DTO/KakaoMarketDataResDto.swift b/MarketPlace/Data/Network/DTO/KakaoMarketDataResDto.swift similarity index 100% rename from MarketPlace/DTO/KakaoMarketDataResDto.swift rename to MarketPlace/Data/Network/DTO/KakaoMarketDataResDto.swift diff --git a/MarketPlace/DTO/MarketResDtos.swift b/MarketPlace/Data/Network/DTO/MarketResDtos.swift similarity index 100% rename from MarketPlace/DTO/MarketResDtos.swift rename to MarketPlace/Data/Network/DTO/MarketResDtos.swift diff --git a/MarketPlace/DTO/MyCouponResDto.swift b/MarketPlace/Data/Network/DTO/MyCouponResDto.swift similarity index 100% rename from MarketPlace/DTO/MyCouponResDto.swift rename to MarketPlace/Data/Network/DTO/MyCouponResDto.swift diff --git a/MarketPlace/DTO/TopClosingCouponResDto.swift b/MarketPlace/Data/Network/DTO/TopClosingCouponResDto.swift similarity index 100% rename from MarketPlace/DTO/TopClosingCouponResDto.swift rename to MarketPlace/Data/Network/DTO/TopClosingCouponResDto.swift diff --git a/MarketPlace/API/Endpoint/CheerMarketEndpoint.swift b/MarketPlace/Data/Network/Endpoin/CheerMarketEndpoint.swift similarity index 100% rename from MarketPlace/API/Endpoint/CheerMarketEndpoint.swift rename to MarketPlace/Data/Network/Endpoin/CheerMarketEndpoint.swift diff --git a/MarketPlace/API/Endpoint/CouponEndpoint.swift b/MarketPlace/Data/Network/Endpoin/CouponEndpoint.swift similarity index 100% rename from MarketPlace/API/Endpoint/CouponEndpoint.swift rename to MarketPlace/Data/Network/Endpoin/CouponEndpoint.swift diff --git a/MarketPlace/API/Endpoint/KakaoAPIEndpoint.swift b/MarketPlace/Data/Network/Endpoin/KakaoAPIEndpoint.swift similarity index 100% rename from MarketPlace/API/Endpoint/KakaoAPIEndpoint.swift rename to MarketPlace/Data/Network/Endpoin/KakaoAPIEndpoint.swift diff --git a/MarketPlace/API/Endpoint/MarketEndpoint.swift b/MarketPlace/Data/Network/Endpoin/MarketEndpoint.swift similarity index 100% rename from MarketPlace/API/Endpoint/MarketEndpoint.swift rename to MarketPlace/Data/Network/Endpoin/MarketEndpoint.swift diff --git a/MarketPlace/API/Endpoint/MemberCouponEndpoint.swift b/MarketPlace/Data/Network/Endpoin/MemberCouponEndpoint.swift similarity index 100% rename from MarketPlace/API/Endpoint/MemberCouponEndpoint.swift rename to MarketPlace/Data/Network/Endpoin/MemberCouponEndpoint.swift diff --git a/MarketPlace/API/Endpoint/MemberEndPoint.swift b/MarketPlace/Data/Network/Endpoin/MemberEndPoint.swift similarity index 100% rename from MarketPlace/API/Endpoint/MemberEndPoint.swift rename to MarketPlace/Data/Network/Endpoin/MemberEndPoint.swift diff --git a/MarketPlace/API/Endpoint/NotificationEndpoint.swift b/MarketPlace/Data/Network/Endpoin/NotificationEndpoint.swift similarity index 100% rename from MarketPlace/API/Endpoint/NotificationEndpoint.swift rename to MarketPlace/Data/Network/Endpoin/NotificationEndpoint.swift diff --git a/MarketPlace/Service/CheerMarketService.swift b/MarketPlace/Data/Network/Service/CheerMarketService.swift similarity index 100% rename from MarketPlace/Service/CheerMarketService.swift rename to MarketPlace/Data/Network/Service/CheerMarketService.swift diff --git a/MarketPlace/Service/CouponService.swift b/MarketPlace/Data/Network/Service/CouponService.swift similarity index 100% rename from MarketPlace/Service/CouponService.swift rename to MarketPlace/Data/Network/Service/CouponService.swift diff --git a/MarketPlace/Service/MarketService.swift b/MarketPlace/Data/Network/Service/MarketService.swift similarity index 100% rename from MarketPlace/Service/MarketService.swift rename to MarketPlace/Data/Network/Service/MarketService.swift diff --git a/MarketPlace/Service/MemberCouponService.swift b/MarketPlace/Data/Network/Service/MemberCouponService.swift similarity index 100% rename from MarketPlace/Service/MemberCouponService.swift rename to MarketPlace/Data/Network/Service/MemberCouponService.swift diff --git a/MarketPlace/Service/MemberService.swift b/MarketPlace/Data/Network/Service/MemberService.swift similarity index 100% rename from MarketPlace/Service/MemberService.swift rename to MarketPlace/Data/Network/Service/MemberService.swift diff --git a/MarketPlace/Service/NotificationService.swift b/MarketPlace/Data/Network/Service/NotificationService.swift similarity index 100% rename from MarketPlace/Service/NotificationService.swift rename to MarketPlace/Data/Network/Service/NotificationService.swift diff --git a/MarketPlace/Model/CheerMarketModel.swift b/MarketPlace/Domain/Entities/CheerMarketModel.swift similarity index 100% rename from MarketPlace/Model/CheerMarketModel.swift rename to MarketPlace/Domain/Entities/CheerMarketModel.swift diff --git a/MarketPlace/Model/CouponBasicModel.swift b/MarketPlace/Domain/Entities/CouponBasicModel.swift similarity index 100% rename from MarketPlace/Model/CouponBasicModel.swift rename to MarketPlace/Domain/Entities/CouponBasicModel.swift diff --git a/MarketPlace/Model/CouponModel.swift b/MarketPlace/Domain/Entities/CouponModel.swift similarity index 100% rename from MarketPlace/Model/CouponModel.swift rename to MarketPlace/Domain/Entities/CouponModel.swift diff --git a/MarketPlace/Model/CouponTopModel.swift b/MarketPlace/Domain/Entities/CouponTopModel.swift similarity index 100% rename from MarketPlace/Model/CouponTopModel.swift rename to MarketPlace/Domain/Entities/CouponTopModel.swift diff --git a/MarketPlace/Model/KakaoMapPoi.swift b/MarketPlace/Domain/Entities/KakaoMapPoi.swift similarity index 100% rename from MarketPlace/Model/KakaoMapPoi.swift rename to MarketPlace/Domain/Entities/KakaoMapPoi.swift diff --git a/MarketPlace/Model/KakaoMapPoiWrapper.swift b/MarketPlace/Domain/Entities/KakaoMapPoiWrapper.swift similarity index 100% rename from MarketPlace/Model/KakaoMapPoiWrapper.swift rename to MarketPlace/Domain/Entities/KakaoMapPoiWrapper.swift diff --git a/MarketPlace/Model/Market/FavoriteMarketModel.swift b/MarketPlace/Domain/Entities/Market/FavoriteMarketModel.swift similarity index 100% rename from MarketPlace/Model/Market/FavoriteMarketModel.swift rename to MarketPlace/Domain/Entities/Market/FavoriteMarketModel.swift diff --git a/MarketPlace/Model/Market/MarketDetailModel.swift b/MarketPlace/Domain/Entities/Market/MarketDetailModel.swift similarity index 100% rename from MarketPlace/Model/Market/MarketDetailModel.swift rename to MarketPlace/Domain/Entities/Market/MarketDetailModel.swift diff --git a/MarketPlace/Model/Market/MarketModel.swift b/MarketPlace/Domain/Entities/Market/MarketModel.swift similarity index 100% rename from MarketPlace/Model/Market/MarketModel.swift rename to MarketPlace/Domain/Entities/Market/MarketModel.swift diff --git a/MarketPlace/Model/Market/MarketRequestModel.swift b/MarketPlace/Domain/Entities/Market/MarketRequestModel.swift similarity index 100% rename from MarketPlace/Model/Market/MarketRequestModel.swift rename to MarketPlace/Domain/Entities/Market/MarketRequestModel.swift diff --git a/MarketPlace/Model/Market/MarketSearchModel.swift b/MarketPlace/Domain/Entities/Market/MarketSearchModel.swift similarity index 100% rename from MarketPlace/Model/Market/MarketSearchModel.swift rename to MarketPlace/Domain/Entities/Market/MarketSearchModel.swift diff --git a/MarketPlace/Model/MemberInfoModel.swift b/MarketPlace/Domain/Entities/MemberInfoModel.swift similarity index 100% rename from MarketPlace/Model/MemberInfoModel.swift rename to MarketPlace/Domain/Entities/MemberInfoModel.swift diff --git a/MarketPlace/Model/MembersCouponModel.swift b/MarketPlace/Domain/Entities/MembersCouponModel.swift similarity index 100% rename from MarketPlace/Model/MembersCouponModel.swift rename to MarketPlace/Domain/Entities/MembersCouponModel.swift diff --git a/MarketPlace/Model/NotificationModel.swift b/MarketPlace/Domain/Entities/NotificationModel.swift similarity index 100% rename from MarketPlace/Model/NotificationModel.swift rename to MarketPlace/Domain/Entities/NotificationModel.swift diff --git a/MarketPlace/Model/ReceiptModel.swift b/MarketPlace/Domain/Entities/ReceiptModel.swift similarity index 100% rename from MarketPlace/Model/ReceiptModel.swift rename to MarketPlace/Domain/Entities/ReceiptModel.swift diff --git a/MarketPlace/Model/ShopModel.swift b/MarketPlace/Domain/Entities/ShopModel.swift similarity index 100% rename from MarketPlace/Model/ShopModel.swift rename to MarketPlace/Domain/Entities/ShopModel.swift diff --git a/MarketPlace/Types/Category.swift b/MarketPlace/Domain/Entities/Types/Category.swift similarity index 57% rename from MarketPlace/Types/Category.swift rename to MarketPlace/Domain/Entities/Types/Category.swift index 7e63abf..324baef 100644 --- a/MarketPlace/Types/Category.swift +++ b/MarketPlace/Domain/Entities/Types/Category.swift @@ -40,30 +40,4 @@ enum Category: String, CaseIterable { default: return nil } } - - func toUIName() -> String { - switch self { - case .ALL: return "전체" - case .FOOD: return "푸드" - case .DESSERT: return "디저트" - case .SPORT: return "스포츠" - case .BEAUTY: return "뷰티&헤어" - case .HOSPITAL: return "메디컬" - case .EDUCATION: return "에듀" - case .ETC: return "더 다양한" - } - } - - func toImageName() -> String { - switch self { - case .ALL: return "category_all" - case .FOOD: return "food" - case .DESSERT: return "dessert" - case .SPORT: return "sports" - case .BEAUTY: return "beauty" - case .HOSPITAL: return "medical" - case .EDUCATION: return "education" - case .ETC: return "etc" - } - } } diff --git a/MarketPlace/Types/CouponCategory.swift b/MarketPlace/Domain/Entities/Types/CouponCategory.swift similarity index 55% rename from MarketPlace/Types/CouponCategory.swift rename to MarketPlace/Domain/Entities/Types/CouponCategory.swift index 22dc480..ec51ed0 100644 --- a/MarketPlace/Types/CouponCategory.swift +++ b/MarketPlace/Domain/Entities/Types/CouponCategory.swift @@ -22,19 +22,4 @@ enum CouponCategory: CaseIterable { default: return nil } } - - func toString() -> String { - switch self { - case .payback, .gift: return "ISSUED" - case .ended: return "ENDED" - } - } - - func toUIName() -> String { - switch self { - case .payback: return "환급형 쿠폰" - case .gift: return "증정형 쿠폰" - case .ended: return "끝난 쿠폰" - } - } } diff --git a/MarketPlace/Domain/Entities/Types/CouponStatus.swift b/MarketPlace/Domain/Entities/Types/CouponStatus.swift new file mode 100644 index 0000000..b28c761 --- /dev/null +++ b/MarketPlace/Domain/Entities/Types/CouponStatus.swift @@ -0,0 +1,16 @@ +// +// CouponStatus.swift +// MarketPlace +// +// Created by Bowon Han on 6/2/25. +// + +import Foundation + +enum CouponStatus: String, CaseIterable { + case beforeSubmitReceipt + case beforePayback + case beforeUsedCoupon + case used + case ended +} diff --git a/MarketPlace/Types/CouponType.swift b/MarketPlace/Domain/Entities/Types/CouponType.swift similarity index 65% rename from MarketPlace/Types/CouponType.swift rename to MarketPlace/Domain/Entities/Types/CouponType.swift index 5fab45c..c66f0b1 100644 --- a/MarketPlace/Types/CouponType.swift +++ b/MarketPlace/Domain/Entities/Types/CouponType.swift @@ -16,11 +16,4 @@ enum CouponType: String, CaseIterable { case .refundableCoupon: return "PAYBACK" } } - - func toUIName() -> String { - switch self { - case .giftableCoupon: return "증정형 쿠폰" - case .refundableCoupon: return "환급형 쿠폰" - } - } } diff --git a/MarketPlace/View/Alert/component/NotificationFilterCategory.swift b/MarketPlace/Domain/Entities/Types/NotificationFilterCategory.swift similarity index 72% rename from MarketPlace/View/Alert/component/NotificationFilterCategory.swift rename to MarketPlace/Domain/Entities/Types/NotificationFilterCategory.swift index 118ba02..534eca1 100644 --- a/MarketPlace/View/Alert/component/NotificationFilterCategory.swift +++ b/MarketPlace/Domain/Entities/Types/NotificationFilterCategory.swift @@ -8,7 +8,10 @@ import Foundation enum NotificationFilterCategory: String, CaseIterable { - case ALL, MARKET, COUPON, NOTICE + case ALL + case MARKET + case COUPON + case NOTICE static let orderedCases: [NotificationFilterCategory] = [ .ALL, .MARKET, .COUPON, .NOTICE @@ -32,13 +35,4 @@ enum NotificationFilterCategory: String, CaseIterable { default: return nil } } - - func toUIName() -> String { - switch self { - case .ALL: return "전체" - case .MARKET: return "쿠폰 발급" - case .COUPON: return "쿠폰 만료" - case .NOTICE: return "공지" - } - } } diff --git a/MarketPlace/UICommon/Color.swift b/MarketPlace/Extension/Color+.swift similarity index 100% rename from MarketPlace/UICommon/Color.swift rename to MarketPlace/Extension/Color+.swift diff --git a/MarketPlace/API/Endpoint/Endpoint.swift b/MarketPlace/Infrastructure/Network/Endpoint.swift similarity index 100% rename from MarketPlace/API/Endpoint/Endpoint.swift rename to MarketPlace/Infrastructure/Network/Endpoint.swift diff --git a/MarketPlace/API/Service/NetworkError.swift b/MarketPlace/Infrastructure/Network/NetworkError.swift similarity index 100% rename from MarketPlace/API/Service/NetworkError.swift rename to MarketPlace/Infrastructure/Network/NetworkError.swift diff --git a/MarketPlace/API/NetworkResult.swift b/MarketPlace/Infrastructure/Network/NetworkResult.swift similarity index 100% rename from MarketPlace/API/NetworkResult.swift rename to MarketPlace/Infrastructure/Network/NetworkResult.swift diff --git a/MarketPlace/API/Service/NetworkService.swift b/MarketPlace/Infrastructure/Network/NetworkService.swift similarity index 100% rename from MarketPlace/API/Service/NetworkService.swift rename to MarketPlace/Infrastructure/Network/NetworkService.swift diff --git a/MarketPlace/API/Service/URLManager.swift b/MarketPlace/Infrastructure/Network/URLManager.swift similarity index 100% rename from MarketPlace/API/Service/URLManager.swift rename to MarketPlace/Infrastructure/Network/URLManager.swift diff --git a/MarketPlace/ViewModelable.swift b/MarketPlace/Infrastructure/ViewModelable.swift similarity index 100% rename from MarketPlace/ViewModelable.swift rename to MarketPlace/Infrastructure/ViewModelable.swift diff --git a/MarketPlace/Model/FavoriteModel.swift b/MarketPlace/Model/FavoriteModel.swift deleted file mode 100644 index 8b13789..0000000 --- a/MarketPlace/Model/FavoriteModel.swift +++ /dev/null @@ -1 +0,0 @@ - diff --git a/MarketPlace/View/Cheer/Components/CheerCardCell.swift b/MarketPlace/Presenter/CheerScene/Cheer/Components/CheerCardCell.swift similarity index 100% rename from MarketPlace/View/Cheer/Components/CheerCardCell.swift rename to MarketPlace/Presenter/CheerScene/Cheer/Components/CheerCardCell.swift diff --git a/MarketPlace/View/Cheer/View/CheerListView.swift b/MarketPlace/Presenter/CheerScene/Cheer/Components/CheerListView.swift similarity index 100% rename from MarketPlace/View/Cheer/View/CheerListView.swift rename to MarketPlace/Presenter/CheerScene/Cheer/Components/CheerListView.swift diff --git a/MarketPlace/View/Components/CircleCategoryTabView.swift b/MarketPlace/Presenter/CheerScene/Cheer/Components/CircleCategoryTabView.swift similarity index 100% rename from MarketPlace/View/Components/CircleCategoryTabView.swift rename to MarketPlace/Presenter/CheerScene/Cheer/Components/CircleCategoryTabView.swift diff --git a/MarketPlace/View/Cheer/Components/HotCheerCardCell.swift b/MarketPlace/Presenter/CheerScene/Cheer/Components/HotCheerCardCell.swift similarity index 100% rename from MarketPlace/View/Cheer/Components/HotCheerCardCell.swift rename to MarketPlace/Presenter/CheerScene/Cheer/Components/HotCheerCardCell.swift diff --git a/MarketPlace/View/Cheer/View/HotCheerView.swift b/MarketPlace/Presenter/CheerScene/Cheer/Components/HotCheerView.swift similarity index 100% rename from MarketPlace/View/Cheer/View/HotCheerView.swift rename to MarketPlace/Presenter/CheerScene/Cheer/Components/HotCheerView.swift diff --git a/MarketPlace/View/Cheer/View/CheerView.swift b/MarketPlace/Presenter/CheerScene/Cheer/View/CheerView.swift similarity index 100% rename from MarketPlace/View/Cheer/View/CheerView.swift rename to MarketPlace/Presenter/CheerScene/Cheer/View/CheerView.swift diff --git a/MarketPlace/ViewModel/Cheer/CheerCardCellViewModel.swift b/MarketPlace/Presenter/CheerScene/Cheer/ViewModel/CheerCardCellViewModel.swift similarity index 100% rename from MarketPlace/ViewModel/Cheer/CheerCardCellViewModel.swift rename to MarketPlace/Presenter/CheerScene/Cheer/ViewModel/CheerCardCellViewModel.swift diff --git a/MarketPlace/ViewModel/Cheer/CheerListViewModel.swift b/MarketPlace/Presenter/CheerScene/Cheer/ViewModel/CheerListViewModel.swift similarity index 100% rename from MarketPlace/ViewModel/Cheer/CheerListViewModel.swift rename to MarketPlace/Presenter/CheerScene/Cheer/ViewModel/CheerListViewModel.swift diff --git a/MarketPlace/ViewModel/Cheer/CheerViewModel.swift b/MarketPlace/Presenter/CheerScene/Cheer/ViewModel/CheerViewModel.swift similarity index 100% rename from MarketPlace/ViewModel/Cheer/CheerViewModel.swift rename to MarketPlace/Presenter/CheerScene/Cheer/ViewModel/CheerViewModel.swift diff --git a/MarketPlace/ViewModel/Cheer/HotCheerCardCellViewModel.swift b/MarketPlace/Presenter/CheerScene/Cheer/ViewModel/HotCheerCardCellViewModel.swift similarity index 100% rename from MarketPlace/ViewModel/Cheer/HotCheerCardCellViewModel.swift rename to MarketPlace/Presenter/CheerScene/Cheer/ViewModel/HotCheerCardCellViewModel.swift diff --git a/MarketPlace/View/Cheer/Components/CheerSearchCardCell.swift b/MarketPlace/Presenter/CheerScene/CheerSearch/Components/CheerSearchCardCell.swift similarity index 100% rename from MarketPlace/View/Cheer/Components/CheerSearchCardCell.swift rename to MarketPlace/Presenter/CheerScene/CheerSearch/Components/CheerSearchCardCell.swift diff --git a/MarketPlace/View/Cheer/View/CheerSearchView.swift b/MarketPlace/Presenter/CheerScene/CheerSearch/View/CheerSearchView.swift similarity index 100% rename from MarketPlace/View/Cheer/View/CheerSearchView.swift rename to MarketPlace/Presenter/CheerScene/CheerSearch/View/CheerSearchView.swift diff --git a/MarketPlace/View/Cheer/View/CheerSearchfailedView.swift b/MarketPlace/Presenter/CheerScene/CheerSearch/View/CheerSearchfailedView.swift similarity index 100% rename from MarketPlace/View/Cheer/View/CheerSearchfailedView.swift rename to MarketPlace/Presenter/CheerScene/CheerSearch/View/CheerSearchfailedView.swift diff --git a/MarketPlace/View/Components/CategoryTabView.swift b/MarketPlace/Presenter/CommonComponents/View/CategoryTabView.swift similarity index 100% rename from MarketPlace/View/Components/CategoryTabView.swift rename to MarketPlace/Presenter/CommonComponents/View/CategoryTabView.swift diff --git a/MarketPlace/Presenter/CommonComponents/View/CheckBoxView.swift b/MarketPlace/Presenter/CommonComponents/View/CheckBoxView.swift new file mode 100644 index 0000000..8905339 --- /dev/null +++ b/MarketPlace/Presenter/CommonComponents/View/CheckBoxView.swift @@ -0,0 +1,29 @@ +// +// CheckBoxView.swift +// MarketPlace +// +// Created by Bowon Han on 1/16/26. +// + +import SwiftUI + +struct CheckboxView: View { + let title: String + @Binding var isChecked: Bool + let action: ((Bool) -> Void)? + + var body: some View { + Button(action: { + isChecked.toggle() + action?(isChecked) + }) { + HStack { + Image(systemName: isChecked ? "checkmark.square.fill" : "square") + .foregroundColor(Colors.grayscale_gray_400) + Text(title) + .pretendardFont(size: 12, weight: .bold) + .foregroundColor(Colors.gray_900) + } + } + } +} diff --git a/MarketPlace/UICommon/LoginRequiredView.swift b/MarketPlace/Presenter/CommonComponents/View/LoginRequiredView.swift similarity index 100% rename from MarketPlace/UICommon/LoginRequiredView.swift rename to MarketPlace/Presenter/CommonComponents/View/LoginRequiredView.swift diff --git a/MarketPlace/UICommon/LoginRequriedPopup.swift b/MarketPlace/Presenter/CommonComponents/View/LoginRequriedPopup.swift similarity index 100% rename from MarketPlace/UICommon/LoginRequriedPopup.swift rename to MarketPlace/Presenter/CommonComponents/View/LoginRequriedPopup.swift diff --git a/MarketPlace/View/Components/MarketInfoCell.swift b/MarketPlace/Presenter/CommonComponents/View/MarketInfoCell.swift similarity index 100% rename from MarketPlace/View/Components/MarketInfoCell.swift rename to MarketPlace/Presenter/CommonComponents/View/MarketInfoCell.swift diff --git a/MarketPlace/View/Components/ShimmerView.swift b/MarketPlace/Presenter/CommonComponents/View/ShimmerView.swift similarity index 100% rename from MarketPlace/View/Components/ShimmerView.swift rename to MarketPlace/Presenter/CommonComponents/View/ShimmerView.swift diff --git a/MarketPlace/View/Components/ShimmeringAsyncImage.swift b/MarketPlace/Presenter/CommonComponents/View/ShimmeringAsyncImage.swift similarity index 100% rename from MarketPlace/View/Components/ShimmeringAsyncImage.swift rename to MarketPlace/Presenter/CommonComponents/View/ShimmeringAsyncImage.swift diff --git a/MarketPlace/ViewModel/Main/MarketInfoCellViewModel.swift b/MarketPlace/Presenter/CommonComponents/ViewModel/MarketInfoCellViewModel.swift similarity index 100% rename from MarketPlace/ViewModel/Main/MarketInfoCellViewModel.swift rename to MarketPlace/Presenter/CommonComponents/ViewModel/MarketInfoCellViewModel.swift diff --git a/MarketPlace/View/Main/View/CouponGetPopupView.swift b/MarketPlace/Presenter/CommonScene/CouponGetPopup/View/CouponGetPopupView.swift similarity index 100% rename from MarketPlace/View/Main/View/CouponGetPopupView.swift rename to MarketPlace/Presenter/CommonScene/CouponGetPopup/View/CouponGetPopupView.swift diff --git a/MarketPlace/ViewModel/Main/CouponPopupViewModel.swift b/MarketPlace/Presenter/CommonScene/CouponGetPopup/ViewModel/CouponPopupViewModel.swift similarity index 100% rename from MarketPlace/ViewModel/Main/CouponPopupViewModel.swift rename to MarketPlace/Presenter/CommonScene/CouponGetPopup/ViewModel/CouponPopupViewModel.swift diff --git a/MarketPlace/View/Components/CustomAlertView.swift b/MarketPlace/Presenter/CommonScene/CustomAlertPopup/View/CustomAlertView.swift similarity index 100% rename from MarketPlace/View/Components/CustomAlertView.swift rename to MarketPlace/Presenter/CommonScene/CustomAlertPopup/View/CustomAlertView.swift diff --git a/MarketPlace/View/Main/Components/MarketCouponListView.swift b/MarketPlace/Presenter/CommonScene/MarketDetail/Components/MarketCouponListView.swift similarity index 100% rename from MarketPlace/View/Main/Components/MarketCouponListView.swift rename to MarketPlace/Presenter/CommonScene/MarketDetail/Components/MarketCouponListView.swift diff --git a/MarketPlace/View/Main/Components/StoreImageSlider.swift b/MarketPlace/Presenter/CommonScene/MarketDetail/Components/StoreImageSlider.swift similarity index 100% rename from MarketPlace/View/Main/Components/StoreImageSlider.swift rename to MarketPlace/Presenter/CommonScene/MarketDetail/Components/StoreImageSlider.swift diff --git a/MarketPlace/View/Main/Components/StoreInfoRow.swift b/MarketPlace/Presenter/CommonScene/MarketDetail/Components/StoreInfoRow.swift similarity index 100% rename from MarketPlace/View/Main/Components/StoreInfoRow.swift rename to MarketPlace/Presenter/CommonScene/MarketDetail/Components/StoreInfoRow.swift diff --git a/MarketPlace/View/Main/Components/StoreSearchButton.swift b/MarketPlace/Presenter/CommonScene/MarketDetail/Components/StoreSearchButton.swift similarity index 100% rename from MarketPlace/View/Main/Components/StoreSearchButton.swift rename to MarketPlace/Presenter/CommonScene/MarketDetail/Components/StoreSearchButton.swift diff --git a/MarketPlace/View/Main/View/MarketDetailView.swift b/MarketPlace/Presenter/CommonScene/MarketDetail/View/MarketDetailView.swift similarity index 100% rename from MarketPlace/View/Main/View/MarketDetailView.swift rename to MarketPlace/Presenter/CommonScene/MarketDetail/View/MarketDetailView.swift diff --git a/MarketPlace/ViewModel/Main/MarketDetailViewModel.swift b/MarketPlace/Presenter/CommonScene/MarketDetail/ViewModel/MarketDetailViewModel.swift similarity index 100% rename from MarketPlace/ViewModel/Main/MarketDetailViewModel.swift rename to MarketPlace/Presenter/CommonScene/MarketDetail/ViewModel/MarketDetailViewModel.swift diff --git a/MarketPlace/View/Request/RequestMarketMapView.swift b/MarketPlace/Presenter/CommonScene/RequestMarket/Components/RequestMarketMapView.swift similarity index 100% rename from MarketPlace/View/Request/RequestMarketMapView.swift rename to MarketPlace/Presenter/CommonScene/RequestMarket/Components/RequestMarketMapView.swift diff --git a/MarketPlace/View/Request/RequestMainView.swift b/MarketPlace/Presenter/CommonScene/RequestMarket/View/RequestMainView.swift similarity index 100% rename from MarketPlace/View/Request/RequestMainView.swift rename to MarketPlace/Presenter/CommonScene/RequestMarket/View/RequestMainView.swift diff --git a/MarketPlace/ViewModel/Request/RequestMarketMapViewModel.swift b/MarketPlace/Presenter/CommonScene/RequestMarket/ViewModel/RequestMarketMapViewModel.swift similarity index 100% rename from MarketPlace/ViewModel/Request/RequestMarketMapViewModel.swift rename to MarketPlace/Presenter/CommonScene/RequestMarket/ViewModel/RequestMarketMapViewModel.swift diff --git a/MarketPlace/ViewModel/Request/RequestMarketViewModel.swift b/MarketPlace/Presenter/CommonScene/RequestMarket/ViewModel/RequestMarketViewModel.swift similarity index 100% rename from MarketPlace/ViewModel/Request/RequestMarketViewModel.swift rename to MarketPlace/Presenter/CommonScene/RequestMarket/ViewModel/RequestMarketViewModel.swift diff --git a/MarketPlace/Presenter/Extension/Category+UI.swift b/MarketPlace/Presenter/Extension/Category+UI.swift new file mode 100644 index 0000000..b826b16 --- /dev/null +++ b/MarketPlace/Presenter/Extension/Category+UI.swift @@ -0,0 +1,36 @@ +// +// Category+UI.swift +// MarketPlace +// +// Created by Bowon Han on 1/19/26. +// + +import Foundation + +extension Category { + func toUIName() -> String { + switch self { + case .ALL: return "전체" + case .FOOD: return "푸드" + case .DESSERT: return "디저트" + case .SPORT: return "스포츠" + case .BEAUTY: return "뷰티&헤어" + case .HOSPITAL: return "메디컬" + case .EDUCATION: return "에듀" + case .ETC: return "더 다양한" + } + } + + func toImageName() -> String { + switch self { + case .ALL: return "category_all" + case .FOOD: return "food" + case .DESSERT: return "dessert" + case .SPORT: return "sports" + case .BEAUTY: return "beauty" + case .HOSPITAL: return "medical" + case .EDUCATION: return "education" + case .ETC: return "etc" + } + } +} diff --git a/MarketPlace/Presenter/Extension/CouponCategory+UI.swift b/MarketPlace/Presenter/Extension/CouponCategory+UI.swift new file mode 100644 index 0000000..d9c0646 --- /dev/null +++ b/MarketPlace/Presenter/Extension/CouponCategory+UI.swift @@ -0,0 +1,25 @@ +// +// CouponCategory+UI.swift +// MarketPlace +// +// Created by Bowon Han on 1/19/26. +// + +import Foundation + +extension CouponCategory { + func toString() -> String { + switch self { + case .payback, .gift: return "ISSUED" + case .ended: return "ENDED" + } + } + + func toUIName() -> String { + switch self { + case .payback: return "환급형 쿠폰" + case .gift: return "증정형 쿠폰" + case .ended: return "끝난 쿠폰" + } + } +} diff --git a/MarketPlace/Types/CouponStatus.swift b/MarketPlace/Presenter/Extension/CouponStatus+UI.swift similarity index 65% rename from MarketPlace/Types/CouponStatus.swift rename to MarketPlace/Presenter/Extension/CouponStatus+UI.swift index e184909..fd84647 100644 --- a/MarketPlace/Types/CouponStatus.swift +++ b/MarketPlace/Presenter/Extension/CouponStatus+UI.swift @@ -1,15 +1,13 @@ // -// CouponStatus.swift +// CouponStatus+UI.swift // MarketPlace // -// Created by Bowon Han on 6/2/25. +// Created by Bowon Han on 1/19/26. // import Foundation -enum CouponStatus: String, CaseIterable { - case beforeSubmitReceipt, beforePayback, beforeUsedCoupon, used, ended - +extension CouponStatus { func toUIName() -> String { switch self { case .beforeSubmitReceipt: "환급하러 가기" diff --git a/MarketPlace/Presenter/Extension/CouponType+UI.swift b/MarketPlace/Presenter/Extension/CouponType+UI.swift new file mode 100644 index 0000000..486625d --- /dev/null +++ b/MarketPlace/Presenter/Extension/CouponType+UI.swift @@ -0,0 +1,17 @@ +// +// CouponType+UI.swift +// MarketPlace +// +// Created by Bowon Han on 1/19/26. +// + +import Foundation + +extension CouponType { + func toUIName() -> String { + switch self { + case .giftableCoupon: return "증정형 쿠폰" + case .refundableCoupon: return "환급형 쿠폰" + } + } +} diff --git a/MarketPlace/Presenter/Extension/NotificationFilterCategory+UI.swift b/MarketPlace/Presenter/Extension/NotificationFilterCategory+UI.swift new file mode 100644 index 0000000..5069321 --- /dev/null +++ b/MarketPlace/Presenter/Extension/NotificationFilterCategory+UI.swift @@ -0,0 +1,19 @@ +// +// NotificationFilterCategory+UI.swift +// MarketPlace +// +// Created by Bowon Han on 1/19/26. +// + +import Foundation + +extension NotificationFilterCategory { + func toUIName() -> String { + switch self { + case .ALL: return "전체" + case .MARKET: return "쿠폰 발급" + case .COUPON: return "쿠폰 만료" + case .NOTICE: return "공지" + } + } +} diff --git a/MarketPlace/View/Alert/component/AlertButtonView.swift b/MarketPlace/Presenter/HomeScene/Alert/Components/AlertButtonView.swift similarity index 100% rename from MarketPlace/View/Alert/component/AlertButtonView.swift rename to MarketPlace/Presenter/HomeScene/Alert/Components/AlertButtonView.swift diff --git a/MarketPlace/View/Alert/component/AlertListView.swift b/MarketPlace/Presenter/HomeScene/Alert/Components/AlertListView.swift similarity index 100% rename from MarketPlace/View/Alert/component/AlertListView.swift rename to MarketPlace/Presenter/HomeScene/Alert/Components/AlertListView.swift diff --git a/MarketPlace/View/Alert/AlertView.swift b/MarketPlace/Presenter/HomeScene/Alert/View/AlertView.swift similarity index 100% rename from MarketPlace/View/Alert/AlertView.swift rename to MarketPlace/Presenter/HomeScene/Alert/View/AlertView.swift diff --git a/MarketPlace/ViewModel/Alert/AlertViewModel.swift b/MarketPlace/Presenter/HomeScene/Alert/ViewModel/AlertViewModel.swift similarity index 100% rename from MarketPlace/ViewModel/Alert/AlertViewModel.swift rename to MarketPlace/Presenter/HomeScene/Alert/ViewModel/AlertViewModel.swift diff --git a/MarketPlace/View/Main/View/CategoryDetailView.swift b/MarketPlace/Presenter/HomeScene/CategoryMarketList/View/CategoryDetailView.swift similarity index 100% rename from MarketPlace/View/Main/View/CategoryDetailView.swift rename to MarketPlace/Presenter/HomeScene/CategoryMarketList/View/CategoryDetailView.swift diff --git a/MarketPlace/ViewModel/Main/MarketCategoryDetailViewModel.swift b/MarketPlace/Presenter/HomeScene/CategoryMarketList/ViewModel/MarketCategoryDetailViewModel.swift similarity index 100% rename from MarketPlace/ViewModel/Main/MarketCategoryDetailViewModel.swift rename to MarketPlace/Presenter/HomeScene/CategoryMarketList/ViewModel/MarketCategoryDetailViewModel.swift diff --git a/MarketPlace/View/Components/CouponInfoCell.swift b/MarketPlace/Presenter/HomeScene/Components/View/CouponInfoCell.swift similarity index 100% rename from MarketPlace/View/Components/CouponInfoCell.swift rename to MarketPlace/Presenter/HomeScene/Components/View/CouponInfoCell.swift diff --git a/MarketPlace/ViewModel/Main/CouponInfoCellViewModel.swift b/MarketPlace/Presenter/HomeScene/Components/ViewModel/CouponInfoCellViewModel.swift similarity index 100% rename from MarketPlace/ViewModel/Main/CouponInfoCellViewModel.swift rename to MarketPlace/Presenter/HomeScene/Components/ViewModel/CouponInfoCellViewModel.swift diff --git a/MarketPlace/View/Main/Components/ImageTextOverlay.swift b/MarketPlace/Presenter/HomeScene/Main/Components/ImageTextOverlay.swift similarity index 100% rename from MarketPlace/View/Main/Components/ImageTextOverlay.swift rename to MarketPlace/Presenter/HomeScene/Main/Components/ImageTextOverlay.swift diff --git a/MarketPlace/View/Main/Components/MainBannerView.swift b/MarketPlace/Presenter/HomeScene/Main/Components/MainBannerView.swift similarity index 100% rename from MarketPlace/View/Main/Components/MainBannerView.swift rename to MarketPlace/Presenter/HomeScene/Main/Components/MainBannerView.swift diff --git a/MarketPlace/View/Main/Components/MainCategoryView.swift b/MarketPlace/Presenter/HomeScene/Main/Components/MainCategoryView.swift similarity index 100% rename from MarketPlace/View/Main/Components/MainCategoryView.swift rename to MarketPlace/Presenter/HomeScene/Main/Components/MainCategoryView.swift diff --git a/MarketPlace/View/Main/Components/MainHeaderView.swift b/MarketPlace/Presenter/HomeScene/Main/Components/MainHeaderView.swift similarity index 100% rename from MarketPlace/View/Main/Components/MainHeaderView.swift rename to MarketPlace/Presenter/HomeScene/Main/Components/MainHeaderView.swift diff --git a/MarketPlace/View/Main/Components/NewEventView.swift b/MarketPlace/Presenter/HomeScene/Main/Components/NewEventView.swift similarity index 100% rename from MarketPlace/View/Main/Components/NewEventView.swift rename to MarketPlace/Presenter/HomeScene/Main/Components/NewEventView.swift diff --git a/MarketPlace/View/Main/Components/Top20View.swift b/MarketPlace/Presenter/HomeScene/Main/Components/Top20View.swift similarity index 100% rename from MarketPlace/View/Main/Components/Top20View.swift rename to MarketPlace/Presenter/HomeScene/Main/Components/Top20View.swift diff --git a/MarketPlace/View/Main/View/MainView.swift b/MarketPlace/Presenter/HomeScene/Main/View/MainView.swift similarity index 100% rename from MarketPlace/View/Main/View/MainView.swift rename to MarketPlace/Presenter/HomeScene/Main/View/MainView.swift diff --git a/MarketPlace/ViewModel/Main/MainViewModel.swift b/MarketPlace/Presenter/HomeScene/Main/ViewModel/MainViewModel.swift similarity index 100% rename from MarketPlace/ViewModel/Main/MainViewModel.swift rename to MarketPlace/Presenter/HomeScene/Main/ViewModel/MainViewModel.swift diff --git a/MarketPlace/View/Main/View/NewEventDetailView.swift b/MarketPlace/Presenter/HomeScene/NewMarketList/View/NewEventDetailView.swift similarity index 100% rename from MarketPlace/View/Main/View/NewEventDetailView.swift rename to MarketPlace/Presenter/HomeScene/NewMarketList/View/NewEventDetailView.swift diff --git a/MarketPlace/ViewModel/Main/NewEventViewModel.swift b/MarketPlace/Presenter/HomeScene/NewMarketList/ViewModel/NewEventViewModel.swift similarity index 100% rename from MarketPlace/ViewModel/Main/NewEventViewModel.swift rename to MarketPlace/Presenter/HomeScene/NewMarketList/ViewModel/NewEventViewModel.swift diff --git a/MarketPlace/View/Main/View/Top20DetailView.swift b/MarketPlace/Presenter/HomeScene/PopularMarketList/View/Top20DetailView.swift similarity index 100% rename from MarketPlace/View/Main/View/Top20DetailView.swift rename to MarketPlace/Presenter/HomeScene/PopularMarketList/View/Top20DetailView.swift diff --git a/MarketPlace/ViewModel/Main/Top20DetailViewModel.swift b/MarketPlace/Presenter/HomeScene/PopularMarketList/ViewModel/Top20DetailViewModel.swift similarity index 100% rename from MarketPlace/ViewModel/Main/Top20DetailViewModel.swift rename to MarketPlace/Presenter/HomeScene/PopularMarketList/ViewModel/Top20DetailViewModel.swift diff --git a/MarketPlace/View/Search/Component/PopularityBenefitView.swift b/MarketPlace/Presenter/HomeScene/Search/Components/PopularityBenefitView.swift similarity index 100% rename from MarketPlace/View/Search/Component/PopularityBenefitView.swift rename to MarketPlace/Presenter/HomeScene/Search/Components/PopularityBenefitView.swift diff --git a/MarketPlace/View/Search/Component/RecentSearchView.swift b/MarketPlace/Presenter/HomeScene/Search/Components/RecentSearchView.swift similarity index 100% rename from MarketPlace/View/Search/Component/RecentSearchView.swift rename to MarketPlace/Presenter/HomeScene/Search/Components/RecentSearchView.swift diff --git a/MarketPlace/View/Search/View/SearchFailedView.swift b/MarketPlace/Presenter/HomeScene/Search/Components/SearchFailedView.swift similarity index 100% rename from MarketPlace/View/Search/View/SearchFailedView.swift rename to MarketPlace/Presenter/HomeScene/Search/Components/SearchFailedView.swift diff --git a/MarketPlace/View/Search/Component/SearchHeader.swift b/MarketPlace/Presenter/HomeScene/Search/Components/SearchHeader.swift similarity index 100% rename from MarketPlace/View/Search/Component/SearchHeader.swift rename to MarketPlace/Presenter/HomeScene/Search/Components/SearchHeader.swift diff --git a/MarketPlace/View/Search/View/SearchSecondView.swift b/MarketPlace/Presenter/HomeScene/Search/Components/SearchSecondView.swift similarity index 100% rename from MarketPlace/View/Search/View/SearchSecondView.swift rename to MarketPlace/Presenter/HomeScene/Search/Components/SearchSecondView.swift diff --git a/MarketPlace/View/Search/View/SearchView.swift b/MarketPlace/Presenter/HomeScene/Search/View/SearchView.swift similarity index 100% rename from MarketPlace/View/Search/View/SearchView.swift rename to MarketPlace/Presenter/HomeScene/Search/View/SearchView.swift diff --git a/MarketPlace/ViewModel/Search/SearchMarketViewModel.swift b/MarketPlace/Presenter/HomeScene/Search/ViewModel/SearchMarketViewModel.swift similarity index 100% rename from MarketPlace/ViewModel/Search/SearchMarketViewModel.swift rename to MarketPlace/Presenter/HomeScene/Search/ViewModel/SearchMarketViewModel.swift diff --git a/MarketPlace/View/Login/LoginView.swift b/MarketPlace/Presenter/LoginScene/Login/View/LoginView.swift similarity index 92% rename from MarketPlace/View/Login/LoginView.swift rename to MarketPlace/Presenter/LoginScene/Login/View/LoginView.swift index 33d927a..2398a89 100644 --- a/MarketPlace/View/Login/LoginView.swift +++ b/MarketPlace/Presenter/LoginScene/Login/View/LoginView.swift @@ -168,24 +168,3 @@ struct LoginView: View { } } } - -struct CheckboxView: View { - let title: String - @Binding var isChecked: Bool - let action: ((Bool) -> Void)? - - var body: some View { - Button(action: { - isChecked.toggle() - action?(isChecked) - }) { - HStack { - Image(systemName: isChecked ? "checkmark.square.fill" : "square") - .foregroundColor(Colors.grayscale_gray_400) - Text(title) - .pretendardFont(size: 12, weight: .bold) - .foregroundColor(Colors.gray_900) - } - } - } -} diff --git a/MarketPlace/ViewModel/Login/LoginViewModel.swift b/MarketPlace/Presenter/LoginScene/Login/ViewModel/LoginViewModel.swift similarity index 100% rename from MarketPlace/ViewModel/Login/LoginViewModel.swift rename to MarketPlace/Presenter/LoginScene/Login/ViewModel/LoginViewModel.swift diff --git a/MarketPlace/View/Map/KakaoMapView.swift b/MarketPlace/Presenter/MapScene/Map/Components/KakaoMapView.swift similarity index 100% rename from MarketPlace/View/Map/KakaoMapView.swift rename to MarketPlace/Presenter/MapScene/Map/Components/KakaoMapView.swift diff --git a/MarketPlace/View/Map/View/MapMarketListView.swift b/MarketPlace/Presenter/MapScene/Map/Components/MapMarketListView.swift similarity index 100% rename from MarketPlace/View/Map/View/MapMarketListView.swift rename to MarketPlace/Presenter/MapScene/Map/Components/MapMarketListView.swift diff --git a/MarketPlace/View/Map/View/MapView.swift b/MarketPlace/Presenter/MapScene/Map/View/MapView.swift similarity index 100% rename from MarketPlace/View/Map/View/MapView.swift rename to MarketPlace/Presenter/MapScene/Map/View/MapView.swift diff --git a/MarketPlace/ViewModel/Map/MapViewModel.swift b/MarketPlace/Presenter/MapScene/Map/ViewModel/MapViewModel.swift similarity index 100% rename from MarketPlace/ViewModel/Map/MapViewModel.swift rename to MarketPlace/Presenter/MapScene/Map/ViewModel/MapViewModel.swift diff --git a/MarketPlace/View/MyPage/View/MyFavoriteShopListView.swift b/MarketPlace/Presenter/MyPageScene/MyCuration/View/MyFavoriteShopListView.swift similarity index 100% rename from MarketPlace/View/MyPage/View/MyFavoriteShopListView.swift rename to MarketPlace/Presenter/MyPageScene/MyCuration/View/MyFavoriteShopListView.swift diff --git a/MarketPlace/ViewModel/MyPage/MyFavoriteMarketListViewModel.swift b/MarketPlace/Presenter/MyPageScene/MyCuration/ViewModel/MyFavoriteMarketListViewModel.swift similarity index 100% rename from MarketPlace/ViewModel/MyPage/MyFavoriteMarketListViewModel.swift rename to MarketPlace/Presenter/MyPageScene/MyCuration/ViewModel/MyFavoriteMarketListViewModel.swift diff --git a/MarketPlace/View/MyPage/Components/CouponCategoryView.swift b/MarketPlace/Presenter/MyPageScene/MyPage/Components/CouponCategoryView.swift similarity index 100% rename from MarketPlace/View/MyPage/Components/CouponCategoryView.swift rename to MarketPlace/Presenter/MyPageScene/MyPage/Components/CouponCategoryView.swift diff --git a/MarketPlace/View/MyPage/Components/DropdownMenuView.swift b/MarketPlace/Presenter/MyPageScene/MyPage/Components/DropdownMenuView.swift similarity index 100% rename from MarketPlace/View/MyPage/Components/DropdownMenuView.swift rename to MarketPlace/Presenter/MyPageScene/MyPage/Components/DropdownMenuView.swift diff --git a/MarketPlace/View/MyPage/Components/MyCouponCell.swift b/MarketPlace/Presenter/MyPageScene/MyPage/Components/MyCouponCell.swift similarity index 100% rename from MarketPlace/View/MyPage/Components/MyCouponCell.swift rename to MarketPlace/Presenter/MyPageScene/MyPage/Components/MyCouponCell.swift diff --git a/MarketPlace/View/MyPage/Components/MyHeaderView.swift b/MarketPlace/Presenter/MyPageScene/MyPage/Components/MyHeaderView.swift similarity index 100% rename from MarketPlace/View/MyPage/Components/MyHeaderView.swift rename to MarketPlace/Presenter/MyPageScene/MyPage/Components/MyHeaderView.swift diff --git a/MarketPlace/View/MyPage/Components/CouponPopup.swift b/MarketPlace/Presenter/MyPageScene/MyPage/View/CouponUsePopupView.swift similarity index 98% rename from MarketPlace/View/MyPage/Components/CouponPopup.swift rename to MarketPlace/Presenter/MyPageScene/MyPage/View/CouponUsePopupView.swift index e5ea815..41d7495 100644 --- a/MarketPlace/View/MyPage/Components/CouponPopup.swift +++ b/MarketPlace/Presenter/MyPageScene/MyPage/View/CouponUsePopupView.swift @@ -1,6 +1,6 @@ import SwiftUI -struct CouponPopup: View { +struct CouponUsePopupView: View { @Binding var isPopupVisible: Bool @Binding var coupon: MembersCouponModel? var onConfirm: () -> Void diff --git a/MarketPlace/View/MyPage/View/MyCouponView.swift b/MarketPlace/Presenter/MyPageScene/MyPage/View/MyCouponView.swift similarity index 96% rename from MarketPlace/View/MyPage/View/MyCouponView.swift rename to MarketPlace/Presenter/MyPageScene/MyPage/View/MyCouponView.swift index 824a94a..617cdfb 100644 --- a/MarketPlace/View/MyPage/View/MyCouponView.swift +++ b/MarketPlace/Presenter/MyPageScene/MyPage/View/MyCouponView.swift @@ -44,7 +44,7 @@ struct MyCouponView: View { } if showingPopup { - CouponPopup( + CouponUsePopupView( isPopupVisible: $showingPopup, coupon: $selectedCoupon, onConfirm: { @@ -74,7 +74,7 @@ struct MyCouponView: View { } } .sheet(item: $selectedPaybackCoupon) { item in - RegisterReceiptView(viewModel: SubmitReceiptViewModel(memberCouponId: item.memberCouponId)) + RegisterReceiptView(viewModel: RegisterReceiptViewModel(memberCouponId: item.memberCouponId)) } } diff --git a/MarketPlace/View/MyPage/View/MyPageView.swift b/MarketPlace/Presenter/MyPageScene/MyPage/View/MyPageView.swift similarity index 100% rename from MarketPlace/View/MyPage/View/MyPageView.swift rename to MarketPlace/Presenter/MyPageScene/MyPage/View/MyPageView.swift diff --git a/MarketPlace/ViewModel/MyPage/MyCouponCellViewModel.swift b/MarketPlace/Presenter/MyPageScene/MyPage/ViewModel/MyCouponCellViewModel.swift similarity index 100% rename from MarketPlace/ViewModel/MyPage/MyCouponCellViewModel.swift rename to MarketPlace/Presenter/MyPageScene/MyPage/ViewModel/MyCouponCellViewModel.swift diff --git a/MarketPlace/ViewModel/MyPage/MyCouponViewModel.swift b/MarketPlace/Presenter/MyPageScene/MyPage/ViewModel/MyCouponViewModel.swift similarity index 100% rename from MarketPlace/ViewModel/MyPage/MyCouponViewModel.swift rename to MarketPlace/Presenter/MyPageScene/MyPage/ViewModel/MyCouponViewModel.swift diff --git a/MarketPlace/ViewModel/MyPage/MyPageViewModel.swift b/MarketPlace/Presenter/MyPageScene/MyPage/ViewModel/MyPageViewModel.swift similarity index 100% rename from MarketPlace/ViewModel/MyPage/MyPageViewModel.swift rename to MarketPlace/Presenter/MyPageScene/MyPage/ViewModel/MyPageViewModel.swift diff --git a/MarketPlace/View/MyPage/Components/ImagePicker.swift b/MarketPlace/Presenter/MyPageScene/Receipt/Components/ImagePicker.swift similarity index 100% rename from MarketPlace/View/MyPage/Components/ImagePicker.swift rename to MarketPlace/Presenter/MyPageScene/Receipt/Components/ImagePicker.swift diff --git a/MarketPlace/View/MyPage/View/RegisterReceiptView.swift b/MarketPlace/Presenter/MyPageScene/Receipt/View/RegisterReceiptView.swift similarity index 98% rename from MarketPlace/View/MyPage/View/RegisterReceiptView.swift rename to MarketPlace/Presenter/MyPageScene/Receipt/View/RegisterReceiptView.swift index f2d36ef..84a834c 100644 --- a/MarketPlace/View/MyPage/View/RegisterReceiptView.swift +++ b/MarketPlace/Presenter/MyPageScene/Receipt/View/RegisterReceiptView.swift @@ -15,13 +15,13 @@ struct RegisterReceiptView: View { // @State private var isSaveAccount: Bool = false @State var image: UIImage? - @ObservedObject var viewModel: SubmitReceiptViewModel + @ObservedObject var viewModel: RegisterReceiptViewModel @AppStorage("savedBank") private var savedBank: String = "" @AppStorage("savedAccountNumber") private var savedAccountNumber: String = "" @AppStorage("isAccountSaved") private var isAccountSaved: Bool = false - init(viewModel: SubmitReceiptViewModel) { + init(viewModel: RegisterReceiptViewModel) { self.viewModel = viewModel setupNavigationBarAppearance() } diff --git a/MarketPlace/ViewModel/MyPage/SubmitReceiptViewModel.swift b/MarketPlace/Presenter/MyPageScene/Receipt/ViewModel/RegisterReceiptViewModel.swift similarity index 95% rename from MarketPlace/ViewModel/MyPage/SubmitReceiptViewModel.swift rename to MarketPlace/Presenter/MyPageScene/Receipt/ViewModel/RegisterReceiptViewModel.swift index 65403c5..f52d596 100644 --- a/MarketPlace/ViewModel/MyPage/SubmitReceiptViewModel.swift +++ b/MarketPlace/Presenter/MyPageScene/Receipt/ViewModel/RegisterReceiptViewModel.swift @@ -1,5 +1,5 @@ // -// SubmitReceiptViewModel.swift +// RegisterReceiptViewModel.swift // MarketPlace // // Created by 이예나 on 7/15/25. @@ -8,7 +8,7 @@ import Foundation @MainActor -final class SubmitReceiptViewModel: ObservableObject { +final class RegisterReceiptViewModel: ObservableObject { @Published var Receipt: ReceiptModel = ReceiptModel(couponId: 0, isUsed: false) @Published var isUsed: Bool = false private var memberCouponId: Int @@ -66,3 +66,4 @@ final class SubmitReceiptViewModel: ObservableObject { } } } + diff --git a/MarketPlace/Font/Pretendard-Black.otf b/MarketPlace/Resources/Font/Pretendard-Black.otf similarity index 100% rename from MarketPlace/Font/Pretendard-Black.otf rename to MarketPlace/Resources/Font/Pretendard-Black.otf diff --git a/MarketPlace/Font/Pretendard-Bold.otf b/MarketPlace/Resources/Font/Pretendard-Bold.otf similarity index 100% rename from MarketPlace/Font/Pretendard-Bold.otf rename to MarketPlace/Resources/Font/Pretendard-Bold.otf diff --git a/MarketPlace/Font/Pretendard-ExtraBold.otf b/MarketPlace/Resources/Font/Pretendard-ExtraBold.otf similarity index 100% rename from MarketPlace/Font/Pretendard-ExtraBold.otf rename to MarketPlace/Resources/Font/Pretendard-ExtraBold.otf diff --git a/MarketPlace/Font/Pretendard-ExtraLight.otf b/MarketPlace/Resources/Font/Pretendard-ExtraLight.otf similarity index 100% rename from MarketPlace/Font/Pretendard-ExtraLight.otf rename to MarketPlace/Resources/Font/Pretendard-ExtraLight.otf diff --git a/MarketPlace/Font/Pretendard-Light.otf b/MarketPlace/Resources/Font/Pretendard-Light.otf similarity index 100% rename from MarketPlace/Font/Pretendard-Light.otf rename to MarketPlace/Resources/Font/Pretendard-Light.otf diff --git a/MarketPlace/Font/Pretendard-Medium.otf b/MarketPlace/Resources/Font/Pretendard-Medium.otf similarity index 100% rename from MarketPlace/Font/Pretendard-Medium.otf rename to MarketPlace/Resources/Font/Pretendard-Medium.otf diff --git a/MarketPlace/Font/Pretendard-Regular.otf b/MarketPlace/Resources/Font/Pretendard-Regular.otf similarity index 100% rename from MarketPlace/Font/Pretendard-Regular.otf rename to MarketPlace/Resources/Font/Pretendard-Regular.otf diff --git a/MarketPlace/Font/Pretendard-SemiBold.otf b/MarketPlace/Resources/Font/Pretendard-SemiBold.otf similarity index 100% rename from MarketPlace/Font/Pretendard-SemiBold.otf rename to MarketPlace/Resources/Font/Pretendard-SemiBold.otf diff --git a/MarketPlace/Font/Pretendard-Thin.otf b/MarketPlace/Resources/Font/Pretendard-Thin.otf similarity index 100% rename from MarketPlace/Font/Pretendard-Thin.otf rename to MarketPlace/Resources/Font/Pretendard-Thin.otf diff --git a/MarketPlace/Resources/KakaoMapKey.xcconfig b/MarketPlace/Resources/KakaoMapKey.xcconfig new file mode 100644 index 0000000..617893b --- /dev/null +++ b/MarketPlace/Resources/KakaoMapKey.xcconfig @@ -0,0 +1,12 @@ +// +// KakaoMapKey.xcconfig +// MarketPlace +// +// Created by Bowon Han on 5/28/25. +// + +// Configuration settings file format documentation can be found at: +// https://developer.apple.com/documentation/xcode/adding-a-build-configuration-file-to-your-project + +KAKAO_APP_KEY = f008831fe10233b389b36b195f4a01a6 +KAKAO_API_TOKEN = 726a93a2737ee7c2c6b45bc055ed2230 diff --git a/MarketPlace/UICommon/CategoryButton.swift b/MarketPlace/UICommon/CategoryButton.swift deleted file mode 100644 index 1e8747f..0000000 --- a/MarketPlace/UICommon/CategoryButton.swift +++ /dev/null @@ -1,32 +0,0 @@ -import Foundation -import SwiftUI - -//struct CategoryButton: View { -// let icon: String -// let text: String -// let isSelected: Bool -// -// init( -// icon: String, -// text: String, -// isSelected: Bool = false -// ) { -// self.icon = icon -// self.text = text -// self.isSelected = isSelected -// } -// -// var body: some View { -// VStack(spacing: 12) { -// Image(icon) -// .resizable() -// .frame(width: 48, height: 48) -// .foregroundColor(isSelected ? .gray : .black) -// -// Text(text) -// .font(.system(size: 13)) -// .foregroundColor(isSelected ? .gray : .black) -// } -// .padding(.vertical, 8) -// } -//} diff --git a/MarketPlace/UICommon/FullNoticePopUp.swift b/MarketPlace/UICommon/FullNoticePopUp.swift deleted file mode 100644 index ca7cb4b..0000000 --- a/MarketPlace/UICommon/FullNoticePopUp.swift +++ /dev/null @@ -1,98 +0,0 @@ -// -// FullNoticePopUp.swift -// MarketPlace -// -// Created by Bowon Han on 12/20/25. -// - -import SwiftUI - -struct FullNoticePopUp: View { - @Binding var isPopupVisible: Bool - - var body: some View { - ZStack { - DashEffect() - .opacity(isPopupVisible ? 1 : 0) - - VStack(spacing: 15) { - Text("공지사항") - .foregroundStyle(.white) - .pretendardFont(size: 14, weight: .semibold) - .padding(.horizontal, 10) - .padding(.vertical,4) - .background(.black) - .padding(.top) - .padding(.bottom, 5) - - Text("📢 쿠러미 이용 안내") - .pretendardFont(size: 23, weight: .bold) - - ( - Text("교내 서버실 작업으로 인해\n이번 주 ") - + Text("금요일") - .foregroundStyle(Color(hex: "003dff")) - .fontWeight(.bold) - + Text("부터 ") - + Text("일요일") - .foregroundStyle(Color(hex: "003dff")) - .fontWeight(.bold) - + Text("까지 쿠러미 앱 접속이 일시적으로 제한될 예정입니다.\n이용에 불편을 드려 죄송합니다.") - ) - .pretendardFont(size: 15, weight: .regular) - .multilineTextAlignment(.center) - .lineLimit(7) - .lineSpacing(3) - .padding(.horizontal, 10) - - Text("환급 관련하여 영수증·계좌 등록 후\n2일 이상 입금이 지연될 경우,\n아래 카카오 채널로 문의 부탁드립니다.") - .pretendardFont(size: 15, weight: .regular) - .multilineTextAlignment(.center) - .lineLimit(3) - .lineSpacing(2) - - Link("👉 카카오 채널로 이동", destination: URL(string: "http://pf.kakao.com/_XkZnn")!) - .pretendardFont(size: 14, weight: .bold) - .foregroundColor(.white) - .padding(.horizontal, 70) - .frame(height: 50) - .background(.black) - .cornerRadius(4, corners: .allCorners) - - HStack(alignment: .center) { - Spacer() - - Text("항상 쿠러미를 이용해주셔서 감사드리며,\n더 안정적인 서비스로 찾아뵙겠습니다.🙏🏻") - .pretendardFont(size: 13, weight: .bold) - .lineLimit(4) - .lineSpacing(4) - .padding(.bottom, 25) - .padding(.top,7) - .frame(width: .infinity) - - Spacer() - } - .frame(width: .infinity) - .padding(.top, 10) - .background(Color(hex: "eaefff")) - - } - .frame(width: 320) - .background(Color.white) - .cornerRadius(8) - .shadow(radius: 10) - .overlay( - Button { - isPopupVisible = false - } label: { - Image(systemName: "xmark.circle.fill") - .resizable() - .foregroundStyle(Color(hex: "afafaf")) - .frame(width: 27, height: 27) - } - .padding(15), - alignment: .topTrailing - ) - } - } -} diff --git a/MarketPlace/UICommon/formateDate.swift b/MarketPlace/UICommon/formateDate.swift deleted file mode 100644 index 62d3c97..0000000 --- a/MarketPlace/UICommon/formateDate.swift +++ /dev/null @@ -1,8 +0,0 @@ -// -// formateDate.swift -// MarketPlace -// -// Created by 이예나 on 2/20/25. -// - -import Foundation diff --git a/MarketPlace/View/Cheer/Components/.swift b/MarketPlace/View/Cheer/Components/.swift deleted file mode 100644 index d775433..0000000 --- a/MarketPlace/View/Cheer/Components/.swift +++ /dev/null @@ -1,3 +0,0 @@ -import SwiftUI - - diff --git a/MarketPlace/View/Cheer/Components/HotCheerCardView.swift b/MarketPlace/View/Cheer/Components/HotCheerCardView.swift deleted file mode 100644 index b77c3f3..0000000 --- a/MarketPlace/View/Cheer/Components/HotCheerCardView.swift +++ /dev/null @@ -1,89 +0,0 @@ - -import SwiftUI - -struct HotCheerCardCell: View { - @ObservedObject private var viewModel: CheerListViewModel - - let title: String - let status: String - let tempMarketId: Int - let imageUrl: String - - var body: some View { - VStack(alignment: .leading, spacing: 8) { - AsyncImage( - url:URL(string: - URLManager.shared.baseStringURL + "image/tempMarket/" + imageUrl - )) { phase in - switch phase { - case .empty: - ProgressView() - .frame(width: 284, height: 284) - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - .frame(width: 284, height: 284) - .clipped() - case .failure: - Rectangle() - .fill(Color.gray) - .frame(width: 284, height: 284) - @unknown default: - EmptyView() - } - } - - Text(title) - .font(.subheadline) - .fontWeight(.bold) - .lineLimit(1) - - HStack { - if status == "제휴 진행 중" { - Text("공감 마감") - .font(.caption2) - .foregroundColor(.gray) - Text("제휴 컨택중") - .font(.caption2) - .foregroundColor(.black) - } else { - Text("공감 마감까지 3일 남음") - .font(.caption2) - .foregroundColor(.gray) - } - } - - Divider() - .background(Color.gray.opacity(0.5)) - - Button(action: { - Task { - await viewModel.postCheerMarket(tempMarketId: tempMarketId) - } - }) { - if status == "제휴 진행 중" { - Text("제휴 컨택 중") - .font(.caption) - .foregroundColor(.gray) - .padding(.vertical, 10) - .frame(maxWidth: .infinity) - .background(Color.gray.opacity(0.2)) - .cornerRadius(4) - } else { - HStack { - Image(systemName: "heart") - .foregroundColor(.white) - Text("공감하기") - .foregroundColor(.white) - } - .padding(.vertical, 10) - .frame(maxWidth: .infinity) - .background(Color.black) - .cornerRadius(8) - } - } - } - .frame(width: 284) - } -} diff --git a/MarketPlace/View/Components/Footer.swift b/MarketPlace/View/Components/Footer.swift deleted file mode 100644 index d5fa00c..0000000 --- a/MarketPlace/View/Components/Footer.swift +++ /dev/null @@ -1,52 +0,0 @@ -import SwiftUI - -struct FooterView: View { - var body: some View { - HStack { - HStack(spacing: 40) { - NavigationLink(destination: MainView()) { - VStack(spacing: 4) { - Image("homeIcon") - .resizable() - .frame(width: 24, height: 24) - Text("HOME") - .font(.custom("Pretendard-SemiBold", size: 12)) - .foregroundColor(Color(hex: "#000000")) // hex 컬러 값 사용 - } - } - - VStack(spacing: 4) { - Image("mapIcon") - .resizable() - .frame(width: 24, height: 24) - Text("MAP") - .font(.custom("Pretendard-SemiBold", size: 12)) - .foregroundColor(Color(hex: "#C7C7C7")) - } - - VStack(spacing: 4) { - Image("categoryIcon") - .resizable() - .frame(width: 24, height: 24) - Text("CATEGORY") - .font(.custom("Pretendard-SemiBold", size: 12)) - .foregroundColor(Color(hex: "#C7C7C7")) - } - - NavigationLink(destination: MyView()) { - VStack(spacing: 4) { - Image("userIcon") - .resizable() - .frame(width: 24, height: 24) - Text("MY") - .font(.custom("Pretendard-SemiBold", size: 12)) - .foregroundColor(Color(hex: "#C7C7C7")) - } - } - } - .padding(.bottom) - } - .frame(height: 60) - .background(Color.white.opacity(1.0)) - } -} diff --git a/MarketPlace/View/Components/MyCoupon.swift b/MarketPlace/View/Components/MyCoupon.swift deleted file mode 100644 index 09f1b57..0000000 --- a/MarketPlace/View/Components/MyCoupon.swift +++ /dev/null @@ -1,40 +0,0 @@ - -import Foundation -import SwiftUI - -struct MyCoupon: View { - @State var icon: String="" - @State var title: String="" - var isUse: Bool = false - - var body: some View { - HStack(spacing: 20){ - //좌측 가게 사진 - Image("mySample1") - .resizable() - .frame(width: 48, height: 48) - //우측 가게 정보 - VStack(alignment: .leading, spacing: 10){ - Text("살롱 505") - .font(.custom("Pretendard", size: 15)) - HStack{ - Text("미용실") - .font(.custom("Pretendard", size: 13)) - .foregroundColor(Color(hex: "#7D7D7D")) - Text("간석동") - .font(.custom("Pretendard", size: 13)) - .foregroundColor(Color(hex: "#7D7D7D")) - } - } - Spacer() - - } - .padding(.leading, 40) - - } -} - -#Preview { - MyCoupon() -} - diff --git a/MarketPlace/View/Main/Components/AllTab.swift b/MarketPlace/View/Main/Components/AllTab.swift deleted file mode 100644 index 9d0df91..0000000 --- a/MarketPlace/View/Main/Components/AllTab.swift +++ /dev/null @@ -1,8 +0,0 @@ -// -// AllTab.swift -// MarketPlace -// -// Created by 이예나 on 1/6/25. -// - -import Foundation diff --git a/MarketPlace/View/Search/View/SearchFirstView.swift b/MarketPlace/View/Search/View/SearchFirstView.swift deleted file mode 100644 index fa7d0c3..0000000 --- a/MarketPlace/View/Search/View/SearchFirstView.swift +++ /dev/null @@ -1,17 +0,0 @@ -// -// SearchFirstView.swift -// MarketPlace -// -// Created by 이예나 on 6/18/25. -// - -import Foundation -import SwiftUI - -//struct SearchFirstView: View { -// -// -// var body: some View { -// -// } -//} diff --git a/MarketPlace/ViewModel/Request/MarketRequestViewModel.swift b/MarketPlace/ViewModel/Request/MarketRequestViewModel.swift deleted file mode 100644 index e9f38b5..0000000 --- a/MarketPlace/ViewModel/Request/MarketRequestViewModel.swift +++ /dev/null @@ -1,29 +0,0 @@ -// -// MarketRequestViewModel.swift -// MarketPlace -// -// Created by 이예나 on 6/19/25. -// - -import Foundation - -//final class RequestMarketViewModel: ObservableObject { -// private let marketService: MarketServiceProtocol -// -// @Published var market: [KakaoMarketData] = [] -// -// init(marketService: MarketServiceProtocol=MarketService()) { -// self.marketService = marketService -// } -// -// func searchKakaoMarketKeyword(keyword: String) async { -// let result = await marketService.searchKakaoMarketKeyword(keyword: keyword) -// -// switch result { -// case .success(let data, _): -// self.market = data.documents -// case .failure(let statusCode, let message): -// print("[searchKakaoMarketKeyword] - [\(statusCode)]: \(message ?? "알 수 없는 오류")") -// } -// } -//}