<?php

namespace dokuwiki\plugin\bez\mdl;

class Label extends Entity {
    protected $id, $name, $nit, $codigo_verificacion, $count, $added_by, $added_date;

    public static function get_columns() {
        return array('id', 'name', 'nit', 'codigo_verificacion', 'count', 'added_by', 'added_date');
    }

    public function __construct($model) {
        parent::__construct($model);

        $this->validator->set_rules(array(
            'name' => array(array('length', 100), 'NOT NULL'),
            'nit' => array(array('length', 20), array('numeric_only')),
            'codigo_verificacion' => array(array('length', 1), array('numeric_only')),
        ));

        if ($this->id === NULL) {
            $this->added_by = $this->model->user_nick;
            $this->added_date = date('c');
        }
    }

    /**
     * Sobrescribe set_data para limpiar NIT y código de verificación
     */
    public function set_data($data, $filter = NULL) {
        // Limpiar NIT: solo dígitos
        if (isset($data['nit'])) {
            $data['nit'] = preg_replace('/[^0-9]/', '', $data['nit']);
        }
        // Limpiar código de verificación: solo un dígito
        if (isset($data['codigo_verificacion'])) {
            $data['codigo_verificacion'] = preg_replace('/[^0-9]/', '', $data['codigo_verificacion']);
            // Solo tomar el primer dígito
            $data['codigo_verificacion'] = substr($data['codigo_verificacion'], 0, 1);
        }
        parent::set_data($data, $filter);
    }
}