package ai.sentryagent.idp.models;

/** Optional query parameters for listing agents. */
public final class ListAgentsParams {
    private final String status;
    private final String agentType;
    private final String deploymentEnv;
    private final Integer page;
    private final Integer limit;

    private ListAgentsParams(Builder b) {
        this.status        = b.status;
        this.agentType     = b.agentType;
        this.deploymentEnv = b.deploymentEnv;
        this.page          = b.page;
        this.limit         = b.limit;
    }

    public String getStatus()        { return status; }
    public String getAgentType()     { return agentType; }
    public String getDeploymentEnv() { return deploymentEnv; }
    public Integer getPage()         { return page; }
    public Integer getLimit()        { return limit; }

    public static Builder builder() { return new Builder(); }

    public static final class Builder {
        private String status;
        private String agentType;
        private String deploymentEnv;
        private Integer page;
        private Integer limit;

        public Builder status(String status)              { this.status = status;               return this; }
        public Builder agentType(String agentType)        { this.agentType = agentType;         return this; }
        public Builder deploymentEnv(String env)          { this.deploymentEnv = env;           return this; }
        public Builder page(int page)                     { this.page = page;                   return this; }
        public Builder limit(int limit)                   { this.limit = limit;                 return this; }

        public ListAgentsParams build() { return new ListAgentsParams(this); }
    }
}
