package tc.oc.api.punishments; import tc.oc.api.annotations.Serialize; import tc.oc.api.docs.PlayerId; import tc.oc.api.docs.Punishment; import tc.oc.api.message.types.FindRequest; import javax.annotation.Nullable; @Serialize public class PunishmentSearchRequest extends FindRequest<Punishment> { private final @Nullable String punisher; private final @Nullable String punished; private final @Nullable Boolean active; private final @Nullable Integer limit; private PunishmentSearchRequest(@Nullable PlayerId punisher, @Nullable PlayerId punished, @Nullable Boolean active, @Nullable Integer limit) { this.punisher = punisher == null ? null : punisher._id(); this.punished = punished == null ? null : punished._id(); this.active = active; this.limit = limit; } public static PunishmentSearchRequest punisher(PlayerId punisher, @Nullable Integer limit) { return new PunishmentSearchRequest(punisher, null, null, limit); } public static PunishmentSearchRequest punished(PlayerId punished, @Nullable Boolean active, @Nullable Integer limit) { return new PunishmentSearchRequest(null, punished, active, limit); } }