save()
save(object  $obj) : object
                Save handler, because DRY
Parameters
| object | $obj | Model to be saved  | 
                            
Throws
- \Ceo\Core\Managers\Exception
 Json encoded string of validation errors
Returns
object —Model
Core issue manager
Managers provide a service layer in front of models. Managers implement domain specific logic, checks and initialization that would normally live in multiple controllers.
getPaginator(integer $page = 1, integer $limit = 50) : \Ceo\Core\Managers\Ceo\Core\ModelHelpers\Paginator
Helps paginate models using the query bulder. Bit more complicated than the native array method, but works better for larger data sets
Because it's based on Phalcon's QueryBuilder, it supports a fluent filtering interface:
    $manager = $this->foo_manager;
    $items = $manager->getPaginator(1, 20)
        ->orderBy('created_at desc')
        ->where('name = :name:', array('name' => $name))
        ->andWhere('type = :type:', array('type' => $type))
        ->paginate();
    echo json_encode($items);
                                    | integer | $page | Current page  | 
                            
| integer | $limit | Per page limit  | 
                            
findFirstBySrn(string  $srn) : \Ceo\Core\Models\Issue
                Find first instance by SRN
| string | $srn | SRN  | 
                            
create(array  $input) : \Ceo\Core\Models\Issue
                Create new issue. Accepts: * label * description * status * published_at * assignments
| array | $input | Issue data  | 
                            
update(integer $id, array $input) : \Ceo\Core\Models\Issue
Update issue. Accepts: * label * description * status * published_at * assignments
Keep in mind Assignments is overwritten, not added to existing collection
| integer | $id | Issue ID  | 
                            
| array | $input | Issue data  |