<?php

namespace App\Http\Services;

use App\Models\Cms\CmsUserModel;
use App\Models\CountryModel;
use App\Models\UserModel;
use Carbon\Carbon;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Redis;

class UserService
{
    public static function generateSn($userId)
    {
        $id = str_pad($userId, 6, 0, STR_PAD_LEFT);
        return 'SU' . $id;
    }

    public static function createUser($data)
    {
        $assign = AutoAssignCustomerService::getNowAssignInfo();
        $salesId = $assign['assign_sale_id'];
        $sales = CmsUserModel::getInfoByUserId($salesId);
        $userId = UserModel::insertGetId([
            'first_name' => $data['first_name'],
            'last_name' => $data['last_name'],
            'name' => $data['email'],
            'email' => $data['email'],
            'phone' => $data['phone'],
            'email_verified_at' => now(),
            'company_name' => $data['company_name'],
            'account_properties' => $data['account_properties'],
            'sale_id' => $salesId,
            'sale_name' => \Arr::get($sales, 'name'),
            'create_time' => time(),
            'password' => Hash::make($data['password']),
        ]);
        $userSn = UserService::generateSn($userId);
        $updateRes = UserModel::where('id', $userId)->update([
            'user_sn' => $userSn,
        ]);
        if ($updateRes) {
            AutoAssignCustomerService::incAssignNumByDepartmentId($assign['department_id']);
        }

        return $updateRes;
    }
}