#!/usr/bin/perl -w

use utf8;
use strict;
use warnings;

BEGIN {
	unshift @INC, ( $ENV{'POPHOME'} || '@POPHOME@' ) . '/lib'
	  unless $ENV{'KUNDE_NO_PERLPATH'};
}

use Dbase::Getopt qw(:DEFAULT);
use Dbase::Globals qw(puny_decode);
use noris::Ticket::API qw(get_pooled_connection in_out_list);

my @Queues = qw(hostmaster::billing verwaltung::billing);
GetOptions( 'alle-queues' => sub { @Queues = () }, 'queue=s' => \@Queues );

my $ticket_api = get_pooled_connection();

while (<>) {
    my ( $domain, $timestamp ) = split;

    my @ticket_numbers;
    $ticket_api->select_tickets(
        attributes => ['ticket_number'],
        query      => {
            in_out_list( queue => \@Queues, [] ),
            status => [ in => qw(open stalled) ],
            title  => 'Reminder: ' . puny_decode($domain),
        }
    )->foreach_row( sub { push @ticket_numbers, shift } );

    printf "%-10s %-42s%s\n", $timestamp, $domain, @ticket_numbers > 0
      && "\t("
      . join( ',', map "#$_", sort { $a <=> $b } @ticket_numbers ) . ')'
      if @ticket_numbers != 1;
}

__END__

=head1 NAME

suche_reminder-ticket - suche nach Reminder-Tickets zu Domains

=head1 BESCHREIBUNG

Dieses Tool erwartet auf der Standardeingabe eine von Liste mit einzeiligen
Einträgen, in denen jeweils TAB-getrennt ein Domainname und der Timestamp
der letzten Änderung der Domain stehen und überprüft für die fraglichen
Domains, ob genau ein Reminder-Ticket gemäß der [[Anweisung: Sicherstellung
der dauerhaften Verfügbarkeit fremdländischer Domains]] existiert.
Falls nicht, gibt es die Namen und den Timestamp der fraglichen Domain(s)
sowie ggf. eine Liste der doppelten zugehörigen Reminder-Tickets aus.

=head1 OPTIONEN

=over 4

=item -alle-queues

Suche in allen Queues.

=item -queue Queue

Suche in der fraglichen Queue.
Kann mehrfach verwendet werden, um mehrere Queues auszuwählen.

Default: C<hostmaster::billing>, C<verwaltung::billing>

=back

