<?php

namespace App\Observers;

use Yajny\Member\Models\Sale;
use Yajny\Member\Models\Click;
use Yajny\Member\Models\Member;
use Yajny\Member\Models\UserSales;


class SaleObserver
{
    /**
     * Handle the User "created" event.
     *
     * @param  Yajny\Member\Models\Sale  $user
     * @return void
     */
    public function created(Sale $sale)
    {
        //
        if($sale->click_id)
        {
            $click = Click::find($sale->click_id);

            if($click)
            {
                $sale->store_id  = $click->store_id;
                $sale->cashback_percent = $click->cashback_percent;
                $sale->save();

                $user = Member::find($click->user_id);
                if($user && $click->cashback_enabled == 1 &&  $click->cashback_percent > 0)
                $user->assignCashback($sale);
            }
        }

    }



    /**
     * Handle the User "updated" event.
     *
     * @param  Yajny\Member\Models\Sale  $user
     * @return void
     */
    public function updated(Sale $sale)
    {

        $changes = $sale->getChanges();

        if( isset( $changes['comission'] ) || isset($changes['status'])  )
        {

            $userSale = UserSales::where('sales_id',$sale->id)->first();
            if($userSale){
                $user = Member::find($userSale->user_id);
                $user->updateCashback($changes,$userSale,$sale);
            }
        }

    }

    /**
     * Handle the User "deleted" event.
     *
     * @param  Yajny\Member\Models\Sale  $user
     * @return void
     */
    public function creating(Sale $sale)
    {
        //
    }
}
