protected function getUniqueFileName(string $name, string $ext, $directoryId = null, string $cabin = '') : string
{
if (empty($directoryId)) {
$queryString = 'SELECT
count(*)
FROM
airship_files
WHERE
filename = ?
AND directory IS NULL
AND cabin = ?';
$subParam = $cabin;
} else {
$queryString = 'SELECT
count(*)
FROM
airship_files
WHERE
filename = ?
AND directory = ?';
$subParam = $directoryId;
}
$iterName = $name . '.' . $ext;
$i = 1;
while ($this->db->exists($queryString, $iterName, $subParam)) {
$iterName = $name . '-' . ++$i . '.' . $ext;
}
return $iterName;
}