2020-08-17 23:46:58 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
|
|
final class Fingerprint extends MySqlTable implements JsonSerializable
|
|
|
|
{
|
2020-08-23 12:37:39 +02:00
|
|
|
public const FIELD_ID = 'FingerprintId';
|
|
|
|
public const FIELD_FINGERPRINT = 'Fingerprint';
|
|
|
|
public const FIELD_USER = 'UserId';
|
|
|
|
|
|
|
|
public function __construct($id = null, DatabaseInterface &$database = null)
|
|
|
|
{
|
|
|
|
parent::__construct(self::class, $id, $database);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getFingerprintId(): ?int
|
|
|
|
{
|
|
|
|
if ($this->getPrimaryKey() === null) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
return (int)$this->getPrimaryKey();
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getFingerprint(): string
|
|
|
|
{
|
|
|
|
return $this->getField(self::FIELD_FINGERPRINT);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getUserId(): int
|
|
|
|
{
|
|
|
|
return $this->getField(self::FIELD_USER);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function setFingerprint(string $fingerprint): void
|
|
|
|
{
|
|
|
|
$this->setField(self::FIELD_FINGERPRINT, $fingerprint);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function setUserId(int $userId): void
|
|
|
|
{
|
|
|
|
$this->setField(self::FIELD_USER, $userId);
|
|
|
|
}
|
|
|
|
|
2020-08-24 22:19:46 +02:00
|
|
|
public function isSharedWith(int $userId): bool
|
|
|
|
{
|
|
|
|
return (bool)$this->database->Count(
|
|
|
|
Sharing::class,
|
|
|
|
[Sharing::FIELD_USER => $this->getUserId(), Sharing::FIELD_USER_SHARED => $userId]
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2020-08-23 12:37:39 +02:00
|
|
|
public function jsonSerialize(): array
|
|
|
|
{
|
|
|
|
return [
|
|
|
|
'fingerprintId' => $this->getFingerprintId(),
|
|
|
|
'fingerprint' => $this->getFingerprint(),
|
|
|
|
'userId' => $this->getUserId()
|
|
|
|
];
|
|
|
|
}
|
2020-08-17 23:46:58 +02:00
|
|
|
}
|