2022-09-08 10:42:57 +02:00
|
|
|
/*
|
|
|
|
This file is a part of the SteamWar software.
|
|
|
|
|
|
|
|
Copyright (C) 2020 SteamWar.de-Serverteam
|
|
|
|
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU Affero General Public License as published by
|
|
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU Affero General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU Affero General Public License
|
|
|
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
|
|
|
|
|
|
package de.steamwar.sql;
|
|
|
|
|
|
|
|
import de.steamwar.sql.internal.Field;
|
|
|
|
import de.steamwar.sql.internal.SelectStatement;
|
2022-12-23 23:14:52 +01:00
|
|
|
import de.steamwar.sql.internal.Statement;
|
2022-09-08 10:42:57 +02:00
|
|
|
import de.steamwar.sql.internal.Table;
|
|
|
|
import lombok.AllArgsConstructor;
|
|
|
|
import lombok.Getter;
|
|
|
|
|
|
|
|
import java.sql.Timestamp;
|
2022-12-23 23:14:52 +01:00
|
|
|
import java.util.List;
|
2022-09-08 10:42:57 +02:00
|
|
|
|
|
|
|
@AllArgsConstructor
|
|
|
|
public class Event {
|
|
|
|
|
|
|
|
private static final Table<Event> table = new Table<>(Event.class);
|
|
|
|
private static final SelectStatement<Event> byId = table.select(Table.PRIMARY);
|
2022-12-23 23:14:52 +01:00
|
|
|
private static final SelectStatement<Event> allShort = new SelectStatement<>(table, "SELECT * FROM Event");
|
|
|
|
private static final Statement create = table.insertFields(true, "eventName", "deadline", "start", "end", "maximumTeamMembers", "publicSchemsOnly", "spectateSystem");
|
|
|
|
private static final Statement update = table.update(Table.PRIMARY, "eventName", "deadline", "start", "end", "schemType", "maximumTeamMembers", "publicSchemsOnly", "spectateSystem");
|
|
|
|
private static final Statement delete = table.delete(Table.PRIMARY);
|
|
|
|
|
2022-09-08 10:42:57 +02:00
|
|
|
|
|
|
|
public static Event get(int eventID){
|
|
|
|
return byId.select(eventID);
|
|
|
|
}
|
|
|
|
|
2022-12-23 23:14:52 +01:00
|
|
|
public static List<Event> getAllShort(){
|
|
|
|
return allShort.listSelect();
|
|
|
|
}
|
|
|
|
|
|
|
|
public static Event create(String eventName, Timestamp start, Timestamp end){
|
|
|
|
return get(create.insertGetKey(eventName, start, start, end, 5, false, false));
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void delete(int eventID){
|
|
|
|
delete.update(eventID);
|
|
|
|
}
|
|
|
|
|
2022-09-08 10:42:57 +02:00
|
|
|
@Getter
|
|
|
|
@Field(keys = {Table.PRIMARY}, autoincrement = true)
|
|
|
|
private final int eventID;
|
|
|
|
@Getter
|
|
|
|
@Field(keys = {"eventName"})
|
2022-12-23 23:14:52 +01:00
|
|
|
private String eventName;
|
2022-09-08 10:42:57 +02:00
|
|
|
@Getter
|
|
|
|
@Field
|
2022-12-23 23:14:52 +01:00
|
|
|
private Timestamp deadline;
|
2022-09-08 10:42:57 +02:00
|
|
|
@Getter
|
|
|
|
@Field
|
2022-12-23 23:14:52 +01:00
|
|
|
private Timestamp start;
|
2022-09-08 10:42:57 +02:00
|
|
|
@Getter
|
|
|
|
@Field
|
2022-12-23 23:14:52 +01:00
|
|
|
private Timestamp end;
|
2022-09-08 10:42:57 +02:00
|
|
|
@Getter
|
|
|
|
@Field
|
2022-12-23 23:14:52 +01:00
|
|
|
private int maximumTeamMembers;
|
2022-09-08 10:42:57 +02:00
|
|
|
@Field(nullable = true)
|
2022-12-23 23:14:52 +01:00
|
|
|
private SchematicType schemType;
|
2022-09-08 10:42:57 +02:00
|
|
|
@Field
|
2022-12-23 23:14:52 +01:00
|
|
|
private boolean publicSchemsOnly;
|
2022-09-08 10:42:57 +02:00
|
|
|
@Field
|
2022-12-23 23:14:52 +01:00
|
|
|
private boolean spectateSystem;
|
2022-09-08 10:42:57 +02:00
|
|
|
|
|
|
|
public boolean publicSchemsOnly() {
|
|
|
|
return publicSchemsOnly;
|
|
|
|
}
|
|
|
|
public boolean spectateSystem(){
|
|
|
|
return spectateSystem;
|
|
|
|
}
|
2022-11-30 14:22:50 +01:00
|
|
|
|
|
|
|
public SchematicType getSchematicType() {
|
|
|
|
return schemType;
|
|
|
|
}
|
2022-12-23 23:14:52 +01:00
|
|
|
|
|
|
|
public void setEventName(String eventName) {
|
|
|
|
this.eventName = eventName;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setDeadline(Timestamp deadline) {
|
|
|
|
this.deadline = deadline;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setStart(Timestamp start) {
|
|
|
|
this.start = start;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setEnd(Timestamp end) {
|
|
|
|
this.end = end;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setMaximumTeamMembers(int maximumTeamMembers) {
|
|
|
|
this.maximumTeamMembers = maximumTeamMembers;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setPublicSchemsOnly(boolean publicSchemsOnly) {
|
|
|
|
this.publicSchemsOnly = publicSchemsOnly;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setSpectateSystem(boolean spectateSystem) {
|
|
|
|
this.spectateSystem = spectateSystem;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setSchemType(SchematicType schemType) {
|
|
|
|
this.schemType = schemType;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void update(){
|
|
|
|
update.update(eventName, deadline, start, end, schemType, maximumTeamMembers, publicSchemsOnly, spectateSystem, eventID);
|
|
|
|
}
|
2022-09-08 10:42:57 +02:00
|
|
|
}
|