public function addRow(array $data = []) : int
    {
        $this->crudEnabled();

        $table_name = static::$table_name;

        if (0 == count($data)) {
            // Insert a blank row
            $sql = "INSERT INTO {$table_name} DEFAULT VALUES"; // TODO: Move this to the DAO class
            $this->dbc->query($sql);
        } else {
            // Generate the values
            $components = $this->dbc->generateParameterizedComponents($data);
            $fields = $components['fields'];
            $values = $components['values'];
            $params = $components['params'];

            // Execute the query
            $sql = "INSERT INTO {$table_name} ({$fields}) VALUES ({$values})";
            $this->dbc->query($sql, ['params' => $params]);
        }
        // Return the id of the new field
        return $this->dbc->lastInsertId();
    }