package main

import (
	"context"
	"fmt"
	"log"
	"time"
	"github.com/google/uuid"
	"github.com/jackc/pgx/v5"
)

func main() {
	connStr := "postgres://postgres:postgres@localhost:5432/db_talentscale?sslmode=disable"
	ctx := context.Background()
	conn, err := pgx.Connect(ctx, connStr)
	if err != nil {
		log.Fatal(err)
	}
	defer conn.Close(ctx)

	sessionID := "a74c3a39-e2f5-4f21-ae46-94bb700b8910"
	
	var sess struct {
		ID uuid.UUID
		CandidateID uuid.UUID
		Status string
	}
	err = conn.QueryRow(ctx, "SELECT id, candidate_id, status FROM test_sessions WHERE id = $1", sessionID).Scan(&sess.ID, &sess.CandidateID, &sess.Status)
	if err != nil {
		fmt.Printf("Session %s not found: %v\n", sessionID, err)
	} else {
		fmt.Printf("Session found: %+v\n", sess)
	}

	var count int
	err = conn.QueryRow(ctx, "SELECT count(*) FROM candidate_answers WHERE session_id = $1", sessionID).Scan(&count)
	if err != nil {
		log.Fatal(err)
	}
	zeroSID := "00000000-0000-0000-0000-000000000000"
	var zeroCount int
	err = conn.QueryRow(ctx, "SELECT count(*) FROM candidate_answers WHERE session_id = $1", zeroSID).Scan(&zeroCount)
	fmt.Printf("Answers for ZERO session: %d\n", zeroCount)

	fmt.Println("\n5 Most recent answers in candidate_answers:")
	arows, _ := conn.Query(ctx, "SELECT session_id, question_id, created_at FROM candidate_answers ORDER BY created_at DESC LIMIT 5")
	for arows.Next() {
		var sid, qid uuid.UUID
		var cat time.Time
		arows.Scan(&sid, &qid, &cat)
		fmt.Printf("- Session: %s, Question: %s, At: %s\n", sid, qid, cat)
	}
}
