<?php
namespace PrestaShop\Module\PolarisPrestaConnector\Models;

use DateTime;

/**
 * Objet d'interface contenant la définition d'une carte prépayée
 */
class PrepaidCard extends SanitizedObject
{
    /**
     * Code de la carte prépayée
     */
    public ?string $code;

    /**
     * Nom de la carte prépayée
     */
    public ?string $name = null;

    /**
     * Montant !
     */
    public float $amount = 0;

    /**
     * Date d'expiration
     */
    public ?DateTime $expirationDate = null;

    /**
     * La carte est active
     */
    public bool $active = false;

    /**
     * Nouvelle carte
     * 
     * @param string $code Code de la carte
     */
    public function __construct(
        string $code
        )
    {
        // Sanitize        
        $this->code = $code;
    }

    /**
     * Nettoyage de la donnée sur les standards Prestashop
     */
    public function sanitize()
    {
        $this->code = strtoupper($this->sanitizeStr($this->code, 64));
        if (!$this->name)
            $this->name = sprintf("#%s", $this->code);
    }
}