package Test2::Harness::UI::Sweeper;
use strict;
use warnings;

our $VERSION = '0.000058';

use Test2::Harness::UI::Util::HashBase qw{
    <config
    <interval
};

sub sweep {
    my $self = shift;

    my $db_type = $self->config->guess_db_driver;

    my $interval;
    if ($db_type eq 'PostgreSQL') {
        $interval = "< NOW() - INTERVAL '$self->{+INTERVAL}'";
    }
    elsif ($db_type =~ m/mysql/i) {
        $interval = "< NOW() - INTERVAL $self->{+INTERVAL}";
    }
    else {
        die "Not sure how to format interval for '$db_type'";
    }

    my $runs = $self->config->schema->resultset('Run')->search(
        {
            pinned => 'false',
            added => \$interval,
        },
    );

    my %counts;
    while (my $run = $runs->next()) {
        $counts{runs}++;
        my $jobs = $run->jobs;

        while (my $job = $jobs->next()) {
            $counts{jobs}++;
            $job->coverages->delete;
            $job->events->delete;
            $job->delete;
        }

        $run->delete;
    }

    return \%counts;
}

1;