2024-12-28 16:30:48 +01:00
|
|
|
package character
|
2024-12-21 07:26:27 +01:00
|
|
|
|
|
|
|
|
import (
|
2024-12-28 16:30:48 +01:00
|
|
|
"bamort/database"
|
2026-05-01 18:15:31 +02:00
|
|
|
"bamort/bmrt/models"
|
2024-12-24 22:36:03 +01:00
|
|
|
|
2024-12-24 07:54:27 +01:00
|
|
|
"fmt"
|
2024-12-21 07:26:27 +01:00
|
|
|
|
|
|
|
|
"gorm.io/gorm"
|
|
|
|
|
)
|
|
|
|
|
|
2025-07-28 21:35:29 +02:00
|
|
|
func SaveCharacterToDB(character *models.Char) error {
|
2024-12-24 07:54:27 +01:00
|
|
|
// Use GORM transaction to ensure atomicity
|
2024-12-28 16:30:48 +01:00
|
|
|
return database.DB.Transaction(func(tx *gorm.DB) error {
|
2024-12-24 07:54:27 +01:00
|
|
|
// Save the main character record
|
2024-12-21 22:06:33 +01:00
|
|
|
if err := tx.Create(character).Error; err != nil {
|
2024-12-24 07:54:27 +01:00
|
|
|
return fmt.Errorf("failed to save character: %w", err)
|
2024-12-21 22:06:33 +01:00
|
|
|
}
|
|
|
|
|
return nil
|
|
|
|
|
})
|
|
|
|
|
}
|