. /** * Table for storing Nodeinfo statistics * * @package NodeInfo * @author Diogo Cordeiro * @copyright 2018-2019 Free Software Foundation, Inc http://www.fsf.org * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ defined('GNUSOCIAL') || die(); /** * Table Definition for usage_stats and some getters * * @copyright 2018-2019 Free Software Foundation, Inc http://www.fsf.org * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ class Usage_stats extends Managed_DataObject { public $__table = 'usage_stats'; // table name public $type; // varchar(191) unique_key not 255 because utf8mb4 takes more space public $count; // int(4) public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /** * Table Definition for usage_stats * * @return array */ public static function schemaDef(): array { return [ 'description' => 'node stats', 'fields' => [ 'type' => ['type' => 'varchar', 'not null' => true, 'length' => 191, 'description' => 'Type of countable entity'], 'count' => ['type' => 'int', 'size' => 'int', 'default' => 0, 'description' => 'Number of entities of this type'], 'modified' => ['type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'], ], 'primary key' => ['type'], 'indexes' => [ 'user_stats_idx' => ['type'], ], ]; } /** * Total number of users * * @return int */ public function getUserCount(): int { return Usage_stats::getKV('type', 'users')->count; } /** * Total number of dents * * @return int */ public function getPostCount(): int { return Usage_stats::getKV('type', 'posts')->count; } /** * Total number of replies * * @return int */ public function getCommentCount(): int { return Usage_stats::getKV('type', 'comments')->count; } }