From f379db05169fa603de6e34bc72c5add29ed16923 Mon Sep 17 00:00:00 2001 From: Viktoria Date: Mon, 29 Aug 2022 12:27:05 +0200 Subject: [PATCH] ViSnezh --- .../pojects/controller/ProjectController.java | 13 +++++ .../pojects/domain/model/Participant.java | 35 ++++++++++++ .../pojects/domain/model/Project.java | 56 +++++++++++++++++++ .../pojects/repo/ProjectRepo.java | 9 +++ .../pojects/service/ProjectService.java | 15 +++++ 5 files changed, 128 insertions(+) create mode 100644 src/main/java/site/easystartup/easystartupcore/pojects/controller/ProjectController.java create mode 100644 src/main/java/site/easystartup/easystartupcore/pojects/domain/model/Participant.java create mode 100644 src/main/java/site/easystartup/easystartupcore/pojects/domain/model/Project.java create mode 100644 src/main/java/site/easystartup/easystartupcore/pojects/repo/ProjectRepo.java create mode 100644 src/main/java/site/easystartup/easystartupcore/pojects/service/ProjectService.java diff --git a/src/main/java/site/easystartup/easystartupcore/pojects/controller/ProjectController.java b/src/main/java/site/easystartup/easystartupcore/pojects/controller/ProjectController.java new file mode 100644 index 0000000..a2101bb --- /dev/null +++ b/src/main/java/site/easystartup/easystartupcore/pojects/controller/ProjectController.java @@ -0,0 +1,13 @@ +package site.easystartup.easystartupcore.pojects.controller; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequiredArgsConstructor +@RequestMapping("/project") +public class ProjectController { + + +} diff --git a/src/main/java/site/easystartup/easystartupcore/pojects/domain/model/Participant.java b/src/main/java/site/easystartup/easystartupcore/pojects/domain/model/Participant.java new file mode 100644 index 0000000..fe1b376 --- /dev/null +++ b/src/main/java/site/easystartup/easystartupcore/pojects/domain/model/Participant.java @@ -0,0 +1,35 @@ +package site.easystartup.easystartupcore.pojects.domain.model; + +import lombok.Data; +import site.easystartup.easystartupcore.domain.User; + +import javax.persistence.*; +import javax.validation.constraints.NotNull; +import java.util.Set; + +@Data +@Entity +@Table(name = "participant") +public class Participant { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "participant_id") + private Long participantId; + + @ManyToOne + @JoinColumn(name = "project_id") + private Project project; + + @Column(name = "technology") + @NotNull + private String technology; + + @Column(name = "name_of_position") + private String nameOfPosition; + @ManyToOne + @JoinColumn(name = "user_id") + private User userId; + + @OneToMany + private Set requests; +} diff --git a/src/main/java/site/easystartup/easystartupcore/pojects/domain/model/Project.java b/src/main/java/site/easystartup/easystartupcore/pojects/domain/model/Project.java new file mode 100644 index 0000000..6985e89 --- /dev/null +++ b/src/main/java/site/easystartup/easystartupcore/pojects/domain/model/Project.java @@ -0,0 +1,56 @@ +package site.easystartup.easystartupcore.pojects.domain.model; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import site.easystartup.easystartupcore.domain.User; + +import javax.persistence.*; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.time.LocalDateTime; +import java.util.List; + +@Data +@Entity +@Table(name = "project") +public class Project { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "project_id") + private Long projectId; + + @Column(name = "cover_link") + private String coverLink; + + @Column(name = "title") + @Size(min = 3, max = 100, message = "Title should be no less 3 and no more 100 signs") + @NotNull + private String title; + + @Column(name = "description") + @Size(min = 50, message = "Description should be no less 50 signs") + private String description; + + @Column(name = "commercial_status") // 1 - commercial, 0 - non-commercial + private int commercialStatus; + + @Column(name = "technology") + @NotNull + private String technology; + + @ManyToOne + @JoinColumn(name = "owner_id") + private User owner; + + @OneToMany(mappedBy = "project") + private List participants; + + @Column(name = "created_date") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createdDate; + + @PrePersist + private void createdDate() { + this.createdDate = LocalDateTime.now(); + } +} diff --git a/src/main/java/site/easystartup/easystartupcore/pojects/repo/ProjectRepo.java b/src/main/java/site/easystartup/easystartupcore/pojects/repo/ProjectRepo.java new file mode 100644 index 0000000..46cdeff --- /dev/null +++ b/src/main/java/site/easystartup/easystartupcore/pojects/repo/ProjectRepo.java @@ -0,0 +1,9 @@ +package site.easystartup.easystartupcore.pojects.repo; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; +import site.easystartup.easystartupcore.pojects.domain.model.Project; + +@Repository +public interface ProjectRepo extends JpaRepository { +} diff --git a/src/main/java/site/easystartup/easystartupcore/pojects/service/ProjectService.java b/src/main/java/site/easystartup/easystartupcore/pojects/service/ProjectService.java new file mode 100644 index 0000000..bd31ce0 --- /dev/null +++ b/src/main/java/site/easystartup/easystartupcore/pojects/service/ProjectService.java @@ -0,0 +1,15 @@ +package site.easystartup.easystartupcore.pojects.service; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import site.easystartup.easystartupcore.pojects.repo.ProjectRepo; + +@Service +@RequiredArgsConstructor +public class ProjectService { + private final ProjectRepo projectRepo; + + + + +}