#! /usr/bin/env perl
#
# Copyright (C) 2009-2025 Alexis Bienvenüe <paamc@passoire.fr>
#
# This file is part of Auto-Multiple-Choice
#
# Auto-Multiple-Choice is free software: you can redistribute it
# and/or modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# Auto-Multiple-Choice is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Auto-Multiple-Choice.  If not, see
# <http://www.gnu.org/licenses/>.

use warnings;
use 5.012;

use Getopt::Long;

use AMC::Basic;
use AMC::Gui::Avancement;

use Module::Load;

use_amc_plugins();

my $module = 'CSV';
my $output = '';

my $data_dir        = '';
my $fich_notes      = '';
my $fich_assoc      = '';
my $fich_noms       = '';
my $association_key = '';
my $noms_encodage   = 'utf-8';
my $csv_build_name  = '';
my @o_out           = ();
my $sort            = 'n';
my $useall          = 1;
my $rtl             = '';

GetProjectOptions(
    "module=s"                         => \$module,
    ":export_sort|sort=s"              => \$sort,
    ":export_include_abs|useall=s"     => \$useall,
    ":data:dir|data=s"                 => \$data_dir,
    ":listeetudiants:dir|fich-noms=s"  => \$fich_noms,
    "association-key=s"                => \$association_key,
    ":csv_build_name|csv-build-name=s" => \$csv_build_name,
    ":liste:enc|noms-encodage=s"       => \$noms_encodage,
    ":annote_rtl|rtl!"                 => \$rtl,
    "option-out=s"                     => \@o_out,
    "output|o=s"                       => \$output,
);

load("AMC::Export::$module");
my $ex = "AMC::Export::$module"->new();

$ex->set_options( "sort", keys => $sort );

$ex->set_options(
    "fich",
    datadir           => $data_dir,
    noms              => $fich_noms,
                );

$ex->set_options( 'association', key => $association_key );

$ex->set_options(
    "noms",
    encodage    => $noms_encodage,
    useall      => $useall,
    identifiant => $csv_build_name,
);

$ex->set_options( "out", rtl => $rtl );

for my $oo (@o_out) {
    if ( $oo =~ /([^=]+)=(.*)/ ) {
        $ex->set_options( "out", $1 => $2 );
    }
}

debug "Exporting...";

$ex->export($output);

print $ex->messages_as_string();
