package dev.sonpx.loyalty.mcp.tool.request;

import com.fasterxml.jackson.annotation.JsonPropertyDescription;

public record CampaignRuleSearchRequest(
    @JsonPropertyDescription("Search by Campaign ID (exact match). Leave null if not filtering by Campaign ID.")
    String campaignId,
    
    @JsonPropertyDescription("Search by Rule ID (exact match). Leave null if not filtering by Rule ID.")
    String ruleId,
    
    @JsonPropertyDescription("Search by Rule Name (partial or exact match). Leave null if not filtering by Rule Name.")
    String ruleName,
    
    @JsonPropertyDescription("Search by Rule Description (partial or exact match). Leave null if not filtering by Description.")
    String description,
    
    @JsonPropertyDescription("Filter rules effective from this date/time (ISO-8601 format, e.g., '2026-07-27T10:00:00'). Leave null if not filtering by effective from.")
    String effectiveFrom,
    
    @JsonPropertyDescription("Filter rules effective to this date/time (ISO-8601 format, e.g., '2026-07-27T10:00:00'). Leave null if not filtering by effective to.")
    String effectiveTo,
    
    @JsonPropertyDescription("Search by Rule Type (exact match). Leave null if not filtering by Rule Type.")
    String ruleType,
    
    @JsonPropertyDescription("Search by Pool ID (exact match). Leave null if not filtering by Pool ID.")
    String poolId
) {}
