<?php

namespace Lucent\Query\BuilderConverter;

use Illuminate\Database\Query\Builder;
use Lucent\Query\Filter\Argument;

readonly class Filter implements IBuilderConverter
{

    public function __construct(private Argument $argument)
    {
    }

    public function toAndQueryBuilder(Builder $builder): Builder
    {
        return  $builder->whereJsonContains($this->argument->field, [$this->argument->value]);
    }

    public function toOrQueryBuilder(Builder $builder): Builder
    {
        return $builder->orWhereJsonContains($this->argument->field, [$this->argument->value]);
    }

}