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 assignment 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\Assignment
                Find first instance by SRN
| string | $srn | SRN  | 
                            
create(array $input, mixed $user = false) : \Ceo\Core\Models\Assignment
Create new assignment. Accepts: * slug * abstract * content * notes * due_at - int or string * users - array of assigned users * children - array of assigned content items
| array | $input | Assignment data  | 
                            
| mixed | $user | Creating user ID or object  | 
                            
if unable to parse due date
update(integer $id, array $input, mixed $user = false) : \Ceo\Core\Models\Assignment
Update assignment. Accepts: * slug * abstract * content * notes * due_at - int or string * users - array of assigned users * children - array of assigned content items
Keep in mind Users and Children are overwritten, not added to existing collection
| integer | $id | Assignment ID  | 
                            
| array | $input | Assignment data  | 
                            
| mixed | $user | Creating user ID or object  | 
                            
if unable to find assignment or parse date
updateDue(integer $id, mixed $time) : \Ceo\Core\Models\Assignment
Update only the due date for the assignment
| integer | $id | Assignment ID  | 
                            
| mixed | $time | timestamp or date string  | 
                            
If unable to load assignment or parse date
updatePublish(integer $id, mixed $time) : \Ceo\Core\Models\Assignment
Update only the publish time of assignment. This will also update associated children's published time.
| integer | $id | Assignment ID  | 
                            
| mixed | $time | Timestamp or date string  | 
                            
If unable to load assignment or parse date