Add PointsHistory model for tracking points history

This commit is contained in:
Mo Tarbin 2025-01-18 09:51:13 -05:00
parent 8f3dd068c9
commit c473627112
2 changed files with 6 additions and 0 deletions

View file

@ -7,6 +7,7 @@ import (
cModel "donetick.com/core/internal/circle/model"
pModel "donetick.com/core/internal/points"
uModel "donetick.com/core/internal/user/model"
"donetick.com/core/logging"
"gorm.io/gorm"
)
@ -142,7 +143,9 @@ func (r *CircleRepository) AssignDefaultCircle(c context.Context, userID int) er
}
func (r *CircleRepository) RedeemPoints(c context.Context, circleID int, userID int, points int, createdBy int) error {
logger := logging.FromContext(c)
err := r.db.Transaction(func(tx *gorm.DB) error {
if err := tx.Model(&cModel.UserCircle{}).Where("user_id = ? AND circle_id = ?", userID, circleID).Update("points_redeemed", gorm.Expr("points_redeemed + ?", points)).Error; err != nil {
return err
}
@ -159,6 +162,7 @@ func (r *CircleRepository) RedeemPoints(c context.Context, circleID int, userID
return nil
})
if err != nil {
logger.Error("Error redeeming points", err)
return err
}
return nil

View file

@ -9,6 +9,7 @@ import (
chModel "donetick.com/core/internal/chore/model"
cModel "donetick.com/core/internal/circle/model"
nModel "donetick.com/core/internal/notifier/model"
pModel "donetick.com/core/internal/points"
tModel "donetick.com/core/internal/thing/model"
uModel "donetick.com/core/internal/user/model" // Pure go SQLite driver, checkout https://github.com/glebarez/sqlite for details
migrations "donetick.com/core/migrations"
@ -35,6 +36,7 @@ func Migration(db *gorm.DB) error {
chModel.Label{},
chModel.ChoreLabels{},
migrations.Migration{},
pModel.PointsHistory{},
); err != nil {
return err
}