package com.xyw.console.asset.dto;

import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;

/** 文件用途（白话）：接收设备资产列表的分页与筛选条件，不承载新增或编辑表单数据。 */
public record DeviceAssetPageQuery(
    @Min(1) Integer page,
    @Min(1) @Max(100) Integer size,
    String deviceName,
    Long userPersonId,
    String userUsageStatus,
    String assetRelationStatus) {
  /** 代码作用（白话）：未传页码时返回第 1 页。关联文件：DeviceAssetController.java。关联逻辑（调用链/数据流）：HTTP 参数 -> resolvedPage -> MyBatis 分页。 */
  public int resolvedPage() { return page == null ? 1 : page; }
  /** 代码作用（白话）：未传每页数量时返回 20 条，避免一次读取过多设备。关联文件：DeviceAssetService.java。关联逻辑（调用链/数据流）：HTTP 参数 -> resolvedSize -> Mapper 分页。 */
  public int resolvedSize() { return size == null ? 20 : size; }
}
