/* 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 . */ package de.steamwar.sql; import de.steamwar.sql.internal.Field; import de.steamwar.sql.internal.SelectStatement; import de.steamwar.sql.internal.Statement; import de.steamwar.sql.internal.Table; import lombok.AllArgsConstructor; import lombok.Getter; import java.sql.Timestamp; import java.util.List; @AllArgsConstructor public class CheckedSchematic { private static final Table table = new Table<>(CheckedSchematic.class); private static final SelectStatement statusOfNode = new SelectStatement<>(table, "SELECT * FROM CheckedSchematic WHERE NodeId = ? AND DeclineReason != 'Prüfvorgang abgebrochen' ORDER BY EndTime DESC"); private static final SelectStatement nodeHistory = new SelectStatement<>(table, "SELECT * FROM CheckedSchematic WHERE NodeId = ? AND DeclineReason != '' AND DeclineReason != 'Prüfvorgang abgebrochen' ORDER BY EndTime DESC"); private static final Statement insert = table.insertAll(); public static void create(int nodeId, String name, int owner, int validator, Timestamp startTime, Timestamp endTime, String reason){ insert.update(nodeId, owner, name, validator, startTime, endTime, reason); } public static void create(SchematicNode node, int validator, Timestamp startTime, Timestamp endTime, String reason){ create(node.getId(), node.getName(), node.getOwner(), validator, startTime, endTime, reason); } public static List getLastDeclinedOfNode(int node){ return statusOfNode.listSelect(node); } public static List previousChecks(SchematicNode node) { return nodeHistory.listSelect(node.getId()); } @Field(nullable = true) private final Integer nodeId; @Field private final int nodeOwner; @Field private final String nodeName; @Getter @Field private final int validator; @Getter @Field private final Timestamp startTime; @Getter @Field private final Timestamp endTime; @Getter @Field private final String declineReason; public int getNode() { return nodeId; } public String getSchemName() { return nodeName; } public int getSchemOwner() { return nodeOwner; } }