<?php

namespace App\Http\Services;

use App\Models\UserAddressModel;
use Illuminate\Support\Facades\DB;

class UserAddressService
{
    public static function addUserAddress($address, $user)
    {
        return DB::transaction(function () use ($address, $user) {
            $address['user_id'] = $user->id;
            $address['create_time'] = time();
            return UserAddressModel::insert($address);
        });
    }

    public static function updateUserAddress($address, $user)
    {
        return DB::transaction(function () use ($address, $user) {
            $address['user_id'] = $user->id;
            $address['create_time'] = time();
            return UserAddressModel::where('address_id',$address['address_id'])->update($address);
        });
    }

    public static function getUserAddressDetail($addressId)
    {
        $address = UserAddressModel::select(['*'])->where('address_id', $addressId)
            ->first()->toArray();
        return $address;
    }

    public static function getUserAddressList($userId)
    {
        $query = UserAddressModel::where('user_id', $userId)->orderBy('address_id', 'desc');
        $result = $query->paginate(10)->toArray();
        foreach ($result['data'] as &$item) {
            $item['create_time'] = date('Y-m-d H:i:s', $item['create_time']);
        }
        unset($item);
        return $result;
    }

}