feat: GeneralAccessLog table 준비

- general 테이블에서 유저 접속과 관련한 로그만 분리
- ip 정보는 api 접속부에서 기록하므로 제외
This commit is contained in:
2023-07-07 10:57:51 +00:00
parent 7a9ef6454c
commit f8cc0c9c92
4 changed files with 75 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
<?php
namespace sammo\DTO;
use LDTO\Attr\Convert;
use LDTO\Attr\NullIsUndefined;
use LDTO\Attr\RawName;
use LDTO\Converter\DateTimeConverter;
class GeneralAccessLog extends \LDTO\DTO
{
public function __construct(
#[NullIsUndefined]
public ?int $id,
#[RawName('general_id')]
public int $generalID,
#[RawName('user_id')]
public ?int $userID,
#[RawName('nation_id')]
public int $nationID,
#[RawName('last_refresh')]
#[Convert(DateTimeConverter::class)]
public \DateTimeImmutable $lastRefresh,
#[RawName('last_connect')]
#[Convert(DateTimeConverter::class)]
public \DateTimeImmutable $lastConnect,
#[RawName('login_total')]
public int $loginTotal,
public int $refresh,
#[RawName('refresh_total')]
public int $refreshTotal,
) {
}
}
@@ -0,0 +1,15 @@
<?php
namespace sammo\Enums;
enum GeneralAccessLogColumn: string {
case id = 'id';
case generalID = 'general_id';
case userID = 'user_id';
case nationID = 'nation_id';
case lastRefresh = 'last_refresh';
case lastConnect = 'last_connect';
case loginTotal = 'login_total';
case refresh = 'refresh';
case refreshTotal = 'refresh_total';
}
+1
View File
@@ -1,6 +1,7 @@
#
DROP TABLE IF EXISTS general;
DROP TABLE IF EXISTS `general_turn`;
DROP TABLE IF EXISTS `general_acess_log`;
#
DROP TABLE IF EXISTS nation;
DROP TABLE IF EXISTS `nation_turn`;
+17
View File
@@ -102,6 +102,23 @@ CREATE TABLE `general_turn` (
PRIMARY KEY (`id`),
UNIQUE INDEX `general_id` (`general_id`, `turn_idx`)
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
CREATE TABLE `general_access_log` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`general_id` INT(11) NOT NULL,
`user_id` INT(11) NULL DEFAULT NULL,
`nation_id` INT(11) NOT NULL,
`last_refresh` DATETIME NOT NULL,
`last_connect` DATETIME NOT NULL,
`login_total` INT(11) NOT NULL,
`refresh` INT(11) NOT NULL,
`refresh_total` INT(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `general_id` (`general_id`),
INDEX `nation_id` (`nation_id`)
)
COLLATE='utf8mb4_general_ci'
ENGINE=Aria
;
##############################
##
##############################