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 }