2025-07-24 07:39:43 +02:00
|
|
|
package character
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func RegisterRoutes(r *gin.RouterGroup) {
|
|
|
|
|
charGrp := r.Group("/characters")
|
|
|
|
|
charGrp.GET("", ListCharacters)
|
|
|
|
|
charGrp.POST("", CreateCharacter)
|
|
|
|
|
charGrp.GET("/:id", GetCharacter)
|
|
|
|
|
charGrp.PUT("/:id", UpdateCharacter)
|
2026-02-01 20:55:44 +01:00
|
|
|
charGrp.PATCH("/:id", UpdateCharacter)
|
|
|
|
|
|
2025-07-24 07:39:43 +02:00
|
|
|
charGrp.DELETE("/:id", DeleteCharacter)
|
2025-12-29 13:37:55 +01:00
|
|
|
charGrp.PUT("/:id/image", UpdateCharacterImage)
|
2026-01-14 18:52:29 +01:00
|
|
|
charGrp.GET("/:id/datasheet-options", GetDatasheetOptions)
|
2025-07-24 07:39:43 +02:00
|
|
|
|
2026-02-01 23:23:53 +01:00
|
|
|
// Character Sharing
|
|
|
|
|
charGrp.GET("/:id/shares", GetCharacterShares)
|
|
|
|
|
charGrp.PUT("/:id/shares", UpdateCharacterShares)
|
|
|
|
|
charGrp.GET("/:id/available-users", GetAvailableUsersForSharing)
|
|
|
|
|
|
2025-07-24 07:39:43 +02:00
|
|
|
// Erfahrung und Vermögen
|
2025-08-01 07:19:02 +02:00
|
|
|
charGrp.GET("/:id/experience-wealth", GetCharacterExperienceAndWealth) // NewSystem
|
|
|
|
|
charGrp.PUT("/:id/experience", UpdateCharacterExperience) // NewSystem
|
|
|
|
|
charGrp.PUT("/:id/wealth", UpdateCharacterWealth) // NewSystem
|
2025-07-24 07:39:43 +02:00
|
|
|
|
|
|
|
|
// Audit-Log für Änderungen
|
|
|
|
|
charGrp.GET("/:id/audit-log", GetCharacterAuditLog) // Alle Änderungen oder gefiltert nach Feld (?field=experience_points)
|
|
|
|
|
charGrp.GET("/:id/audit-log/stats", GetAuditLogStats) // Statistiken über Änderungen
|
|
|
|
|
|
2025-07-30 14:32:44 +02:00
|
|
|
// im Frontend wir nur noch der neue Endpunkt benutzt
|
|
|
|
|
//charGrp.POST("/lerncost", GetLernCost) // alter Hauptendpunkt für alle Kostenberechnungen (verwendet lerningCostsData)
|
2025-07-29 23:29:12 +02:00
|
|
|
charGrp.POST("/lerncost-new", GetLernCostNewSystem) // neuer Hauptendpunkt für alle Kostenberechnungen (verwendet neue Datenbank)
|
2026-02-17 23:08:28 +01:00
|
|
|
charGrp.POST("/lerncost", GetLernCostNewSystem) // neuer Hauptendpunkt für alle Kostenberechnungen (verwendet neue Datenbank)
|
2025-08-05 21:12:03 +02:00
|
|
|
charGrp.POST("/improve-skill-new", ImproveSkill) // Fertigkeit verbessern
|
2026-02-17 23:08:28 +01:00
|
|
|
charGrp.POST("/improve-skill", ImproveSkill) // Fertigkeit verbessern
|
2025-07-24 07:39:43 +02:00
|
|
|
|
|
|
|
|
// Lernen und Verbessern (mit automatischem Audit-Log)
|
2025-08-05 21:12:03 +02:00
|
|
|
charGrp.POST("/:id/learn-skill-new", LearnSkill) // Fertigkeit lernen (neues System)
|
2026-02-17 23:08:28 +01:00
|
|
|
charGrp.POST("/:id/learn-skill", LearnSkill) // Fertigkeit lernen (altes System)
|
2025-08-05 21:29:00 +02:00
|
|
|
charGrp.POST("/:id/learn-spell-new", LearnSpell) // Zauber lernen (neues System)
|
2026-02-17 23:08:28 +01:00
|
|
|
charGrp.POST("/:id/learn-spell", LearnSpell) // Zauber lernen (altes System)
|
2025-07-24 07:39:43 +02:00
|
|
|
|
2025-07-26 23:15:11 +02:00
|
|
|
// Fertigkeiten-Information
|
2025-08-30 17:55:20 +02:00
|
|
|
//charGrp.GET("/:id/available-skills", GetAvailableSkillsOld) // Verfügbare Fertigkeiten mit Kosten (bereits gelernte ausgeschlossen)
|
2025-08-21 20:57:55 +02:00
|
|
|
charGrp.POST("/available-skills-new", GetAvailableSkillsNewSystem) // Verfügbare Fertigkeiten mit Kosten (bereits gelernte ausgeschlossen)
|
2026-02-17 23:08:28 +01:00
|
|
|
charGrp.POST("/available-skills", GetAvailableSkillsNewSystem) // Verfügbare Fertigkeiten mit Kosten (bereits gelernte ausgeschlossen)
|
2025-08-21 20:57:55 +02:00
|
|
|
charGrp.POST("/available-skills-creation", GetAvailableSkillsForCreation) // Verfügbare Fertigkeiten mit Lernkosten für Charaktererstellung
|
2025-08-26 22:31:46 +02:00
|
|
|
charGrp.POST("/available-spells-creation", GetAvailableSpellsForCreation) // Verfügbare Zauber mit Lernkosten für Charaktererstellung
|
2025-08-21 20:57:55 +02:00
|
|
|
charGrp.POST("/available-spells-new", GetAvailableSpellsNewSystem) // Verfügbare Zauber mit Kosten (bereits gelernte ausgeschlossen)
|
2026-02-17 23:08:28 +01:00
|
|
|
charGrp.POST("/available-spells", GetAvailableSpellsNewSystem) // Verfügbare Zauber mit Kosten (bereits gelernte ausgeschlossen)
|
2025-08-21 20:57:55 +02:00
|
|
|
charGrp.GET("/spell-details", GetSpellDetails) // Detaillierte Informationen zu einem bestimmten Zauber
|
2025-07-26 23:15:11 +02:00
|
|
|
|
2025-07-24 07:39:43 +02:00
|
|
|
// Belohnungsarten für verschiedene Lernszenarien
|
2025-08-30 17:55:20 +02:00
|
|
|
charGrp.GET("/:id/reward-types", GetRewardTypesStatic) // Verfügbare Belohnungsarten je nach Kontext
|
2025-07-24 07:39:43 +02:00
|
|
|
|
|
|
|
|
// Praxispunkte-Verwaltung
|
2025-08-01 07:19:02 +02:00
|
|
|
charGrp.GET("/:id/practice-points", GetPracticePoints) // NewSystem
|
|
|
|
|
charGrp.PUT("/:id/practice-points", UpdatePracticePoints) // NewSystem
|
|
|
|
|
charGrp.POST("/:id/practice-points/add", AddPracticePoint) // NewSystem
|
|
|
|
|
charGrp.POST("/:id/practice-points/use", UsePracticePoint) // NewSystem
|
2025-07-24 07:39:43 +02:00
|
|
|
|
|
|
|
|
// System-Information
|
2025-08-30 17:55:20 +02:00
|
|
|
//charGrp.GET("/character-classes", GetCharacterClassesHandlerOld)
|
|
|
|
|
charGrp.GET("/skill-categories", GetSkillCategoriesHandlerStatic)
|
2025-08-08 06:39:46 +02:00
|
|
|
|
|
|
|
|
// Character Creation
|
|
|
|
|
charGrp.GET("/create-sessions", ListCharacterSessions) // Aktive Sessions für Benutzer auflisten
|
|
|
|
|
charGrp.POST("/create-session", CreateCharacterSession) // Neue Charakter-Erstellungssession
|
|
|
|
|
charGrp.GET("/create-session/:sessionId", GetCharacterSession) // Session-Daten abrufen
|
|
|
|
|
charGrp.PUT("/create-session/:sessionId/basic", UpdateCharacterBasicInfo) // Grundinformationen speichern
|
|
|
|
|
charGrp.PUT("/create-session/:sessionId/attributes", UpdateCharacterAttributes) // Grundwerte speichern
|
|
|
|
|
charGrp.PUT("/create-session/:sessionId/derived", UpdateCharacterDerivedValues) // Abgeleitete Werte speichern
|
|
|
|
|
charGrp.PUT("/create-session/:sessionId/skills", UpdateCharacterSkills) // Fertigkeiten speichern
|
|
|
|
|
charGrp.POST("/create-session/:sessionId/finalize", FinalizeCharacterCreation) // Charakter-Erstellung abschließen
|
|
|
|
|
charGrp.DELETE("/create-session/:sessionId", DeleteCharacterSession) // Session löschen
|
|
|
|
|
|
|
|
|
|
// Reference Data für Character Creation
|
2025-08-26 22:31:46 +02:00
|
|
|
charGrp.GET("/races", GetRaces) // Verfügbare Rassen
|
|
|
|
|
charGrp.GET("/classes", GetCharacterClasses) // Verfügbare Klassen
|
|
|
|
|
charGrp.GET("/classes/learning-points", GetCharacterClassLearningPoints) // Lernpunkte für Charakterklasse
|
|
|
|
|
charGrp.GET("/origins", GetOrigins) // Verfügbare Herkünfte
|
|
|
|
|
charGrp.GET("/beliefs", SearchBeliefs) // Glaube-Suche
|
2025-08-13 11:40:06 +02:00
|
|
|
|
|
|
|
|
// Derived Values Calculation
|
|
|
|
|
charGrp.POST("/calculate-static-fields", CalculateStaticFields) // Berechnung ohne Würfelwürfe
|
|
|
|
|
charGrp.POST("/calculate-rolled-field", CalculateRolledField) // Berechnung mit Würfelwürfen
|
2025-07-24 07:39:43 +02:00
|
|
|
}
|