69 lines
1.5 KiB
Java
69 lines
1.5 KiB
Java
package tc.oc.api.docs.virtual;
|
|
|
|
import tc.oc.api.annotations.Serialize;
|
|
import tc.oc.api.docs.PlayerId;
|
|
|
|
import javax.annotation.Nonnull;
|
|
import javax.annotation.Nullable;
|
|
import java.time.Instant;
|
|
|
|
public interface PunishmentDoc {
|
|
interface Partial extends PartialModel {}
|
|
|
|
@Serialize
|
|
interface Base extends Model, Partial {
|
|
@Nullable String match_id();
|
|
@Nullable String server_id();
|
|
@Nullable Instant expire();
|
|
@Nullable String family();
|
|
@Nonnull String reason();
|
|
@Nonnull Instant date();
|
|
boolean debatable();
|
|
boolean silent();
|
|
boolean automatic();
|
|
boolean active();
|
|
}
|
|
|
|
@Serialize
|
|
interface Creation extends Base {
|
|
@Nullable String punisher_id();
|
|
@Nullable String punished_id();
|
|
@Nullable Type type();
|
|
boolean off_record();
|
|
}
|
|
|
|
@Serialize
|
|
interface Complete extends Base, Enforce, Evidence {
|
|
@Nullable PlayerId punisher();
|
|
@Nullable PlayerId punished();
|
|
@Nonnull Type type();
|
|
boolean stale();
|
|
}
|
|
|
|
@Serialize
|
|
interface Enforce extends Partial {
|
|
boolean enforced();
|
|
}
|
|
|
|
@Serialize
|
|
interface Evidence extends Partial {
|
|
@Nullable String evidence();
|
|
}
|
|
|
|
enum Type {
|
|
|
|
WARN,
|
|
KICK,
|
|
BAN,
|
|
FORUM_WARN,
|
|
FORUM_BAN,
|
|
TOURNEY_BAN,
|
|
UNKNOWN;
|
|
|
|
public String permission() {
|
|
return name().toLowerCase();
|
|
}
|
|
}
|
|
|
|
}
|