#!/usr/bin/php
<?php
require(__DIR__.'/../vendor/autoload.php');

use nur\php\UpdateClassesApp;

UpdateClassesApp::run(new class extends UpdateClassesApp {
  const MAPPINGS = [
    "io" => [
      "package" => "nur\\io\\",
      "path" => __DIR__."/../nur_src/io",
      "classes" => [
        nur\io\line\LineReader::class,
        nur\io\csv\CsvReader::class,
        nur\io\csv\CsvWriter::class,
        nur\io\fsv\FsvReader::class,
        nur\io\fsv\FsvWriter::class,
        nur\io\json\JsonReader::class,
        nur\io\json\YamlReader::class,
      ],
    ],
    "v-bs3" => [
      "package" => "nur\\v\\bs3\\",
      "path" => __DIR__."/../nur_src/v/bs3",
      "classes" => [
        nur\v\bs3\Bs3IconManager::class,
      ],
    ],
    "mapper" => [
      "package" => "nur\\mapper\\",
      "path" => __DIR__."/../nur_src/mapper",
      "classes" => [
        # base
        nur\mapper\base\Mapper::class,
        nur\mapper\base\FuncMapper::class,
        # line
        nur\mapper\line\IconvMapper::class,
        # item
        nur\mapper\item\StringMapper::class,
        nur\mapper\item\TextMapper::class,
        #nur\mapper\item\NumberMapper::class,
        nur\mapper\item\StreamMapper::class,
        nur\mapper\item\Seq2AssocMapper::class,
        nur\mapper\item\Assoc2SeqMapper::class,
        nur\mapper\item\SchemaMapper::class,
        nur\mapper\item\ItemFilterMapper::class,
        nur\mapper\item\AttributeFilterMapper::class,
        # csv
        nur\mapper\csv\Csv2AssocMapper::class,
        nur\mapper\csv\Assoc2CsvMapper::class,
        nur\mapper\csv\CsvReader::class, # après Csv2AssocMapper
        nur\mapper\csv\CsvWriter::class, # après Assoc2CsvMapper
        # fsv
        nur\mapper\fsv\Fsv2AssocMapper::class,
        nur\mapper\fsv\Assoc2FsvMapper::class,
        nur\mapper\fsv\FsvReader::class, # après Fsv2AssocMapper
        nur\mapper\fsv\FsvWriter::class, # après Assoc2FsvMapper
        # json
        nur\mapper\json\JsonReader::class,
        nur\mapper\json\JsonWriter::class,
        nur\mapper\json\YamlReader::class,
        nur\mapper\json\YamlWriter::class,
      ],
    ],
  ];
});
