misuzu/src/Redirects/NamedRedirectInfo.php

30 lines
890 B
PHP

<?php
namespace Misuzu\Redirects;
use Carbon\CarbonImmutable;
use Index\XNumber;
use Index\Db\DbResult;
class NamedRedirectInfo implements RedirectInfo {
public function __construct(
public private(set) string $id,
public private(set) ?string $vanity,
public private(set) string $url,
public private(set) int $clicks,
public private(set) int $createdTime,
) {}
public static function fromResult(DbResult $result): NamedRedirectInfo {
return new NamedRedirectInfo(
id: $result->getString(0),
vanity: $result->getStringOrNull(1),
url: $result->getString(2),
clicks: $result->getInteger(3),
createdTime: $result->getInteger(4),
);
}
public CarbonImmutable $createdAt {
get => CarbonImmutable::createFromTimestampUTC($this->createdTime);
}
}