From eafd02fc078779422312d3343edc1de01cafee1a Mon Sep 17 00:00:00 2001 From: Vincent Guillet Date: Mon, 19 May 2025 14:43:55 +0200 Subject: [PATCH] Add Ad model, DAO, and service for managing advertisements --- .../main/java/com/humanbooster/dao/AdDao.java | 11 ++++ .../main/java/com/humanbooster/model/Ad.java | 52 +++++++++++++++++++ .../com/humanbooster/service/AdService.java | 29 +++++++++++ 3 files changed, 92 insertions(+) create mode 100644 hibernate-project/src/main/java/com/humanbooster/dao/AdDao.java create mode 100644 hibernate-project/src/main/java/com/humanbooster/model/Ad.java create mode 100644 hibernate-project/src/main/java/com/humanbooster/service/AdService.java diff --git a/hibernate-project/src/main/java/com/humanbooster/dao/AdDao.java b/hibernate-project/src/main/java/com/humanbooster/dao/AdDao.java new file mode 100644 index 0000000..1794176 --- /dev/null +++ b/hibernate-project/src/main/java/com/humanbooster/dao/AdDao.java @@ -0,0 +1,11 @@ +package com.humanbooster.dao; + +import com.humanbooster.model.Ad; +import org.hibernate.SessionFactory; + +public class AdDao extends GenericDaoImpl { + + public AdDao(SessionFactory sessionFactory) { + super(sessionFactory, Ad.class); + } +} diff --git a/hibernate-project/src/main/java/com/humanbooster/model/Ad.java b/hibernate-project/src/main/java/com/humanbooster/model/Ad.java new file mode 100644 index 0000000..548a973 --- /dev/null +++ b/hibernate-project/src/main/java/com/humanbooster/model/Ad.java @@ -0,0 +1,52 @@ +package com.humanbooster.model; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; + +import java.time.LocalDate; + +@Entity +public class Ad extends Publication { + + @Column(nullable = false) + private LocalDate expirationDate; + + @Column(nullable = false) + private String contactEmail; + + private int price; + + public Ad() { + } + + public Ad(String title, String content, LocalDate publishDate, LocalDate expirationDate, String contactEmail, int price) { + super(title, content, publishDate); + this.expirationDate = expirationDate; + this.contactEmail = contactEmail; + this.price = price; + } + + public LocalDate getExpirationDate() { + return expirationDate; + } + + public void setExpirationDate(LocalDate expirationDate) { + this.expirationDate = expirationDate; + } + + public String getContactEmail() { + return contactEmail; + } + + public void setContactEmail(String contactEmail) { + this.contactEmail = contactEmail; + } + + public int getPrice() { + return price; + } + + public void setPrice(int price) { + this.price = price; + } +} diff --git a/hibernate-project/src/main/java/com/humanbooster/service/AdService.java b/hibernate-project/src/main/java/com/humanbooster/service/AdService.java new file mode 100644 index 0000000..622cad1 --- /dev/null +++ b/hibernate-project/src/main/java/com/humanbooster/service/AdService.java @@ -0,0 +1,29 @@ +package com.humanbooster.service; + +import com.humanbooster.dao.AdDao; +import com.humanbooster.model.Ad; + +import java.util.List; + +public record AdService (AdDao adDao) { + + public void createAd(Ad ad) { + adDao.create(ad); + } + + public Ad getAdById(Long id) { + return adDao.read(id); + } + + public void updateAd(Ad ad) { + adDao.update(ad); + } + + public void deleteAd(Long id) { + adDao.delete(id); + } + + public List getAllAds() { + return adDao.findAll(); + } +}