<?php

namespace app\models;

use Yii;
use yii\db\ActiveRecord;
use yii\behaviors\TimestampBehavior;
use yii\db\Expression;

/**
 * This is the model class for table "clientes".
 *
 * @property int $id
 * @property string $nombre_razon_social
 * @property string|null $ruc
 * @property string|null $direccion
 * @property string|null $contacto
 * @property string|null $correo
 * @property string $fecha_creacion
 * @property string $fecha_actualizacion
 */
class Clientes extends ActiveRecord // Se cambió de \yii\db\ActiveRecord a solo ActiveRecord por el 'use' de arriba
{
    /**
     * {@inheritdoc}
     */
    public static function tableName()
    {
        return 'clientes';
    }

    /**
     * @inheritdoc
     */
    public function behaviors()
    {
        return [
            [
                'class' => TimestampBehavior::class,
                'attributes' => [
                    ActiveRecord::EVENT_BEFORE_INSERT => ['fecha_creacion', 'fecha_actualizacion'],
                    ActiveRecord::EVENT_BEFORE_UPDATE => ['fecha_actualizacion'],
                ],
                // Usa la expresión de la base de datos para la fecha y hora actual
                'value' => new Expression('NOW()'),
            ],
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function rules()
    {
        return [
            [['ruc', 'direccion', 'contacto', 'correo'], 'default', 'value' => null],
            [['nombre_razon_social'], 'required'],
            [['direccion'], 'string'],
            // La regla 'safe' para las fechas ya no es necesaria, el behavior se encarga
            // [['fecha_creacion', 'fecha_actualizacion'], 'safe'], 
            [['nombre_razon_social', 'contacto', 'correo'], 'string', 'max' => 255],
            [['ruc'], 'string', 'max' => 11],
            [['ruc'], 'unique'],
            [['correo'], 'unique'],
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'nombre_razon_social' => 'Nombre Razon Social',
            'ruc' => 'Ruc',
            'direccion' => 'Direccion',
            'contacto' => 'Contacto',
            'correo' => 'Correo',
            'fecha_creacion' => 'Fecha Creacion',
            'fecha_actualizacion' => 'Fecha Actualizacion',
        ];
    }
}