From 0d7469bb7aeed37ab0d820d83482de54ffa74d77 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Mon, 3 Jul 2023 20:49:15 +0300 Subject: [PATCH 01/38] Add AssignmentEntity and LocationEntity --- .../model/entity/AssignmentEntity.java | 94 +++++++++++++++++++ .../location/model/entity/LocationEntity.java | 48 ++++++++++ 2 files changed, 142 insertions(+) create mode 100644 src/main/java/com/ays/assignment/model/entity/AssignmentEntity.java create mode 100644 src/main/java/com/ays/location/model/entity/LocationEntity.java diff --git a/src/main/java/com/ays/assignment/model/entity/AssignmentEntity.java b/src/main/java/com/ays/assignment/model/entity/AssignmentEntity.java new file mode 100644 index 000000000..493747baf --- /dev/null +++ b/src/main/java/com/ays/assignment/model/entity/AssignmentEntity.java @@ -0,0 +1,94 @@ +package com.ays.assignment.model.entity; + +import com.ays.assignment.model.enums.AssignmentStatus; +import com.ays.common.model.entity.BaseEntity; +import com.ays.institution.model.entity.InstitutionEntity; +import com.ays.user.model.entity.UserEntity; +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * Assignment entity, which holds the information regarding assignment. + */ +@Entity +@Data +@EqualsAndHashCode(callSuper = true) +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@Table(name = "AYS_USER_ASSIGNMENT") +public class AssignmentEntity extends BaseEntity { + + @Id + @Column(name = "ID") + private String id; + + @Column(name = "INSTITUTION_ID") + private String institutionId; + + @Column(name = "USER_ID") + private String userId; + + @Column(name = "DESCRIPTION") + private String description; + + @Column(name = "FIRST_NAME") + private String firstName; + + @Column(name = "LAST_NAME") + private String lastName; + + @Column(name = "COUNTRY_CODE") + private String countryCode; + + @Column(name = "LINE_NUMBER") + private String lineNumber; + + @Column(name = "LATITUDE") + private Double latitude; + + @Column(name = "LONGITUDE") + private Double longitude; + + @Enumerated(EnumType.STRING) + @Column(name = "ASSIGNMENT_STATUS") + private AssignmentStatus status; + + @OneToOne + @JoinColumn(name = "INSTITUTION_ID", referencedColumnName = "ID") + private InstitutionEntity institution; + + @OneToOne + @JoinColumn(name = "USER_ID", referencedColumnName = "ID") + private UserEntity user; + + + public boolean isAvailable() { + return AssignmentStatus.AVAILABLE.equals(this.status); + } + + public boolean isReserved() { + return AssignmentStatus.RESERVED.equals(this.status); + } + + public boolean isAssigned() { + return AssignmentStatus.ASSIGNED.equals(this.status); + } + + public boolean isInProgress() { + return AssignmentStatus.IN_PROGRESS.equals(this.status); + } + + public boolean isDone() { + return AssignmentStatus.DONE.equals(this.status); + } + + public void updateAssignmentStatus(AssignmentStatus assignmentStatus) { + this.status = assignmentStatus; + } + +} diff --git a/src/main/java/com/ays/location/model/entity/LocationEntity.java b/src/main/java/com/ays/location/model/entity/LocationEntity.java new file mode 100644 index 000000000..a14164123 --- /dev/null +++ b/src/main/java/com/ays/location/model/entity/LocationEntity.java @@ -0,0 +1,48 @@ +package com.ays.location.model.entity; + +import com.ays.common.model.entity.BaseEntity; +import com.ays.user.model.entity.UserEntity; +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import org.locationtech.jts.geom.Coordinate; +import org.locationtech.jts.geom.GeometryFactory; +import org.locationtech.jts.geom.Point; + +/** + * Location entity, which holds the information regarding location. + */ +@Entity +@Data +@EqualsAndHashCode(callSuper = true) +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@Table(name = "AYS_USER_LOCATION") +public class LocationEntity extends BaseEntity { + + @Id + @Column(name = "ID") + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "USER_ID") + private String userId; + + @Column(name = "POINT", columnDefinition = "geometry(Point,4326)") + private Point point; + + @OneToOne + @JoinColumn(name = "USER_ID", referencedColumnName = "ID") + private UserEntity user; + + public void setPoint(double latitude, double longitude) { + Coordinate coordinate = new Coordinate(latitude, longitude); + GeometryFactory geometryFactory = new GeometryFactory(); + this.point = geometryFactory.createPoint(coordinate); + } + +} From 2a93a6848dfe29960a83ab4cb8c02041385889be Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Mon, 3 Jul 2023 20:49:43 +0300 Subject: [PATCH 02/38] Add AssignmentStatus --- .../assignment/model/enums/AssignmentStatus.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/main/java/com/ays/assignment/model/enums/AssignmentStatus.java diff --git a/src/main/java/com/ays/assignment/model/enums/AssignmentStatus.java b/src/main/java/com/ays/assignment/model/enums/AssignmentStatus.java new file mode 100644 index 000000000..c525ce031 --- /dev/null +++ b/src/main/java/com/ays/assignment/model/enums/AssignmentStatus.java @@ -0,0 +1,14 @@ +package com.ays.assignment.model.enums; + +/** + * Enumeration keeping assignment status. + */ +public enum AssignmentStatus { + + AVAILABLE, + RESERVED, + ASSIGNED, + IN_PROGRESS, + DONE + +} From 656ef4ec126313959bfbd05db272fda54026fb46 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Mon, 3 Jul 2023 20:50:24 +0300 Subject: [PATCH 03/38] Add Hibernate Spatial dependency in pom.xml --- pom.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pom.xml b/pom.xml index ce3b16d12..066f98790 100644 --- a/pom.xml +++ b/pom.xml @@ -161,6 +161,11 @@ com.mysql mysql-connector-j + + + org.hibernate.orm + hibernate-spatial + From 4831e550fd54c30883151a7e60ff358e2af2f139 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Mon, 3 Jul 2023 20:50:56 +0300 Subject: [PATCH 04/38] Add Assignment and Location Domain --- .../com/ays/assignment/model/Assignment.java | 31 +++++++++++++++++++ .../java/com/ays/location/model/Location.java | 19 ++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 src/main/java/com/ays/assignment/model/Assignment.java create mode 100644 src/main/java/com/ays/location/model/Location.java diff --git a/src/main/java/com/ays/assignment/model/Assignment.java b/src/main/java/com/ays/assignment/model/Assignment.java new file mode 100644 index 000000000..f22b49f8f --- /dev/null +++ b/src/main/java/com/ays/assignment/model/Assignment.java @@ -0,0 +1,31 @@ +package com.ays.assignment.model; + +import com.ays.assignment.model.enums.AssignmentStatus; +import com.ays.common.model.AysPhoneNumber; +import com.ays.common.model.BaseDomainModel; +import com.ays.institution.model.Institution; +import com.ays.user.model.User; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.SuperBuilder; + +/** + * Assignment Domain Model to perform data transfer from service layer to controller + */ +@Data +@EqualsAndHashCode(callSuper = true) +@SuperBuilder +public class Assignment extends BaseDomainModel { + + private String id; + private String description; + private String firstName; + private String lastName; + private AysPhoneNumber phoneNumber; + private Double latitude; + private Double longitude; + private AssignmentStatus status; + private User user; + private Institution institution; + +} diff --git a/src/main/java/com/ays/location/model/Location.java b/src/main/java/com/ays/location/model/Location.java new file mode 100644 index 000000000..73d8e0371 --- /dev/null +++ b/src/main/java/com/ays/location/model/Location.java @@ -0,0 +1,19 @@ +package com.ays.location.model; + +import com.ays.common.model.BaseDomainModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.SuperBuilder; +import org.locationtech.jts.geom.Point; + +/** + * Location Domain Model to perform data transfer from service layer to controller + */ +@Data +@EqualsAndHashCode(callSuper = true) +@SuperBuilder +public class Location extends BaseDomainModel { + + private Long id; + private Point point; +} From d65458fa48a3c1e5f1d7a91d3aa36eec68d364d9 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Mon, 3 Jul 2023 20:51:31 +0300 Subject: [PATCH 05/38] Add AssignmentResponse --- .../dto/response/AssignmentResponse.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/main/java/com/ays/assignment/model/dto/response/AssignmentResponse.java diff --git a/src/main/java/com/ays/assignment/model/dto/response/AssignmentResponse.java b/src/main/java/com/ays/assignment/model/dto/response/AssignmentResponse.java new file mode 100644 index 000000000..a3f8c956a --- /dev/null +++ b/src/main/java/com/ays/assignment/model/dto/response/AssignmentResponse.java @@ -0,0 +1,25 @@ +package com.ays.assignment.model.dto.response; + +import com.ays.common.model.dto.response.BaseResponse; +import com.ays.user.model.User; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.SuperBuilder; + +/** + * A DTO (Data Transfer Object) representing a list of assignment in a paginated response. + */ +@Data +@EqualsAndHashCode(callSuper = true) +@SuperBuilder +public class AssignmentResponse extends BaseResponse { + + private String id; + private String description; + private String firstName; + private String lastName; + private Double longitude; + private Double latitude; + private User user; + +} From f9be0b27109d4df02895ac3fe7b33d987bd1f417 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Mon, 3 Jul 2023 20:52:02 +0300 Subject: [PATCH 06/38] Add UserAssignmentRequest and UserLocationRequest --- .../dto/request/UserAssignmentRequest.java | 79 +++++++++++++++++++ .../dto/request/UserLocationRequest.java | 22 ++++++ 2 files changed, 101 insertions(+) create mode 100644 src/main/java/com/ays/assignment/model/dto/request/UserAssignmentRequest.java create mode 100644 src/main/java/com/ays/location/model/dto/request/UserLocationRequest.java diff --git a/src/main/java/com/ays/assignment/model/dto/request/UserAssignmentRequest.java b/src/main/java/com/ays/assignment/model/dto/request/UserAssignmentRequest.java new file mode 100644 index 000000000..88cc85ba4 --- /dev/null +++ b/src/main/java/com/ays/assignment/model/dto/request/UserAssignmentRequest.java @@ -0,0 +1,79 @@ +package com.ays.assignment.model.dto.request; + +import com.ays.assignment.model.enums.AssignmentStatus; +import com.ays.common.model.dto.request.AysFilteringRequest; +import com.ays.common.model.dto.request.AysPagingRequest; +import com.ays.common.util.validation.EnumValidation; +import com.fasterxml.jackson.annotation.JsonIgnore; +import jakarta.validation.constraints.AssertTrue; +import lombok.Builder; +import lombok.Data; +import org.springframework.data.jpa.domain.Specification; + +import java.util.EnumSet; +import java.util.Set; + +/** + * Represents a request object for fetching a list of assignment with pagination,sorting and filtering options + * This class extends the {@link AysPagingRequest} class and adds additional validation rules for sorting. + */ +@Data +@Builder +public class UserAssignmentRequest extends AysPagingRequest implements AysFilteringRequest { + + private AssignmentStatus status; + + /** + * Checks if the assignment status is valid. + * + * @return true if the assignment status is valid or null, false otherwise. + */ + @AssertTrue(message = "IS ASSIGNMENT STATUS NOT VALID") + private boolean isStatusValid() { + + if (this.status == null) { + return true; + } + + EnumSet acceptedAssignmentStatuses = EnumSet.of(AssignmentStatus.AVAILABLE, + AssignmentStatus.RESERVED, + AssignmentStatus.ASSIGNED, + AssignmentStatus.IN_PROGRESS, + AssignmentStatus.DONE + ); + return EnumValidation.anyOf(this.status, acceptedAssignmentStatuses); + } + + /** + * Overrides the {@link AysPagingRequest#isSortPropertyAccepted()} method to validate sorting options + * and ensures that no unsupported sorting property is used in the request. + * + * @return true if the sorting property is accepted, false otherwise. + */ + @JsonIgnore + @AssertTrue + @Override + public boolean isSortPropertyAccepted() { + final Set acceptedFilterFields = Set.of(); + return this.isPropertyAccepted(acceptedFilterFields); + } + + /** + * Converts the request into a JPA Specification that filters assignments based on the specified status, + * if it is provided. + * + * @param clazz the class type of the specification. + * @return the generated JPA Specification based on the request filters. + */ + @Override + public Specification toSpecification(Class clazz) { + Specification specification = Specification.where(null); + if (status != null) { + specification = specification.and((root, query, builder) -> + builder.equal(root.get("status"), status)); + } + // Add more filter conditions if needed + return specification; + } + +} diff --git a/src/main/java/com/ays/location/model/dto/request/UserLocationRequest.java b/src/main/java/com/ays/location/model/dto/request/UserLocationRequest.java new file mode 100644 index 000000000..32396e239 --- /dev/null +++ b/src/main/java/com/ays/location/model/dto/request/UserLocationRequest.java @@ -0,0 +1,22 @@ +package com.ays.location.model.dto.request; + +import lombok.Builder; +import lombok.Data; + +/** + * A DTO class representing the request data for assigning an assignment as reserved to user. + *

+ * This class provides getters and setters for the latitude, and longitude fields. + * It also includes a builder pattern implementation for constructing instances of this class with optional parameters. + *

+ * The purpose of this class is to encapsulate the request data related to asigning an assignment as reserved to user, allowing for easy + * transfer of the data between different layers of the application. + */ +@Data +@Builder +public class UserLocationRequest { + + private Double latitude; + private Double longitude; + +} From dcde53cb22389769ccc1979e04453bee0c2ff36e Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Mon, 3 Jul 2023 20:52:48 +0300 Subject: [PATCH 07/38] Add AssignmentRepository and LocationRepository --- .../assignment/repository/AssignmentRepository.java | 11 +++++++++++ .../ays/location/repository/LocationRepository.java | 11 +++++++++++ 2 files changed, 22 insertions(+) create mode 100644 src/main/java/com/ays/assignment/repository/AssignmentRepository.java create mode 100644 src/main/java/com/ays/location/repository/LocationRepository.java diff --git a/src/main/java/com/ays/assignment/repository/AssignmentRepository.java b/src/main/java/com/ays/assignment/repository/AssignmentRepository.java new file mode 100644 index 000000000..e7b0ea2c5 --- /dev/null +++ b/src/main/java/com/ays/assignment/repository/AssignmentRepository.java @@ -0,0 +1,11 @@ +package com.ays.assignment.repository; + +import com.ays.assignment.model.entity.AssignmentEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Repository interface for performing CRUD operations on AssignmentEntity objects. + */ +public interface AssignmentRepository extends JpaRepository { + +} diff --git a/src/main/java/com/ays/location/repository/LocationRepository.java b/src/main/java/com/ays/location/repository/LocationRepository.java new file mode 100644 index 000000000..7aa0ec5b0 --- /dev/null +++ b/src/main/java/com/ays/location/repository/LocationRepository.java @@ -0,0 +1,11 @@ +package com.ays.location.repository; + +import com.ays.location.model.entity.LocationEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Repository interface for performing CRUD operations on LocationEntity objects. + */ +public interface LocationRepository extends JpaRepository { + +} From 93004afa3fcabab711aed632ef8791fa2b147bcb Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Mon, 3 Jul 2023 20:53:17 +0300 Subject: [PATCH 08/38] Add Mapper process for Assignment --- .../AssignmentEntityToAssignmentMapper.java | 34 +++++++++++++++++++ .../AssignmentToAssignmentEntityMapper.java | 28 +++++++++++++++ .../AssignmentToAssignmentResponseMapper.java | 28 +++++++++++++++ 3 files changed, 90 insertions(+) create mode 100644 src/main/java/com/ays/assignment/model/mapper/AssignmentEntityToAssignmentMapper.java create mode 100644 src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentEntityMapper.java create mode 100644 src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentResponseMapper.java diff --git a/src/main/java/com/ays/assignment/model/mapper/AssignmentEntityToAssignmentMapper.java b/src/main/java/com/ays/assignment/model/mapper/AssignmentEntityToAssignmentMapper.java new file mode 100644 index 000000000..2959e2296 --- /dev/null +++ b/src/main/java/com/ays/assignment/model/mapper/AssignmentEntityToAssignmentMapper.java @@ -0,0 +1,34 @@ +package com.ays.assignment.model.mapper; + +import com.ays.assignment.model.Assignment; +import com.ays.assignment.model.entity.AssignmentEntity; +import com.ays.common.model.mapper.BaseMapper; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +/** + * AssignmentEntityToAssignmentMapper is an interface that defines the mapping between an {@link AssignmentEntity} and an {@link Assignment}. + * This interface uses the MapStruct annotation @Mapper to generate an implementation of this interface at compile-time. + *

The class provides a static method {@code initialize()} that returns an instance of the generated mapper implementation. + *

The interface extends the MapStruct interface {@link BaseMapper}, which defines basic mapping methods. + * The interface adds no additional mapping methods, but simply defines the types to be used in the mapping process. + */ +@Mapper +public interface AssignmentEntityToAssignmentMapper extends BaseMapper { + + @Override + @Mapping(target = "phoneNumber.countryCode", source = "source.countryCode") + @Mapping(target = "phoneNumber.lineNumber", source = "source.lineNumber") + Assignment map(AssignmentEntity source); + + /** + * Initializes the mapper. + * + * @return the initialized mapper object. + */ + static AssignmentEntityToAssignmentMapper initialize() { + return Mappers.getMapper(AssignmentEntityToAssignmentMapper.class); + } + +} diff --git a/src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentEntityMapper.java b/src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentEntityMapper.java new file mode 100644 index 000000000..ab843ab7f --- /dev/null +++ b/src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentEntityMapper.java @@ -0,0 +1,28 @@ +package com.ays.assignment.model.mapper; + +import com.ays.assignment.model.Assignment; +import com.ays.assignment.model.entity.AssignmentEntity; +import com.ays.common.model.mapper.BaseMapper; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +/** + * AssignmentToAssignmentEntityMapper is an interface that defines the mapping between an {@link Assignment} and an {@link AssignmentEntity}. + * This interface uses the MapStruct annotation @Mapper to generate an implementation of this interface at compile-time. + *

The class provides a static method {@code initialize()} that returns an instance of the generated mapper implementation. + *

The interface extends the MapStruct interface {@link BaseMapper}, which defines basic mapping methods. + * The interface adds no additional mapping methods, but simply defines the types to be used in the mapping process. + */ +@Mapper +public interface AssignmentToAssignmentEntityMapper extends BaseMapper { + + /** + * Initializes the mapper. + * + * @return the initialized mapper object. + */ + static AssignmentToAssignmentEntityMapper initialize() { + return Mappers.getMapper(AssignmentToAssignmentEntityMapper.class); + } + +} diff --git a/src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentResponseMapper.java b/src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentResponseMapper.java new file mode 100644 index 000000000..2739a28f7 --- /dev/null +++ b/src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentResponseMapper.java @@ -0,0 +1,28 @@ +package com.ays.assignment.model.mapper; + +import com.ays.assignment.model.Assignment; +import com.ays.assignment.model.dto.response.AssignmentResponse; +import com.ays.common.model.mapper.BaseMapper; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +/** + * AssignmentToAssignmentResponseMapper is an interface that defines the mapping between an {@link Assignment} and an {@link AssignmentResponse}. + * This interface uses the MapStruct annotation @Mapper to generate an implementation of this interface at compile-time. + *

The class provides a static method {@code initialize()} that returns an instance of the generated mapper implementation. + *

The interface extends the MapStruct interface {@link BaseMapper}, which defines basic mapping methods. + * The interface adds no additional mapping methods, but simply defines the types to be used in the mapping process. + */ +@Mapper +public interface AssignmentToAssignmentResponseMapper extends BaseMapper { + + /** + * Initializes the mapper. + * + * @return the initialized mapper object. + */ + static AssignmentToAssignmentResponseMapper initialize() { + return Mappers.getMapper(AssignmentToAssignmentResponseMapper.class); + } + +} From c3f42848d0bd9e4909e568bfa937b347bc759c8f Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Mon, 3 Jul 2023 20:53:44 +0300 Subject: [PATCH 09/38] Add Mapper process for Location --- .../LocationEntityToLocationMapper.java | 28 +++++++++++++++++++ .../LocationToLocationEntityMapper.java | 28 +++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 src/main/java/com/ays/location/model/mapper/LocationEntityToLocationMapper.java create mode 100644 src/main/java/com/ays/location/model/mapper/LocationToLocationEntityMapper.java diff --git a/src/main/java/com/ays/location/model/mapper/LocationEntityToLocationMapper.java b/src/main/java/com/ays/location/model/mapper/LocationEntityToLocationMapper.java new file mode 100644 index 000000000..649734225 --- /dev/null +++ b/src/main/java/com/ays/location/model/mapper/LocationEntityToLocationMapper.java @@ -0,0 +1,28 @@ +package com.ays.location.model.mapper; + +import com.ays.common.model.mapper.BaseMapper; +import com.ays.location.model.Location; +import com.ays.location.model.entity.LocationEntity; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +/** + * LocationEntityToLocationMapper is an interface that defines the mapping between an {@link LocationEntity} and an {@link Location}. + * This interface uses the MapStruct annotation @Mapper to generate an implementation of this interface at compile-time. + *

The class provides a static method {@code initialize()} that returns an instance of the generated mapper implementation. + *

The interface extends the MapStruct interface {@link BaseMapper}, which defines basic mapping methods. + * The interface adds no additional mapping methods, but simply defines the types to be used in the mapping process. + */ +@Mapper +public interface LocationEntityToLocationMapper extends BaseMapper { + + /** + * Initializes the mapper. + * + * @return the initialized mapper object. + */ + static LocationEntityToLocationMapper initialize() { + return Mappers.getMapper(LocationEntityToLocationMapper.class); + } + +} diff --git a/src/main/java/com/ays/location/model/mapper/LocationToLocationEntityMapper.java b/src/main/java/com/ays/location/model/mapper/LocationToLocationEntityMapper.java new file mode 100644 index 000000000..5d9107e58 --- /dev/null +++ b/src/main/java/com/ays/location/model/mapper/LocationToLocationEntityMapper.java @@ -0,0 +1,28 @@ +package com.ays.location.model.mapper; + +import com.ays.common.model.mapper.BaseMapper; +import com.ays.location.model.Location; +import com.ays.location.model.entity.LocationEntity; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +/** + * LocationToLocationEntityMapper is an interface that defines the mapping between an {@link Location} and an {@link LocationEntity}. + * This interface uses the MapStruct annotation @Mapper to generate an implementation of this interface at compile-time. + *

The class provides a static method {@code initialize()} that returns an instance of the generated mapper implementation. + *

The interface extends the MapStruct interface {@link BaseMapper}, which defines basic mapping methods. + * The interface adds no additional mapping methods, but simply defines the types to be used in the mapping process. + */ +@Mapper +public interface LocationToLocationEntityMapper extends BaseMapper { + + /** + * Initializes the mapper. + * + * @return the initialized mapper object. + */ + static LocationToLocationEntityMapper initialize() { + return Mappers.getMapper(LocationToLocationEntityMapper.class); + } + +} From eeb477e2842c3138f0a640cc49cf978698192054 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Mon, 3 Jul 2023 20:54:05 +0300 Subject: [PATCH 10/38] Add Exception Handling for Assignment --- ...AysAssignmentAlreadyAssignedException.java | 27 ++++++++++++++++++ ...ysAssignmentAlreadyAvailableException.java | 27 ++++++++++++++++++ .../AysAssignmentAlreadyDoneException.java | 27 ++++++++++++++++++ ...sAssignmentAlreadyInProgressException.java | 28 +++++++++++++++++++ ...AysAssignmentAlreadyReservedException.java | 26 +++++++++++++++++ .../AysAssignmentNotExistByIdException.java | 27 ++++++++++++++++++ 6 files changed, 162 insertions(+) create mode 100644 src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyAssignedException.java create mode 100644 src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyAvailableException.java create mode 100644 src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyDoneException.java create mode 100644 src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyInProgressException.java create mode 100644 src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyReservedException.java create mode 100644 src/main/java/com/ays/assignment/util/exception/AysAssignmentNotExistByIdException.java diff --git a/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyAssignedException.java b/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyAssignedException.java new file mode 100644 index 000000000..8a7b4bc9d --- /dev/null +++ b/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyAssignedException.java @@ -0,0 +1,27 @@ +package com.ays.assignment.util.exception; + +import com.ays.common.util.exception.AysAlreadyException; + +import java.io.Serial; + +/** + * Exception thrown when an assignment is assigned and attempting to perform an action that requires an assigned assignment. + */ +public class AysAssignmentAlreadyAssignedException extends AysAlreadyException { + + /** + * Unique identifier for serialization. + */ + @Serial + private static final long serialVersionUID = -4641308511630291631L; + + /** + * Constructs a new {@code AysAssignmentAlreadyAssignedException} with the specified id. + * + * @param id the id of the assignment which is already assigned + */ + public AysAssignmentAlreadyAssignedException(String id) { + super("ASSIGNMENT IS ALREADY ASSIGNED! id:" + id); + } + +} diff --git a/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyAvailableException.java b/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyAvailableException.java new file mode 100644 index 000000000..e6c5ad387 --- /dev/null +++ b/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyAvailableException.java @@ -0,0 +1,27 @@ +package com.ays.assignment.util.exception; + +import com.ays.common.util.exception.AysAlreadyException; + +import java.io.Serial; + +/** + * Exception thrown when an assignment is available and attempting to perform an action that requires an assignment which is already available. + */ +public class AysAssignmentAlreadyAvailableException extends AysAlreadyException { + + /** + * Unique identifier for serialization. + */ + @Serial + private static final long serialVersionUID = 7742901037914306311L; + + /** + * Constructs a new {@code AysAssignmentAlreadyAvailableException} with the specified id. + * + * @param id the id of the assignment which is already available + */ + public AysAssignmentAlreadyAvailableException(String id) { + super("ASSIGNMENT IS ALREADY AVAILABLE! id:" + id); + } + +} diff --git a/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyDoneException.java b/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyDoneException.java new file mode 100644 index 000000000..e4395f36d --- /dev/null +++ b/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyDoneException.java @@ -0,0 +1,27 @@ +package com.ays.assignment.util.exception; + +import com.ays.common.util.exception.AysAlreadyException; + +import java.io.Serial; + +/** + * Exception thrown when an assignment is done and attempting to perform an action that requires an assignment which is already done. + */ +public class AysAssignmentAlreadyDoneException extends AysAlreadyException { + + /** + * Unique identifier for serialization. + */ + @Serial + private static final long serialVersionUID = 4457246038851186682L; + + /** + * Constructs a new {@code AysAssignmentAlreadyDoneException} with the specified id. + * + * @param id the id of the assignment which is already done + */ + public AysAssignmentAlreadyDoneException(String id) { + super("ASSIGNMENT IS ALREADY DONE! id:" + id); + } + +} diff --git a/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyInProgressException.java b/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyInProgressException.java new file mode 100644 index 000000000..de1974f5a --- /dev/null +++ b/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyInProgressException.java @@ -0,0 +1,28 @@ +package com.ays.assignment.util.exception; + +import com.ays.common.util.exception.AysAlreadyException; + +import java.io.Serial; + +/** + * Exception thrown when an assignment is in progress and attempting to perform an action that requires an assignment which is already in progress. + */ +public class AysAssignmentAlreadyInProgressException extends AysAlreadyException { + + /** + * Unique identifier for serialization. + */ + @Serial + private static final long serialVersionUID = -3095992510410240081L; + + /** + * Constructs a new {@code AysAssignmentAlreadyInProgressException} with the specified id. + * + * @param id the id of the assignment which is already in progress + */ + public AysAssignmentAlreadyInProgressException(String id) { + super("ASSIGNMENT IS ALREADY IN PROGRESS! id:" + id); + } + +} + diff --git a/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyReservedException.java b/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyReservedException.java new file mode 100644 index 000000000..0eaa11a2c --- /dev/null +++ b/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyReservedException.java @@ -0,0 +1,26 @@ +package com.ays.assignment.util.exception; + +import com.ays.common.util.exception.AysAlreadyException; + +import java.io.Serial; + +/** + * Exception thrown when an assignment is reserved and attempting to perform an action that requires an assignment which is already reserved. + */ +public class AysAssignmentAlreadyReservedException extends AysAlreadyException { + + /** + * Unique identifier for serialization. + */ + @Serial + private static final long serialVersionUID = 5516025383665844979L; + + /** + * Constructs a new {@code AysAssignmentAlreadyReservedException} with the specified id. + * + * @param id the id of the assignment which is already reserved + */ + public AysAssignmentAlreadyReservedException(String id) { + super("ASSIGNMENT IS ALREADY RESERVED! id:" + id); + } +} diff --git a/src/main/java/com/ays/assignment/util/exception/AysAssignmentNotExistByIdException.java b/src/main/java/com/ays/assignment/util/exception/AysAssignmentNotExistByIdException.java new file mode 100644 index 000000000..e213017bb --- /dev/null +++ b/src/main/java/com/ays/assignment/util/exception/AysAssignmentNotExistByIdException.java @@ -0,0 +1,27 @@ +package com.ays.assignment.util.exception; + +import com.ays.common.util.exception.AysNotExistException; + +import java.io.Serial; + +/** + * Exception to be thrown when an assignment with a given ID does not exist. + */ +public class AysAssignmentNotExistByIdException extends AysNotExistException { + + /** + * Unique serial version ID. + */ + @Serial + private static final long serialVersionUID = -1656529656159558925L; + + /** + * Constructs a new AysAssignmentNotExistByIdException with the specified assignment ID. + * + * @param id the ID of the assignment that does not exist + */ + public AysAssignmentNotExistByIdException(String id) { + super("ASSIGNMENT NOT EXIST! id:" + id); + } + +} From b7f412dc3a382038192271267be97c0960c55735 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Mon, 3 Jul 2023 20:54:16 +0300 Subject: [PATCH 11/38] Add Exception Handling for Location --- .../AysLocationNotExistByIdException.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/main/java/com/ays/location/util/exception/AysLocationNotExistByIdException.java diff --git a/src/main/java/com/ays/location/util/exception/AysLocationNotExistByIdException.java b/src/main/java/com/ays/location/util/exception/AysLocationNotExistByIdException.java new file mode 100644 index 000000000..3f5122660 --- /dev/null +++ b/src/main/java/com/ays/location/util/exception/AysLocationNotExistByIdException.java @@ -0,0 +1,27 @@ +package com.ays.location.util.exception; + +import com.ays.common.util.exception.AysNotExistException; + +import java.io.Serial; + +/** + * Exception to be thrown when a location with a given ID does not exist. + */ +public class AysLocationNotExistByIdException extends AysNotExistException { + + /** + * Unique serial version ID. + */ + @Serial + private static final long serialVersionUID = 2448425046125508633L; + + /** + * Constructs a new AysLocationNotExistByIdException with the specified assignment ID. + * + * @param id the ID of the location that does not exist + */ + public AysLocationNotExistByIdException(String id) { + super("LOCATION NOT EXIST! id:" + id); + } + +} From 6cf9040eeba6a1c751caf9658b0735ff6038f285 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 16 Jul 2023 17:10:36 +0300 Subject: [PATCH 12/38] Rename files as AssignmentListRequest and LocationUserRequest --- .../{UserAssignmentRequest.java => AssignmentListRequest.java} | 2 +- .../{UserLocationRequest.java => LocationUserRequest.java} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/main/java/com/ays/assignment/model/dto/request/{UserAssignmentRequest.java => AssignmentListRequest.java} (97%) rename src/main/java/com/ays/location/model/dto/request/{UserLocationRequest.java => LocationUserRequest.java} (95%) diff --git a/src/main/java/com/ays/assignment/model/dto/request/UserAssignmentRequest.java b/src/main/java/com/ays/assignment/model/dto/request/AssignmentListRequest.java similarity index 97% rename from src/main/java/com/ays/assignment/model/dto/request/UserAssignmentRequest.java rename to src/main/java/com/ays/assignment/model/dto/request/AssignmentListRequest.java index 88cc85ba4..8c75f0f20 100644 --- a/src/main/java/com/ays/assignment/model/dto/request/UserAssignmentRequest.java +++ b/src/main/java/com/ays/assignment/model/dto/request/AssignmentListRequest.java @@ -19,7 +19,7 @@ */ @Data @Builder -public class UserAssignmentRequest extends AysPagingRequest implements AysFilteringRequest { +public class AssignmentListRequest extends AysPagingRequest implements AysFilteringRequest { private AssignmentStatus status; diff --git a/src/main/java/com/ays/location/model/dto/request/UserLocationRequest.java b/src/main/java/com/ays/location/model/dto/request/LocationUserRequest.java similarity index 95% rename from src/main/java/com/ays/location/model/dto/request/UserLocationRequest.java rename to src/main/java/com/ays/location/model/dto/request/LocationUserRequest.java index 32396e239..c14069fb2 100644 --- a/src/main/java/com/ays/location/model/dto/request/UserLocationRequest.java +++ b/src/main/java/com/ays/location/model/dto/request/LocationUserRequest.java @@ -14,7 +14,7 @@ */ @Data @Builder -public class UserLocationRequest { +public class LocationUserRequest { private Double latitude; private Double longitude; From eb0806ccec74e20b9536e445a8f97e39c70acfee Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 16 Jul 2023 17:10:57 +0300 Subject: [PATCH 13/38] Create AssignmentLocationRequest --- .../model/dto/request/AssignmentLocationRequest.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 src/main/java/com/ays/assignment/model/dto/request/AssignmentLocationRequest.java diff --git a/src/main/java/com/ays/assignment/model/dto/request/AssignmentLocationRequest.java b/src/main/java/com/ays/assignment/model/dto/request/AssignmentLocationRequest.java new file mode 100644 index 000000000..4714360b9 --- /dev/null +++ b/src/main/java/com/ays/assignment/model/dto/request/AssignmentLocationRequest.java @@ -0,0 +1,12 @@ +package com.ays.assignment.model.dto.request; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class AssignmentLocationRequest { + + private Double latitude; + private Double longitude; +} From 6ee17ac7eed13426fe754a6e2107754b130da9b4 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 16 Jul 2023 21:37:51 +0300 Subject: [PATCH 14/38] Revise UserAssignmentEntity --- ...entEntity.java => UserAssignmentEntity.java} | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) rename src/main/java/com/ays/assignment/model/entity/{AssignmentEntity.java => UserAssignmentEntity.java} (79%) diff --git a/src/main/java/com/ays/assignment/model/entity/AssignmentEntity.java b/src/main/java/com/ays/assignment/model/entity/UserAssignmentEntity.java similarity index 79% rename from src/main/java/com/ays/assignment/model/entity/AssignmentEntity.java rename to src/main/java/com/ays/assignment/model/entity/UserAssignmentEntity.java index 493747baf..3cc2ce4f5 100644 --- a/src/main/java/com/ays/assignment/model/entity/AssignmentEntity.java +++ b/src/main/java/com/ays/assignment/model/entity/UserAssignmentEntity.java @@ -10,6 +10,9 @@ import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +import org.locationtech.jts.geom.Coordinate; +import org.locationtech.jts.geom.GeometryFactory; +import org.locationtech.jts.geom.Point; /** * Assignment entity, which holds the information regarding assignment. @@ -21,7 +24,7 @@ @NoArgsConstructor @AllArgsConstructor @Table(name = "AYS_USER_ASSIGNMENT") -public class AssignmentEntity extends BaseEntity { +public class UserAssignmentEntity extends BaseEntity { @Id @Column(name = "ID") @@ -48,11 +51,8 @@ public class AssignmentEntity extends BaseEntity { @Column(name = "LINE_NUMBER") private String lineNumber; - @Column(name = "LATITUDE") - private Double latitude; - - @Column(name = "LONGITUDE") - private Double longitude; + @Column(name = "POINT", columnDefinition = "ST_GeomFromText(Point, 4326)") + private Point point; @Enumerated(EnumType.STRING) @Column(name = "ASSIGNMENT_STATUS") @@ -66,6 +66,11 @@ public class AssignmentEntity extends BaseEntity { @JoinColumn(name = "USER_ID", referencedColumnName = "ID") private UserEntity user; + public void setPoint(double latitude, double longitude) { + Coordinate coordinate = new Coordinate(latitude, longitude); + GeometryFactory geometryFactory = new GeometryFactory(); + this.point = geometryFactory.createPoint(coordinate); + } public boolean isAvailable() { return AssignmentStatus.AVAILABLE.equals(this.status); From 4efdf313c8e61b301a87f480697069c0bb3516ea Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 16 Jul 2023 21:38:02 +0300 Subject: [PATCH 15/38] Revise UserAssignment --- .../assignment/model/{Assignment.java => UserAssignment.java} | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) rename src/main/java/com/ays/assignment/model/{Assignment.java => UserAssignment.java} (93%) diff --git a/src/main/java/com/ays/assignment/model/Assignment.java b/src/main/java/com/ays/assignment/model/UserAssignment.java similarity index 93% rename from src/main/java/com/ays/assignment/model/Assignment.java rename to src/main/java/com/ays/assignment/model/UserAssignment.java index f22b49f8f..2af41ca9b 100644 --- a/src/main/java/com/ays/assignment/model/Assignment.java +++ b/src/main/java/com/ays/assignment/model/UserAssignment.java @@ -15,7 +15,7 @@ @Data @EqualsAndHashCode(callSuper = true) @SuperBuilder -public class Assignment extends BaseDomainModel { +public class UserAssignment extends BaseDomainModel { private String id; private String description; @@ -25,6 +25,7 @@ public class Assignment extends BaseDomainModel { private Double latitude; private Double longitude; private AssignmentStatus status; + private User user; private Institution institution; From 99153de3c38d154fe7fd2beab4e2343bfc470e97 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 16 Jul 2023 21:38:42 +0300 Subject: [PATCH 16/38] Revise UserAssignmentListRequest, UserAssignmentResponse and UserAssignmentSearchRequest --- ...mentListRequest.java => UserAssignmentListRequest.java} | 6 +++--- ...cationRequest.java => UserAssignmentSearchRequest.java} | 2 +- ...AssignmentResponse.java => UserAssignmentResponse.java} | 7 ++++--- 3 files changed, 8 insertions(+), 7 deletions(-) rename src/main/java/com/ays/assignment/model/dto/request/{AssignmentListRequest.java => UserAssignmentListRequest.java} (92%) rename src/main/java/com/ays/assignment/model/dto/request/{AssignmentLocationRequest.java => UserAssignmentSearchRequest.java} (79%) rename src/main/java/com/ays/assignment/model/dto/response/{AssignmentResponse.java => UserAssignmentResponse.java} (78%) diff --git a/src/main/java/com/ays/assignment/model/dto/request/AssignmentListRequest.java b/src/main/java/com/ays/assignment/model/dto/request/UserAssignmentListRequest.java similarity index 92% rename from src/main/java/com/ays/assignment/model/dto/request/AssignmentListRequest.java rename to src/main/java/com/ays/assignment/model/dto/request/UserAssignmentListRequest.java index 8c75f0f20..b775b1ed3 100644 --- a/src/main/java/com/ays/assignment/model/dto/request/AssignmentListRequest.java +++ b/src/main/java/com/ays/assignment/model/dto/request/UserAssignmentListRequest.java @@ -19,7 +19,7 @@ */ @Data @Builder -public class AssignmentListRequest extends AysPagingRequest implements AysFilteringRequest { +public class UserAssignmentListRequest extends AysPagingRequest implements AysFilteringRequest { private AssignmentStatus status; @@ -28,8 +28,8 @@ public class AssignmentListRequest extends AysPagingRequest implements AysFilter * * @return true if the assignment status is valid or null, false otherwise. */ - @AssertTrue(message = "IS ASSIGNMENT STATUS NOT VALID") - private boolean isStatusValid() { + @AssertTrue(message = "IS ASSIGNMENT STATUS NOT ACCEPTED") + private boolean isStatusAccepted() { if (this.status == null) { return true; diff --git a/src/main/java/com/ays/assignment/model/dto/request/AssignmentLocationRequest.java b/src/main/java/com/ays/assignment/model/dto/request/UserAssignmentSearchRequest.java similarity index 79% rename from src/main/java/com/ays/assignment/model/dto/request/AssignmentLocationRequest.java rename to src/main/java/com/ays/assignment/model/dto/request/UserAssignmentSearchRequest.java index 4714360b9..2395fbd3e 100644 --- a/src/main/java/com/ays/assignment/model/dto/request/AssignmentLocationRequest.java +++ b/src/main/java/com/ays/assignment/model/dto/request/UserAssignmentSearchRequest.java @@ -5,7 +5,7 @@ @Data @Builder -public class AssignmentLocationRequest { +public class UserAssignmentSearchRequest { private Double latitude; private Double longitude; diff --git a/src/main/java/com/ays/assignment/model/dto/response/AssignmentResponse.java b/src/main/java/com/ays/assignment/model/dto/response/UserAssignmentResponse.java similarity index 78% rename from src/main/java/com/ays/assignment/model/dto/response/AssignmentResponse.java rename to src/main/java/com/ays/assignment/model/dto/response/UserAssignmentResponse.java index a3f8c956a..f9561bab7 100644 --- a/src/main/java/com/ays/assignment/model/dto/response/AssignmentResponse.java +++ b/src/main/java/com/ays/assignment/model/dto/response/UserAssignmentResponse.java @@ -1,7 +1,7 @@ package com.ays.assignment.model.dto.response; import com.ays.common.model.dto.response.BaseResponse; -import com.ays.user.model.User; +import com.ays.user.model.dto.response.UserResponse; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.SuperBuilder; @@ -12,7 +12,7 @@ @Data @EqualsAndHashCode(callSuper = true) @SuperBuilder -public class AssignmentResponse extends BaseResponse { +public class UserAssignmentResponse extends BaseResponse { private String id; private String description; @@ -20,6 +20,7 @@ public class AssignmentResponse extends BaseResponse { private String lastName; private Double longitude; private Double latitude; - private User user; + + private UserResponse user; } From 85639bb33a55cf9dd3260431648e56b8241f0bd0 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 16 Jul 2023 21:39:43 +0300 Subject: [PATCH 17/38] Revise UserAssignmentEntityToAssignmentMapper, UserAssignmentToUserAssignmentEntityMapper, UserAssignmentToUserAssignmentResponseMapper --- .../AssignmentEntityToAssignmentMapper.java | 34 ---------- .../AssignmentToAssignmentEntityMapper.java | 28 --------- ...serAssignmentEntityToAssignmentMapper.java | 63 +++++++++++++++++++ ...ssignmentToUserAssignmentEntityMapper.java | 57 +++++++++++++++++ ...gnmentToUserAssignmentResponseMapper.java} | 12 ++-- 5 files changed, 126 insertions(+), 68 deletions(-) delete mode 100644 src/main/java/com/ays/assignment/model/mapper/AssignmentEntityToAssignmentMapper.java delete mode 100644 src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentEntityMapper.java create mode 100644 src/main/java/com/ays/assignment/model/mapper/UserAssignmentEntityToAssignmentMapper.java create mode 100644 src/main/java/com/ays/assignment/model/mapper/UserAssignmentToUserAssignmentEntityMapper.java rename src/main/java/com/ays/assignment/model/mapper/{AssignmentToAssignmentResponseMapper.java => UserAssignmentToUserAssignmentResponseMapper.java} (62%) diff --git a/src/main/java/com/ays/assignment/model/mapper/AssignmentEntityToAssignmentMapper.java b/src/main/java/com/ays/assignment/model/mapper/AssignmentEntityToAssignmentMapper.java deleted file mode 100644 index 2959e2296..000000000 --- a/src/main/java/com/ays/assignment/model/mapper/AssignmentEntityToAssignmentMapper.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.ays.assignment.model.mapper; - -import com.ays.assignment.model.Assignment; -import com.ays.assignment.model.entity.AssignmentEntity; -import com.ays.common.model.mapper.BaseMapper; -import org.mapstruct.Mapper; -import org.mapstruct.Mapping; -import org.mapstruct.factory.Mappers; - -/** - * AssignmentEntityToAssignmentMapper is an interface that defines the mapping between an {@link AssignmentEntity} and an {@link Assignment}. - * This interface uses the MapStruct annotation @Mapper to generate an implementation of this interface at compile-time. - *

The class provides a static method {@code initialize()} that returns an instance of the generated mapper implementation. - *

The interface extends the MapStruct interface {@link BaseMapper}, which defines basic mapping methods. - * The interface adds no additional mapping methods, but simply defines the types to be used in the mapping process. - */ -@Mapper -public interface AssignmentEntityToAssignmentMapper extends BaseMapper { - - @Override - @Mapping(target = "phoneNumber.countryCode", source = "source.countryCode") - @Mapping(target = "phoneNumber.lineNumber", source = "source.lineNumber") - Assignment map(AssignmentEntity source); - - /** - * Initializes the mapper. - * - * @return the initialized mapper object. - */ - static AssignmentEntityToAssignmentMapper initialize() { - return Mappers.getMapper(AssignmentEntityToAssignmentMapper.class); - } - -} diff --git a/src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentEntityMapper.java b/src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentEntityMapper.java deleted file mode 100644 index ab843ab7f..000000000 --- a/src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentEntityMapper.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.ays.assignment.model.mapper; - -import com.ays.assignment.model.Assignment; -import com.ays.assignment.model.entity.AssignmentEntity; -import com.ays.common.model.mapper.BaseMapper; -import org.mapstruct.Mapper; -import org.mapstruct.factory.Mappers; - -/** - * AssignmentToAssignmentEntityMapper is an interface that defines the mapping between an {@link Assignment} and an {@link AssignmentEntity}. - * This interface uses the MapStruct annotation @Mapper to generate an implementation of this interface at compile-time. - *

The class provides a static method {@code initialize()} that returns an instance of the generated mapper implementation. - *

The interface extends the MapStruct interface {@link BaseMapper}, which defines basic mapping methods. - * The interface adds no additional mapping methods, but simply defines the types to be used in the mapping process. - */ -@Mapper -public interface AssignmentToAssignmentEntityMapper extends BaseMapper { - - /** - * Initializes the mapper. - * - * @return the initialized mapper object. - */ - static AssignmentToAssignmentEntityMapper initialize() { - return Mappers.getMapper(AssignmentToAssignmentEntityMapper.class); - } - -} diff --git a/src/main/java/com/ays/assignment/model/mapper/UserAssignmentEntityToAssignmentMapper.java b/src/main/java/com/ays/assignment/model/mapper/UserAssignmentEntityToAssignmentMapper.java new file mode 100644 index 000000000..301fdaf85 --- /dev/null +++ b/src/main/java/com/ays/assignment/model/mapper/UserAssignmentEntityToAssignmentMapper.java @@ -0,0 +1,63 @@ +package com.ays.assignment.model.mapper; + +import com.ays.assignment.model.UserAssignment; +import com.ays.assignment.model.entity.UserAssignmentEntity; +import com.ays.common.model.mapper.BaseMapper; +import org.locationtech.jts.geom.Point; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +import java.util.Optional; + +/** + * UserAssignmentEntityToAssignmentMapper is an interface that defines the mapping between an {@link UserAssignmentEntity} and an {@link UserAssignment}. + * This interface uses the MapStruct annotation @Mapper to generate an implementation of this interface at compile-time. + *

The class provides a static method {@code initialize()} that returns an instance of the generated mapper implementation. + *

The interface extends the MapStruct interface {@link BaseMapper}, which defines basic mapping methods. + * The interface adds no additional mapping methods, but simply defines the types to be used in the mapping process. + */ +@Mapper +public interface UserAssignmentEntityToAssignmentMapper extends BaseMapper { + + @Override + @Mapping(target = "phoneNumber.countryCode", source = "source.countryCode") + @Mapping(target = "phoneNumber.lineNumber", source = "source.lineNumber") + @Mapping(target = "latitude", expression = "java(mapToLatitude(source.getPoint()))") + @Mapping(target = "longitude", expression = "java(mapToLongitude(source.getPoint()))") + UserAssignment map(UserAssignmentEntity source); + + /** + * Initializes the mapper. + * + * @return the initialized mapper object. + */ + static UserAssignmentEntityToAssignmentMapper initialize() { + return Mappers.getMapper(UserAssignmentEntityToAssignmentMapper.class); + } + + /** + * Maps a Point object to latitude. + * + * @param point The Point object. + * @return The latitude coordinate. + */ + default Double mapToLatitude(Point point) { + return Optional.ofNullable(point) + .map(Point::getY) + .orElse(null); + } + + /** + * Maps a Point object to longitude. + * + * @param point The Point object. + * @return The longitude coordinate. + */ + default Double mapToLongitude(Point point) { + return Optional.ofNullable(point) + .map(Point::getX) + .orElse(null); + } + +} diff --git a/src/main/java/com/ays/assignment/model/mapper/UserAssignmentToUserAssignmentEntityMapper.java b/src/main/java/com/ays/assignment/model/mapper/UserAssignmentToUserAssignmentEntityMapper.java new file mode 100644 index 000000000..318892959 --- /dev/null +++ b/src/main/java/com/ays/assignment/model/mapper/UserAssignmentToUserAssignmentEntityMapper.java @@ -0,0 +1,57 @@ +package com.ays.assignment.model.mapper; + +import com.ays.assignment.model.UserAssignment; +import com.ays.assignment.model.entity.UserAssignmentEntity; +import com.ays.common.model.mapper.BaseMapper; +import org.locationtech.jts.geom.Coordinate; +import org.locationtech.jts.geom.GeometryFactory; +import org.locationtech.jts.geom.Point; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +/** + * UserAssignmentToUserAssignmentEntityMapper is an interface that defines the mapping between an {@link UserAssignment} and an {@link UserAssignmentEntity}. + * This interface uses the MapStruct annotation @Mapper to generate an implementation of this interface at compile-time. + *

The class provides a static method {@code initialize()} that returns an instance of the generated mapper implementation. + *

The interface extends the MapStruct interface {@link BaseMapper}, which defines basic mapping methods. + * The interface adds no additional mapping methods, but simply defines the types to be used in the mapping process. + */ +@Mapper +public interface UserAssignmentToUserAssignmentEntityMapper extends BaseMapper { + + /** + * Maps UserAssignment to UserAssignmentEntity. + * + * @param userAssignment the UserAssignment object + * @return the mapped UserAssignmentEntity object + */ + @Mapping(target = "point", expression = "java(mapToPoint(userAssignment.getLatitude(), userAssignment.getLongitude()))") + UserAssignmentEntity map(UserAssignment userAssignment); + + + /** + * Initializes the mapper. + * + * @return the initialized mapper object. + */ + static UserAssignmentToUserAssignmentEntityMapper initialize() { + return Mappers.getMapper(UserAssignmentToUserAssignmentEntityMapper.class); + } + + /** + * Maps latitude and longitude to the point field. + * + * @param latitude the latitude value + * @param longitude the longitude value + * @return the mapped Point object + */ + default Point mapToPoint(Double latitude, Double longitude) { + if (latitude != null && longitude != null) { + Coordinate coordinate = new Coordinate(latitude, longitude); + GeometryFactory geometryFactory = new GeometryFactory(); + return geometryFactory.createPoint(coordinate); + } + return null; + } +} diff --git a/src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentResponseMapper.java b/src/main/java/com/ays/assignment/model/mapper/UserAssignmentToUserAssignmentResponseMapper.java similarity index 62% rename from src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentResponseMapper.java rename to src/main/java/com/ays/assignment/model/mapper/UserAssignmentToUserAssignmentResponseMapper.java index 2739a28f7..3692ba3c6 100644 --- a/src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentResponseMapper.java +++ b/src/main/java/com/ays/assignment/model/mapper/UserAssignmentToUserAssignmentResponseMapper.java @@ -1,28 +1,28 @@ package com.ays.assignment.model.mapper; -import com.ays.assignment.model.Assignment; -import com.ays.assignment.model.dto.response.AssignmentResponse; +import com.ays.assignment.model.UserAssignment; +import com.ays.assignment.model.dto.response.UserAssignmentResponse; import com.ays.common.model.mapper.BaseMapper; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; /** - * AssignmentToAssignmentResponseMapper is an interface that defines the mapping between an {@link Assignment} and an {@link AssignmentResponse}. + * AssignmentToAssignmentResponseMapper is an interface that defines the mapping between an {@link UserAssignment} and an {@link UserAssignmentResponse}. * This interface uses the MapStruct annotation @Mapper to generate an implementation of this interface at compile-time. *

The class provides a static method {@code initialize()} that returns an instance of the generated mapper implementation. *

The interface extends the MapStruct interface {@link BaseMapper}, which defines basic mapping methods. * The interface adds no additional mapping methods, but simply defines the types to be used in the mapping process. */ @Mapper -public interface AssignmentToAssignmentResponseMapper extends BaseMapper { +public interface UserAssignmentToUserAssignmentResponseMapper extends BaseMapper { /** * Initializes the mapper. * * @return the initialized mapper object. */ - static AssignmentToAssignmentResponseMapper initialize() { - return Mappers.getMapper(AssignmentToAssignmentResponseMapper.class); + static UserAssignmentToUserAssignmentResponseMapper initialize() { + return Mappers.getMapper(UserAssignmentToUserAssignmentResponseMapper.class); } } From 12ab3cafe6bc4a5b5be38073eaef2bedeaf39257 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 16 Jul 2023 21:39:59 +0300 Subject: [PATCH 18/38] Revise UserLocationEntity --- .../entity/{LocationEntity.java => UserLocationEntity.java} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename src/main/java/com/ays/location/model/entity/{LocationEntity.java => UserLocationEntity.java} (90%) diff --git a/src/main/java/com/ays/location/model/entity/LocationEntity.java b/src/main/java/com/ays/location/model/entity/UserLocationEntity.java similarity index 90% rename from src/main/java/com/ays/location/model/entity/LocationEntity.java rename to src/main/java/com/ays/location/model/entity/UserLocationEntity.java index a14164123..f1c02417c 100644 --- a/src/main/java/com/ays/location/model/entity/LocationEntity.java +++ b/src/main/java/com/ays/location/model/entity/UserLocationEntity.java @@ -22,7 +22,7 @@ @NoArgsConstructor @AllArgsConstructor @Table(name = "AYS_USER_LOCATION") -public class LocationEntity extends BaseEntity { +public class UserLocationEntity extends BaseEntity { @Id @Column(name = "ID") @@ -32,7 +32,7 @@ public class LocationEntity extends BaseEntity { @Column(name = "USER_ID") private String userId; - @Column(name = "POINT", columnDefinition = "geometry(Point,4326)") + @Column(name = "POINT", columnDefinition = "ST_GeomFromText(Point, 4326)") private Point point; @OneToOne From 3ce1bbcdd993c43e13e5b84c4e0a9c867d78ace7 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 16 Jul 2023 21:40:09 +0300 Subject: [PATCH 19/38] Revise UserLocationRequest --- .../{LocationUserRequest.java => UserLocationRequest.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/main/java/com/ays/location/model/dto/request/{LocationUserRequest.java => UserLocationRequest.java} (95%) diff --git a/src/main/java/com/ays/location/model/dto/request/LocationUserRequest.java b/src/main/java/com/ays/location/model/dto/request/UserLocationRequest.java similarity index 95% rename from src/main/java/com/ays/location/model/dto/request/LocationUserRequest.java rename to src/main/java/com/ays/location/model/dto/request/UserLocationRequest.java index c14069fb2..32396e239 100644 --- a/src/main/java/com/ays/location/model/dto/request/LocationUserRequest.java +++ b/src/main/java/com/ays/location/model/dto/request/UserLocationRequest.java @@ -14,7 +14,7 @@ */ @Data @Builder -public class LocationUserRequest { +public class UserLocationRequest { private Double latitude; private Double longitude; From 9295a0c487319dc36e0e05b5916af1675ae1b25a Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 16 Jul 2023 21:40:24 +0300 Subject: [PATCH 20/38] Revise AysUserLocationNotExistByIdException --- ...ption.java => AysUserLocationNotExistByIdException.java} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename src/main/java/com/ays/location/util/exception/{AysLocationNotExistByIdException.java => AysUserLocationNotExistByIdException.java} (73%) diff --git a/src/main/java/com/ays/location/util/exception/AysLocationNotExistByIdException.java b/src/main/java/com/ays/location/util/exception/AysUserLocationNotExistByIdException.java similarity index 73% rename from src/main/java/com/ays/location/util/exception/AysLocationNotExistByIdException.java rename to src/main/java/com/ays/location/util/exception/AysUserLocationNotExistByIdException.java index 3f5122660..99329643e 100644 --- a/src/main/java/com/ays/location/util/exception/AysLocationNotExistByIdException.java +++ b/src/main/java/com/ays/location/util/exception/AysUserLocationNotExistByIdException.java @@ -7,7 +7,7 @@ /** * Exception to be thrown when a location with a given ID does not exist. */ -public class AysLocationNotExistByIdException extends AysNotExistException { +public class AysUserLocationNotExistByIdException extends AysNotExistException { /** * Unique serial version ID. @@ -20,8 +20,8 @@ public class AysLocationNotExistByIdException extends AysNotExistException { * * @param id the ID of the location that does not exist */ - public AysLocationNotExistByIdException(String id) { - super("LOCATION NOT EXIST! id:" + id); + public AysUserLocationNotExistByIdException(String id) { + super("USER LOCATION NOT EXIST! id:" + id); } } From 94571efc47426cfc95e40911a38fc37f00e6cec4 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 16 Jul 2023 21:40:57 +0300 Subject: [PATCH 21/38] Revise LocationEntityToLocationMapper and LocationToLocationEntityMapper --- .../model/mapper/LocationEntityToLocationMapper.java | 6 +++--- .../model/mapper/LocationToLocationEntityMapper.java | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/ays/location/model/mapper/LocationEntityToLocationMapper.java b/src/main/java/com/ays/location/model/mapper/LocationEntityToLocationMapper.java index 649734225..f57b8e48a 100644 --- a/src/main/java/com/ays/location/model/mapper/LocationEntityToLocationMapper.java +++ b/src/main/java/com/ays/location/model/mapper/LocationEntityToLocationMapper.java @@ -2,19 +2,19 @@ import com.ays.common.model.mapper.BaseMapper; import com.ays.location.model.Location; -import com.ays.location.model.entity.LocationEntity; +import com.ays.location.model.entity.UserLocationEntity; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; /** - * LocationEntityToLocationMapper is an interface that defines the mapping between an {@link LocationEntity} and an {@link Location}. + * LocationEntityToLocationMapper is an interface that defines the mapping between an {@link UserLocationEntity} and an {@link Location}. * This interface uses the MapStruct annotation @Mapper to generate an implementation of this interface at compile-time. *

The class provides a static method {@code initialize()} that returns an instance of the generated mapper implementation. *

The interface extends the MapStruct interface {@link BaseMapper}, which defines basic mapping methods. * The interface adds no additional mapping methods, but simply defines the types to be used in the mapping process. */ @Mapper -public interface LocationEntityToLocationMapper extends BaseMapper { +public interface LocationEntityToLocationMapper extends BaseMapper { /** * Initializes the mapper. diff --git a/src/main/java/com/ays/location/model/mapper/LocationToLocationEntityMapper.java b/src/main/java/com/ays/location/model/mapper/LocationToLocationEntityMapper.java index 5d9107e58..8ea3374e0 100644 --- a/src/main/java/com/ays/location/model/mapper/LocationToLocationEntityMapper.java +++ b/src/main/java/com/ays/location/model/mapper/LocationToLocationEntityMapper.java @@ -2,19 +2,19 @@ import com.ays.common.model.mapper.BaseMapper; import com.ays.location.model.Location; -import com.ays.location.model.entity.LocationEntity; +import com.ays.location.model.entity.UserLocationEntity; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; /** - * LocationToLocationEntityMapper is an interface that defines the mapping between an {@link Location} and an {@link LocationEntity}. + * LocationToLocationEntityMapper is an interface that defines the mapping between an {@link Location} and an {@link UserLocationEntity}. * This interface uses the MapStruct annotation @Mapper to generate an implementation of this interface at compile-time. *

The class provides a static method {@code initialize()} that returns an instance of the generated mapper implementation. *

The interface extends the MapStruct interface {@link BaseMapper}, which defines basic mapping methods. * The interface adds no additional mapping methods, but simply defines the types to be used in the mapping process. */ @Mapper -public interface LocationToLocationEntityMapper extends BaseMapper { +public interface LocationToLocationEntityMapper extends BaseMapper { /** * Initializes the mapper. From d02cafde673948d0d27c3fdecd25bc42753adbf8 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 16 Jul 2023 21:44:31 +0300 Subject: [PATCH 22/38] Revise UserLocation --- .../com/ays/location/model/{Location.java => UserLocation.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/main/java/com/ays/location/model/{Location.java => UserLocation.java} (88%) diff --git a/src/main/java/com/ays/location/model/Location.java b/src/main/java/com/ays/location/model/UserLocation.java similarity index 88% rename from src/main/java/com/ays/location/model/Location.java rename to src/main/java/com/ays/location/model/UserLocation.java index 73d8e0371..960042711 100644 --- a/src/main/java/com/ays/location/model/Location.java +++ b/src/main/java/com/ays/location/model/UserLocation.java @@ -12,7 +12,7 @@ @Data @EqualsAndHashCode(callSuper = true) @SuperBuilder -public class Location extends BaseDomainModel { +public class UserLocation extends BaseDomainModel { private Long id; private Point point; From ea00b74f68bfd059b9f477cc62dd7f145f79e86b Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 16 Jul 2023 21:44:54 +0300 Subject: [PATCH 23/38] Revise UserAssignmentRepository and UserLocationRepository --- .../assignment/repository/AssignmentRepository.java | 11 ----------- .../repository/UserAssignmentRepository.java | 11 +++++++++++ ...ionRepository.java => UserLocationRepository.java} | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) delete mode 100644 src/main/java/com/ays/assignment/repository/AssignmentRepository.java create mode 100644 src/main/java/com/ays/assignment/repository/UserAssignmentRepository.java rename src/main/java/com/ays/location/repository/{LocationRepository.java => UserLocationRepository.java} (56%) diff --git a/src/main/java/com/ays/assignment/repository/AssignmentRepository.java b/src/main/java/com/ays/assignment/repository/AssignmentRepository.java deleted file mode 100644 index e7b0ea2c5..000000000 --- a/src/main/java/com/ays/assignment/repository/AssignmentRepository.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.ays.assignment.repository; - -import com.ays.assignment.model.entity.AssignmentEntity; -import org.springframework.data.jpa.repository.JpaRepository; - -/** - * Repository interface for performing CRUD operations on AssignmentEntity objects. - */ -public interface AssignmentRepository extends JpaRepository { - -} diff --git a/src/main/java/com/ays/assignment/repository/UserAssignmentRepository.java b/src/main/java/com/ays/assignment/repository/UserAssignmentRepository.java new file mode 100644 index 000000000..4a42fb0f1 --- /dev/null +++ b/src/main/java/com/ays/assignment/repository/UserAssignmentRepository.java @@ -0,0 +1,11 @@ +package com.ays.assignment.repository; + +import com.ays.assignment.model.entity.UserAssignmentEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Repository interface for performing CRUD operations on UserAssignmentEntity objects. + */ +public interface UserAssignmentRepository extends JpaRepository { + +} diff --git a/src/main/java/com/ays/location/repository/LocationRepository.java b/src/main/java/com/ays/location/repository/UserLocationRepository.java similarity index 56% rename from src/main/java/com/ays/location/repository/LocationRepository.java rename to src/main/java/com/ays/location/repository/UserLocationRepository.java index 7aa0ec5b0..4b9bbabdf 100644 --- a/src/main/java/com/ays/location/repository/LocationRepository.java +++ b/src/main/java/com/ays/location/repository/UserLocationRepository.java @@ -1,11 +1,11 @@ package com.ays.location.repository; -import com.ays.location.model.entity.LocationEntity; +import com.ays.location.model.entity.UserLocationEntity; import org.springframework.data.jpa.repository.JpaRepository; /** * Repository interface for performing CRUD operations on LocationEntity objects. */ -public interface LocationRepository extends JpaRepository { +public interface UserLocationRepository extends JpaRepository { } From 4c34c1d961c97b315a8bacf74950860c3b4fc908 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 16 Jul 2023 21:45:20 +0300 Subject: [PATCH 24/38] Revise UserLocationEntityToUserLocationMapper and UserLocationToUserLocationEntityMapper --- ...ava => UserLocationEntityToUserLocationMapper.java} | 10 +++++----- ...ava => UserLocationToUserLocationEntityMapper.java} | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) rename src/main/java/com/ays/location/model/mapper/{LocationEntityToLocationMapper.java => UserLocationEntityToUserLocationMapper.java} (69%) rename src/main/java/com/ays/location/model/mapper/{LocationToLocationEntityMapper.java => UserLocationToUserLocationEntityMapper.java} (69%) diff --git a/src/main/java/com/ays/location/model/mapper/LocationEntityToLocationMapper.java b/src/main/java/com/ays/location/model/mapper/UserLocationEntityToUserLocationMapper.java similarity index 69% rename from src/main/java/com/ays/location/model/mapper/LocationEntityToLocationMapper.java rename to src/main/java/com/ays/location/model/mapper/UserLocationEntityToUserLocationMapper.java index f57b8e48a..23a100574 100644 --- a/src/main/java/com/ays/location/model/mapper/LocationEntityToLocationMapper.java +++ b/src/main/java/com/ays/location/model/mapper/UserLocationEntityToUserLocationMapper.java @@ -1,28 +1,28 @@ package com.ays.location.model.mapper; import com.ays.common.model.mapper.BaseMapper; -import com.ays.location.model.Location; +import com.ays.location.model.UserLocation; import com.ays.location.model.entity.UserLocationEntity; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; /** - * LocationEntityToLocationMapper is an interface that defines the mapping between an {@link UserLocationEntity} and an {@link Location}. + * LocationEntityToLocationMapper is an interface that defines the mapping between an {@link UserLocationEntity} and an {@link UserLocation}. * This interface uses the MapStruct annotation @Mapper to generate an implementation of this interface at compile-time. *

The class provides a static method {@code initialize()} that returns an instance of the generated mapper implementation. *

The interface extends the MapStruct interface {@link BaseMapper}, which defines basic mapping methods. * The interface adds no additional mapping methods, but simply defines the types to be used in the mapping process. */ @Mapper -public interface LocationEntityToLocationMapper extends BaseMapper { +public interface UserLocationEntityToUserLocationMapper extends BaseMapper { /** * Initializes the mapper. * * @return the initialized mapper object. */ - static LocationEntityToLocationMapper initialize() { - return Mappers.getMapper(LocationEntityToLocationMapper.class); + static UserLocationEntityToUserLocationMapper initialize() { + return Mappers.getMapper(UserLocationEntityToUserLocationMapper.class); } } diff --git a/src/main/java/com/ays/location/model/mapper/LocationToLocationEntityMapper.java b/src/main/java/com/ays/location/model/mapper/UserLocationToUserLocationEntityMapper.java similarity index 69% rename from src/main/java/com/ays/location/model/mapper/LocationToLocationEntityMapper.java rename to src/main/java/com/ays/location/model/mapper/UserLocationToUserLocationEntityMapper.java index 8ea3374e0..a3f8965b3 100644 --- a/src/main/java/com/ays/location/model/mapper/LocationToLocationEntityMapper.java +++ b/src/main/java/com/ays/location/model/mapper/UserLocationToUserLocationEntityMapper.java @@ -1,28 +1,28 @@ package com.ays.location.model.mapper; import com.ays.common.model.mapper.BaseMapper; -import com.ays.location.model.Location; +import com.ays.location.model.UserLocation; import com.ays.location.model.entity.UserLocationEntity; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; /** - * LocationToLocationEntityMapper is an interface that defines the mapping between an {@link Location} and an {@link UserLocationEntity}. + * LocationToLocationEntityMapper is an interface that defines the mapping between an {@link UserLocation} and an {@link UserLocationEntity}. * This interface uses the MapStruct annotation @Mapper to generate an implementation of this interface at compile-time. *

The class provides a static method {@code initialize()} that returns an instance of the generated mapper implementation. *

The interface extends the MapStruct interface {@link BaseMapper}, which defines basic mapping methods. * The interface adds no additional mapping methods, but simply defines the types to be used in the mapping process. */ @Mapper -public interface LocationToLocationEntityMapper extends BaseMapper { +public interface UserLocationToUserLocationEntityMapper extends BaseMapper { /** * Initializes the mapper. * * @return the initialized mapper object. */ - static LocationToLocationEntityMapper initialize() { - return Mappers.getMapper(LocationToLocationEntityMapper.class); + static UserLocationToUserLocationEntityMapper initialize() { + return Mappers.getMapper(UserLocationToUserLocationEntityMapper.class); } } From 4581f1fc7b6277b36b2d397e342d05427a6f8ab7 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Mon, 17 Jul 2023 00:27:40 +0300 Subject: [PATCH 25/38] Revise Java Docs for Assignment domain --- .../java/com/ays/assignment/model/UserAssignment.java | 2 +- .../model/dto/request/UserAssignmentListRequest.java | 2 +- .../model/dto/request/UserAssignmentSearchRequest.java | 9 +++++++++ .../model/dto/response/UserAssignmentResponse.java | 2 +- .../assignment/model/entity/UserAssignmentEntity.java | 2 +- ...va => AysUserAssignmentAlreadyAssignedException.java} | 6 +++--- ...a => AysUserAssignmentAlreadyAvailableException.java} | 6 +++--- ...n.java => AysUserAssignmentAlreadyDoneException.java} | 6 +++--- ... => AysUserAssignmentAlreadyInProgressException.java} | 6 +++--- ...va => AysUserAssignmentAlreadyReservedException.java} | 6 +++--- ....java => AysUserAssignmentNotExistByIdException.java} | 6 +++--- 11 files changed, 31 insertions(+), 22 deletions(-) rename src/main/java/com/ays/assignment/util/exception/{AysAssignmentAlreadyAssignedException.java => AysUserAssignmentAlreadyAssignedException.java} (65%) rename src/main/java/com/ays/assignment/util/exception/{AysAssignmentAlreadyAvailableException.java => AysUserAssignmentAlreadyAvailableException.java} (63%) rename src/main/java/com/ays/assignment/util/exception/{AysAssignmentAlreadyDoneException.java => AysUserAssignmentAlreadyDoneException.java} (64%) rename src/main/java/com/ays/assignment/util/exception/{AysAssignmentAlreadyInProgressException.java => AysUserAssignmentAlreadyInProgressException.java} (63%) rename src/main/java/com/ays/assignment/util/exception/{AysAssignmentAlreadyReservedException.java => AysUserAssignmentAlreadyReservedException.java} (64%) rename src/main/java/com/ays/assignment/util/exception/{AysAssignmentNotExistByIdException.java => AysUserAssignmentNotExistByIdException.java} (69%) diff --git a/src/main/java/com/ays/assignment/model/UserAssignment.java b/src/main/java/com/ays/assignment/model/UserAssignment.java index 2af41ca9b..d281f5535 100644 --- a/src/main/java/com/ays/assignment/model/UserAssignment.java +++ b/src/main/java/com/ays/assignment/model/UserAssignment.java @@ -10,7 +10,7 @@ import lombok.experimental.SuperBuilder; /** - * Assignment Domain Model to perform data transfer from service layer to controller + * User Assignment Domain Model to perform data transfer from service layer to controller */ @Data @EqualsAndHashCode(callSuper = true) diff --git a/src/main/java/com/ays/assignment/model/dto/request/UserAssignmentListRequest.java b/src/main/java/com/ays/assignment/model/dto/request/UserAssignmentListRequest.java index b775b1ed3..66dbaf95a 100644 --- a/src/main/java/com/ays/assignment/model/dto/request/UserAssignmentListRequest.java +++ b/src/main/java/com/ays/assignment/model/dto/request/UserAssignmentListRequest.java @@ -14,7 +14,7 @@ import java.util.Set; /** - * Represents a request object for fetching a list of assignment with pagination,sorting and filtering options + * Represents a request object for fetching a list of user assignment with pagination,sorting and filtering options * This class extends the {@link AysPagingRequest} class and adds additional validation rules for sorting. */ @Data diff --git a/src/main/java/com/ays/assignment/model/dto/request/UserAssignmentSearchRequest.java b/src/main/java/com/ays/assignment/model/dto/request/UserAssignmentSearchRequest.java index 2395fbd3e..83e831259 100644 --- a/src/main/java/com/ays/assignment/model/dto/request/UserAssignmentSearchRequest.java +++ b/src/main/java/com/ays/assignment/model/dto/request/UserAssignmentSearchRequest.java @@ -3,6 +3,15 @@ import lombok.Builder; import lombok.Data; +/** + * A DTO class representing the request data for searching assignment with respect to user's location. + *

+ * This class provides getters and setters for the latitude, and longitude fields. + * It also includes a builder pattern implementation for constructing instances of this class with optional parameters. + *

+ * The purpose of this class is to encapsulate the request data related to searching assignment with respect to user's location, allowing for easy + * transfer of the data between different layers of the application. + */ @Data @Builder public class UserAssignmentSearchRequest { diff --git a/src/main/java/com/ays/assignment/model/dto/response/UserAssignmentResponse.java b/src/main/java/com/ays/assignment/model/dto/response/UserAssignmentResponse.java index f9561bab7..ad1683a14 100644 --- a/src/main/java/com/ays/assignment/model/dto/response/UserAssignmentResponse.java +++ b/src/main/java/com/ays/assignment/model/dto/response/UserAssignmentResponse.java @@ -7,7 +7,7 @@ import lombok.experimental.SuperBuilder; /** - * A DTO (Data Transfer Object) representing a list of assignment in a paginated response. + * A DTO (Data Transfer Object) representing a list of user assignment in a paginated response. */ @Data @EqualsAndHashCode(callSuper = true) diff --git a/src/main/java/com/ays/assignment/model/entity/UserAssignmentEntity.java b/src/main/java/com/ays/assignment/model/entity/UserAssignmentEntity.java index 3cc2ce4f5..68a8f60dd 100644 --- a/src/main/java/com/ays/assignment/model/entity/UserAssignmentEntity.java +++ b/src/main/java/com/ays/assignment/model/entity/UserAssignmentEntity.java @@ -15,7 +15,7 @@ import org.locationtech.jts.geom.Point; /** - * Assignment entity, which holds the information regarding assignment. + * User Assignment entity, which holds the information regarding assignment. */ @Entity @Data diff --git a/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyAssignedException.java b/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyAssignedException.java similarity index 65% rename from src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyAssignedException.java rename to src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyAssignedException.java index 8a7b4bc9d..1da26366c 100644 --- a/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyAssignedException.java +++ b/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyAssignedException.java @@ -5,9 +5,9 @@ import java.io.Serial; /** - * Exception thrown when an assignment is assigned and attempting to perform an action that requires an assigned assignment. + * Exception thrown when a user assignment is assigned and attempting to perform an action that requires an assigned assignment. */ -public class AysAssignmentAlreadyAssignedException extends AysAlreadyException { +public class AysUserAssignmentAlreadyAssignedException extends AysAlreadyException { /** * Unique identifier for serialization. @@ -20,7 +20,7 @@ public class AysAssignmentAlreadyAssignedException extends AysAlreadyException { * * @param id the id of the assignment which is already assigned */ - public AysAssignmentAlreadyAssignedException(String id) { + public AysUserAssignmentAlreadyAssignedException(String id) { super("ASSIGNMENT IS ALREADY ASSIGNED! id:" + id); } diff --git a/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyAvailableException.java b/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyAvailableException.java similarity index 63% rename from src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyAvailableException.java rename to src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyAvailableException.java index e6c5ad387..a30f943b3 100644 --- a/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyAvailableException.java +++ b/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyAvailableException.java @@ -5,9 +5,9 @@ import java.io.Serial; /** - * Exception thrown when an assignment is available and attempting to perform an action that requires an assignment which is already available. + * Exception thrown when a user assignment is available and attempting to perform an action that requires an assignment which is already available. */ -public class AysAssignmentAlreadyAvailableException extends AysAlreadyException { +public class AysUserAssignmentAlreadyAvailableException extends AysAlreadyException { /** * Unique identifier for serialization. @@ -20,7 +20,7 @@ public class AysAssignmentAlreadyAvailableException extends AysAlreadyException * * @param id the id of the assignment which is already available */ - public AysAssignmentAlreadyAvailableException(String id) { + public AysUserAssignmentAlreadyAvailableException(String id) { super("ASSIGNMENT IS ALREADY AVAILABLE! id:" + id); } diff --git a/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyDoneException.java b/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyDoneException.java similarity index 64% rename from src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyDoneException.java rename to src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyDoneException.java index e4395f36d..2b1032baa 100644 --- a/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyDoneException.java +++ b/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyDoneException.java @@ -5,9 +5,9 @@ import java.io.Serial; /** - * Exception thrown when an assignment is done and attempting to perform an action that requires an assignment which is already done. + * Exception thrown when a user assignment is done and attempting to perform an action that requires an assignment which is already done. */ -public class AysAssignmentAlreadyDoneException extends AysAlreadyException { +public class AysUserAssignmentAlreadyDoneException extends AysAlreadyException { /** * Unique identifier for serialization. @@ -20,7 +20,7 @@ public class AysAssignmentAlreadyDoneException extends AysAlreadyException { * * @param id the id of the assignment which is already done */ - public AysAssignmentAlreadyDoneException(String id) { + public AysUserAssignmentAlreadyDoneException(String id) { super("ASSIGNMENT IS ALREADY DONE! id:" + id); } diff --git a/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyInProgressException.java b/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyInProgressException.java similarity index 63% rename from src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyInProgressException.java rename to src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyInProgressException.java index de1974f5a..fdf88744f 100644 --- a/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyInProgressException.java +++ b/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyInProgressException.java @@ -5,9 +5,9 @@ import java.io.Serial; /** - * Exception thrown when an assignment is in progress and attempting to perform an action that requires an assignment which is already in progress. + * Exception thrown when a user assignment is in progress and attempting to perform an action that requires an assignment which is already in progress. */ -public class AysAssignmentAlreadyInProgressException extends AysAlreadyException { +public class AysUserAssignmentAlreadyInProgressException extends AysAlreadyException { /** * Unique identifier for serialization. @@ -20,7 +20,7 @@ public class AysAssignmentAlreadyInProgressException extends AysAlreadyException * * @param id the id of the assignment which is already in progress */ - public AysAssignmentAlreadyInProgressException(String id) { + public AysUserAssignmentAlreadyInProgressException(String id) { super("ASSIGNMENT IS ALREADY IN PROGRESS! id:" + id); } diff --git a/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyReservedException.java b/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyReservedException.java similarity index 64% rename from src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyReservedException.java rename to src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyReservedException.java index 0eaa11a2c..2e3d8d1c4 100644 --- a/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyReservedException.java +++ b/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyReservedException.java @@ -5,9 +5,9 @@ import java.io.Serial; /** - * Exception thrown when an assignment is reserved and attempting to perform an action that requires an assignment which is already reserved. + * Exception thrown when a user assignment is reserved and attempting to perform an action that requires an assignment which is already reserved. */ -public class AysAssignmentAlreadyReservedException extends AysAlreadyException { +public class AysUserAssignmentAlreadyReservedException extends AysAlreadyException { /** * Unique identifier for serialization. @@ -20,7 +20,7 @@ public class AysAssignmentAlreadyReservedException extends AysAlreadyException { * * @param id the id of the assignment which is already reserved */ - public AysAssignmentAlreadyReservedException(String id) { + public AysUserAssignmentAlreadyReservedException(String id) { super("ASSIGNMENT IS ALREADY RESERVED! id:" + id); } } diff --git a/src/main/java/com/ays/assignment/util/exception/AysAssignmentNotExistByIdException.java b/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentNotExistByIdException.java similarity index 69% rename from src/main/java/com/ays/assignment/util/exception/AysAssignmentNotExistByIdException.java rename to src/main/java/com/ays/assignment/util/exception/AysUserAssignmentNotExistByIdException.java index e213017bb..889088020 100644 --- a/src/main/java/com/ays/assignment/util/exception/AysAssignmentNotExistByIdException.java +++ b/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentNotExistByIdException.java @@ -5,9 +5,9 @@ import java.io.Serial; /** - * Exception to be thrown when an assignment with a given ID does not exist. + * Exception to be thrown when a user assignment with a given ID does not exist. */ -public class AysAssignmentNotExistByIdException extends AysNotExistException { +public class AysUserAssignmentNotExistByIdException extends AysNotExistException { /** * Unique serial version ID. @@ -20,7 +20,7 @@ public class AysAssignmentNotExistByIdException extends AysNotExistException { * * @param id the ID of the assignment that does not exist */ - public AysAssignmentNotExistByIdException(String id) { + public AysUserAssignmentNotExistByIdException(String id) { super("ASSIGNMENT NOT EXIST! id:" + id); } From 120122664c4f49716fd7ca612de915e0ace935ae Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Mon, 17 Jul 2023 00:28:41 +0300 Subject: [PATCH 26/38] Revise Java Docs for Location domain --- .../ays/location/model/dto/request/UserLocationRequest.java | 4 ++-- .../com/ays/location/model/entity/UserLocationEntity.java | 2 +- .../model/mapper/UserLocationEntityToUserLocationMapper.java | 2 +- .../model/mapper/UserLocationToUserLocationEntityMapper.java | 2 +- .../com/ays/location/repository/UserLocationRepository.java | 2 +- .../util/exception/AysUserLocationNotExistByIdException.java | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/ays/location/model/dto/request/UserLocationRequest.java b/src/main/java/com/ays/location/model/dto/request/UserLocationRequest.java index 32396e239..499bca3f0 100644 --- a/src/main/java/com/ays/location/model/dto/request/UserLocationRequest.java +++ b/src/main/java/com/ays/location/model/dto/request/UserLocationRequest.java @@ -4,12 +4,12 @@ import lombok.Data; /** - * A DTO class representing the request data for assigning an assignment as reserved to user. + * A DTO class representing the request data for updating user location. *

* This class provides getters and setters for the latitude, and longitude fields. * It also includes a builder pattern implementation for constructing instances of this class with optional parameters. *

- * The purpose of this class is to encapsulate the request data related to asigning an assignment as reserved to user, allowing for easy + * The purpose of this class is to encapsulate the request data related to updating user location, allowing for easy * transfer of the data between different layers of the application. */ @Data diff --git a/src/main/java/com/ays/location/model/entity/UserLocationEntity.java b/src/main/java/com/ays/location/model/entity/UserLocationEntity.java index f1c02417c..c24064206 100644 --- a/src/main/java/com/ays/location/model/entity/UserLocationEntity.java +++ b/src/main/java/com/ays/location/model/entity/UserLocationEntity.java @@ -13,7 +13,7 @@ import org.locationtech.jts.geom.Point; /** - * Location entity, which holds the information regarding location. + * User Location entity, which holds the information regarding location. */ @Entity @Data diff --git a/src/main/java/com/ays/location/model/mapper/UserLocationEntityToUserLocationMapper.java b/src/main/java/com/ays/location/model/mapper/UserLocationEntityToUserLocationMapper.java index 23a100574..81f1ccb37 100644 --- a/src/main/java/com/ays/location/model/mapper/UserLocationEntityToUserLocationMapper.java +++ b/src/main/java/com/ays/location/model/mapper/UserLocationEntityToUserLocationMapper.java @@ -7,7 +7,7 @@ import org.mapstruct.factory.Mappers; /** - * LocationEntityToLocationMapper is an interface that defines the mapping between an {@link UserLocationEntity} and an {@link UserLocation}. + * UserLocationEntityToUserLocationMapper is an interface that defines the mapping between an {@link UserLocationEntity} and an {@link UserLocation}. * This interface uses the MapStruct annotation @Mapper to generate an implementation of this interface at compile-time. *

The class provides a static method {@code initialize()} that returns an instance of the generated mapper implementation. *

The interface extends the MapStruct interface {@link BaseMapper}, which defines basic mapping methods. diff --git a/src/main/java/com/ays/location/model/mapper/UserLocationToUserLocationEntityMapper.java b/src/main/java/com/ays/location/model/mapper/UserLocationToUserLocationEntityMapper.java index a3f8965b3..e7159ef4c 100644 --- a/src/main/java/com/ays/location/model/mapper/UserLocationToUserLocationEntityMapper.java +++ b/src/main/java/com/ays/location/model/mapper/UserLocationToUserLocationEntityMapper.java @@ -7,7 +7,7 @@ import org.mapstruct.factory.Mappers; /** - * LocationToLocationEntityMapper is an interface that defines the mapping between an {@link UserLocation} and an {@link UserLocationEntity}. + * UserLocationToUserLocationEntityMapper is an interface that defines the mapping between an {@link UserLocation} and an {@link UserLocationEntity}. * This interface uses the MapStruct annotation @Mapper to generate an implementation of this interface at compile-time. *

The class provides a static method {@code initialize()} that returns an instance of the generated mapper implementation. *

The interface extends the MapStruct interface {@link BaseMapper}, which defines basic mapping methods. diff --git a/src/main/java/com/ays/location/repository/UserLocationRepository.java b/src/main/java/com/ays/location/repository/UserLocationRepository.java index 4b9bbabdf..7e35939f8 100644 --- a/src/main/java/com/ays/location/repository/UserLocationRepository.java +++ b/src/main/java/com/ays/location/repository/UserLocationRepository.java @@ -4,7 +4,7 @@ import org.springframework.data.jpa.repository.JpaRepository; /** - * Repository interface for performing CRUD operations on LocationEntity objects. + * Repository interface for performing CRUD operations on UserLocationEntity objects. */ public interface UserLocationRepository extends JpaRepository { diff --git a/src/main/java/com/ays/location/util/exception/AysUserLocationNotExistByIdException.java b/src/main/java/com/ays/location/util/exception/AysUserLocationNotExistByIdException.java index 99329643e..64c55396e 100644 --- a/src/main/java/com/ays/location/util/exception/AysUserLocationNotExistByIdException.java +++ b/src/main/java/com/ays/location/util/exception/AysUserLocationNotExistByIdException.java @@ -5,7 +5,7 @@ import java.io.Serial; /** - * Exception to be thrown when a location with a given ID does not exist. + * Exception to be thrown when a user location with a given ID does not exist. */ public class AysUserLocationNotExistByIdException extends AysNotExistException { From 92e47ac41ad16dc22608d20f035269dd66794ba7 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 23 Jul 2023 15:49:02 +0300 Subject: [PATCH 27/38] Create AssignmentSearchResponse --- .../response/AssignmentSearchResponse.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/main/java/com/ays/assignment/model/dto/response/AssignmentSearchResponse.java diff --git a/src/main/java/com/ays/assignment/model/dto/response/AssignmentSearchResponse.java b/src/main/java/com/ays/assignment/model/dto/response/AssignmentSearchResponse.java new file mode 100644 index 000000000..3c5f092fe --- /dev/null +++ b/src/main/java/com/ays/assignment/model/dto/response/AssignmentSearchResponse.java @@ -0,0 +1,32 @@ +package com.ays.assignment.model.dto.response; + +import com.ays.common.model.AysPhoneNumber; +import com.ays.common.model.dto.response.BaseResponse; +import com.ays.institution.model.dto.response.InstitutionResponse; +import com.ays.user.model.enums.UserRole; +import com.ays.user.model.enums.UserStatus; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.SuperBuilder; + +/** + * This class represents the response for a user with assignment. + * It includes information such as the user's username, first and last name, email, institution, role and status. + */ +@Data +@EqualsAndHashCode(callSuper = true) +@SuperBuilder +public class AssignmentSearchResponse extends BaseResponse { + + private String id; + private String username; + private String firstName; + private String lastName; + private String email; + private UserRole role; + private UserStatus status; + private AysPhoneNumber phoneNumber; + + private InstitutionResponse institution; + +} From 46d8f895ba480e3903ed0137a090fc02c19659f2 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 23 Jul 2023 15:49:42 +0300 Subject: [PATCH 28/38] Revise Assignment and AssignmentEntity --- .../assignment/model/{UserAssignment.java => Assignment.java} | 2 +- .../{UserAssignmentEntity.java => AssignmentEntity.java} | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename src/main/java/com/ays/assignment/model/{UserAssignment.java => Assignment.java} (93%) rename src/main/java/com/ays/assignment/model/entity/{UserAssignmentEntity.java => AssignmentEntity.java} (96%) diff --git a/src/main/java/com/ays/assignment/model/UserAssignment.java b/src/main/java/com/ays/assignment/model/Assignment.java similarity index 93% rename from src/main/java/com/ays/assignment/model/UserAssignment.java rename to src/main/java/com/ays/assignment/model/Assignment.java index d281f5535..64aca0824 100644 --- a/src/main/java/com/ays/assignment/model/UserAssignment.java +++ b/src/main/java/com/ays/assignment/model/Assignment.java @@ -15,7 +15,7 @@ @Data @EqualsAndHashCode(callSuper = true) @SuperBuilder -public class UserAssignment extends BaseDomainModel { +public class Assignment extends BaseDomainModel { private String id; private String description; diff --git a/src/main/java/com/ays/assignment/model/entity/UserAssignmentEntity.java b/src/main/java/com/ays/assignment/model/entity/AssignmentEntity.java similarity index 96% rename from src/main/java/com/ays/assignment/model/entity/UserAssignmentEntity.java rename to src/main/java/com/ays/assignment/model/entity/AssignmentEntity.java index 68a8f60dd..e256b3a1d 100644 --- a/src/main/java/com/ays/assignment/model/entity/UserAssignmentEntity.java +++ b/src/main/java/com/ays/assignment/model/entity/AssignmentEntity.java @@ -23,8 +23,8 @@ @SuperBuilder @NoArgsConstructor @AllArgsConstructor -@Table(name = "AYS_USER_ASSIGNMENT") -public class UserAssignmentEntity extends BaseEntity { +@Table(name = "AYS_ASSIGNMENT") +public class AssignmentEntity extends BaseEntity { @Id @Column(name = "ID") From 1f74aceaf381d2e5a4e3031d425a853dff06a2ec Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 23 Jul 2023 15:50:19 +0300 Subject: [PATCH 29/38] Revise AssignmentListRequest, AssignmentSearchRequest and AssignmentResponse --- ...gnmentListRequest.java => AssignmentListRequest.java} | 2 +- ...ntSearchRequest.java => AssignmentSearchRequest.java} | 6 +++--- ...erAssignmentResponse.java => AssignmentResponse.java} | 9 ++++----- 3 files changed, 8 insertions(+), 9 deletions(-) rename src/main/java/com/ays/assignment/model/dto/request/{UserAssignmentListRequest.java => AssignmentListRequest.java} (96%) rename src/main/java/com/ays/assignment/model/dto/request/{UserAssignmentSearchRequest.java => AssignmentSearchRequest.java} (90%) rename src/main/java/com/ays/assignment/model/dto/response/{UserAssignmentResponse.java => AssignmentResponse.java} (75%) diff --git a/src/main/java/com/ays/assignment/model/dto/request/UserAssignmentListRequest.java b/src/main/java/com/ays/assignment/model/dto/request/AssignmentListRequest.java similarity index 96% rename from src/main/java/com/ays/assignment/model/dto/request/UserAssignmentListRequest.java rename to src/main/java/com/ays/assignment/model/dto/request/AssignmentListRequest.java index 66dbaf95a..c7a35f0a5 100644 --- a/src/main/java/com/ays/assignment/model/dto/request/UserAssignmentListRequest.java +++ b/src/main/java/com/ays/assignment/model/dto/request/AssignmentListRequest.java @@ -19,7 +19,7 @@ */ @Data @Builder -public class UserAssignmentListRequest extends AysPagingRequest implements AysFilteringRequest { +public class AssignmentListRequest extends AysPagingRequest implements AysFilteringRequest { private AssignmentStatus status; diff --git a/src/main/java/com/ays/assignment/model/dto/request/UserAssignmentSearchRequest.java b/src/main/java/com/ays/assignment/model/dto/request/AssignmentSearchRequest.java similarity index 90% rename from src/main/java/com/ays/assignment/model/dto/request/UserAssignmentSearchRequest.java rename to src/main/java/com/ays/assignment/model/dto/request/AssignmentSearchRequest.java index 83e831259..2c8ce0f49 100644 --- a/src/main/java/com/ays/assignment/model/dto/request/UserAssignmentSearchRequest.java +++ b/src/main/java/com/ays/assignment/model/dto/request/AssignmentSearchRequest.java @@ -1,7 +1,7 @@ package com.ays.assignment.model.dto.request; import lombok.Builder; -import lombok.Data; +import lombok.Getter; /** * A DTO class representing the request data for searching assignment with respect to user's location. @@ -12,9 +12,9 @@ * The purpose of this class is to encapsulate the request data related to searching assignment with respect to user's location, allowing for easy * transfer of the data between different layers of the application. */ -@Data +@Getter @Builder -public class UserAssignmentSearchRequest { +public class AssignmentSearchRequest { private Double latitude; private Double longitude; diff --git a/src/main/java/com/ays/assignment/model/dto/response/UserAssignmentResponse.java b/src/main/java/com/ays/assignment/model/dto/response/AssignmentResponse.java similarity index 75% rename from src/main/java/com/ays/assignment/model/dto/response/UserAssignmentResponse.java rename to src/main/java/com/ays/assignment/model/dto/response/AssignmentResponse.java index ad1683a14..df1b0f0a1 100644 --- a/src/main/java/com/ays/assignment/model/dto/response/UserAssignmentResponse.java +++ b/src/main/java/com/ays/assignment/model/dto/response/AssignmentResponse.java @@ -1,18 +1,17 @@ package com.ays.assignment.model.dto.response; import com.ays.common.model.dto.response.BaseResponse; -import com.ays.user.model.dto.response.UserResponse; -import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.Getter; import lombok.experimental.SuperBuilder; /** * A DTO (Data Transfer Object) representing a list of user assignment in a paginated response. */ -@Data +@Getter @EqualsAndHashCode(callSuper = true) @SuperBuilder -public class UserAssignmentResponse extends BaseResponse { +public class AssignmentResponse extends BaseResponse { private String id; private String description; @@ -21,6 +20,6 @@ public class UserAssignmentResponse extends BaseResponse { private Double longitude; private Double latitude; - private UserResponse user; + private AssignmentSearchResponse user; } From 5fdfd37c0a0e5029548080af8a44e7713518c43d Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 23 Jul 2023 15:50:45 +0300 Subject: [PATCH 30/38] Revise AssignmentEntityRepository --- ...ignmentRepository.java => AssignmentEntityRepository.java} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename src/main/java/com/ays/assignment/repository/{UserAssignmentRepository.java => AssignmentEntityRepository.java} (56%) diff --git a/src/main/java/com/ays/assignment/repository/UserAssignmentRepository.java b/src/main/java/com/ays/assignment/repository/AssignmentEntityRepository.java similarity index 56% rename from src/main/java/com/ays/assignment/repository/UserAssignmentRepository.java rename to src/main/java/com/ays/assignment/repository/AssignmentEntityRepository.java index 4a42fb0f1..9a9b45207 100644 --- a/src/main/java/com/ays/assignment/repository/UserAssignmentRepository.java +++ b/src/main/java/com/ays/assignment/repository/AssignmentEntityRepository.java @@ -1,11 +1,11 @@ package com.ays.assignment.repository; -import com.ays.assignment.model.entity.UserAssignmentEntity; +import com.ays.assignment.model.entity.AssignmentEntity; import org.springframework.data.jpa.repository.JpaRepository; /** * Repository interface for performing CRUD operations on UserAssignmentEntity objects. */ -public interface UserAssignmentRepository extends JpaRepository { +public interface AssignmentEntityRepository extends JpaRepository { } From 206eda29f00ac39073c7344522cd264a3c01fa27 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 23 Jul 2023 15:51:15 +0300 Subject: [PATCH 31/38] Revise AssignmentEntityToAssignmentMapper, AssignmentToAssignmentEntityMapper, AssignmentToAssignmentResponseMapper --- ...a => AssignmentEntityToAssignmentMapper.java} | 14 +++++++------- ...a => AssignmentToAssignmentEntityMapper.java} | 16 ++++++++-------- ...=> AssignmentToAssignmentResponseMapper.java} | 12 ++++++------ 3 files changed, 21 insertions(+), 21 deletions(-) rename src/main/java/com/ays/assignment/model/mapper/{UserAssignmentEntityToAssignmentMapper.java => AssignmentEntityToAssignmentMapper.java} (78%) rename src/main/java/com/ays/assignment/model/mapper/{UserAssignmentToUserAssignmentEntityMapper.java => AssignmentToAssignmentEntityMapper.java} (75%) rename src/main/java/com/ays/assignment/model/mapper/{UserAssignmentToUserAssignmentResponseMapper.java => AssignmentToAssignmentResponseMapper.java} (62%) diff --git a/src/main/java/com/ays/assignment/model/mapper/UserAssignmentEntityToAssignmentMapper.java b/src/main/java/com/ays/assignment/model/mapper/AssignmentEntityToAssignmentMapper.java similarity index 78% rename from src/main/java/com/ays/assignment/model/mapper/UserAssignmentEntityToAssignmentMapper.java rename to src/main/java/com/ays/assignment/model/mapper/AssignmentEntityToAssignmentMapper.java index 301fdaf85..8caf65684 100644 --- a/src/main/java/com/ays/assignment/model/mapper/UserAssignmentEntityToAssignmentMapper.java +++ b/src/main/java/com/ays/assignment/model/mapper/AssignmentEntityToAssignmentMapper.java @@ -1,7 +1,7 @@ package com.ays.assignment.model.mapper; -import com.ays.assignment.model.UserAssignment; -import com.ays.assignment.model.entity.UserAssignmentEntity; +import com.ays.assignment.model.Assignment; +import com.ays.assignment.model.entity.AssignmentEntity; import com.ays.common.model.mapper.BaseMapper; import org.locationtech.jts.geom.Point; import org.mapstruct.Mapper; @@ -11,29 +11,29 @@ import java.util.Optional; /** - * UserAssignmentEntityToAssignmentMapper is an interface that defines the mapping between an {@link UserAssignmentEntity} and an {@link UserAssignment}. + * UserAssignmentEntityToAssignmentMapper is an interface that defines the mapping between an {@link AssignmentEntity} and an {@link Assignment}. * This interface uses the MapStruct annotation @Mapper to generate an implementation of this interface at compile-time. *

The class provides a static method {@code initialize()} that returns an instance of the generated mapper implementation. *

The interface extends the MapStruct interface {@link BaseMapper}, which defines basic mapping methods. * The interface adds no additional mapping methods, but simply defines the types to be used in the mapping process. */ @Mapper -public interface UserAssignmentEntityToAssignmentMapper extends BaseMapper { +public interface AssignmentEntityToAssignmentMapper extends BaseMapper { @Override @Mapping(target = "phoneNumber.countryCode", source = "source.countryCode") @Mapping(target = "phoneNumber.lineNumber", source = "source.lineNumber") @Mapping(target = "latitude", expression = "java(mapToLatitude(source.getPoint()))") @Mapping(target = "longitude", expression = "java(mapToLongitude(source.getPoint()))") - UserAssignment map(UserAssignmentEntity source); + Assignment map(AssignmentEntity source); /** * Initializes the mapper. * * @return the initialized mapper object. */ - static UserAssignmentEntityToAssignmentMapper initialize() { - return Mappers.getMapper(UserAssignmentEntityToAssignmentMapper.class); + static AssignmentEntityToAssignmentMapper initialize() { + return Mappers.getMapper(AssignmentEntityToAssignmentMapper.class); } /** diff --git a/src/main/java/com/ays/assignment/model/mapper/UserAssignmentToUserAssignmentEntityMapper.java b/src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentEntityMapper.java similarity index 75% rename from src/main/java/com/ays/assignment/model/mapper/UserAssignmentToUserAssignmentEntityMapper.java rename to src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentEntityMapper.java index 318892959..0cf575e57 100644 --- a/src/main/java/com/ays/assignment/model/mapper/UserAssignmentToUserAssignmentEntityMapper.java +++ b/src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentEntityMapper.java @@ -1,7 +1,7 @@ package com.ays.assignment.model.mapper; -import com.ays.assignment.model.UserAssignment; -import com.ays.assignment.model.entity.UserAssignmentEntity; +import com.ays.assignment.model.Assignment; +import com.ays.assignment.model.entity.AssignmentEntity; import com.ays.common.model.mapper.BaseMapper; import org.locationtech.jts.geom.Coordinate; import org.locationtech.jts.geom.GeometryFactory; @@ -11,23 +11,23 @@ import org.mapstruct.factory.Mappers; /** - * UserAssignmentToUserAssignmentEntityMapper is an interface that defines the mapping between an {@link UserAssignment} and an {@link UserAssignmentEntity}. + * UserAssignmentToUserAssignmentEntityMapper is an interface that defines the mapping between an {@link Assignment} and an {@link AssignmentEntity}. * This interface uses the MapStruct annotation @Mapper to generate an implementation of this interface at compile-time. *

The class provides a static method {@code initialize()} that returns an instance of the generated mapper implementation. *

The interface extends the MapStruct interface {@link BaseMapper}, which defines basic mapping methods. * The interface adds no additional mapping methods, but simply defines the types to be used in the mapping process. */ @Mapper -public interface UserAssignmentToUserAssignmentEntityMapper extends BaseMapper { +public interface AssignmentToAssignmentEntityMapper extends BaseMapper { /** * Maps UserAssignment to UserAssignmentEntity. * - * @param userAssignment the UserAssignment object + * @param assignment the UserAssignment object * @return the mapped UserAssignmentEntity object */ @Mapping(target = "point", expression = "java(mapToPoint(userAssignment.getLatitude(), userAssignment.getLongitude()))") - UserAssignmentEntity map(UserAssignment userAssignment); + AssignmentEntity map(Assignment assignment); /** @@ -35,8 +35,8 @@ public interface UserAssignmentToUserAssignmentEntityMapper extends BaseMapperThe class provides a static method {@code initialize()} that returns an instance of the generated mapper implementation. *

The interface extends the MapStruct interface {@link BaseMapper}, which defines basic mapping methods. * The interface adds no additional mapping methods, but simply defines the types to be used in the mapping process. */ @Mapper -public interface UserAssignmentToUserAssignmentResponseMapper extends BaseMapper { +public interface AssignmentToAssignmentResponseMapper extends BaseMapper { /** * Initializes the mapper. * * @return the initialized mapper object. */ - static UserAssignmentToUserAssignmentResponseMapper initialize() { - return Mappers.getMapper(UserAssignmentToUserAssignmentResponseMapper.class); + static AssignmentToAssignmentResponseMapper initialize() { + return Mappers.getMapper(AssignmentToAssignmentResponseMapper.class); } } From 2aefc95aaa699d430e20f9f915803ebdeb42298f Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 23 Jul 2023 15:52:16 +0300 Subject: [PATCH 32/38] Revise AysAssignmentAlreadyAssignedException, AysAssignmentAlreadyAvailableException, AysAssignmentAlreadyDoneException, AysAssignmentAlreadyInProgressException, AysAssignmentAlreadyReservedException and AysAssignmentNotExistByIdException --- ...eption.java => AysAssignmentAlreadyAssignedException.java} | 4 ++-- ...ption.java => AysAssignmentAlreadyAvailableException.java} | 4 ++-- ...eException.java => AysAssignmentAlreadyDoneException.java} | 4 ++-- ...tion.java => AysAssignmentAlreadyInProgressException.java} | 4 ++-- ...eption.java => AysAssignmentAlreadyReservedException.java} | 4 ++-- ...Exception.java => AysAssignmentNotExistByIdException.java} | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) rename src/main/java/com/ays/assignment/util/exception/{AysUserAssignmentAlreadyAssignedException.java => AysAssignmentAlreadyAssignedException.java} (81%) rename src/main/java/com/ays/assignment/util/exception/{AysUserAssignmentAlreadyAvailableException.java => AysAssignmentAlreadyAvailableException.java} (81%) rename src/main/java/com/ays/assignment/util/exception/{AysUserAssignmentAlreadyDoneException.java => AysAssignmentAlreadyDoneException.java} (82%) rename src/main/java/com/ays/assignment/util/exception/{AysUserAssignmentAlreadyInProgressException.java => AysAssignmentAlreadyInProgressException.java} (81%) rename src/main/java/com/ays/assignment/util/exception/{AysUserAssignmentAlreadyReservedException.java => AysAssignmentAlreadyReservedException.java} (81%) rename src/main/java/com/ays/assignment/util/exception/{AysUserAssignmentNotExistByIdException.java => AysAssignmentNotExistByIdException.java} (80%) diff --git a/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyAssignedException.java b/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyAssignedException.java similarity index 81% rename from src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyAssignedException.java rename to src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyAssignedException.java index 1da26366c..908eef7e5 100644 --- a/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyAssignedException.java +++ b/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyAssignedException.java @@ -7,7 +7,7 @@ /** * Exception thrown when a user assignment is assigned and attempting to perform an action that requires an assigned assignment. */ -public class AysUserAssignmentAlreadyAssignedException extends AysAlreadyException { +public class AysAssignmentAlreadyAssignedException extends AysAlreadyException { /** * Unique identifier for serialization. @@ -20,7 +20,7 @@ public class AysUserAssignmentAlreadyAssignedException extends AysAlreadyExcepti * * @param id the id of the assignment which is already assigned */ - public AysUserAssignmentAlreadyAssignedException(String id) { + public AysAssignmentAlreadyAssignedException(String id) { super("ASSIGNMENT IS ALREADY ASSIGNED! id:" + id); } diff --git a/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyAvailableException.java b/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyAvailableException.java similarity index 81% rename from src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyAvailableException.java rename to src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyAvailableException.java index a30f943b3..ab47bd6de 100644 --- a/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyAvailableException.java +++ b/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyAvailableException.java @@ -7,7 +7,7 @@ /** * Exception thrown when a user assignment is available and attempting to perform an action that requires an assignment which is already available. */ -public class AysUserAssignmentAlreadyAvailableException extends AysAlreadyException { +public class AysAssignmentAlreadyAvailableException extends AysAlreadyException { /** * Unique identifier for serialization. @@ -20,7 +20,7 @@ public class AysUserAssignmentAlreadyAvailableException extends AysAlreadyExcept * * @param id the id of the assignment which is already available */ - public AysUserAssignmentAlreadyAvailableException(String id) { + public AysAssignmentAlreadyAvailableException(String id) { super("ASSIGNMENT IS ALREADY AVAILABLE! id:" + id); } diff --git a/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyDoneException.java b/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyDoneException.java similarity index 82% rename from src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyDoneException.java rename to src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyDoneException.java index 2b1032baa..05549b182 100644 --- a/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyDoneException.java +++ b/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyDoneException.java @@ -7,7 +7,7 @@ /** * Exception thrown when a user assignment is done and attempting to perform an action that requires an assignment which is already done. */ -public class AysUserAssignmentAlreadyDoneException extends AysAlreadyException { +public class AysAssignmentAlreadyDoneException extends AysAlreadyException { /** * Unique identifier for serialization. @@ -20,7 +20,7 @@ public class AysUserAssignmentAlreadyDoneException extends AysAlreadyException { * * @param id the id of the assignment which is already done */ - public AysUserAssignmentAlreadyDoneException(String id) { + public AysAssignmentAlreadyDoneException(String id) { super("ASSIGNMENT IS ALREADY DONE! id:" + id); } diff --git a/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyInProgressException.java b/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyInProgressException.java similarity index 81% rename from src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyInProgressException.java rename to src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyInProgressException.java index fdf88744f..c1baaa6c0 100644 --- a/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyInProgressException.java +++ b/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyInProgressException.java @@ -7,7 +7,7 @@ /** * Exception thrown when a user assignment is in progress and attempting to perform an action that requires an assignment which is already in progress. */ -public class AysUserAssignmentAlreadyInProgressException extends AysAlreadyException { +public class AysAssignmentAlreadyInProgressException extends AysAlreadyException { /** * Unique identifier for serialization. @@ -20,7 +20,7 @@ public class AysUserAssignmentAlreadyInProgressException extends AysAlreadyExcep * * @param id the id of the assignment which is already in progress */ - public AysUserAssignmentAlreadyInProgressException(String id) { + public AysAssignmentAlreadyInProgressException(String id) { super("ASSIGNMENT IS ALREADY IN PROGRESS! id:" + id); } diff --git a/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyReservedException.java b/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyReservedException.java similarity index 81% rename from src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyReservedException.java rename to src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyReservedException.java index 2e3d8d1c4..d997ced54 100644 --- a/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentAlreadyReservedException.java +++ b/src/main/java/com/ays/assignment/util/exception/AysAssignmentAlreadyReservedException.java @@ -7,7 +7,7 @@ /** * Exception thrown when a user assignment is reserved and attempting to perform an action that requires an assignment which is already reserved. */ -public class AysUserAssignmentAlreadyReservedException extends AysAlreadyException { +public class AysAssignmentAlreadyReservedException extends AysAlreadyException { /** * Unique identifier for serialization. @@ -20,7 +20,7 @@ public class AysUserAssignmentAlreadyReservedException extends AysAlreadyExcepti * * @param id the id of the assignment which is already reserved */ - public AysUserAssignmentAlreadyReservedException(String id) { + public AysAssignmentAlreadyReservedException(String id) { super("ASSIGNMENT IS ALREADY RESERVED! id:" + id); } } diff --git a/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentNotExistByIdException.java b/src/main/java/com/ays/assignment/util/exception/AysAssignmentNotExistByIdException.java similarity index 80% rename from src/main/java/com/ays/assignment/util/exception/AysUserAssignmentNotExistByIdException.java rename to src/main/java/com/ays/assignment/util/exception/AysAssignmentNotExistByIdException.java index 889088020..8366f9e25 100644 --- a/src/main/java/com/ays/assignment/util/exception/AysUserAssignmentNotExistByIdException.java +++ b/src/main/java/com/ays/assignment/util/exception/AysAssignmentNotExistByIdException.java @@ -7,7 +7,7 @@ /** * Exception to be thrown when a user assignment with a given ID does not exist. */ -public class AysUserAssignmentNotExistByIdException extends AysNotExistException { +public class AysAssignmentNotExistByIdException extends AysNotExistException { /** * Unique serial version ID. @@ -20,7 +20,7 @@ public class AysUserAssignmentNotExistByIdException extends AysNotExistException * * @param id the ID of the assignment that does not exist */ - public AysUserAssignmentNotExistByIdException(String id) { + public AysAssignmentNotExistByIdException(String id) { super("ASSIGNMENT NOT EXIST! id:" + id); } From 0366d163388c288e981cbec26eccb9290e5ff07c Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 23 Jul 2023 15:59:06 +0300 Subject: [PATCH 33/38] Revise AssignmentToAssignmentEntityMapper and AssignmentEntityToAssignmentMapper --- .../model/mapper/AssignmentEntityToAssignmentMapper.java | 2 +- .../model/mapper/AssignmentToAssignmentEntityMapper.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/ays/assignment/model/mapper/AssignmentEntityToAssignmentMapper.java b/src/main/java/com/ays/assignment/model/mapper/AssignmentEntityToAssignmentMapper.java index 8caf65684..45113a863 100644 --- a/src/main/java/com/ays/assignment/model/mapper/AssignmentEntityToAssignmentMapper.java +++ b/src/main/java/com/ays/assignment/model/mapper/AssignmentEntityToAssignmentMapper.java @@ -11,7 +11,7 @@ import java.util.Optional; /** - * UserAssignmentEntityToAssignmentMapper is an interface that defines the mapping between an {@link AssignmentEntity} and an {@link Assignment}. + * AssignmentEntityToAssignmentMapper is an interface that defines the mapping between an {@link AssignmentEntity} and an {@link Assignment}. * This interface uses the MapStruct annotation @Mapper to generate an implementation of this interface at compile-time. *

The class provides a static method {@code initialize()} that returns an instance of the generated mapper implementation. *

The interface extends the MapStruct interface {@link BaseMapper}, which defines basic mapping methods. diff --git a/src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentEntityMapper.java b/src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentEntityMapper.java index 0cf575e57..1316b4656 100644 --- a/src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentEntityMapper.java +++ b/src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentEntityMapper.java @@ -11,7 +11,7 @@ import org.mapstruct.factory.Mappers; /** - * UserAssignmentToUserAssignmentEntityMapper is an interface that defines the mapping between an {@link Assignment} and an {@link AssignmentEntity}. + * AssignmentToAssignmentEntityMapper is an interface that defines the mapping between an {@link Assignment} and an {@link AssignmentEntity}. * This interface uses the MapStruct annotation @Mapper to generate an implementation of this interface at compile-time. *

The class provides a static method {@code initialize()} that returns an instance of the generated mapper implementation. *

The interface extends the MapStruct interface {@link BaseMapper}, which defines basic mapping methods. From e0d67d4c773be305b6a5d5fc20a59fee405d4323 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 23 Jul 2023 16:05:35 +0300 Subject: [PATCH 34/38] Revise Assignment and AssignmentEntity --- src/main/java/com/ays/assignment/model/Assignment.java | 2 +- .../java/com/ays/assignment/model/entity/AssignmentEntity.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/ays/assignment/model/Assignment.java b/src/main/java/com/ays/assignment/model/Assignment.java index 64aca0824..f32045701 100644 --- a/src/main/java/com/ays/assignment/model/Assignment.java +++ b/src/main/java/com/ays/assignment/model/Assignment.java @@ -10,7 +10,7 @@ import lombok.experimental.SuperBuilder; /** - * User Assignment Domain Model to perform data transfer from service layer to controller + * Assignment Domain Model to perform data transfer from service layer to controller */ @Data @EqualsAndHashCode(callSuper = true) diff --git a/src/main/java/com/ays/assignment/model/entity/AssignmentEntity.java b/src/main/java/com/ays/assignment/model/entity/AssignmentEntity.java index e256b3a1d..0affa425c 100644 --- a/src/main/java/com/ays/assignment/model/entity/AssignmentEntity.java +++ b/src/main/java/com/ays/assignment/model/entity/AssignmentEntity.java @@ -15,7 +15,7 @@ import org.locationtech.jts.geom.Point; /** - * User Assignment entity, which holds the information regarding assignment. + * Assignment entity, which holds the information regarding assignment. */ @Entity @Data From cbe6e49a61df74739026edd798fd86cbae6c409a Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 23 Jul 2023 16:08:05 +0300 Subject: [PATCH 35/38] Revise AssignmentToAssignmentEntityMapper --- .../model/mapper/AssignmentToAssignmentEntityMapper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentEntityMapper.java b/src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentEntityMapper.java index 1316b4656..b2efb9547 100644 --- a/src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentEntityMapper.java +++ b/src/main/java/com/ays/assignment/model/mapper/AssignmentToAssignmentEntityMapper.java @@ -26,7 +26,7 @@ public interface AssignmentToAssignmentEntityMapper extends BaseMapper Date: Sun, 23 Jul 2023 16:16:02 +0300 Subject: [PATCH 36/38] Revise UserLocationEntity --- .../java/com/ays/location/model/entity/UserLocationEntity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/ays/location/model/entity/UserLocationEntity.java b/src/main/java/com/ays/location/model/entity/UserLocationEntity.java index c24064206..30fb893ea 100644 --- a/src/main/java/com/ays/location/model/entity/UserLocationEntity.java +++ b/src/main/java/com/ays/location/model/entity/UserLocationEntity.java @@ -36,7 +36,7 @@ public class UserLocationEntity extends BaseEntity { private Point point; @OneToOne - @JoinColumn(name = "USER_ID", referencedColumnName = "ID") + @JoinColumn(name = "USER_ID", referencedColumnName = "ID", insertable = false, updatable = false) private UserEntity user; public void setPoint(double latitude, double longitude) { From fa213b5caeb05ed2f9fda9d353dca12aadb640c5 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Sun, 23 Jul 2023 16:22:30 +0300 Subject: [PATCH 37/38] Revise AssignmentEntity --- .../com/ays/assignment/model/entity/AssignmentEntity.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/ays/assignment/model/entity/AssignmentEntity.java b/src/main/java/com/ays/assignment/model/entity/AssignmentEntity.java index 0affa425c..4be00a77f 100644 --- a/src/main/java/com/ays/assignment/model/entity/AssignmentEntity.java +++ b/src/main/java/com/ays/assignment/model/entity/AssignmentEntity.java @@ -59,11 +59,11 @@ public class AssignmentEntity extends BaseEntity { private AssignmentStatus status; @OneToOne - @JoinColumn(name = "INSTITUTION_ID", referencedColumnName = "ID") + @JoinColumn(name = "INSTITUTION_ID", referencedColumnName = "ID", insertable = false, updatable = false) private InstitutionEntity institution; @OneToOne - @JoinColumn(name = "USER_ID", referencedColumnName = "ID") + @JoinColumn(name = "USER_ID", referencedColumnName = "ID", insertable = false, updatable = false) private UserEntity user; public void setPoint(double latitude, double longitude) { From b1ba1dab49bbc890b1608795b133ea4490c185a9 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E7L6HLO\\Noyan" Date: Wed, 26 Jul 2023 20:42:06 +0300 Subject: [PATCH 38/38] Revise AssignmentResponse --- .../ays/assignment/model/dto/response/AssignmentResponse.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/ays/assignment/model/dto/response/AssignmentResponse.java b/src/main/java/com/ays/assignment/model/dto/response/AssignmentResponse.java index df1b0f0a1..15131dbe1 100644 --- a/src/main/java/com/ays/assignment/model/dto/response/AssignmentResponse.java +++ b/src/main/java/com/ays/assignment/model/dto/response/AssignmentResponse.java @@ -20,6 +20,6 @@ public class AssignmentResponse extends BaseResponse { private Double longitude; private Double latitude; - private AssignmentSearchResponse user; + private AssignmentSearchResponse assignmentSearchResponse; }