diff --git a/database/migrations/structure/20230409_0214_user_personal_data.sql b/database/migrations/structure/20230409_0214_user_personal_data.sql new file mode 100644 index 0000000..5085241 --- /dev/null +++ b/database/migrations/structure/20230409_0214_user_personal_data.sql @@ -0,0 +1,5 @@ +ALTER TABLE `users` +ADD `full_name` varchar(255) NOT NULL DEFAULT '', +ADD `nickname` varchar(255) NOT NULL DEFAULT '', +ADD `phone` varchar(255) NOT NULL DEFAULT '', +ADD `id_number` varchar(255) NOT NULL DEFAULT ''; diff --git a/src/PersistentData/Model/User.php b/src/PersistentData/Model/User.php index 92c4495..d0af3a9 100644 --- a/src/PersistentData/Model/User.php +++ b/src/PersistentData/Model/User.php @@ -8,7 +8,7 @@ class User extends Model implements IUser { protected static string $table = 'users'; - protected static array $fields = ['email', 'username', 'password', 'type', 'google_sub', 'created']; + protected static array $fields = ['email', 'username', 'password', 'type', 'google_sub', 'created', 'full_name', 'nickname', 'phone', 'id_number']; private static array $types = ['user', 'admin']; @@ -24,6 +24,14 @@ class User extends Model implements IUser private DateTime $created; + private string $fullName = ''; + + private string $nickname = ''; + + private string $phone = ''; + + private string $idNumber = ''; + public function setEmail(string $email): void { $this->email = $email; @@ -66,6 +74,26 @@ class User extends Model implements IUser $this->created = new DateTime($created); } + public function setFullName(string $fullName): void + { + $this->fullName = $fullName; + } + + public function setNickname(string $nickname): void + { + $this->nickname = $nickname; + } + + public function setPhone(string $phone): void + { + $this->phone = $phone; + } + + public function setIdNumber(string $idNumber): void + { + $this->idNumber = $idNumber; + } + public function getEmail(): string { return $this->email; @@ -101,6 +129,26 @@ class User extends Model implements IUser return $this->created->format('Y-m-d H:i:s'); } + public function getFullName(): string + { + return $this->fullName; + } + + public function getNickname(): string + { + return $this->nickname; + } + + public function getPhone(): string + { + return $this->phone; + } + + public function getIdNumber(): string + { + return $this->idNumber; + } + public function hasPermission(int $permission): bool { switch ($permission) { @@ -120,7 +168,7 @@ class User extends Model implements IUser public function getDisplayName(): string { - return $this->email; + return $this->nickname ?: $this->fullName; } public function checkPassword(string $password): bool