Files
sam-api/lang/ko/message.php
hskwon 798d5149ea feat: API 토큰 관리 시스템 구현 (액세스/리프레시 토큰 분리)
- AuthService: 토큰 발급/갱신 통합 관리
- RefreshController: POST /api/v1/refresh 엔드포인트 추가
- 액세스 토큰 2시간, 리프레시 토큰 7일 (.env 설정)
- TOKEN_EXPIRED 에러 코드로 프론트엔드 자동 리프레시 지원
- 리프레시 토큰 일회성 사용 (보안 강화)
- Swagger 문서 Auth 태그로 통합
2025-11-10 11:17:32 +09:00

138 lines
5.3 KiB
PHP

<?php
/**
* 성공/안내/일반 메시지 (비에러)
* - API 정상 응답의 message 필드용
* - 도메인 공통 키와 리소스별 하위 그룹을 혼합 사용
* - 예: return ApiResponse::success($data, __('message.created'));
*/
return [
// 공통 (CRUD/편의)
'fetched' => '조회 성공',
'created' => '등록 성공',
'updated' => '수정 성공',
'deleted' => '삭제 성공',
'restored' => '복구 성공',
'toggled' => '상태 변경 성공',
'bulk_upsert' => '대량 저장 성공',
'reordered' => '정렬 변경 성공',
'no_changes' => '변경 사항이 없습니다.',
// 인증/세션
'login_success' => '로그인 성공',
'logout_success' => '로그아웃 되었습니다.',
'signup_success' => '회원가입이 완료되었습니다.',
'registered' => '회원가입 처리',
'token_refreshed' => '토큰이 갱신되었습니다',
// 테넌트/컨텍스트
'tenant_switched' => '활성 테넌트가 전환되었습니다.',
// 리소스별 세부 (필요 시)
'product' => [
'fetched' => '제품을 조회했습니다.',
'category_fetched' => '제품 카테고리를 조회했습니다.',
'created' => '제품이 등록되었습니다.',
'updated' => '제품이 수정되었습니다.',
'deleted' => '제품이 삭제되었습니다.',
'toggled' => '제품 상태가 변경되었습니다.',
'searched' => '제품을 검색했습니다.',
],
'bom' => [
'fetched' => 'BOM 항목을 조회했습니다.',
'bulk_upsert' => 'BOM 항목이 저장되었습니다.',
'reordered' => 'BOM 정렬이 변경되었습니다.',
'fetch' => 'BOM 항목 조회',
'create' => 'BOM 항목 등록',
'update' => 'BOM 항목 수정',
'delete' => 'BOM 항목 삭제',
'restore' => 'BOM 항목 복구',
],
'category' => [
'fetched' => '카테고리를 조회했습니다.',
'created' => '카테고리가 등록되었습니다.',
'updated' => '카테고리가 수정되었습니다.',
'deleted' => '카테고리가 삭제되었습니다.',
'toggled' => '카테고리 상태가 변경되었습니다.',
'moved' => '카테고리가 이동되었습니다.',
'reordered' => '카테고리 정렬순서가 변경되었습니다.',
'tree_fetched' => '카테고리 트리를 조회했습니다.',
'fields_saved' => '카테고리 필드가 저장되었습니다.',
'template_saved' => '카테고리 템플릿이 저장되었습니다.',
'template_applied' => '카테고리 템플릿이 적용되었습니다.',
],
'design' => [
'template_cloned' => 'BOM 템플릿이 복제되었습니다.',
'template_diff' => 'BOM 템플릿 차이를 계산했습니다.',
],
'model_set' => [
'cloned' => '모델셋이 복제되었습니다.',
'calculated' => 'BOM 계산이 완료되었습니다.',
],
'estimate' => [
'cloned' => '견적이 복제되었습니다.',
'status_changed' => '견적 상태가 변경되었습니다.',
],
// 계산 관련
'calculated' => '계산 완료',
// 설정 관리 (Settings & Configuration 통합)
'settings' => [
'fields_updated' => '필드 설정이 업데이트되었습니다.',
'fields_bulk_saved' => '필드 설정 일괄 저장이 완료되었습니다.',
'options_saved' => '옵션 그룹이 저장되었습니다.',
'options_reordered' => '옵션 값 정렬이 변경되었습니다.',
'common_code_saved' => '공통 코드가 저장되었습니다.',
],
// 자재 관리 (Products & Materials 통합)
'material' => [
'fetched' => '자재를 조회했습니다.',
'created' => '자재가 등록되었습니다.',
'updated' => '자재가 수정되었습니다.',
'deleted' => '자재가 삭제되었습니다.',
],
// 거래처 관리
'client' => [
'fetched' => '거래처를 조회했습니다.',
'created' => '거래처가 등록되었습니다.',
'updated' => '거래처가 수정되었습니다.',
'deleted' => '거래처가 삭제되었습니다.',
'toggled' => '거래처 상태가 변경되었습니다.',
],
// 사용자 관리
'user' => [
'fetched' => '사용자를 조회했습니다.',
'me_fetched' => '나의 정보를 조회했습니다.',
'me_updated' => '나의 정보가 수정되었습니다.',
'password_changed' => '비밀번호가 변경되었습니다.',
'tenants_fetched' => '나의 테넌트 목록을 조회했습니다.',
'tenant_switched' => '활성 테넌트가 전환되었습니다.',
],
// 테넌트 관리
'tenant' => [
'fetched' => '테넌트를 조회했습니다.',
'created' => '테넌트가 등록되었습니다.',
'updated' => '테넌트가 수정되었습니다.',
'deleted' => '테넌트가 삭제되었습니다.',
'restored' => '테넌트가 복구되었습니다.',
],
// 파일 관리
'file' => [
'uploaded' => '파일이 업로드되었습니다.',
'deleted' => '파일이 삭제되었습니다.',
'fetched' => '파일 목록을 조회했습니다.',
],
];