Commit Graph

132 Commits

Author SHA1 Message Date
9092ce8f93 docs: Swagger 문서 Phase 1 개선
- SAMInfo.php Auth 태그 상세화
  - 인증 흐름 설명 추가 (API Key + Bearer Token)
  - 사용 예시 코드 추가
  - IP 기반 접근 제어 안내 추가

- RegisterApi.php 보안 어노테이션 추가
  - security={"ApiKeyAuth": {}} 설정
  - "Authentication: Not Required" 오류 해결

- SWAGGER_AUDIT.md 작업 추적 문서 생성
  - Phase별 점검 계획 수립
  - 표준 체크리스트 정의
  - 진행 상황 추적 체계 구축
2025-11-06 20:54:23 +09:00
92c52699d7 docs: CURRENT_WORKS 업데이트 (외부 링크 정보 추가 내역) 2025-11-06 20:01:08 +09:00
ae527f90e8 feat: 로그인 응답 메뉴에 외부 링크 정보 추가 (is_external, external_url) 2025-11-06 20:00:20 +09:00
e99d3916c1 fix: Swagger 문법 오류 수정 (빈 배열 표현) 2025-11-06 19:55:59 +09:00
410a78d336 feat: 로그인 응답에 사용자/테넌트/메뉴 정보 추가
- MemberService::getUserInfoForLogin() 메서드 추가
  - 사용자 기본 정보 (id, user_id, name, email, phone)
  - 활성 테넌트 정보 (is_default 우선 → is_active 차순)
  - 테넌트 없는 경우 null 반환
  - 추가 테넌트 목록 (other_tenants 배열)
  - 권한 기반 메뉴 필터링 (menu:{id}.view)

- 권한 체크 3단계
  - 기본 Role 권한 (model_has_permissions)
  - Override 권한 (permission_overrides, 시간 제약)
  - 우선순위: deny(-1) > allow(1) > base permission

- ApiController::login() 응답 구조 변경
  - 기존: {message, user_token}
  - 개선: {message, user_token, user, tenant, menus}

- Swagger 문서 업데이트 (AuthApi.php)
  - 테넌트 있는 경우 응답 스키마
  - 테넌트 없는 경우 응답 스키마 (null)
  - 에러 케이스 추가 (400, 401, 404)
2025-11-06 19:54:08 +09:00
cc206fdbed style: Laravel Pint 코드 포맷팅 적용
- PSR-12 스타일 가이드 준수
- 302개 파일 스타일 이슈 자동 수정
- 코드 로직 변경 없음 (포맷팅만)
2025-11-06 17:45:49 +09:00
48e76432ee feat: 회원가입 + 테넌트 생성 통합 API 추가 (/api/v1/register)
- 사용자 등록 + 테넌트 생성 + 시스템 관리자 권한 자동 부여
- 사업자번호 조건부 검증 (active 테넌트만 unique)
- 글로벌 메뉴 자동 복제 (parent_id 매핑 알고리즘)
- DB 트랜잭션으로 전체 프로세스 원자성 보장

추가:
- RegisterRequest: FormRequest 검증 (conditional unique)
- RegisterService: 9-step 통합 비즈니스 로직
- RegisterController: ApiResponse::handle() 패턴
- RegisterApi: 완전한 Swagger 문서

수정:
- MenusStep: 글로벌 메뉴 복제 로직 구현
- message.php: 'registered' 키 추가
- error.php: 4개 에러 메시지 추가
- routes/api.php: POST /api/v1/register 라우트

SAM API Rules 준수:
- Service-First, FormRequest, i18n, Swagger, DB Transaction
2025-11-06 17:24:42 +09:00
b7cf045a81 feat: 개발 문서 포털 페이지 생성
- api.sam.kr/develop/ 접속 시 문서 목록 표시
- 5개 문서 항목 추가:
  * 시스템 아키텍처 다이어그램 (HTML)
  * 서버 사양 및 비용 분석표 (HTML)
  * CI/CD 파이프라인 흐름도 (HTML)
  * 재해복구(DR) 계획서 (Markdown)
  * 네트워크 토폴로지 다이어그램 (HTML)
