<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\User;
use App\Models\Order;
use App\Models\InviteCode;
use App\Utils\Helper;

class InviteController extends Controller
{
    public function save (Request $request) {
        if (InviteCode::where('user_id', $request->session()->get('id'))->where('status', 0)->count() >= 5) {
            abort(500, '已达到创建数量上限');
        }
        $inviteCode = new InviteCode();
        $inviteCode->user_id = $request->session()->get('id');
        $inviteCode->code = Helper::randomChar(8);
        return response([
            'data' => $inviteCode->save()
        ]);
    }

    public function index (Request $request) {
        $codes = InviteCode::where('user_id', $request->session()->get('id'))
            ->where('status', 0)
            ->get();
        $stat = [
            //已注册用户数
            (int)User::where('invite_user_id', $request->session()->get('id'))->count(),
            //有效的佣金
            (int)Order::where('status', 3)
                ->where('commission_status', 1)
                ->where('invite_user_id', $request->session()->get('id'))
                ->sum('commission_balance'),
            //确认中的佣金
            (int)Order::where('status', 3)
                ->where('commission_status', 0)
                ->where('invite_user_id', $request->session()->get('id'))
                ->sum('commission_balance'),
            //已提现佣金
            0
            
        ];
        return response([
            'data' => [
                'codes' => $codes,
                'stat' => $stat
            ]
        ]);
    }
}