Ctrl K
ComunidadGuías…

scripts/retroactive_prs.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package main

import (
	"database/sql"
	"fmt"
	"log"

	"github.com/johnzastrow/actalog/internal/repository"
	"github.com/johnzastrow/actalog/internal/service"
	_ "github.com/mattn/go-sqlite3"
)

func main() {
	// Open database connection
	db, err := sql.Open("sqlite3", "./actalog.db")
	if err != nil {
		log.Fatalf("Failed to open database: %v", err)
	}
	defer db.Close()

	// Initialize repositories
	userWorkoutRepo := repository.NewUserWorkoutRepository(db)
	workoutRepo := repository.NewWorkoutRepository(db)
	workoutMovementRepo := repository.NewWorkoutMovementRepository(db)
	userWorkoutMovementRepo := repository.NewUserWorkoutMovementRepository(db)
	userWorkoutWODRepo := repository.NewUserWorkoutWODRepository(db)
	wodRepo := repository.NewWODRepository(db)

	// Initialize repositories
	movementRepo := repository.NewMovementRepository(db)

	// Initialize service
	userWorkoutService := service.NewUserWorkoutService(
		userWorkoutRepo,
		workoutRepo,
		workoutMovementRepo,
		userWorkoutMovementRepo,
		userWorkoutWODRepo,
		wodRepo,
		nil,          // no audit log repo for script
		movementRepo, // movement repo for PR detection
		nil,          // no notification service for script
		nil,          // no user repo for script
		nil,          // no org repo for script
	)

	// Run retroactive PR flagging for user ID 1
	userID := int64(1)
	fmt.Printf("Running retroactive PR flagging for user ID %d...\n", userID)

	movementPRCount, wodPRCount, err := userWorkoutService.RetroactivelyFlagPRs(userID)
	if err != nil {
		log.Fatalf("Failed to retroactively flag PRs: %v", err)
	}

	fmt.Printf("Success! Flagged %d movement PRs and %d WOD PRs\n", movementPRCount, wodPRCount)
}