Skip to content

Comments

Dev#9

Merged
OhChangEun merged 71 commits intomainfrom
dev
Nov 11, 2025
Merged

Dev#9
OhChangEun merged 71 commits intomainfrom
dev

Conversation

@parkji1on
Copy link
Contributor

요약

  • 이 PR의 목적과 배경을 한 줄로 설명해주세요.

주요 변경 사항

  • 변경 요약 1
  • 변경 요약 2

관련 이슈

  • Closes #번호 (예: Closes #123)

테스트/검증

  • 어떻게 검증했는지, 영향 범위는 어디인지 간략히 적어주세요.

확인 사항

  • 자기 리뷰 완료
  • 빌드/테스트 통과 확인
  • 문서/주석 업데이트(필요 시)
  • 브레이킹 체인지 없음 또는 마이그레이션 안내 포함

스크린샷/로그(선택)

  • 필요 시 첨부

- exchangeAuthCodeForToken
- logout
- Authorization URL 생성
- 아직 미완성 Auth를 위한 정확한 스펙이 필요하다
- TokenLocalDataSource -> TokenStoreLocalDataSourceImp
- TokenPrefLocalDataSourceimpl은 확장성을 위해 추가함
- DataSourceModule에서 연결
- AuthLocalDataSource : DataStore에 AccessToken값 저장
- AuthRemoteDataSource : HTTP로 연결
SharedPreference -> DataStore
AccessToken이 있는 경우 HTTP Header에 자동으로 추가
- 동일한 탭을 클릭한 경우 기존 모든 스택을 날림
HomeTab에서 빠른 동작으로 다른 탭으로 이동시 다시 Home으로 이동하기 위해서 탭을 눌렀을 때 이동되지 않는 오류 수정
MainThread -> IOThread 로 변경
- Profile, MM, IM, Dashboard
- 검색, 필터링 등 Toggle을 통해 선택이 필요한 경우 반환값
- Profile 화면에서 로그아웃 버튼 추가
- 로그아웃 시 DataStore의 데이터 삭제
- 로그아웃 시 Login 화면으로 이동
parkji1on and others added 23 commits November 10, 2025 16:57
- ProfileRemoteDataSource
- ProfileRepository
- FcmRemoteDataSource
- FcmRepository
[Feat] 고객사, 공급사별 화면
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements comprehensive UI screens and navigation for both Customer and Supplier user types in a vehicle exterior management ERP application.

Purpose: Adds complete user interface implementation for customer and supplier workflows including home screens, order/quotation management, invoice handling, profile management, and notification systems.

Key Changes:

  • Implemented dual navigation systems for Customer and Supplier user types with separate screen hierarchies
  • Added profile management, notification handling, and dashboard workflow tracking
  • Integrated FCM push notifications with server-side token registration

Reviewed Changes

