From ef6bef35f0f66a70636e4f699f84b42c3dc4e2c6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20Slov=C3=ADk?= <xslovik@fi.muni.cz>
Date: Wed, 5 Apr 2023 10:33:56 +0200
Subject: [PATCH] Adding Airplane model

---
 .../fi/pa165/core/data/domain/Airplane.java   | 41 +++++++++++++++++++
 1 file changed, 41 insertions(+)
 create mode 100644 core/src/main/java/cz/muni/fi/pa165/core/data/domain/Airplane.java

diff --git a/core/src/main/java/cz/muni/fi/pa165/core/data/domain/Airplane.java b/core/src/main/java/cz/muni/fi/pa165/core/data/domain/Airplane.java
new file mode 100644
index 0000000..3313001
--- /dev/null
+++ b/core/src/main/java/cz/muni/fi/pa165/core/data/domain/Airplane.java
@@ -0,0 +1,41 @@
+package cz.muni.fi.pa165.core.data.domain;
+
+import cz.muni.fi.pa165.core.data.domain.common.DomainEntity;
+import jakarta.persistence.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Objects;
+
+@Entity(name = "airplanes")
+@Data
+@NoArgsConstructor
+public class Airplane extends DomainEntity {
+
+    @Column(nullable = false)
+    private String name;
+
+    @Column(nullable = false)
+    private Integer capacity;
+
+    @ManyToOne(fetch = FetchType.LAZY,
+            cascade = {CascadeType.REMOVE, CascadeType.PERSIST, CascadeType.MERGE})
+    private AirplaneType type;
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (!(o instanceof Airplane airplane)) {
+            return false;
+        }
+        return Objects.equals(getId(), airplane.getId()) && Objects.equals(getName(), airplane.getName()) &&
+                Objects.equals(getCapacity(), airplane.getCapacity()) && Objects.equals(getType(), airplane.getType());
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(getId(), getName(), getCapacity(), getType());
+    }
+}
-- 
GitLab