<?php
/**
+-----------------------------------------------------------------------------------------------------------------------
 * 模型层:系统-区域-房间 模型类
+-----------------------------------------------------------------------------------------------------------------------
 *
 * PHP version 7
 *
 * @category  App\Models\System
 * @package   App\Models\System
 * @author    Richer <yangzi1028@163.com>
 * @date      2021年1月26日17:53:22
 * @copyright 2020-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
namespace App\Models\System;

use App\Models\RoomCheckRecord;
use App\Models\User\Tenant;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\HasOne;

/**
 * Class Room
 *
 * @category  App\Models\System
 * @package   App\Models\System
 * @author    Richer <yangzi1028@163.com>
 * @date      2021年1月26日17:53:22
 * @copyright 2020-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
class Room extends Area
{
    /**
     * @return HasMany
     */
    public function checkRecords(): HasMany
    {
        return $this->hasMany(RoomCheckRecord::class);//->where('status','<>', RoomCheckRecord::TO_BE_CHECKED);
    }

    /**
     * @return HasMany
     */
    public function checkedRecords(): HasMany
    {
        return $this->hasMany(RoomCheckRecord::class)->where('status', '<>', RoomCheckRecord::TO_BE_CHECKED);
    }

    /**
     * 全部
     *
     * @return HasOne
     */
    public function checkRecord(): HasOne
    {
        return $this->hasOne(RoomCheckRecord::class)->latest();
    }

    /**
     * 还未查验
     *
     * @return HasOne
     */
    public function uncheckRecord(): HasOne
    {
        return $this->hasOne(RoomCheckRecord::class)->where('status', RoomCheckRecord::TO_BE_CHECKED)->latest();
    }

    /**
     * @return HasMany
     */
    public function tenants(): HasMany
    {
        return $this->hasMany(Tenant::class);
    }
}