Add ThemeBackgroundController with hash-based storage and public bucket support
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 タグに置き換えて、アバター画像を正しく表示
- MuiAvatar コンポーネントの代わりにネイティブ img タグを使用して、より優れた画像レンダリング - 円の表示のための適切なスタイリングが付いている箱の容器の箱の容器の覆いのimg - 既存の機能(エラー処理、読み込みコールバック)をすべて維持 - 選択メニューにアバター画像が表示されていない問題を修正
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...
安全なファイルストレージ用のAvatarエンティティティにfileHashフィールドを追加
- アバター ID の SHA-256 ハッシュを格納する fileHash カラムを追加します。 - Hash は、Mino ファイルのネーミングでエンマイレーション攻撃を防ぐために使用されます。 - フォーマット:{id}.{fileExtension}の代わりに{hash}.{fileExtension}
アバターURL生成と課題の表示
- API プロキシで転送する X-Forwarded-Host ヘッダーを追加すると、バックエンドは正しいテーマドメイン URL を生成することができます。 - アバターアップロードとフェッチ操作のための包括的なロギングを追加 - トランスフォームでURL処理を向上するAvatarUrl関数 - 画像読み込みの失敗の...
アバター管理UIと機能性を改善
- 選択アバターポップアップでアバター表示を修正し、すべてのアバター(URLが欠落したときにSVGクライアントサイドを生成)の画像を表示 - Fix 改善されたファイル入力処理で写真の機能をアップロードする - 一貫性のために「アバタークリエーター」テキストを「アバター」に置き換える - 「アバターの管理」から「写真/...