- 모달 팝업으로 문서 뷰어 구현
- HTML 파일: iframe으로 원본 표시
- Markdown 파일: 자동 HTML 변환 후 표시
- 반응형 디자인 적용 (모바일/태블릿/데스크톱)
- Purple-Blue 그라디언트 UI 테마
2025-10-22 20:39:43 +09:00
447710def8 fix: UpdateLogicalRelationships 명령 개선
- use 문 파싱 추가하여 짧은 클래스명을 FQCN으로 변환
- self/static 자기 참조 관계 정상 처리
- Polymorphic 관계 지원 (morphTo, morphMany, morphOne)
- 클래스 존재 확인 및 안전한 에러 처리
- ::class 문자열 오류 수정

마이그레이션 실행 시 'Class BoardSetting::class not found' 에러 해결
2025-10-14 22:26:15 +09:00
14023e8160 feat: role 컬럼을 ENUM에서 VARCHAR(20)으로 변경
- 향후 확장성을 위해 VARCHAR 사용
- 새로운 role 값 추가 시 스키마 변경 불필요
- sales@sam.kr만 'sales', 나머지는 'tenant'로 설정
2025-10-14 20:49:51 +09:00
d42fd96535 feat: users 테이블에 is_super_admin 필드 추가
- 슈퍼 관리자와 일반 운영 계정 구분
- Filament Admin (/admin) 접근 권한 관리용
- shine1324@gmail.com을 슈퍼 관리자로 설정
- ops@sam.kr은 일반 운영 계정으로 유지
2025-10-14 14:56:15 +09:00
8d2b6fc6e5 feat: 데모 URL 관리 시스템 마이그레이션 및 시더 추가
- users 테이블에 role, is_active 필드 추가
- prospects 테이블 생성 (업체 정보)
- demo_links 테이블 생성 (토큰 관리)
- DemoSystemSeeder 추가 (Ops/Sales 계정, 샘플 데이터)
2025-10-14 14:28:58 +09:00
c5ea6d189a feat: Swagger 문서 전면 수정 및 ClientGroup 자동 복원 기능 추가
- CommonComponents.php: ApiResponse/ErrorResponse 글로벌 스키마 수정
  - property="status" → property="success" (boolean)
  - property="data" → property="error" (object with code/details)

- AuthApi, AdminApi, UserApi: 개별 응답 스키마 수정
  - signup(): allOf 구조로 변경
  - index(): Laravel LengthAwarePaginator 구조 적용
  - updateMe(): Member schema 참조로 변경

- PermissionApi, MaterialApi, DepartmentApi: 로컬 스키마 재정의 제거

- ClientGroupService: 삭제된 데이터 자동 복원 기능 구현
  - store(): withTrashed()로 삭제된 데이터 확인 후 restore()
  - update(): 삭제된 코드 존재 시 에러 반환

- ClientApi: client_group_id 필드 추가
  - Client, ClientCreateRequest, ClientUpdateRequest 스키마에 추가

- lang/ko/error.php, lang/en/error.php: 에러 메시지 추가
  - duplicate_code, has_clients, code_exists_in_deleted

- Swagger 문서 재생성 및 검증 완료
2025-10-14 09:10:52 +09:00
b6f36cc967 feat: ClientGroup 및 Pricing API 완성 및 Swagger 문서 작성
- ClientGroupService 구현: 고객 그룹 관리 비즈니스 로직 (CRUD + toggle)
- ClientGroupController 구현: 6개 REST API 엔드포인트
- PricingController 구현: 5개 가격 관리 API 엔드포인트
- routes/api.php에 client-groups, pricing 라우트 등록
- ClientGroupApi.php Swagger 문서 작성 (OpenAPI 3.0)
- PricingApi.php Swagger 문서 작성 (OpenAPI 3.0)
- l5-swagger 재생성 완료

추가된 파일:
- app/Services/ClientGroupService.php
- app/Http/Controllers/Api/V1/ClientGroupController.php
- app/Http/Controllers/Api/V1/PricingController.php
- app/Swagger/v1/ClientGroupApi.php
- app/Swagger/v1/PricingApi.php

수정된 파일:
- routes/api.php (라우트 11개 추가)
- CURRENT_WORKS.md (작업 내용 문서화)

