From 864cfc38df93475b884b757fdec21164ec71a592 Mon Sep 17 00:00:00 2001 From: Mirna Gama Date: Wed, 3 Jan 2024 19:00:13 -0300 Subject: [PATCH] [R1] Entities for Doctor and Address --- .../domain/entities/Address.java | 31 ++++++++++++ .../domain/entities/Doctor.java | 48 +++++++++++++++++++ .../domain/enums/Speciality.java | 9 ++++ 3 files changed, 88 insertions(+) create mode 100644 src/main/java/com/mirna/hospitalmanagementapi/domain/entities/Address.java create mode 100644 src/main/java/com/mirna/hospitalmanagementapi/domain/entities/Doctor.java create mode 100644 src/main/java/com/mirna/hospitalmanagementapi/domain/enums/Speciality.java diff --git a/src/main/java/com/mirna/hospitalmanagementapi/domain/entities/Address.java b/src/main/java/com/mirna/hospitalmanagementapi/domain/entities/Address.java new file mode 100644 index 0000000..d378b87 --- /dev/null +++ b/src/main/java/com/mirna/hospitalmanagementapi/domain/entities/Address.java @@ -0,0 +1,31 @@ +package com.mirna.hospitalmanagementapi.domain.entities; + +import com.mirna.hospitalmanagementapi.domain.dtos.AddressDTO; + +import jakarta.persistence.Embeddable; +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; + +@Embeddable +@NoArgsConstructor +@AllArgsConstructor +public class Address { + + public Address(AddressDTO addressDTO) { + this.street = addressDTO.street(); + this.neighborhood = addressDTO.neighborhood(); + this.zipCode = addressDTO.zipCode(); + this.city = addressDTO.city(); + this.state = addressDTO.state(); + this.additionalDetails = addressDTO.additionalDetails(); + this.houseNumber = addressDTO.houseNumber(); + } + + private String street; + private String neighborhood; + private String zipCode; + private String city; + private String state; + private String additionalDetails; + private String houseNumber; +} diff --git a/src/main/java/com/mirna/hospitalmanagementapi/domain/entities/Doctor.java b/src/main/java/com/mirna/hospitalmanagementapi/domain/entities/Doctor.java new file mode 100644 index 0000000..4e1577a --- /dev/null +++ b/src/main/java/com/mirna/hospitalmanagementapi/domain/entities/Doctor.java @@ -0,0 +1,48 @@ +package com.mirna.hospitalmanagementapi.domain.entities; + +import com.mirna.hospitalmanagementapi.domain.dtos.DoctorDTO; +import com.mirna.hospitalmanagementapi.domain.enums.Speciality; + +import jakarta.persistence.Embedded; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Table(name="doctors") +@Entity(name="Doctor") +@Getter +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(of="id") +public class Doctor { + + public Doctor(DoctorDTO doctorDTO) { + this.name=doctorDTO.name(); + this.email=doctorDTO.email(); + this.crm=doctorDTO.email(); + this.telephone=doctorDTO.telephone(); + this.address = new Address(doctorDTO.addressDTO()); + } + + @Id @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String name; + private String email; + private String crm; + private String telephone; + + @Enumerated(EnumType.STRING) + private Speciality speciality; + + @Embedded + private Address address; + +} diff --git a/src/main/java/com/mirna/hospitalmanagementapi/domain/enums/Speciality.java b/src/main/java/com/mirna/hospitalmanagementapi/domain/enums/Speciality.java new file mode 100644 index 0000000..ccb0324 --- /dev/null +++ b/src/main/java/com/mirna/hospitalmanagementapi/domain/enums/Speciality.java @@ -0,0 +1,9 @@ +package com.mirna.hospitalmanagementapi.domain.enums; + +public enum Speciality { + + ORTHOPEDICS, + CARDIOLOGY, + GYNECOLOGY, + DERMATOLOGY +}