diff --git a/pom.xml b/pom.xml
index 77a3efc..378c16c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -83,6 +83,11 @@
okhttp
4.9.3
+
+ org.projectlombok
+ lombok
+ provided
+
diff --git a/src/main/java/_11/asktpk/artisanconnectbackend/DTO/NoticeDTO.java b/src/main/java/_11/asktpk/artisanconnectbackend/DTO/NoticeDTO.java
deleted file mode 100644
index 0dd7e1a..0000000
--- a/src/main/java/_11/asktpk/artisanconnectbackend/DTO/NoticeDTO.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package _11.asktpk.artisanconnectbackend.DTO;
-
-import _11.asktpk.artisanconnectbackend.Entities.AttributesNotice;
-import _11.asktpk.artisanconnectbackend.Entities.Orders;
-import _11.asktpk.artisanconnectbackend.Entities.Payments;
-import _11.asktpk.artisanconnectbackend.Utils.Enums;
-
-import java.time.LocalDate;
-import java.util.List;
-
-public class NoticeDTO {
- private String title;
- private Long clientId;
- private String description;
- private Double price;
- private Enums.Category category;
- private List images;
- private Enums.Status status;
- private LocalDate publishDate;
- private List attributesNotices;
- private List orders;
- private List payments;
-
- public NoticeDTO(String title, Long clientId, String description, Double price,
- Enums.Category category, List images, Enums.Status status,
- LocalDate publishDate, List attributesNotices,
- List orders, List payments) {
- this.title = title;
- this.clientId = clientId;
- this.description = description;
- this.price = price;
- this.category = category;
- this.images = images;
- this.status = status;
- this.publishDate = publishDate;
- this.attributesNotices = attributesNotices;
- this.orders = orders;
- this.payments = payments;
- }
-
- public String getTitle() {
- return title;
- }
-
- public void setTitle(String title) {
- this.title = title;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public Double getPrice() {
- return price;
- }
-
- public void setPrice(Double price) {
- this.price = price;
- }
-
- public Enums.Category getCategory() {
- return category;
- }
-
- public void setCategory(Enums.Category category) {
- this.category = category;
- }
-
- public List getImages() {
- return images;
- }
-
- public void setImages(List images) {
- this.images = images;
- }
-
- public Enums.Status getStatus() {
- return status;
- }
-
- public void setStatus(Enums.Status status) {
- this.status = status;
- }
-
- public LocalDate getPublishDate() {
- return publishDate;
- }
-
- public void setPublishDate(LocalDate publishDate) {
- this.publishDate = publishDate;
- }
-
- public List getAttributesNotices() {
- return attributesNotices;
- }
-
- public void setAttributesNotices(List attributesNotices) {
- this.attributesNotices = attributesNotices;
- }
-
- public List getOrders() {
- return orders;
- }
-
- public void setOrders(List orders) {
- this.orders = orders;
- }
-
- public List getPayments() {
- return payments;
- }
-
- public void setPayments(List payments) {
- this.payments = payments;
- }
-
- public Long getClientId() {
- return clientId;
- }
-
- public void setClientId(Long clientId) {
- this.clientId = clientId;
- }
-}
diff --git a/src/main/java/_11/asktpk/artisanconnectbackend/Entities/Client.java b/src/main/java/_11/asktpk/artisanconnectbackend/Entities/Client.java
deleted file mode 100644
index a174da5..0000000
--- a/src/main/java/_11/asktpk/artisanconnectbackend/Entities/Client.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package _11.asktpk.artisanconnectbackend.Entities;
-
-import _11.asktpk.artisanconnectbackend.Utils.Enums.Role;
-
-import jakarta.persistence.*;
-import java.util.List;
-
-@Entity
-@Table(name = "clients")
-public class Client {
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Long id;
-
- private String email;
- private String password;
- private String firstName;
- private String lastName;
- private String image; // Optional field
- @Enumerated(EnumType.STRING)
- private Role role;
-
-// @OneToMany(mappedBy = "client", cascade = CascadeType.ALL)
-// private List notices;
-
- @OneToMany(mappedBy = "client", cascade = CascadeType.ALL)
- private List orders;
-
- public Long getId() {
- return id;
- }
-
- public void setId(Long idUser) {
- this.id = idUser;
- }
-
- public String getEmail() {
- return email;
- }
-
- public void setEmail(String email) {
- this.email = email;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
- public String getFirstName() {
- return firstName;
- }
-
- public void setFirstName(String firstName) {
- this.firstName = firstName;
- }
-
- public String getLastName() {
- return lastName;
- }
-
- public void setLastName(String lastName) {
- this.lastName = lastName;
- }
-
- public String getImage() {
- return image;
- }
-
- public void setImage(String image) {
- this.image = image;
- }
-
- public Role getRole() {
- return role;
- }
-
- public void setRole(Role role) {
- this.role = role;
- }
-
-// public List getNotices() {
-// return notices;
-// }
-//
-// public void setNotices(List notices) {
-// this.notices = notices;
-// }
-
- public List getOrders() {
- return orders;
- }
-
- public void setOrders(List orders) {
- this.orders = orders;
- }
-
- // Getters, setters, and constructors
-}
diff --git a/src/main/java/_11/asktpk/artisanconnectbackend/Entities/Notice.java b/src/main/java/_11/asktpk/artisanconnectbackend/Entities/Notice.java
deleted file mode 100644
index d0180bd..0000000
--- a/src/main/java/_11/asktpk/artisanconnectbackend/Entities/Notice.java
+++ /dev/null
@@ -1,143 +0,0 @@
-package _11.asktpk.artisanconnectbackend.Entities;
-
-import jakarta.persistence.*;
-
-import java.time.LocalDate;
-import java.util.List;
-
-import _11.asktpk.artisanconnectbackend.Utils.Enums.*;
-
-@Entity
-@Table(name = "notice")
-public class Notice {
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Long idNotice;
-
- private String title;
-
- @ManyToOne
- @JoinColumn(name = "client_id")
- private Client client;
-
- private String description;
- private Double price;
-
- @Enumerated(EnumType.STRING)
- private Category category;
-
- @ElementCollection
- private List images;
-
- @Enumerated(EnumType.STRING)
- private Status status;
-
- private LocalDate publishDate;
-
- @OneToMany(mappedBy = "notice", cascade = CascadeType.ALL)
- private List attributesNotices;
-
- @OneToMany(mappedBy = "notice", cascade = CascadeType.ALL)
- private List orders;
-
- @OneToMany(mappedBy = "notice", cascade = CascadeType.ALL)
- private List payments;
-
- public Long getIdNotice() {
- return idNotice;
- }
-
- public void setIdNotice(Long idNotice) {
- this.idNotice = idNotice;
- }
-
- public String getTitle() {
- return title;
- }
-
- public void setTitle(String title) {
- this.title = title;
- }
-
- public Client getClient() {
- return client;
- }
-
- public void setClient(Client client) {
- this.client = client;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public Double getPrice() {
- return price;
- }
-
- public void setPrice(Double price) {
- this.price = price;
- }
-
- public Category getCategory() {
- return category;
- }
-
- public void setCategory(Category category) {
- this.category = category;
- }
-
- public List getImages() {
- return images;
- }
-
- public void setImages(List images) {
- this.images = images;
- }
-
- public Status getStatus() {
- return status;
- }
-
- public void setStatus(Status status) {
- this.status = status;
- }
-
- public LocalDate getPublishDate() {
- return publishDate;
- }
-
- public void setPublishDate(LocalDate publishDate) {
- this.publishDate = publishDate;
- }
-
- public List getAttributesNotices() {
- return attributesNotices;
- }
-
- public void setAttributesNotices(List attributesNotices) {
- this.attributesNotices = attributesNotices;
- }
-
- public List getOrders() {
- return orders;
- }
-
- public void setOrders(List orders) {
- this.orders = orders;
- }
-
- public List getPayments() {
- return payments;
- }
-
- public void setPayments(List payments) {
- this.payments = payments;
- }
-
- // Getters, setters, and constructors
-}
diff --git a/src/main/java/_11/asktpk/artisanconnectbackend/Service/NoticeService.java b/src/main/java/_11/asktpk/artisanconnectbackend/Service/NoticeService.java
deleted file mode 100644
index 768ce8f..0000000
--- a/src/main/java/_11/asktpk/artisanconnectbackend/Service/NoticeService.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package _11.asktpk.artisanconnectbackend.Service;
-
-import _11.asktpk.artisanconnectbackend.Entities.Client;
-import _11.asktpk.artisanconnectbackend.Entities.Notice;
-import _11.asktpk.artisanconnectbackend.Repository.ClientRepository;
-import _11.asktpk.artisanconnectbackend.Repository.NoticeRepository;
-import _11.asktpk.artisanconnectbackend.DTO.NoticeDTO;
-import jakarta.persistence.EntityNotFoundException;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-@Service
-public class NoticeService {
-
- @Autowired
- private NoticeRepository noticeRepository;
-
- @Autowired
- private ClientRepository clientRepository;
-
- public Notice createFromDTO(NoticeDTO dto) {
- Notice notice = new Notice();
- notice.setTitle(dto.getTitle());
- notice.setDescription(dto.getDescription());
- notice.setPrice(dto.getPrice());
- notice.setCategory(dto.getCategory());
- notice.setImages(dto.getImages());
- notice.setStatus(dto.getStatus());
- notice.setPublishDate(dto.getPublishDate());
- notice.setAttributesNotices(dto.getAttributesNotices());
- notice.setOrders(dto.getOrders());
- notice.setPayments(dto.getPayments());
-
- Client client = clientRepository.findById(dto.getClientId())
- .orElseThrow(() -> new EntityNotFoundException("Nie znaleziono klienta o ID: " + dto.getClientId()));
- notice.setClient(client);
-
- return notice;
- }
-
- // Metoda do konwersji Notice na DTO
- public NoticeDTO toDTO(Notice notice) {
- return new NoticeDTO(
- notice.getTitle(),
- notice.getClient().getId(),
- notice.getDescription(),
- notice.getPrice(),
- notice.getCategory(),
- notice.getImages(),
- notice.getStatus(),
- notice.getPublishDate(),
- notice.getAttributesNotices(),
- notice.getOrders(),
- notice.getPayments()
- );
- }
-
- public List getAllNotices() {
- return noticeRepository.findAll();
- }
-
- public void addNotice(Notice notice) {
- noticeRepository.save(notice);
- }
-}
diff --git a/src/main/java/_11/asktpk/artisanconnectbackend/Controller/ArtisanConnectController.java b/src/main/java/_11/asktpk/artisanconnectbackend/controller/ArtisanConnectController.java
similarity index 83%
rename from src/main/java/_11/asktpk/artisanconnectbackend/Controller/ArtisanConnectController.java
rename to src/main/java/_11/asktpk/artisanconnectbackend/controller/ArtisanConnectController.java
index 49b4aa5..1b92030 100644
--- a/src/main/java/_11/asktpk/artisanconnectbackend/Controller/ArtisanConnectController.java
+++ b/src/main/java/_11/asktpk/artisanconnectbackend/controller/ArtisanConnectController.java
@@ -1,10 +1,9 @@
-package _11.asktpk.artisanconnectbackend.Controller;
+package _11.asktpk.artisanconnectbackend.controller;
-import _11.asktpk.artisanconnectbackend.Entities.Notice;
-import _11.asktpk.artisanconnectbackend.Repository.ClientRepository;
-import _11.asktpk.artisanconnectbackend.Service.NoticeService;
-import _11.asktpk.artisanconnectbackend.DTO.NoticeDTO;
-import okhttp3.Response;
+import _11.asktpk.artisanconnectbackend.entities.Notice;
+import _11.asktpk.artisanconnectbackend.repository.ClientRepository;
+import _11.asktpk.artisanconnectbackend.service.NoticeService;
+import _11.asktpk.artisanconnectbackend.dto.NoticeDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -24,7 +23,7 @@ public class ArtisanConnectController {
private ClientRepository clientRepository;
@GetMapping("/notices/all")
- public List getAllNotices() {
+ public List getAllNotices() {
return noticeService.getAllNotices();
}
@@ -35,14 +34,16 @@ public class ArtisanConnectController {
.status(HttpStatus.BAD_REQUEST)
.body("Nie znaleziono klienta o ID: " + dto.getClientId());
}
+
noticeService.addNotice(noticeService.createFromDTO(dto));
+
return ResponseEntity.status(HttpStatus.CREATED).body("Dodano ogłoszenie.");
}
// TODO: zamiast dodawać tutaj pętlą, musi to robić NoticeService, trzeba zaimplementować odpowienią metodę
@PostMapping("/notices/bulk_add")
- public ResponseEntity addNotice(@RequestBody List notices_list) {
+ public ResponseEntity addNotices(@RequestBody List notices_list) {
List errors = new ArrayList<>();
boolean isError = false;
if (notices_list.isEmpty()) {
diff --git a/src/main/java/_11/asktpk/artisanconnectbackend/dto/ClientDTO.java b/src/main/java/_11/asktpk/artisanconnectbackend/dto/ClientDTO.java
new file mode 100644
index 0000000..5b3863f
--- /dev/null
+++ b/src/main/java/_11/asktpk/artisanconnectbackend/dto/ClientDTO.java
@@ -0,0 +1,4 @@
+package _11.asktpk.artisanconnectbackend.dto;
+
+public class ClientDTO {
+}
diff --git a/src/main/java/_11/asktpk/artisanconnectbackend/dto/NoticeDTO.java b/src/main/java/_11/asktpk/artisanconnectbackend/dto/NoticeDTO.java
new file mode 100644
index 0000000..e64eec9
--- /dev/null
+++ b/src/main/java/_11/asktpk/artisanconnectbackend/dto/NoticeDTO.java
@@ -0,0 +1,51 @@
+package _11.asktpk.artisanconnectbackend.dto;
+
+import _11.asktpk.artisanconnectbackend.entities.AttributesNotice;
+import _11.asktpk.artisanconnectbackend.utils.Enums;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.time.LocalDate;
+import java.util.List;
+
+@Getter @Setter
+public class NoticeDTO {
+ private long noticeId;
+
+ private String title;
+
+ private Long clientId;
+
+ private String description;
+
+ private Double price;
+
+ private Enums.Category category;
+
+ private List images;
+
+ private Enums.Status status;
+
+ private LocalDate publishDate;
+
+ private List attributesNotices;
+
+ public NoticeDTO() {
+
+ }
+
+ public NoticeDTO(Long noticeId, String title, Long clientId, String description, Double price,
+ Enums.Category category, List images, Enums.Status status,
+ LocalDate publishDate, List attributesNotices) {
+ this.noticeId = noticeId;
+ this.title = title;
+ this.clientId = clientId;
+ this.description = description;
+ this.price = price;
+ this.category = category;
+ this.images = images;
+ this.status = status;
+ this.publishDate = publishDate;
+ this.attributesNotices = attributesNotices;
+ }
+}
diff --git a/src/main/java/_11/asktpk/artisanconnectbackend/Entities/AttributeValues.java b/src/main/java/_11/asktpk/artisanconnectbackend/entities/AttributeValues.java
similarity index 87%
rename from src/main/java/_11/asktpk/artisanconnectbackend/Entities/AttributeValues.java
rename to src/main/java/_11/asktpk/artisanconnectbackend/entities/AttributeValues.java
index 609aff2..0625d3b 100644
--- a/src/main/java/_11/asktpk/artisanconnectbackend/Entities/AttributeValues.java
+++ b/src/main/java/_11/asktpk/artisanconnectbackend/entities/AttributeValues.java
@@ -1,4 +1,4 @@
-package _11.asktpk.artisanconnectbackend.Entities;
+package _11.asktpk.artisanconnectbackend.entities;
import jakarta.persistence.*;
diff --git a/src/main/java/_11/asktpk/artisanconnectbackend/Entities/Attributes.java b/src/main/java/_11/asktpk/artisanconnectbackend/entities/Attributes.java
similarity index 88%
rename from src/main/java/_11/asktpk/artisanconnectbackend/Entities/Attributes.java
rename to src/main/java/_11/asktpk/artisanconnectbackend/entities/Attributes.java
index d521c2c..ae405fa 100644
--- a/src/main/java/_11/asktpk/artisanconnectbackend/Entities/Attributes.java
+++ b/src/main/java/_11/asktpk/artisanconnectbackend/entities/Attributes.java
@@ -1,4 +1,4 @@
-package _11.asktpk.artisanconnectbackend.Entities;
+package _11.asktpk.artisanconnectbackend.entities;
import jakarta.persistence.*;
import java.util.List;
diff --git a/src/main/java/_11/asktpk/artisanconnectbackend/Entities/AttributesNotice.java b/src/main/java/_11/asktpk/artisanconnectbackend/entities/AttributesNotice.java
similarity index 88%
rename from src/main/java/_11/asktpk/artisanconnectbackend/Entities/AttributesNotice.java
rename to src/main/java/_11/asktpk/artisanconnectbackend/entities/AttributesNotice.java
index 290645d..66ef0d0 100644
--- a/src/main/java/_11/asktpk/artisanconnectbackend/Entities/AttributesNotice.java
+++ b/src/main/java/_11/asktpk/artisanconnectbackend/entities/AttributesNotice.java
@@ -1,4 +1,4 @@
-package _11.asktpk.artisanconnectbackend.Entities;
+package _11.asktpk.artisanconnectbackend.entities;
import jakarta.persistence.*;
diff --git a/src/main/java/_11/asktpk/artisanconnectbackend/entities/Client.java b/src/main/java/_11/asktpk/artisanconnectbackend/entities/Client.java
new file mode 100644
index 0000000..a8f935e
--- /dev/null
+++ b/src/main/java/_11/asktpk/artisanconnectbackend/entities/Client.java
@@ -0,0 +1,37 @@
+package _11.asktpk.artisanconnectbackend.entities;
+
+import _11.asktpk.artisanconnectbackend.utils.Enums.Role;
+
+import jakarta.persistence.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+@Entity
+@Table(name = "clients")
+@Getter @Setter
+public class Client {
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ private String email;
+
+ private String password;
+
+ private String firstName;
+
+ private String lastName;
+
+ private String image; // Optional field
+
+ @Enumerated(EnumType.STRING)
+ private Role role;
+
+// @OneToMany(mappedBy = "client", cascade = CascadeType.ALL)
+// private List notices;
+
+ @OneToMany(mappedBy = "client", cascade = CascadeType.ALL)
+ private List orders;
+}
diff --git a/src/main/java/_11/asktpk/artisanconnectbackend/Entities/GlobalVariables.java b/src/main/java/_11/asktpk/artisanconnectbackend/entities/GlobalVariables.java
similarity index 84%
rename from src/main/java/_11/asktpk/artisanconnectbackend/Entities/GlobalVariables.java
rename to src/main/java/_11/asktpk/artisanconnectbackend/entities/GlobalVariables.java
index b1d8676..cb50f6f 100644
--- a/src/main/java/_11/asktpk/artisanconnectbackend/Entities/GlobalVariables.java
+++ b/src/main/java/_11/asktpk/artisanconnectbackend/entities/GlobalVariables.java
@@ -1,4 +1,4 @@
-package _11.asktpk.artisanconnectbackend.Entities;
+package _11.asktpk.artisanconnectbackend.entities;
import jakarta.persistence.*;
diff --git a/src/main/java/_11/asktpk/artisanconnectbackend/entities/Notice.java b/src/main/java/_11/asktpk/artisanconnectbackend/entities/Notice.java
new file mode 100644
index 0000000..6919f6e
--- /dev/null
+++ b/src/main/java/_11/asktpk/artisanconnectbackend/entities/Notice.java
@@ -0,0 +1,49 @@
+package _11.asktpk.artisanconnectbackend.entities;
+
+import jakarta.persistence.*;
+
+import java.time.LocalDate;
+import java.util.List;
+
+import _11.asktpk.artisanconnectbackend.utils.Enums.*;
+import lombok.Getter;
+import lombok.Setter;
+
+@Entity
+@Table(name = "notice")
+@Getter @Setter
+public class Notice {
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long idNotice;
+
+ private String title;
+
+ @ManyToOne
+ @JoinColumn(name = "client_id")
+ private Client client;
+
+ private String description;
+
+ private Double price;
+
+ @Enumerated(EnumType.STRING)
+ private Category category;
+
+ @ElementCollection
+ private List images;
+
+ @Enumerated(EnumType.STRING)
+ private Status status;
+
+ private LocalDate publishDate;
+
+ @OneToMany(mappedBy = "notice", cascade = CascadeType.ALL)
+ private List attributesNotices;
+
+ @OneToMany(mappedBy = "notice", cascade = CascadeType.ALL)
+ private List orders;
+
+ @OneToMany(mappedBy = "notice", cascade = CascadeType.ALL)
+ private List payments;
+}
diff --git a/src/main/java/_11/asktpk/artisanconnectbackend/Entities/Orders.java b/src/main/java/_11/asktpk/artisanconnectbackend/entities/Orders.java
similarity index 79%
rename from src/main/java/_11/asktpk/artisanconnectbackend/Entities/Orders.java
rename to src/main/java/_11/asktpk/artisanconnectbackend/entities/Orders.java
index 9d01112..0657ad8 100644
--- a/src/main/java/_11/asktpk/artisanconnectbackend/Entities/Orders.java
+++ b/src/main/java/_11/asktpk/artisanconnectbackend/entities/Orders.java
@@ -1,6 +1,6 @@
-package _11.asktpk.artisanconnectbackend.Entities;
+package _11.asktpk.artisanconnectbackend.entities;
-import _11.asktpk.artisanconnectbackend.Utils.Enums.Status;
+import _11.asktpk.artisanconnectbackend.utils.Enums.Status;
import jakarta.persistence.*;
diff --git a/src/main/java/_11/asktpk/artisanconnectbackend/Entities/Payments.java b/src/main/java/_11/asktpk/artisanconnectbackend/entities/Payments.java
similarity index 82%
rename from src/main/java/_11/asktpk/artisanconnectbackend/Entities/Payments.java
rename to src/main/java/_11/asktpk/artisanconnectbackend/entities/Payments.java
index 9f4cd2e..a15dde9 100644
--- a/src/main/java/_11/asktpk/artisanconnectbackend/Entities/Payments.java
+++ b/src/main/java/_11/asktpk/artisanconnectbackend/entities/Payments.java
@@ -1,6 +1,6 @@
-package _11.asktpk.artisanconnectbackend.Entities;
+package _11.asktpk.artisanconnectbackend.entities;
-import _11.asktpk.artisanconnectbackend.Utils.Enums.Status;
+import _11.asktpk.artisanconnectbackend.utils.Enums.Status;
import jakarta.persistence.*;
diff --git a/src/main/java/_11/asktpk/artisanconnectbackend/Repository/ClientRepository.java b/src/main/java/_11/asktpk/artisanconnectbackend/repository/ClientRepository.java
similarity index 55%
rename from src/main/java/_11/asktpk/artisanconnectbackend/Repository/ClientRepository.java
rename to src/main/java/_11/asktpk/artisanconnectbackend/repository/ClientRepository.java
index 5c7bd16..253aad0 100644
--- a/src/main/java/_11/asktpk/artisanconnectbackend/Repository/ClientRepository.java
+++ b/src/main/java/_11/asktpk/artisanconnectbackend/repository/ClientRepository.java
@@ -1,6 +1,6 @@
-package _11.asktpk.artisanconnectbackend.Repository;
+package _11.asktpk.artisanconnectbackend.repository;
-import _11.asktpk.artisanconnectbackend.Entities.Client;
+import _11.asktpk.artisanconnectbackend.entities.Client;
import org.springframework.data.jpa.repository.JpaRepository;
public interface ClientRepository extends JpaRepository {
diff --git a/src/main/java/_11/asktpk/artisanconnectbackend/Repository/NoticeRepository.java b/src/main/java/_11/asktpk/artisanconnectbackend/repository/NoticeRepository.java
similarity index 55%
rename from src/main/java/_11/asktpk/artisanconnectbackend/Repository/NoticeRepository.java
rename to src/main/java/_11/asktpk/artisanconnectbackend/repository/NoticeRepository.java
index a2d8626..6490053 100644
--- a/src/main/java/_11/asktpk/artisanconnectbackend/Repository/NoticeRepository.java
+++ b/src/main/java/_11/asktpk/artisanconnectbackend/repository/NoticeRepository.java
@@ -1,6 +1,6 @@
-package _11.asktpk.artisanconnectbackend.Repository;
+package _11.asktpk.artisanconnectbackend.repository;
-import _11.asktpk.artisanconnectbackend.Entities.Notice;
+import _11.asktpk.artisanconnectbackend.entities.Notice;
import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/src/main/java/_11/asktpk/artisanconnectbackend/Service/IDatabase.java b/src/main/java/_11/asktpk/artisanconnectbackend/service/IDatabase.java
similarity index 51%
rename from src/main/java/_11/asktpk/artisanconnectbackend/Service/IDatabase.java
rename to src/main/java/_11/asktpk/artisanconnectbackend/service/IDatabase.java
index 962c55c..444fc1b 100644
--- a/src/main/java/_11/asktpk/artisanconnectbackend/Service/IDatabase.java
+++ b/src/main/java/_11/asktpk/artisanconnectbackend/service/IDatabase.java
@@ -1,6 +1,6 @@
-package _11.asktpk.artisanconnectbackend.Service;
+package _11.asktpk.artisanconnectbackend.service;
-import _11.asktpk.artisanconnectbackend.Entities.Notice;
+import _11.asktpk.artisanconnectbackend.entities.Notice;
import java.util.List;
diff --git a/src/main/java/_11/asktpk/artisanconnectbackend/service/NoticeService.java b/src/main/java/_11/asktpk/artisanconnectbackend/service/NoticeService.java
new file mode 100644
index 0000000..06409c7
--- /dev/null
+++ b/src/main/java/_11/asktpk/artisanconnectbackend/service/NoticeService.java
@@ -0,0 +1,73 @@
+package _11.asktpk.artisanconnectbackend.service;
+
+import _11.asktpk.artisanconnectbackend.entities.Client;
+import _11.asktpk.artisanconnectbackend.entities.Notice;
+import _11.asktpk.artisanconnectbackend.repository.ClientRepository;
+import _11.asktpk.artisanconnectbackend.repository.NoticeRepository;
+import _11.asktpk.artisanconnectbackend.dto.NoticeDTO;
+import jakarta.persistence.EntityNotFoundException;
+import lombok.Builder;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class NoticeService {
+
+ private final NoticeRepository noticeRepository;
+ private final ClientRepository clientRepository;
+
+ public NoticeService(NoticeRepository noticeRepository, ClientRepository clientRepository) {
+ this.noticeRepository = noticeRepository;
+ this.clientRepository = clientRepository;
+ }
+
+ public Notice createFromDTO(NoticeDTO dto) {
+ Notice notice = new Notice();
+ notice.setTitle(dto.getTitle());
+ notice.setDescription(dto.getDescription());
+ notice.setPrice(dto.getPrice());
+ notice.setCategory(dto.getCategory());
+ notice.setImages(dto.getImages());
+ notice.setStatus(dto.getStatus());
+ notice.setPublishDate(dto.getPublishDate());
+ notice.setAttributesNotices(dto.getAttributesNotices());
+
+ Client client = clientRepository.findById(dto.getClientId())
+ .orElseThrow(() -> new EntityNotFoundException("Nie znaleziono klienta o ID: " + dto.getClientId()));
+ notice.setClient(client);
+
+ return notice;
+ }
+
+ // Metoda do konwersji Notice na DTO
+ public NoticeDTO toDTO(Notice notice) {
+ NoticeDTO dto = new NoticeDTO();
+ dto.setNoticeId(notice.getIdNotice());
+ dto.setTitle(notice.getTitle());
+ dto.setClientId(notice.getClient().getId());
+ dto.setDescription(notice.getDescription());
+ dto.setPrice(notice.getPrice());
+ dto.setCategory(notice.getCategory());
+ dto.setImages(notice.getImages());
+ dto.setStatus(notice.getStatus());
+ dto.setPublishDate(notice.getPublishDate());
+ dto.setAttributesNotices(notice.getAttributesNotices());
+
+ return dto;
+ }
+
+ public List getAllNotices() {
+ List result = new ArrayList<>();
+ for (Notice notice : noticeRepository.findAll()) {
+ result.add(toDTO(notice));
+ }
+ return result;
+ }
+
+ public void addNotice(Notice notice) {
+ noticeRepository.save(notice);
+ }
+}
diff --git a/src/main/java/_11/asktpk/artisanconnectbackend/Utils/Enums.java b/src/main/java/_11/asktpk/artisanconnectbackend/utils/Enums.java
similarity index 85%
rename from src/main/java/_11/asktpk/artisanconnectbackend/Utils/Enums.java
rename to src/main/java/_11/asktpk/artisanconnectbackend/utils/Enums.java
index 997686b..78da471 100644
--- a/src/main/java/_11/asktpk/artisanconnectbackend/Utils/Enums.java
+++ b/src/main/java/_11/asktpk/artisanconnectbackend/utils/Enums.java
@@ -1,4 +1,4 @@
-package _11.asktpk.artisanconnectbackend.Utils;
+package _11.asktpk.artisanconnectbackend.utils;
public class Enums {
public enum Role {
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index cc92d47..3e18cc0 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -5,5 +5,9 @@ spring.datasource.url=jdbc:postgresql://localhost:5432/default_db
spring.datasource.username=postgres
spring.datasource.password=postgres
+spring.sql.init.data-locations=classpath:sql/data.sql
+spring.sql.init.mode=always
+spring.jpa.defer-datasource-initialization=true
+
# create and drop table, good for testing, production set to none or comment it
-spring.jpa.hibernate.ddl-auto=create-drop
+spring.jpa.hibernate.ddl-auto=create-drop
\ No newline at end of file