<?php

namespace App;

use Base\ClassName;

/**
 * @property integer $id
 * @property integer $organization_id
 * @property string $username
 * @property integer $is_active
 * @property Avatar $avatar
 * @property Post[] $posts
 * @property Role[] $roles
 * @property Organization $organization
 */
class User extends ClassName
{
    /**
     * Indicates if the model should be timestamped.
     * 
     * @var bool
     */
    public $timestamps = false;

    /**
     * The storage format of the model's date columns.
     * 
     * @var string
     */
    protected $dateFormat = 'd/m/y';

    /**
     * @var array
     */
    protected $fillable = ['organization_id', 'username', 'is_active'];

    /**
     * @return \Illuminate\Database\Eloquent\Relations\HasOne
     */
    public function avatar()
    {
        return $this->hasOne('App\Avatar', 'user_id');
    }

    /**
     * @return \Illuminate\Database\Eloquent\Relations\HasMany
     */
    public function posts()
    {
        return $this->hasMany('App\Post', 'author_id');
    }

    /**
     * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
     */
    public function roles()
    {
        return $this->belongsToMany('App\Role', 'user_roles');
    }

    /**
     * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
     */
    public function organization()
    {
        return $this->belongsTo('App\Organization');
    }
}
