diff --git a/src/Entity/LocalGroup.php b/src/Entity/LocalGroup.php new file mode 100644 index 0000000000..640558cea4 --- /dev/null +++ b/src/Entity/LocalGroup.php @@ -0,0 +1,113 @@ +. +// }}} + +namespace App\Entity; + +use DateTimeInterface; + +/** + * Entity for local groups + * + * @category DB + * @package GNUsocial + * + * @author Zach Copley + * @copyright 2010 StatusNet Inc. + * @author Mikael Nordfeldth + * @copyright 2009-2014 Free Software Foundation, Inc http://www.fsf.org + * @author Hugo Sales + * @copyright 2020 Free Software Foundation, Inc http://www.fsf.org + * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later + */ +class LocalGroup +{ + // {{{ Autocode + + private int $group_id; + private ?string $nickname; + private DateTimeInterface $created; + private DateTimeInterface $modified; + + public function setGroupId(int $group_id): self + { + $this->group_id = $group_id; + return $this; + } + + public function getGroupId(): int + { + return $this->group_id; + } + + public function setNickname(?string $nickname): self + { + $this->nickname = $nickname; + return $this; + } + + public function getNickname(): ?string + { + return $this->nickname; + } + + public function setCreated(DateTimeInterface $created): self + { + $this->created = $created; + return $this; + } + + public function getCreated(): DateTimeInterface + { + return $this->created; + } + + public function setModified(DateTimeInterface $modified): self + { + $this->modified = $modified; + return $this; + } + + public function getModified(): DateTimeInterface + { + return $this->modified; + } + + // }}} Autocode + + public static function schemaDef(): array + { + return [ + 'name' => 'local_group', + 'description' => 'Record for a user group on the local site, with some additional info not in user_group', + 'fields' => [ + 'group_id' => ['type' => 'int', 'not null' => true, 'description' => 'group represented'], + 'nickname' => ['type' => 'varchar', 'length' => 64, 'description' => 'group represented'], + 'created' => ['type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'], + 'modified' => ['type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'], + ], + 'primary key' => ['group_id'], + 'foreign keys' => [ + 'local_group_group_id_fkey' => ['user_group', ['group_id' => 'id']], + ], + 'unique keys' => [ + 'local_group_nickname_key' => ['nickname'], + ], + ]; + } +} \ No newline at end of file