<?php

namespace App\Models\Launchpad;

use App\Casts\CryptoCurrencyDecimalCast;
use App\Models\Launchpad\Traits\Relations\LaunchpadRelation;
use App\Models\Launchpad\Traits\Scopes\LaunchpadScope;
use Illuminate\Database\Eloquent\Model;

class Launchpad extends Model
{
    use LaunchpadRelation, LaunchpadScope;

    public $fillable = [
        'id',
        'name',
        'description',
        'currency_id',
        'network_id',
        'rate',
        'min_buy',
        'max_buy',
        'soft_cap',
        'hard_cap',
        'start_time',
        'end_time',
        'status',
        'purchasable',
        'raised_amount',
        'progress'
    ];

    protected $casts = [
        'status' => 'boolean',
        'purchasable' => 'boolean',
        'rate' => CryptoCurrencyDecimalCast::class,
        'min_buy' => CryptoCurrencyDecimalCast::class,
        'max_buy' => CryptoCurrencyDecimalCast::class,
        'soft_cap' => CryptoCurrencyDecimalCast::class,
        'hard_cap' => CryptoCurrencyDecimalCast::class,
        'raised_amount' => CryptoCurrencyDecimalCast::class,
        'start_time' => 'datetime:Y-m-d H:i:s',
        'end_time' => 'datetime:Y-m-d H:i:s'
    ];
}
