feat: implement core repository layer and redis caching infrastructure
Build and Release / release (push) Successful in 1m37s

This commit is contained in:
2026-06-03 22:15:27 +07:00
parent 4676e21740
commit dfe34b0029
17 changed files with 164 additions and 90 deletions
@@ -143,7 +143,11 @@ func (r *battleReplayRepository) GetByID(ctx context.Context, id pgtype.UUID) (*
func (r *battleReplayRepository) GetByGeometryID(ctx context.Context, geometryID pgtype.UUID) ([]*models.BattleReplayEntity, error) {
cacheKey := fmt.Sprintf("battle_replay:geometry:%s", convert.UUIDToString(geometryID))
var cachedIDs []string
if err := r.c.Get(ctx, cacheKey, &cachedIDs); err == nil && len(cachedIDs) > 0 {
err := r.c.Get(ctx, cacheKey, &cachedIDs)
if err == nil {
if len(cachedIDs) == 0 {
return []*models.BattleReplayEntity{}, nil
}
return r.getByIDsWithFallback(ctx, cachedIDs)
}
@@ -208,7 +212,11 @@ func (r *battleReplayRepository) GetByGeometryIDs(ctx context.Context, geometryI
func (r *battleReplayRepository) GetByProjectID(ctx context.Context, projectID pgtype.UUID) ([]*models.BattleReplayEntity, error) {
cacheKey := fmt.Sprintf("battle_replay:project:%s", convert.UUIDToString(projectID))
var cachedIDs []string
if err := r.c.Get(ctx, cacheKey, &cachedIDs); err == nil && len(cachedIDs) > 0 {
err := r.c.Get(ctx, cacheKey, &cachedIDs)
if err == nil {
if len(cachedIDs) == 0 {
return []*models.BattleReplayEntity{}, nil
}
return r.getByIDsWithFallback(ctx, cachedIDs)
}