<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

/**
 * 邮件服务器地址
 * @time 2022/7/29 15:09
 * Class EmailHost
 * @package App\Mail\Models
 */
class Host extends Model {

    /**
     * 添加
     * @param string $suffix    qq.com
     * @param string $host  imap.qq.com
     * @param string $smtp  smtp.qq.com
     * @param string $title 服务器名称
     * @return int
     * @time 2022/7/29 15:36
     */
    public static function _insert(string $suffix, string $host, string $smtp, $title=''):int {
        try {
            // 插入新的
            return static::insertGetId([
                'suffix' =>  $suffix,
                'imap' =>  $host,
                'smtp' =>  $smtp ? $smtp : str_replace('imap.','smtp.',$host),
                'title' =>  $title
            ]);
        }catch (\Throwable $e){
            // 查询是否存在
            return  self::_get($suffix)['id']??0;
        }

    }

    /**
     * 读取详情
     * @param $idOrSuffix
     * @time 2022/7/29 15:44
     * @return array
     */
    public static function _get($idOrSuffix):array {
        $data   =   static::where(is_numeric($idOrSuffix) ? 'id' : 'suffix', $idOrSuffix)->first();
        return $data ? $data->toArray() : [];
    }

    /**
     * 获取所有
     * @return array
     * @time 2022/7/29 15:51
     */
    public static function _all():array{
        // 读取所有
        $all    =   static::all()->toArray();
        foreach ($all as $key   =>  $item){
            // 处理
            $all[$item['suffix']]  =   $item;
            unset($all[$item['suffix']]['suffix']);
            unset($all[$item['suffix']]['id']);
            unset($all[$key]);
        }
        return $all ? $all : [];
    }





}