API 엔드포인트:
- GET/POST/PUT/DELETE /api/v1/client-groups
- GET/POST /api/v1/pricing (show, bulk, upsert 포함)
2025-10-13 22:06:42 +09:00
a6b06be61d feat: 견적 단가 자동 적용 기능 추가
- 고객 그룹별 단가 조정 지원
- 견적 생성 시 자동 단가 조회
- 매출단가만 사용 (매입단가는 경고)
2025-10-13 21:52:34 +09:00
be36073282 feat: Permission 모델 추가 (Spatie 확장)
- Spatie\Permission\Models\Permission 확장
- tenant() belongsTo 관계 추가
- tenant_id fillable 추가
- API 권한 시스템에서 사용

🤖 Generated with [Claude Code](https://claude.ai/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 01:09:56 +09:00
802a511aa0 Revert "feat: DB 연결 오버라이딩 및 대시보드 통계 위젯 추가"
This reverts commit bf8036a64b.
2025-09-30 23:56:25 +09:00
bf8036a64b feat: DB 연결 오버라이딩 및 대시보드 통계 위젯 추가
- DB 연결: 로컬/Docker 환경 오버라이딩 설정 (.env)
- 테넌트 위젯: redirect 버그 수정 (TenantSelectorWidget)
- 통계 위젯: 사용자/제품/자재/주문 카드 추가 (StatsOverviewWidget)
- 리소스 한국어화: Product, Material 모델 레이블 추가
- 대시보드: 위젯 등록 및 캐시 최적화

🤖 Generated with [Claude Code](https://claude.ai/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 23:31:14 +09:00
d94ab59fd1 refactor: 모델 개선 및 관계 정의 수정
- Material 모델
  - fillable 속성 추가 (모든 필드 명시)

- User 모델
  - BelongsToMany 관계 타입 힌트 추가

- Product 모델
  - fillable에 unit 필드 추가
  - casts 순서 정리 (boolean 그룹화)

- ProductComponent 모델
  - quantity 캐스트 정밀도 변경 (decimal:4 → decimal:6)
  - referencedItem() 메서드 추가 (동적 관계 로드)
  - product(), material() 관계 메서드 수정 (where 조건 추가)
  - is_default 캐스트 제거 (컬럼 없음)

- Tenant 모델
  - options 캐스트 추가 (array)
  - scopeActive() 추가 (trial, active 상태 필터링)
  - isActive(), isTrial() 헬퍼 메서드 추가

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 14:35:26 +09:00
c88e175abf chore: ER diagram generator 설정 파일 추가
- laravel-er-diagram-generator 패키지 설정 추가

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-25 09:49:46 +09:00
1a796462e4 feat: ERD 자동 생성 시스템 구축 및 모델 오류 수정
- GraphViz 설치를 통한 ERD 다이어그램 생성 지원
- BelongsToTenantTrait → BelongsToTenant 트레잇명 수정
- Estimate, EstimateItem 모델의 인터페이스 참조 오류 해결
- 60개 모델의 완전한 관계도 생성 (graph.png, 4.1MB)
- beyondcode/laravel-er-diagram-generator 패키지 활용

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 22:30:28 +09:00
c63e676257 feat: 데이터베이스 FK 제약조건 최적화 및 3단계 마이그레이션 구현
- FK 제약조건 현황 분석 완료: 8개 마이그레이션에서 15+개 FK 식별
- 중요도별 테이블 분류 (핵심/중요/일반) 및 안전한 제거 전략 수립
- 코드 영향도 분석: Eloquent 관계가 FK 독립적으로 작동하여 코드 수정 불필요

주요 변경사항:
- Phase 1: classifications.tenant_id, departments.parent_id FK 제거
- Phase 2: estimates.model_set_id, estimate_items.estimate_id FK 제거
- Phase 3: product_components.material_id FK 제거 (신중한 검토 필요)
- 각 단계별 동적 FK 탐지, 상세 로깅, 완전 롤백 기능 포함
- 성능 인덱스 유지/추가로 쿼리 성능 보장

예상 효과:
- 견적 시스템 및 분류 관리 성능 향상
- 부서 구조 변경 및 자재 관리 유연성 증가
- FK 제약 에러 감소로 개발 생산성 향상
- 시스템 확장 시 스키마 변경 유연성 확보

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 21:49:39 +09:00
7dafab30d4 docs: CURRENT_WORKS.md 파일 위치 규칙 명확화
- 각 저장소별 개별 CURRENT_WORKS.md 파일 생성 규칙 추가
- 루트 디렉토리가 아닌 각 저장소 폴더에 저장하도록 수정
- API, Admin, Frontend, Shared 저장소별 개별 작업 추적
- 워크플로우 일관성 확보를 위한 중요 규칙 문서화

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 21:28:11 +09:00
cfd4c253e8 fix: categories 테이블 level 컬럼 제거로 마이그레이션 오류 해결
- 2025_09_24_000002_create_dynamic_estimate_fields.php에서 level 컬럼 사용 제거
- categories 테이블에 level 컬럼이 존재하지 않아 발생하던 마이그레이션 오류 해결
- parent_id로 계층 구조 표현이 충분하므로 level 컬럼 불필요
- 견적 루트 카테고리, 스크린 카테고리, 철재 카테고리 생성 시 level 컬럼 제거

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 21:05:00 +09:00
681acb0459 feat: Swagger 문서 업데이트 및 API 그룹화 최적화
- Settings 그룹 API 문서 추가
  * CommonController에 공통 코드 관리 CRUD 문서 작성
  * TenantFieldSettingController에 필드 설정 관리 문서 작성
  * "Settings - Common Codes", "Settings - Fields" 태그로 그룹화

- Products/Materials 통합 문서 업데이트
  * MaterialController에 "Products & Materials - Materials" 태그 적용
  * Products 그룹 내 자재 관리로 통합 구성

- Files API 완전한 Swagger 문서 추가
  * FileController에 누락되었던 전체 API 문서 작성
  * 파일 업로드/조회/삭제/정보조회 모든 엔드포인트 문서화
  * "Files" 태그로 독립적인 그룹 구성

- 새로운 에러 메시지 응답 예제 추가
  * Materials 관련: 중복 코드, 사용 중 삭제 불가, 정보 없음
  * Settings 관련: 중복 공통 코드, 필드 설정 없음, 유효하지 않은 타입
  * Files 관련: 업로드 실패, 파일 크기 초과, 지원하지 않는 형식

- 제거된 BOM 라우트 문서 정리
  * 사용하지 않는 BomApi.php 파일 삭제
  * 기본 BOM 시스템(/v1/boms) 완전 제거로 문서 정합성 확보

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 21:00:31 +09:00
b6ff56023f refactor: BOM 시스템 정리 및 API 구조 최적화
## 주요 변경사항

### BOM 시스템 통합 및 정리
- 기본 BOM 시스템 완전 제거 (미완성 3-tier 구조)
  - app/Http/Controllers/Api/V1/BomController.php 삭제
  - app/Services/BomService.php 삭제
  - app/Models/Products/Bom.php 삭제
  - app/Models/Products/BomItem.php 삭제
- BOM 역할 명확화: Product BOM (운영용) + Design BOM (설계용)
- Tag 모델에서 불필요한 BOM 참조 제거

### API 그룹핑 최적화
- Products & Materials 통합: /v1/products/materials/*
- Settings & Configuration 통합: /v1/settings/*
  - 필드 설정: /v1/settings/fields/*
  - 옵션 관리: /v1/settings/options/*
  - 공통 코드: /v1/settings/common/*
- 기존 분산된 라우트 통합으로 일관성 향상

### 번역 완성도 향상
- 영어 에러 메시지 누락 항목 추가
- Settings, Materials, File 관련 메시지 보완
- 한국어/영어 번역 파일 동기화 완료

### 시스템 품질 개선
- API 구조 논리적 재구성으로 사용자 경험 향상
- 코드 복잡도 감소 및 유지보수성 개선
- 불필요한 컨트롤러/서비스 제거로 시스템 단순화

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 20:35:17 +09:00
2d9217c9b4 feat: 견적 시스템 API
- 5130의 71개 하드코딩 컬럼을 동적 카테고리 필드 시스템으로 전환
- 모터 브라켓 계산 등 핵심 비즈니스 로직 FormulaParser에 통합
- 파라미터 기반 동적 견적 폼 시스템 구축
- 견적 상태 워크플로 (DRAFT → SENT → APPROVED/REJECTED/EXPIRED)
- 모델셋 관리 API: 카테고리+제품+BOM 통합 관리
- 견적 관리 API: 생성/수정/복제/상태변경/미리보기 기능

주요 구현 사항:
- EstimateController/EstimateService: 견적 비즈니스 로직
- ModelSetController/ModelSetService: 모델셋 관리 로직
- Estimate/EstimateItem 모델: 견적 데이터 구조
- 동적 견적 필드 마이그레이션: 스크린/철재 제품 구조
- API 라우트 17개 엔드포인트 추가
- 다국어 메시지 지원 (성공/에러 메시지)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 17:43:29 +09:00
eb42d11f5e feat: BOM 계산 API Swagger 문서 완성 및 오류 수정
- BomCalculationApi.php: 기존 시스템 방식 클래스 형태 Swagger 문서 작성
- BOM Calculation 태그로 5개 API 엔드포인트 완전 문서화
- 요청/응답 스키마, 예시 데이터, 오류 응답 모두 정의
- BomCalculationController.php: ApiResponse 클래스 참조 경로 수정
- App\Http\Resources\ApiResponse → App\Helpers\ApiResponse
- 테스트 데이터 생성으로 완전한 API 테스트 환경 구축

Swagger UI에서 "BOM Calculation" 메뉴로 확인 가능

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 14:40:51 +09:00
7d0ac3159e fix : 슬렉메시지에 IP 추가 2025-09-24 14:14:38 +09:00
dd0da9f0c5 docs: BOM 계산 시스템 구현 작업 현황 정리
- CURRENT_WORKS.md에 2025-09-22 작업 내용 추가
- 1~3단계 완료 내용 상세 기록
- 추가/수정된 파일 목록 및 작업 내용 정리
- 검증 완료 사항 및 시스템 개선 효과 문서화

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-22 22:15:16 +09:00
bd678dfea9 feat: 업체별 동적 BOM 계산 시스템 구현
- 데이터베이스 스키마 확장: BOM 테이블에 계산 관련 필드 추가
- 계산 엔진 구현: CalculationEngine, FormulaParser, ParameterValidator
- API 구현: 견적 파라미터 추출, 실시간 BOM 계산, 업체별 산출식 관리
- FormRequest 검증: 모든 입력 데이터 검증 및 한국어 에러 메시지
- 라우트 등록: 5개 BOM 계산 API 엔드포인트 추가

주요 기능:
• BOM에서 필요한 조건만 동적 추출하여 견적 화면에 표시
• 경동기업 하드코딩 산출식을 동적 시스템으로 전환
• 업체별 산출식 버전 관리 및 실시간 테스트 지원

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-22 22:09:42 +09:00
fa9f8ac707 chore: 프로젝트 리셋 및 환경 정리
- 프로젝트를 785e367 커밋 상태로 리셋
- 불필요한 시스템 파일 및 로그 파일 정리 (52MB 절약)
- storage .gitignore 파일 권한 정리
- 마이그레이션 상태: batch 14 (감사 로그까지)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-22 11:19:47 +09:00
2051bfb03a docs: 다른 장소에서 작업 환경 구축 가이드 추가
### 추가 내용:
- 5분 내 빠른 환경 구축 절차
- 상세 환경 검증 및 문제 해결 가이드
- Git 저장소별 기대 커밋 해시 정보
- 성능 최적화 및 개발 도구 설정
- 긴급 복원 절차 포함

### 목적:
- 다른 장소에서 동일한 개발 환경 재현
- 빠른 작업 재개 및 문제 해결
- 체계적인 환경 관리 및 동기화

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-19 22:14:58 +09:00
3f30c5d000 docs: 프로젝트 체크포인트 및 완전한 문서화 시스템 구축
### 추가된 문서들:
- CHECKPOINT_2025-09-19.md: 완전한 복원 지점 가이드
- DATABASE_SCHEMA_2025-09-19.md: samdb 전체 스키마 보고서 (70개 테이블)
- CURRENT_WORKS.md: 작업 현황 및 이동 작업 가이드

### 주요 내용:
- 다른 장소에서 동일한 환경 재현 가능한 가이드 제공
- Git 커밋 기반 정확한 복원 방법 문서화
- Multi-tenant 아키텍처 및 감사 시스템 스키마 분석
- 체계적인 작업 추적 및 프로젝트 관리 방법론

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-19 22:12:09 +09:00
08f775efd4 docs: 프로젝트 워크플로우 관리 가이드 추가
- CLAUDE.md 파일 동기화 규칙 정의
- CURRENT_WORKS.md 구조 및 작업 추적 시스템 문서화
- Git 커밋 워크플로우 및 컨벤션 정립
- 세션 관리 베스트 프랙티스 추가
- 데이터베이스 마이그레이션 관리 가이드 포함

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-19 21:35:20 +09:00
8d7426de7a chore: 프로젝트 가이드 파일 추가
- CLAUDE.md 파일 추가하여 프로젝트 아키텍처 및 개발 규칙 문서화
- 멀티 저장소 관리를 위한 일관된 가이드 제공

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-19 19:25:54 +09:00
785e367472 feat: 통합 감사 로그 도입 및 조회 API/스케줄러 추가
- DB: 감사 로그 테이블(audit_logs) 마이그레이션 및 인덱스 추가
- Config: audit.php 추가(AUDIT_RETENTION_DAYS, AUDIT_LOG_READS 토글)
- Model/Service: AuditLog 모델, AuditLogger 서비스 생성
- 도메인 훅: ModelVersion.release(released), BomTemplate upsert/update/delete/replaceItems/clone 기록, diff 조회는 설정 기반 기록
- API: GET /api/v1/design/audit-logs 추가(FormRequest/Service/Controller, 필터 page/size/target_type/target_id/action/actor_id/from/to/sort/order)
- Swagger: 감사 로그 조회 문서 추가(Design Audit 태그)
- Console: audit:prune 커맨드 추가 및 스케줄러 매일 03:10 실행 등록(시스템 크론 schedule:run 필요)
- Fix: PruneAuditLogs import 충돌 제거(Google ServiceControl AuditLog 제거)
2025-09-11 14:39:55 +09:00
17fa82c35b feat: Design BOM 템플릿 diff/clone API 및 모델버전 릴리즈 유효성 검사 도입
- Design BOM 템플릿 diff/clone 엔드포인트 추가
- 컨트롤러 검증 로직 FormRequest 분리(DiffRequest/CloneRequest/Upsert/ReplaceItems)
- BomTemplateService에 diffTemplates/cloneTemplate/replaceItems/쇼우 로직 정리
- ModelVersionController createDraft FormRequest 적용 및 서비스 호출 정리
- 모델버전 release 전 유효성 검사(존재/활성/테넌트 일치, qty>0, 중복 금지) 추가
- DB enum 미사용 방침 준수(status 문자열 유지)
- model_versions 인덱스 최적화(tenant_id, model_id, status / 기간 범위)
- Swagger 문서(Design BOM) 및 i18n 메시지 키 추가
2025-09-11 13:39:32 +09:00
4bf02b7424 fix : 컨트롤러 검증 → FormRequest 분리 2025-09-08 02:28:14 +09:00
d9563c96cb fix : 모델, BOM 구성 수정
- 설계용 모델, BOM 기능 추가
2025-09-05 17:59:34 +09:00
41d0afa245 fix : BOM구성 API - 자재 정보 오류 수정 2025-09-02 10:08:57 +09:00
622c4905fa fix : BOM구성 API, DB 작업
- product_components 컬럼 변경
- BOM 구성, 카테고리리스트, BOM트리(재귀)호출 API 개발
2025-09-02 10:08:55 +09:00
028af8fbfa fix : 모델 및 자재관리 수정 2025-09-02 10:08:51 +09:00
58016ea662 fix : products 테이블 unit 컬럼 추가 및 excel 기능추가(composer) - composer install 및 migrate 필요 2025-08-26 22:58:50 +09:00
c1996216c2 fix : 제품 카테고리 목록 조회 - static -> instance 변경 2025-08-26 08:34:32 +09:00
52bf8527e2 fix : 카테고리, 제품등록, BOM등록 API (일부 개발 - BOM 추가 작업 필요) 2025-08-25 17:46:34 +09:00
6307fdc1dc fix : 언어팩 추가 및 내용 추가 2025-08-25 17:26:20 +09:00
fe7d761bf6 fix : 분류 API 2025-08-22 19:30:05 +09:00
4b6e43ee62 fix : 카테고리 API 2025-08-22 18:08:57 +09:00
cd81285731 feat : 테넌트 부트스트랩 오케스트레이션
Notion : https://www.notion.so/hamss/2579c8d34ba080d586b6faaae249f476?source=copy_link
2025-08-22 15:57:44 +09:00