From d53f61fb5b056f78fa4de0fa3006d0ade02c8f5b Mon Sep 17 00:00:00 2001
From: Quaternions <krakow20@gmail.com>
Date: Sat, 5 Apr 2025 19:41:42 +0000
Subject: [PATCH] submissions: fix operations CountSince (#99)

Reviewed-on: https://git.itzana.me/StrafesNET/maps-service/pulls/99
Co-authored-by: Quaternions <krakow20@gmail.com>
Co-committed-by: Quaternions <krakow20@gmail.com>
---
 pkg/datastore/datastore.go            | 4 +++-
 pkg/datastore/gormstore/operations.go | 5 +++--
 pkg/service/mapfixes.go               | 2 +-
 pkg/service/submissions.go            | 2 +-
 4 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/pkg/datastore/datastore.go b/pkg/datastore/datastore.go
index 241e236..4df0c9f 100644
--- a/pkg/datastore/datastore.go
+++ b/pkg/datastore/datastore.go
@@ -3,6 +3,8 @@ package datastore
 import (
 	"context"
 	"errors"
+	"time"
+
 	"git.itzana.me/strafesnet/maps-service/pkg/model"
 )
 
@@ -45,7 +47,7 @@ type Operations interface {
 	Create(ctx context.Context, smap model.Operation) (model.Operation, error)
 	Update(ctx context.Context, id int32, values OptionalMap) error
 	Delete(ctx context.Context, id int32) error
-	CountSince(ctx context.Context, owner int64, since int64) (int64, error)
+	CountSince(ctx context.Context, owner int64, since time.Time) (int64, error)
 }
 
 type Submissions interface {
diff --git a/pkg/datastore/gormstore/operations.go b/pkg/datastore/gormstore/operations.go
index 87b456f..ab5eb00 100644
--- a/pkg/datastore/gormstore/operations.go
+++ b/pkg/datastore/gormstore/operations.go
@@ -3,6 +3,7 @@ package gormstore
 import (
 	"context"
 	"errors"
+	"time"
 
 	"git.itzana.me/strafesnet/maps-service/pkg/datastore"
 	"git.itzana.me/strafesnet/maps-service/pkg/model"
@@ -54,9 +55,9 @@ func (env *Operations) Delete(ctx context.Context, id int32) error {
 	return nil
 }
 
-func (env *Operations) CountSince(ctx context.Context, owner int64, since int64) (int64, error) {
+func (env *Operations) CountSince(ctx context.Context, owner int64, since time.Time) (int64, error) {
 	var count int64
-	if err := env.db.Where("owner = ? AND created_at > ?",owner,since).Count(&count).Error; err != nil {
+	if err := env.db.Model(&model.Operation{}).Where("owner = ? AND created_at > ?",owner,since).Count(&count).Error; err != nil {
 		return count, err
 	}
 
diff --git a/pkg/service/mapfixes.go b/pkg/service/mapfixes.go
index 17fe5e0..ff276d8 100644
--- a/pkg/service/mapfixes.go
+++ b/pkg/service/mapfixes.go
@@ -84,7 +84,7 @@ func (svc *Service) CreateMapfix(ctx context.Context, request *api.MapfixTrigger
 	{
 		count, err := svc.DB.Operations().CountSince(ctx,
 			int64(userId),
-			time.Now().Add(-CreateMapfixRecencyWindow).Unix(),
+			time.Now().Add(-CreateMapfixRecencyWindow),
 		)
 		if err != nil {
 			return nil, err
diff --git a/pkg/service/submissions.go b/pkg/service/submissions.go
index c9a6a80..bf7e9d5 100644
--- a/pkg/service/submissions.go
+++ b/pkg/service/submissions.go
@@ -75,7 +75,7 @@ func (svc *Service) CreateSubmission(ctx context.Context, request *api.Submissio
 	{
 		count, err := svc.DB.Operations().CountSince(ctx,
 			int64(userId),
-			time.Now().Add(-CreateSubmissionRecencyWindow).Unix(),
+			time.Now().Add(-CreateSubmissionRecencyWindow),
 		)
 		if err != nil {
 			return nil, err