#!/usr/bin/env perl6

use v6;

use LacunaCookbuk::Client;
use LacunaCookbuk::Logic::Chairman;
use LacunaCookbuk::Logic::BodyBuilder;
use Terminal::ANSIColor;
use LacunaCookbuk::Logic::Ambassador;

# Seems to not work
#sub USAGE() {
#say 'Usage:
#$*USAGE
#
#Tasks should be separated by comma'; 
#
#}

multi sub MAIN(Str :$alliance){
#  my LacunaCookbuk::Client $client .= new;
 
  create_session;

  LacunaCookbuk::Logic::Ambassador.show_alliance($alliance);
  close_session;  

}

multi sub MAIN(Bool :$help!){
    #USAGE();
    say "\nAvailable tasks" ~ (LacunaCookbuk::Client.^methods.map:{"\n\t" ~ colored(.gist, "bold") ~ ":\n\t\t " ~ .WHY ~ "\n"})
}

multi sub MAIN(Str :$tasks!, Bool :$update?){

  my LacunaCookbuk::Client $client .= new;
 
  create_session;

  if $update {
      LacunaCookbuk::Logic::BodyBuilder.process_all_bodies;
  } else {
      LacunaCookbuk::Logic::BodyBuilder.read;
  }

  my @todo=$tasks.split(/","/);
  
  for @todo -> $willdo {
      $client."$willdo"();
  }  

  close_session;  
}


multi sub MAIN(Str :$view_body!){

  create_session;
  LacunaCookbuk::Logic::BodyBuilder.read;
  LacunaCookbuk::Logic::Chairman.view_body(find_planet($view_body));

  close_session;  
}


multi sub MAIN(Str :$repair!){

  create_session;
  LacunaCookbuk::Logic::BodyBuilder.read;
  LacunaCookbuk::Logic::Chairman.repair_one(find_planet($repair));

  close_session;  
}

multi sub MAIN(Bool :$repairall!){

  create_session;
  LacunaCookbuk::Logic::BodyBuilder.read;
  LacunaCookbuk::Logic::Chairman.repair_all;

  close_session;  
}
