package com.ga.common.grid;

import com.ga.common.model.SearchParam;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;
import java.util.Map;

/**
 * AG Grid 서버사이드용 검색 파라미터.
 *
 * - filterModel: { fieldName: { type: "contains", filter: "abc" } }
 * - sortModel:   [ { colId: "agentName", sort: "asc" } ]
 *
 * MyBatis XML 에서 동적 WHERE 로 활용 가능.
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class GridSearchParam extends SearchParam {

    /** AG Grid filterModel — { field: { type, filter, filterTo } } */
    private Map<String, Map<String, Object>> filterModel;

    /** AG Grid sortModel — [ { colId, sort } ] */
    private List<Map<String, String>> sortModel;

    /** 시작 행(서버사이드 모드) */
    private Integer startRow;
    /** 종료 행 */
    private Integer endRow;
}
