<?php

class CommentDataGateway {
	
	public function getNumber($properties, $commentParentID)
    {
        if (!empty($commentParentID)) {
            $query = "SELECT COUNT(*) + 1
                        FROM comments
                       WHERE fileID = :fileID AND
                             path LIKE CONCAT(
                                       (SELECT path
                                          FROM comments
                                         WHERE commentID  = :commentParentID), '.%')";
        } else {
            $query = "SELECT COUNT(*) + 1
                        FROM comments
                       WHERE fileID = :fileID AND
                 CHAR_LENGTH (path) = 3";
        }
        $stmt = $this->pdo->prepare($query);
        $stmt->bindValue(":fileID", $properties["fileID"], \PDO::PARAM_STR);
        if (!empty($commentParentID)) {
            $stmt->bindValue(":commentParentID", $commentParentID, \PDO::PARAM_INT);
        }
        $stmt->execute();
        $number = $stmt->fetchColumn();
        return $number;
    }

    public function getPath($properties, $commentParentID)
    {
        $query = "SELECT CONCAT(path, '.00', :number)
                    FROM comments
                   WHERE fileID    = :fileID
                     AND commentID = :commentParentID";
        $stmt = $this->pdo->prepare($query);
        $stmt->bindValue(":number",          $properties["number"], \PDO::PARAM_INT);
        $stmt->bindValue(":fileID",          $properties["fileID"], \PDO::PARAM_STR);
        $stmt->bindValue(":commentParentID", $commentParentID,      \PDO::PARAM_INT);
        $stmt->execute();
        $path = $stmt->fetchColumn();
        return $path;
    }
}