Copy use Carbon \ CarbonImmutable ;
use Illuminate \ Database \ Eloquent \ Model ;
use WendellAdriel \ Lift \ Attributes \ Config ;
use WendellAdriel \ Lift \ Lift ;
final class Product extends Model
{
use Lift ;
#[ Config ( fillable : true , rules : [ 'required' , 'string' ] , messages : [ 'required' => 'The PRODUCT NAME field cannot be empty.' ] ) ]
public string $name;
#[ Config ( fillable : true , column : 'description' , rules : [ 'required' , 'string' ] ) ]
public string $product_description;
#[ Config ( fillable : true , cast : 'float' , default : 0 . 0 , rules : [ 'sometimes' , 'numeric' ] , watch : ProductPriceChanged ::class ) ]
public float $price;
#[ Config ( fillable : true , cast : 'int' , hidden : true , rules : [ 'required' , 'integer' ] ) ]
public int $random_number;
#[ Config ( fillable : true , cast : 'immutable_datetime' , immutable : true , rules : [ 'required' , 'date_format:Y-m-d H:i:s' ] ) ]
public CarbonImmutable $expires_at;
}