diff --git a/ass1-jpa/src/main/java/dst/ass1/jpa/model/impl/Driver.java b/ass1-jpa/src/main/java/dst/ass1/jpa/model/impl/Driver.java index af79e7e..9802d5c 100644 --- a/ass1-jpa/src/main/java/dst/ass1/jpa/model/impl/Driver.java +++ b/ass1-jpa/src/main/java/dst/ass1/jpa/model/impl/Driver.java @@ -8,12 +8,7 @@ import java.util.ArrayList; import java.util.Collection; @Entity -public class Driver implements IDriver { - @Id @GeneratedValue private Long id; - private String name; - @NotNull private String tel; - private Double avgRating; - +public class Driver extends PlatformUser implements IDriver { @OneToMany(targetEntity = Match.class) private Collection matches = new ArrayList<>(); diff --git a/ass1-jpa/src/main/java/dst/ass1/jpa/model/impl/PlatformUser.java b/ass1-jpa/src/main/java/dst/ass1/jpa/model/impl/PlatformUser.java new file mode 100644 index 0000000..2ea465e --- /dev/null +++ b/ass1-jpa/src/main/java/dst/ass1/jpa/model/impl/PlatformUser.java @@ -0,0 +1,62 @@ +package dst.ass1.jpa.model.impl; + +import dst.ass1.jpa.model.IPlatformUser; + +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +@MappedSuperclass +public class PlatformUser implements IPlatformUser, Serializable { + @Id @GeneratedValue + protected Long id; + + protected String name; + + @NotNull + protected String tel; + + protected Double avgRating; + + @Override + public Long getId() { + return id; + } + + @Override + public void setId(Long id) { + this.id = id; + } + + @Override + public String getName() { + return name; + } + + @Override + public void setName(String name) { + this.name = name; + } + + @Override + public String getTel() { + return tel; + } + + @Override + public void setTel(String tel) { + this.tel = tel; + } + + @Override + public Double getAvgRating() { + return avgRating; + } + + @Override + public void setAvgRating(Double avgRating) { + this.avgRating = avgRating; + } +} diff --git a/ass1-jpa/src/main/java/dst/ass1/jpa/model/impl/Rider.java b/ass1-jpa/src/main/java/dst/ass1/jpa/model/impl/Rider.java index 382fc5c..2af5cee 100644 --- a/ass1-jpa/src/main/java/dst/ass1/jpa/model/impl/Rider.java +++ b/ass1-jpa/src/main/java/dst/ass1/jpa/model/impl/Rider.java @@ -4,20 +4,36 @@ import dst.ass1.jpa.model.IPreferences; import dst.ass1.jpa.model.IRider; import dst.ass1.jpa.model.ITrip; -import javax.persistence.Entity; -import javax.persistence.Id; +import javax.persistence.*; import javax.validation.constraints.NotNull; import java.util.Collection; +import static dst.ass1.jpa.util.Constants.M_RIDER_ACCOUNT; +import static dst.ass1.jpa.util.Constants.M_RIDER_BANK_CODE; + +@Table( + uniqueConstraints = @UniqueConstraint(columnNames = {M_RIDER_ACCOUNT, M_RIDER_BANK_CODE}) +) + @Entity -public class Rider implements IRider { - @Id - private Long id; - private String name; - @NotNull - private String tel; - private Double avgRating; - private Collection trips; +public class Rider extends PlatformUser implements IRider { + @Column(unique = true) @NotNull + private String email; + + @Column(columnDefinition = "VARBINARY(20)", length = 20) + private byte[] password; + + @Column(name = M_RIDER_ACCOUNT) + private String accountNo; + + @Column(name = M_RIDER_BANK_CODE) + private String bankCode; + + @OneToOne(targetEntity = Preferences.class, optional = false) + private IPreferences preferences; + + @ManyToOne(targetEntity = Trip.class) + private Collection trips = new ArrayList<>(); @Override public Long getId() { @@ -41,7 +57,7 @@ public class Rider implements IRider { @Override public String getTel() { - return null; + return tel; } @Override @@ -61,52 +77,52 @@ public class Rider implements IRider { @Override public String getEmail() { - return null; + return email; } @Override public void setEmail(String email) { - + this.email = email; } @Override public byte[] getPassword() { - return new byte[0]; + return password; } @Override public void setPassword(byte[] password) { - + this.password = password; } @Override public String getAccountNo() { - return null; + return accountNo; } @Override public void setAccountNo(String accountNo) { - + this.accountNo = accountNo; } @Override public String getBankCode() { - return null; + return bankCode; } @Override public void setBankCode(String bankCode) { - + this.bankCode = bankCode; } @Override public IPreferences getPreferences() { - return null; + return preferences; } @Override public void setPreferences(IPreferences preferences) { - + this.preferences = preferences; } @Override