Add Ad model, DAO, and service for managing advertisements

This commit is contained in:
Vincent Guillet
2025-05-19 14:43:55 +02:00
parent ad130294fd
commit eafd02fc07
3 changed files with 92 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
package com.humanbooster.dao;
import com.humanbooster.model.Ad;
import org.hibernate.SessionFactory;
public class AdDao extends GenericDaoImpl<Ad, Long> {
public AdDao(SessionFactory sessionFactory) {
super(sessionFactory, Ad.class);
}
}

View File

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

View File

@@ -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<Ad> getAllAds() {
return adDao.findAll();
}
}