#!/usr/bin/env perl

use strict;
use warnings;

BEGIN {
    use File::Basename qw(dirname);
    use File::Spec;
    my $d = dirname(File::Spec->rel2abs($0));
    require "$d/../setenv.pl";
}

use FixMyStreet::DB;
use Open311::PopulateServiceList;
use Getopt::Long::Descriptive;

my ($opt, $usage) = describe_options(
    '%c %o',
    ['body|b:s',   "body name to only fetch this body"],
    ['verbose|v',  "print out all services as they are found"],
    ['warn|w',     "output warnings about any issues"],
    ['help',       "print usage message and exit" ],
);
$usage->die if $opt->help;

my $bodies = FixMyStreet::DB->resultset('Body')->search( {
    send_method => 'Open311'
} );
if ($opt->body) {
    $bodies = $bodies->search({ name => $opt->body });
}

my $verbose = 0;
$verbose = 1 if $opt->warn;
$verbose = 2 if $opt->verbose;
my $p = Open311::PopulateServiceList->new( bodies => $bodies, verbose => $verbose );

$p->process_bodies;
