<?php
declare (strict_types = 1);

namespace app\openapi\controller\v1;

use app\openapi\model\ProductCategoryModel;

class ProductCategory
{
    /**
     * 产品分类列表
     */
    public function list()
    {
        $params = request()->get([
            'parent_id',
            'language' => 'zh-cn',
            'page'     => 1,
            'size'     => 50
        ]);

        if ($params['size'] > 200) {
            // 每页不超过200条
            $params['size'] = 200;
        }

        $categories = ProductCategoryModel::withoutField([
                'language_id',
                'unique_id',
                'icon',
                'desc',
                'related_tco_category',
                'created_at',
                'updated_at'
            ])
            ->language($params['language']??'zh-cn')
            ->parent($params['parent_id']??null)
            ->paginate([
                'list_rows' => $params['size'],
                'page'      => $params['page']
            ])
            ->each(function($item) {
                if (!empty($item['icon']) && !str_starts_with($item['icon'], 'http')) {
                    $item['icon'] = image_domain_concat($item['icon']);
                }                    

                return $item;
            });

        return success('success', $categories);
    }
}
