/**
  * Construct a journal entry from the given information. The additional
  * $details array may contain the following fields:
  *
  * - __id:__ (int) The ID of this entry.
  * - __shift_slug:__ (string) Slug of the shift.
  * - __shift_duration:__ (SimpleTimeInterval|int) Duration of the shift. TODO
  * - __volunteer_slug:__ (string) Slug of the volunteer.
  * - __volunteers_count:__ (int) The number of volunteers available for the
  *   shift.
  * - __is_frozen:__ (boolean) True if this record must not be modified.
  * - __created_at:__ (SimpleDateTime|DateTime|int) The date and time of
  *   creation.
  * - __updated_at:__ (SimpleDateTime|DateTime|int) The date and time of the
  *   last update.
  */
 public function __construct($values = array())
 {
     parent::__construct(self::$properties);
     if (is_array($values)) {
         $this->set_data($values);
     }
 }
 public function __construct($names = null)
 {
     parent::__construct($names);
 }
 protected function __construct($slug)
 {
     parent::__construct(self::$properties);
     $this->slug = $slug;
 }