3001-фух.это был сильный спринт.

сервис стал сильно лучше
черновики сохраняются одним запросом
дто черновиков вынесен отдельно
This commit is contained in:
2026-01-30 02:24:26 +03:00
parent 4da5fdd130
commit 10882f55c8
8 changed files with 306 additions and 51 deletions

View File

@@ -11,6 +11,7 @@ import (
"github.com/shopspring/decimal"
"go.uber.org/zap"
draftsdomain "rmser/internal/domain/drafts"
"rmser/internal/services/drafts"
"rmser/internal/services/ocr"
"rmser/pkg/logger"
@@ -361,6 +362,30 @@ func (h *DraftsHandler) ReorderItems(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"success": true})
}
// UpdateDraft обновляет черновик (шапку и позиции) пакетно
func (h *DraftsHandler) UpdateDraft(c *gin.Context) {
userID := c.MustGet("userID").(uuid.UUID)
draftID, err := uuid.Parse(c.Param("id"))
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": "invalid draft id"})
return
}
var req draftsdomain.UpdateDraftRequest
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
if err := h.service.SaveDraftFull(draftID, userID, req); err != nil {
logger.Log.Error("Failed to update draft", zap.Error(err))
c.JSON(http.StatusInternalServerError, gin.H{"error": "Не удалось сохранить изменения. Проверьте данные."})
return
}
c.JSON(http.StatusOK, gin.H{"status": "updated"})
}
// Upload обрабатывает загрузку файла и прогоняет через OCR
func (h *DraftsHandler) Upload(c *gin.Context) {
// Лимит размера тела запроса (20MB)