<?php
namespace nur\sery\file\csv;

use nur\sery\web\http;

/**
 * Class CsvBuilder: construction d'un fichier CSV, pour envoi à l'utilisateur
 */
class CsvBuilder extends AbstractBuilder {
  use TAbstractBuilder;

  function __construct(?string $output, ?array $params=null) {
    $csvFlavour = $params["csv_flavour"] ?? null;
    $this->csvFlavour = csv_flavours::verifix($csvFlavour);
    parent::__construct($output, $params);
  }

  protected function _write(array $row): void {
    $this->fputcsv($row);
  }

  function _sendContentType(): void {
    http::content_type("text/csv");
  }

  protected function _checkOk(): bool {
    $size = $this->ftell();
    if ($size === 0) return false;
    $this->rewind();
    return true;
  }
}
