/*
 * File: src/main/java/reports/requestmodel/PurchaseRequest.java
 * Description: This class represents the request model for generating purchase reports.
 * It encapsulates the criteria for fetching purchase data, including date ranges,
 * optional filtering conditions, and pagination details.
*/

package com.nebula.erp.reports.requestmodel;

import lombok.Data;
import lombok.Getter;
import lombok.Setter;

import java.time.LocalDate;
import java.util.List;

@Getter
@Setter
public class PurchaseRequest {
    private LocalDate startDate; // required
    private LocalDate endDate; // required
    private List<Condition> conditions; // optional
    private Integer page; // optional
    private Integer size; // optional

    @Data
    public static class Condition {
        private String field; // field to filter on
        private String operator; // filter operator
        private Object value; // value to compare with the field
    }

}
