Add ThemeBackground entity and repository with User/Member 관계
Implement ThemeBackground system: entity, repository, controller, and enhanced BackgroundManager with slideshow support
Fix lint error: change let to const for filtered variable and remove unused imports
Enhance Select Avatar tab: add search, sort by newest, date/time display, edit avatars, and photo cropping with draggable mask
Fix Grid layout: replace Grid container/item with Box using CSS Grid to match FormPersonalInfo.tsx exact layout
Fix TypeScript errors: add eslint-disable for EyeDropper any type, remove unused imports
Replace CREATE AVATAR tab with exact layout from FormPersonalInfo.tsx - matching kamo-register avatar creator interface
Fix Swiper CSS imports: move to top-level side-effect imports instead of dynamic imports
Fix TypeScript error: replace 'any' with 'unknown' in error handling
Update Create Avatar layout to match kamo-register design
- Reorganize Create Avatar tab with top row for quick settings (Style, Seed) - Split bottom row into two columns: Preview (left) and Advanced Settings (right) -...
Switch back to MuiAvatar components for avatar display
- Replace img tags with MuiAvatar components - Maintains all existing functionality (error handling, loading callbacks) - Cleaner code using Material-UI compone...
Use correct bucket and object path structure for MinIO uploads
- Change bucket name from domain-based to 'public' bucket - Include domain path (e.g., kamocrm-com) as part of object name, not bucket name - Fix object path st...
Properly handle MinIO upload failures for avatars
- Remove silent exception swallowing in Avatar Creator avatar creation - Add proper error handling and rollback for failed uploads - Delete database record if f...
Remove ID-based fallback code, use only hash-based naming
- Remove all try-catch fallback logic for missing fileHash column - Remove ID-based file naming fallbacks - Code now exclusively uses hash-based file storage - ...
Handle missing fileHash column gracefully
- Add try-catch around fileHash access to handle missing database column - Fall back to ID-based file naming if fileHash column doesn't exist yet - Allows code ...
MuiAvatar를 사용하여 img 태그를 올바르게 표시 avatar 이미지
- 더 나은 이미지 렌더링을위한 MuiAvatar 구성 요소 대신 네이티브 img 태그 사용 - 원형 디스플레이를 위해 적당한 스타일링을 가진 상자 콘테이너에 있는 포장 img - 모든 기존 기능 유지 (오류 처리, 로딩 콜백) - avatar 이미지가 선택 메뉴에서 표시되지 않은 문제...
Implement hash-based file storage for avatars
- Generate SHA-256 hash from avatar ID after persistence - Store hash in database fileHash field - Upload files to MinIO using hash-based naming: {hash}.{fileEx...
FileHash 필드를 안전한 파일 저장을위한 Avatar entity에 추가하십시오
- avatar ID의 SHA-256 해시 열 추가 - Hash는 축소 공격을 방지하기 위해 MinIO 파일에 사용됩니다. - 형식 : {hash}.{fileExtension} 대신 {id}.{fileExtension}
Avatar URL 생성 및 표시 문제
- API 프록시에서 X-Forwarded-Host 헤더 포워딩을 추가하면 올바른 테마 도메인 URL을 생성할 수 있습니다. - avatar 업로드 및 fetch 작업에 대한 포괄적 인 로깅 추가 - transformAvatarUrl 기능으로 URL 처리 개선 - 이미지 로딩 실패를 위...
Avatar 관리 UI 및 기능 향상
- Avatar 팝업에서 avatar 디스플레이를 수정하여 모든 avatar에 대한 이미지를 보여줍니다 (URL이 누락 될 때 SVG 클라이언트 측 생성) - 향상된 파일 입력 처리로 업로드 사진 기능 수정 - 'Avatar Creator' 텍스트를 'avatar'로 바꾸기 - 'Man...
