<?php

namespace Yajny\Member\Models;

use Illuminate\Database\Eloquent\Model;
use Spatie\Translatable\HasTranslations;
use Yajny\Traits\HasCurrency;
use Yajny\Traits\SelectTranslations;

class LoyaltyProgram extends Model
{
    use HasTranslations, SelectTranslations, HasCurrency;

    protected $table = 'loyalty_programs';
    protected $guarded = [];
    public $timestamps = true;

    public $translatable = ['name', 'app_card_background_img'];
    public  $selColmns = ['name', 'bonus_amount', 'min_sale_amount', 'min_sale_count', 'landing_text_color', 'app_card_background_img', 'badge'];

    private $currencyConversionFields = [
        'bonus_amount', 'min_sale_amount'
    ];

    private $precisions = [
        'bonus_amount' => 'floor',
        'min_sale_amount' => 'ceil'
    ];

    public static function mapItemsForApp($program)
    {
        return [
            'id' => $program->id,
            'name' => $program->getTranslations('name'),
            'bonus_amount' => $program->bonus_amount,
            'bonus_amount_formatted' => $program->bonus_amount_formatted,
            'min_sale_count' => $program->min_sale_count,
            'min_sale_amount' => $program->min_sale_amount,
            'min_sale_amount_formatted' => $program->min_sale_amount_formatted,
            'landing_text_color' => $program->landing_text_color,
            'app_card_background_img' => $program->getTranslations('app_card_background_img'),
            'badge' => $program->badge
        ];
    }
}