[R1] Entities for Doctor and Address

This commit is contained in:
Mirna Gama 2024-01-03 19:00:13 -03:00 committed by Mirna Gama
parent 50181b7e8f
commit 864cfc38df
3 changed files with 88 additions and 0 deletions

View File

@ -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;
}

View File

@ -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;
}

View File

@ -0,0 +1,9 @@
package com.mirna.hospitalmanagementapi.domain.enums;
public enum Speciality {
ORTHOPEDICS,
CARDIOLOGY,
GYNECOLOGY,
DERMATOLOGY
}