package catering.order; import jakarta.persistence.Entity; import org.salespointframework.order.Order; import org.salespointframework.payment.Cash; import org.salespointframework.useraccount.UserAccount; import org.springframework.stereotype.Component; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @Entity public class CustomOrder extends Order { private OrderType orderType = OrderType.SOMETHING_ELSE; private LocalDateTime start; private LocalDateTime finish; private boolean invoiceAvailable = false; private String formatterPattern = "dd.MM.yyy, HH:mm 'Uhr'"; // Constructor public CustomOrder(UserAccount.UserAccountIdentifier identifier, CustomCart cart) { super(identifier, Cash.CASH); this.orderType = cart.getOrderType(); this.start = cart.getStart(); this.finish = cart.getFinish(); this.formatterPattern = cart.getFormatterPattern(); } public CustomOrder() {} // TODO: find out, why this is mandatory public OrderType getOrderType() { return orderType; } public LocalDateTime getStart() { return start; } public String getFormattedStart() { return start.format(DateTimeFormatter.ofPattern(formatterPattern)); } public void setStart(LocalDateTime start) { this.start = start; } public LocalDateTime getFinish() { return finish; } public String getFormattedFinish() { return finish.format(DateTimeFormatter.ofPattern(formatterPattern)); } public void setFinish(LocalDateTime finish) { this.finish = finish; } public boolean isInvoiceAvailable() { return invoiceAvailable; } public void setInvoiceAvailable(boolean available) { this.invoiceAvailable = available; } }