feat: add import error tracking and translation tabs
Import Error Tracking:
- Add MarketplaceImportError model to store detailed error information
- Store row number, identifier, error type, message, and row data for each error
- Add API endpoint GET /admin/marketplace-import-jobs/{job_id}/errors
- Add UI to view and browse import errors in job details modal
- Support pagination and error type filtering
Translation Tabs:
- Replace flat translation list with tabbed interface on product detail page
- Add language tabs with full language names
- Add copy-to-clipboard functionality for translation content
- Improved UX with better visual separation of translations
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -81,6 +81,28 @@ class AdminMarketplaceImportJobRequest(BaseModel):
|
||||
return v
|
||||
|
||||
|
||||
class MarketplaceImportErrorResponse(BaseModel):
|
||||
"""Response schema for individual import error."""
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
id: int
|
||||
row_number: int
|
||||
identifier: str | None = None
|
||||
error_type: str
|
||||
error_message: str
|
||||
row_data: dict | None = None
|
||||
created_at: datetime
|
||||
|
||||
|
||||
class MarketplaceImportErrorListResponse(BaseModel):
|
||||
"""Response schema for list of import errors."""
|
||||
|
||||
errors: list[MarketplaceImportErrorResponse]
|
||||
total: int
|
||||
import_job_id: int
|
||||
|
||||
|
||||
class MarketplaceImportJobResponse(BaseModel):
|
||||
"""Response schema for marketplace import job."""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user