<commit_before><?php


namespace ITC\App\Entity\Model\Query;

use ITC\App\Utility\Registry;

use ITC\App\Entity\Model\Column\SeminarColumn;
use ITC\App\Entity\Model\AbstractModel;

class SeminarQuery implements QueryInterface
{

    /**
     * @var ITC\App\Utility\Database\Database
     **/
    private $db;


    /**
     * @var SeminarColumn
     **/
    private $column;


    public function __construct ()
    {
        $this->db = Registry::get('db');
        $this->column = new SeminarColumn;
    }



    /**
     * カラム配列を返す
     *
     * @return Array
     **/
    public function getColumn ()
    {
        return $this->column->getColumn();
    }



    /**
     * 新規レコード挿入
     *
     * @param stdClass $params  パラメータ
     * @return boolean
     **/
    public function insert (\stdClass $params)
    {
        try {
            foreach ($params as $key => $param) {
                if (! in_array($key, $this->getColumn())) {
                    throw new \Exception(sprintf('%s invalid column!', $key));
                }
            }
            $params->created = date('Y-m-d H:i:s');

            $sql = 'INSERT INTO seminar
                (title, url, date, venue, published, created) VALUES
                (:title, :url, :date, :venue, :published, :created)';
            $this->db->state($sql, $params);
        
        } catch (\Exception $e) {
            throw $e;
        }

        return $this->fetchById($this->db->lastInsertId());
    }



    /**
     * レコードの更新
     *
     * @param AbstractModel $model  モデルクラス
     * @return boolean
     **/
    public function update (AbstractModel $model)
    {
        
    }


    
    /**
     * レコードの削除
     *
     * @param AbstractModel $model  モデルクラス
     * @return boolean
     **/
    public function delete (AbstractModel $model)
    {
        
    }



    /**
     * 指定IDのレコードを取得する
     *
     * @param int $id  レコードのID
     * @return stdClass
     **/
    public function fetchById ($id)
    {
        try {
            $sql = 'SELECT * FROM seminar
                WHERE id = ?';
            $result = $this->db->state($sql, $id)->fetch();
        
        } catch (\Exception $e) {
            throw $e;
        }

        return $result;
    }



    /**
     * タイトルとURLでレコードを取得する
     *
     * @param String $title  セミナータイトル
     * @param String $url  イベントページURL
     * @return stdClass
     **/
    public function fetchByTitleWithUrl ($title, $url)
    {
        try {
            $sql = 'SELECT * FROM seminar
                WHERE seminar.title = ?
                AND seminar.url = ?';

            $result = $this->db->state($sql, array($title, $url))->fetch();
        
        } catch (\Exception $e) {
            throw $e;
        }

        return $result;
    }



    /**
     * 指定日以降に登録されたレコードを全取得する
     *
     * @param String $date  指定日
     * @return array
     **/
    public function getAfterDateSeminars ($date)
    {
        try {
            $sql = 'SELECT * FROM seminar
                WHERE seminar.created >= ?';

            $results = $this->db
                ->state($sql, $date)->fetchAll();
        
        } catch (\Exception $e) {
            throw $e;
        }

        return $results;
    }
}<commit_msg>クエリの修正<commit_after><?php


namespace ITC\App\Entity\Model\Query;

use ITC\App\Utility\Registry;

use ITC\App\Entity\Model\Column\SeminarColumn;
use ITC\App\Entity\Model\AbstractModel;

class SeminarQuery implements QueryInterface
{

    /**
     * @var ITC\App\Utility\Database\Database
     **/
    private $db;


    /**
     * @var SeminarColumn
     **/
    private $column;


    public function __construct ()
    {
        $this->db = Registry::get('db');
        $this->column = new SeminarColumn;
    }



    /**
     * カラム配列を返す
     *
     * @return Array
     **/
    public function getColumn ()
    {
        return $this->column->getColumn();
    }



    /**
     * 新規レコード挿入
     *
     * @param stdClass $params  パラメータ
     * @return boolean
     **/
    public function insert (\stdClass $params)
    {
        try {
            foreach ($params as $key => $param) {
                if (! in_array($key, $this->getColumn())) {
                    throw new \Exception(sprintf('%s invalid column!', $key));
                }
            }
            $params->created = date('Y-m-d H:i:s');

            $sql = 'INSERT INTO seminar
                (title, url, date, venue, published, created) VALUES
                (:title, :url, :date, :venue, :published, :created)';
            $this->db->state($sql, $params);
        
        } catch (\Exception $e) {
            throw $e;
        }

        return $this->fetchById($this->db->lastInsertId());
    }



    /**
     * レコードの更新
     *
     * @param AbstractModel $model  モデルクラス
     * @return boolean
     **/
    public function update (AbstractModel $model)
    {
        
    }


    
    /**
     * レコードの削除
     *
     * @param AbstractModel $model  モデルクラス
     * @return boolean
     **/
    public function delete (AbstractModel $model)
    {
        
    }



    /**
     * 指定IDのレコードを取得する
     *
     * @param int $id  レコードのID
     * @return stdClass
     **/
    public function fetchById ($id)
    {
        try {
            $sql = 'SELECT * FROM seminar
                WHERE id = ?';
            $result = $this->db->state($sql, $id)->fetch();
        
        } catch (\Exception $e) {
            throw $e;
        }

        return $result;
    }



    /**
     * タイトルとURLでレコードを取得する
     *
     * @param String $title  セミナータイトル
     * @param String $url  イベントページURL
     * @return stdClass
     **/
    public function fetchByTitleWithUrl ($title, $url)
    {
        try {
            $sql = 'SELECT * FROM seminar
                WHERE seminar.title = ?
                AND seminar.url = ?';

            $result = $this->db->state($sql, array($title, $url))->fetch();
        
        } catch (\Exception $e) {
            throw $e;
        }

        return $result;
    }



    /**
     * 指定日以降に登録されたレコードを全取得する
     *
     * @param String $date  指定日
     * @return array
     **/
    public function getAfterDateSeminars ($date)
    {
        try {
            $sql = 'SELECT * FROM seminar
                WHERE seminar.created > ?';

            $results = $this->db
                ->state($sql, $date)->fetchAll();
        
        } catch (\Exception $e) {
            throw $e;
        }

        return $results;
    }
}
{'fraction_non_alphanumeric': 0.13460346964064437, 'fraction_numerical': 0.0, 'mean_word_length': 1.439365319229316, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 47, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6533065', 'n_tokens_mistral': 2178, 'n_tokens_neox': 2063, 'n_words': 420}