Files
beabigegg 3108fe1dff feat: implement document management module
- Backend (FastAPI):
  - Attachment and AttachmentVersion models with migration
  - FileStorageService with SHA-256 checksum validation
  - File type validation (whitelist/blacklist)
  - Full CRUD API with version control support
  - Audit trail integration for upload/download/delete
  - Configurable upload directory and file size limit

- Frontend (React + Vite):
  - AttachmentUpload component with drag & drop
  - AttachmentList component with download/delete
  - TaskAttachments combined component
  - Attachments service for API calls

- Testing:
  - 12 tests for storage service and API endpoints

- OpenSpec:
  - add-document-management change archived

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 22:03:05 +08:00

87 lines
2.6 KiB
Python

from app.schemas.auth import LoginRequest, LoginResponse, TokenPayload
from app.schemas.user import UserCreate, UserUpdate, UserResponse, UserInDB
from app.schemas.department import DepartmentCreate, DepartmentUpdate, DepartmentResponse
from app.schemas.role import RoleResponse
from app.schemas.space import SpaceCreate, SpaceUpdate, SpaceResponse, SpaceWithOwner
from app.schemas.project import (
ProjectCreate, ProjectUpdate, ProjectResponse, ProjectWithDetails, SecurityLevel
)
from app.schemas.task_status import TaskStatusCreate, TaskStatusUpdate, TaskStatusResponse
from app.schemas.task import (
TaskCreate, TaskUpdate, TaskResponse, TaskWithDetails, TaskListResponse,
TaskStatusUpdate as TaskStatusChangeUpdate, TaskAssignUpdate, Priority
)
from app.schemas.comment import (
CommentCreate, CommentUpdate, CommentResponse, CommentListResponse
)
from app.schemas.notification import (
NotificationResponse, NotificationListResponse, UnreadCountResponse
)
from app.schemas.blocker import (
BlockerCreate, BlockerResolve, BlockerResponse, BlockerListResponse
)
from app.schemas.audit import (
AuditLogResponse, AuditLogListResponse, AuditAlertResponse, AuditAlertListResponse,
IntegrityCheckRequest, IntegrityCheckResponse
)
from app.schemas.attachment import (
AttachmentResponse, AttachmentListResponse, AttachmentDetailResponse,
AttachmentVersionResponse, VersionHistoryResponse
)
__all__ = [
"LoginRequest",
"LoginResponse",
"TokenPayload",
"UserCreate",
"UserUpdate",
"UserResponse",
"UserInDB",
"DepartmentCreate",
"DepartmentUpdate",
"DepartmentResponse",
"RoleResponse",
"SpaceCreate",
"SpaceUpdate",
"SpaceResponse",
"SpaceWithOwner",
"ProjectCreate",
"ProjectUpdate",
"ProjectResponse",
"ProjectWithDetails",
"SecurityLevel",
"TaskStatusCreate",
"TaskStatusUpdate",
"TaskStatusResponse",
"TaskCreate",
"TaskUpdate",
"TaskResponse",
"TaskWithDetails",
"TaskListResponse",
"TaskStatusChangeUpdate",
"TaskAssignUpdate",
"Priority",
"CommentCreate",
"CommentUpdate",
"CommentResponse",
"CommentListResponse",
"NotificationResponse",
"NotificationListResponse",
"UnreadCountResponse",
"BlockerCreate",
"BlockerResolve",
"BlockerResponse",
"BlockerListResponse",
"AuditLogResponse",
"AuditLogListResponse",
"AuditAlertResponse",
"AuditAlertListResponse",
"IntegrityCheckRequest",
"IntegrityCheckResponse",
"AttachmentResponse",
"AttachmentListResponse",
"AttachmentDetailResponse",
"AttachmentVersionResponse",
"VersionHistoryResponse",
]