<?php

namespace Ulmus\Query;

class GroupBy extends Fragment {
    
    const SQL_TOKEN = "GROUP BY";
    
    public int $order = 70;

    public array $groupBy = [];

    public function set(array $order) : self
    {
        $this->groupBy = $order;
        return $this;
    }

    public function add(string $field, ? string $direction = null) : self
    {
        $this->groupBy[] = $field;
        return $this;
    }

    public function render() : string
    {
        return $this->renderSegments([
            static::SQL_TOKEN, implode(", ", $this->groupBy)
        ]);
    }

}