Files
projet_gestion_commande/backend/gestion/db/db_delivery_issues.go
T
2026-03-28 17:00:00 +01:00

47 lines
1.4 KiB
Go

package db
import (
"fmt"
"gestion/models"
"log"
)
func (d *Database) GetDeliveryIssues(status string) ([]models.DeliveryIssue, error) {
q := d.GDB.Order("created_at DESC")
if status != "" {
q = q.Where("status = ?", status)
}
var issues []models.DeliveryIssue
if err := q.Find(&issues).Error; err != nil {
return nil, fmt.Errorf("erreur récupération problèmes: %w", err)
}
return issues, nil
}
func (d *Database) CreateDeliveryIssue(commandID int, issueType, description, reportedBy string) (*models.DeliveryIssue, error) {
issue := models.DeliveryIssue{
CommandID: commandID,
IssueType: issueType,
Description: description,
Status: "open",
ReportedBy: reportedBy,
}
if err := d.GDB.Create(&issue).Error; err != nil {
return nil, fmt.Errorf("erreur création problème: %w", err)
}
return &issue, nil
}
func (d *Database) UpdateDeliveryIssue(issueID int, status, resolution, resolvedBy string) error {
result := d.GDB.Model(&models.DeliveryIssue{}).Where("id = ?", issueID).
Updates(map[string]any{"status": status, "resolution": resolution, "resolved_by": resolvedBy})
if result.Error != nil {
return fmt.Errorf("erreur mise à jour problème: %w", result.Error)
}
if result.RowsAffected == 0 {
return fmt.Errorf("problème non trouvé")
}
log.Printf("✅ Problème %d mis à jour: status=%s", issueID, status)
return nil
}