<?php

namespace App\Models;

use Illuminate\Support\Facades\DB;

class usercashbacktransactions extends Central
{
    protected $table = 'user_sales';
    protected $primaryKey = 'id';
    protected $guarded = [];

    public $module = 'usercashbacktransactions';
    public $timestamps = false;

    public function __construct()
    {
        parent::__construct();
    }

    public static function querySelect()
    {
        return "  SELECT user_sales.* FROM user_sales  ";
    }

    public static function queryWhere()
    {
        return "  WHERE user_sales.id IS NOT NULL ";
    }

    public static function queryGroup()
    {
        return "  ";
    }

    public function buildExportQuery($params)
    {
        return $this->buildQuery($params)
            ->leftJoin('sales', 'user_sales.sales_id', '=', 'sales.id')
            ->leftJoin('users', 'user_sales.user_id', '=', 'users.user_id')
            ->leftJoin('stores', 'user_sales.store_id', '=', 'stores.id')
            ->leftJoin('networks', 'user_sales.network_id', '=', 'networks.id')
            ->leftJoin('clicks', 'user_sales.click_id', '=', 'clicks.id');
    }

    public function getExportHeaders() : array
    {
        return [
            'Transaction ID' => 'user_sales.id',
            'Click ID' => 'user_sales.click_id',
            'User ID' => 'user_sales.user_id',
            'User' => DB::raw("CONCAT(`users`.`first_name`, ' ', `users`.`last_name`)"),
            'Is Merchant' => DB::raw("IF(`users`.`is_merchant`, 'Yes', 'No')"),
            'Network' => 'networks.name',
            'Store' => DB::raw("`stores`.`name`->>'$.en'"),
            'Order ID' => 'user_sales.order_id',
            'Order Amount (USD)' => 'user_sales.order_amount',
            'Cashback Percent' => 'sales.cashback_percent',
            'Cashback (USD)' => 'user_sales.cashback',
            'Local Order Amount' => 'user_sales.local_order_amount',
            'Local Cashback' => 'user_sales.local_cashback',
            'Currency' => 'user_sales.currency',
            'Currency Rate' => 'user_sales.currency_rate',
            'Cashback EGP' => 'user_sales.cashback_egp',
            'Cashback SAR' => 'user_sales.cashback_sar',
            'Cashback AED' => 'user_sales.cashback_aed',
            'Cashback KWD' => 'user_sales.cashback_kwd',
            'Country' => 'users.country_code',
            'Platform' => 'clicks.platform',
            'Status' => 'user_sales.status',
            'UTM' => 'clicks.utm',
            'Transaction Time' => 'user_sales.transaction_time',
            'Created At' => 'user_sales.created_at'
        ];
    }
}
