Implement Assets API with file/asset management operations
Implementation:
- Asset data models (wikijs/models/asset.py)
- Asset, AssetFolder models
- AssetUpload, AssetRename, AssetMove models
- FolderCreate model
- File size helpers (size_mb, size_kb)
- Field validation and normalization
- Sync AssetsEndpoint (wikijs/endpoints/assets.py)
- list(folder_id, kind) - List assets with filtering
- get(asset_id) - Get single asset
- rename(asset_id, new_filename) - Rename asset
- move(asset_id, folder_id) - Move asset between folders
- delete(asset_id) - Delete asset
- list_folders() - List all folders
- create_folder(slug, name) - Create new folder
- delete_folder(folder_id) - Delete folder
- Note: upload/download require multipart support (future enhancement)
- Async AsyncAssetsEndpoint (wikijs/aio/endpoints/assets.py)
- Complete async implementation
- Identical interface to sync version
- All asset and folder management operations
- Integration with clients
- WikiJSClient.assets
- AsyncWikiJSClient.assets
GraphQL operations for asset and folder management.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>