Copilot reviewed 147 out of 149 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
secrets.defaults.properties Added AUTH_BASE_URL configuration for authentication services
SupplierVoucherViewModel.kt New ViewModel for supplier invoice (AR) management with pagination
SupplierVoucherScreen.kt UI screen for displaying supplier invoice list with search functionality
SupplierProfileViewModel.kt Profile management ViewModel with user info and logout functionality
SupplierProfileScreen.kt Profile display screen with company and personal information sections
SupplierProfileEditViewModel.kt Edit profile ViewModel (placeholder implementation for future updates)
SupplierProfileEditScreen.kt Profile editing UI with form fields for company and personal data
SupplierOrderViewModel.kt Purchase order list management with pagination and search
SupplierOrderScreen.kt UI for displaying purchase orders with status badges
SupplierNavigationItem.kt Navigation structure defining supplier app routes and sub-routes
SupplierHomeViewModel.kt Dashboard ViewModel with recent activities and notification count
SupplierHomeScreen.kt Supplier home screen with quick actions and recent workflow activities
SupplierApp.kt Main supplier app scaffold with bottom navigation and nested routing
PurchaseOrderDetailViewModel.kt Purchase order detail fetching with loading states
PurchaseOrderDetailScreen.kt Detailed purchase order view with items table and status
NotificationViewModel.kt (Supplier) Notification list management with read/unread status handling
NotificationScreen.kt (Supplier) Notification list UI with relative time formatting and navigation
InvoiceDetailViewModel.kt (Supplier) Invoice detail management supporting both AP and AR invoices
InvoiceDetailScreen.kt (Supplier) Invoice detail screen with payment confirmation for receivables
CustomerVoucherViewModel.kt Customer invoice (AP) list management
CustomerVoucherScreen.kt Customer invoice list display screen
CustomerQuotationViewModel.kt Quotation list with pagination and filtering
CustomerQuotationScreen.kt Quotation list UI with create button and infinite scroll
CustomerProfileViewModel.kt Customer profile management identical to supplier implementation
CustomerProfileScreen.kt Customer profile display screen
CustomerProfileEditViewModel.kt Customer profile edit ViewModel (placeholder)
CustomerProfileEditScreen.kt Customer profile editing UI
CustomerOrderViewModel.kt Sales order list management with search and pagination
CustomerOrderScreen.kt Sales order list display with status badges
CustomerNavigationItem.kt Customer app navigation routes and sub-routes definition
CustomerHomeViewModel.kt Customer dashboard with recent activities and notifications
CustomerHomeScreen.kt Customer home screen with quick action cards
CustomerApp.kt Main customer app scaffold with navigation
SalesOrderDetailViewModel.kt Sales order detail fetching logic
SalesOrderDetailScreen.kt Sales order detail UI with order progress tracking
QuotationDetailViewModel.kt Quotation detail fetching
QuotationDetailScreen.kt Quotation detail display with customer and item information
QuotationCreateViewModel.kt Quotation creation logic with item selection
QuotationCreateScreen.kt Quotation creation form with date picker and item selection
NotificationViewModel.kt (Customer) Customer notification management
NotificationScreen.kt (Customer) Customer notification list with navigation to related screens
InvoiceDetailViewModel.kt (Customer) Customer invoice detail with payment request functionality
InvoiceDetailScreen.kt (Customer) Customer invoice detail UI
StatusBadge.kt Reusable status badge component
SearchBar.kt Reusable search input component
QuickActionCard.kt Home screen quick action button component
ListCard.kt Reusable list item card component
RecentActivityCard.kt Dashboard activity card with navigation logic
CustomBottomBar.kt Enhanced bottom navigation with back stack management
AppNavGraph.kt Updated main navigation graph
MainScreen.kt User type-based routing to Customer or Supplier apps
HomeViewModel.kt Added FCM token registration on user info load
ProfileViewModel.kt Migrated from Log to Timber
RedirectReceiverActivity.kt OAuth redirect handling migrated to Timber
AuthViewModel.kt Auth flow logging migrated to Timber
MyFirebaseMessagingService.kt Added FCM token server registration with dependency injection
Various Repository interfaces Added new repository interfaces for Profile, Dashboard, Im, Auth, Alarm
SalesOrderStatusEnum.kt Added PENDING, CONFIRMED, CANCELLED states
QuotationStatusEnum.kt Renamed APPROVED to APPROVAL for consistency
Domain Models Added Profile, Dashboard, InventoryItemToggle, AccessToken models

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +173 to +184
Button(
onClick = {
viewModel.logout {
loginNavController.navigate("login") {
popUpTo(0)
}
}
},
modifier = Modifier
.fillMaxWidth()
.padding(vertical = 24.dp),
) { }
Copy link

Copilot AI Nov 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The logout button is missing text content. The Button composable has an empty trailing lambda { } which means no text or icon is displayed. This will create a button with no visible label, making it unclear to users what this button does.

Add text like: Text("로그아웃")

Copilot uses AI. Check for mistakes.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인했습니다

Comment on lines +172 to +183
Button(
onClick = {
viewModel.logout {
loginNavController.navigate("login") {
popUpTo(0)
}
}
},
modifier = Modifier
.fillMaxWidth()
.padding(vertical = 24.dp),
) { }
Copy link

Copilot AI Nov 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The logout button is missing text content. The Button composable has an empty trailing lambda { } which means no text or icon is displayed. This will create a button with no visible label.

Add text like: Text("로그아웃")

Copilot uses AI. Check for mistakes.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인했습니다

Comment on lines +3 to +4
import android.R.attr.defaultValue
import android.R.attr.type
Copy link

Copilot AI Nov 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unused imports android.R.attr.defaultValue and android.R.attr.type should be removed. These imports are not used in the code.

Copilot uses AI. Check for mistakes.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인했습니다

Comment on lines +156 to 158
fun formatCurrency(amount: Long): String {
return NumberFormat.getNumberInstance(Locale.KOREA).format(amount)
}
Copy link

Copilot AI Nov 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The formatCurrency function is duplicated across multiple screen files (CustomerOrderScreen, SupplierOrderScreen, SupplierVoucherScreen, etc.). Consider extracting this utility function to a common location to avoid code duplication and improve maintainability.

Copilot uses AI. Check for mistakes.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인했습니다

@OhChangEun OhChangEun merged commit 53aa729 into main Nov 11, 2025
6 of 7 checks passed
parkji1on added a commit that referenced this pull request Nov 12, 2025
[Feat] 고객사&공급사 UI 변동
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants