From 6baee0536c4ae1b4855ef3f24a8c386e6f3a13b6 Mon Sep 17 00:00:00 2001 From: Oriol-Farras Date: Sun, 4 Jan 2026 19:32:49 +0100 Subject: [PATCH] feat: Add Business entity and implement database initialization for default users and businesses. --- .../demo/config/DBInitialization.java | 44 ++++++++++++++++++- .../eps/softarch/demo/domain/Business.java | 15 +++++++ 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/src/main/java/cat/udl/eps/softarch/demo/config/DBInitialization.java b/src/main/java/cat/udl/eps/softarch/demo/config/DBInitialization.java index 3a509fe..d489824 100644 --- a/src/main/java/cat/udl/eps/softarch/demo/config/DBInitialization.java +++ b/src/main/java/cat/udl/eps/softarch/demo/config/DBInitialization.java @@ -1,4 +1,5 @@ package cat.udl.eps.softarch.demo.config; + import cat.udl.eps.softarch.demo.domain.Admin; import cat.udl.eps.softarch.demo.domain.Business; import cat.udl.eps.softarch.demo.domain.User; @@ -21,7 +22,8 @@ public class DBInitialization { private final AdminRepository adminRepository; private final BusinessRepository businessRepository; - public DBInitialization(UserRepository userRepository, AdminRepository adminRepository, BusinessRepository businessRepository) { + public DBInitialization(UserRepository userRepository, AdminRepository adminRepository, + BusinessRepository businessRepository) { this.userRepository = userRepository; this.adminRepository = adminRepository; this.businessRepository = businessRepository; @@ -58,6 +60,46 @@ public void initializeDatabase() { business.encodePassword(); business.setName("Best Coffee Shop"); business.setAddress("Main Street 123"); + business.setOpeningTime(java.time.LocalTime.of(8, 0)); + business.setClosingTime(java.time.LocalTime.of(20, 0)); + business.setRating(4.5); + business.setCapacity(50); + business.setHasWifi(true); + business.setStatus(cat.udl.eps.softarch.demo.domain.BusinessStatus.ACCEPTED); + businessRepository.save(business); + } + + if (!businessRepository.existsById("coffee_lover")) { + Business business = new Business(); + business.setId("coffee_lover"); + business.setEmail("lover@coffee.com"); + business.setPassword(defaultPassword); + business.encodePassword(); + business.setName("Coffee Lovers"); + business.setAddress("Second Avenue 45"); + business.setOpeningTime(java.time.LocalTime.of(9, 0)); + business.setClosingTime(java.time.LocalTime.of(21, 0)); + business.setRating(4.8); + business.setCapacity(30); + business.setHasWifi(true); + business.setStatus(cat.udl.eps.softarch.demo.domain.BusinessStatus.ACCEPTED); + businessRepository.save(business); + } + + if (!businessRepository.existsById("night_owl")) { + Business business = new Business(); + business.setId("night_owl"); + business.setEmail("night@coffee.com"); + business.setPassword(defaultPassword); + business.encodePassword(); + business.setName("Night Owl Cafe"); + business.setAddress("Midnight Lane 66"); + business.setOpeningTime(java.time.LocalTime.of(18, 0)); + business.setClosingTime(java.time.LocalTime.of(2, 0)); + business.setRating(4.2); + business.setCapacity(20); + business.setHasWifi(false); + business.setStatus(cat.udl.eps.softarch.demo.domain.BusinessStatus.ACCEPTED); businessRepository.save(business); } if (Arrays.asList(activeProfiles.split(",")).contains("test")) { diff --git a/src/main/java/cat/udl/eps/softarch/demo/domain/Business.java b/src/main/java/cat/udl/eps/softarch/demo/domain/Business.java index b6d44a4..6834a68 100644 --- a/src/main/java/cat/udl/eps/softarch/demo/domain/Business.java +++ b/src/main/java/cat/udl/eps/softarch/demo/domain/Business.java @@ -34,6 +34,7 @@ public class Business extends User { private LocalTime openingTime; private LocalTime closingTime; @Enumerated(EnumType.STRING) + @JsonProperty("registrationStatus") private BusinessStatus status; private String imageUrl; @@ -43,4 +44,18 @@ public class Business extends User { public Collection getAuthorities() { return AuthorityUtils.commaSeparatedStringToAuthorityList("ROLE_BUSINESS"); } + + @JsonProperty("ownerId") + public String getOwnerId() { + return this.getId(); + } + + @JsonProperty("status") + public String getOpenStatus() { + if (openingTime == null || closingTime == null) { + return "Closed"; + } + LocalTime now = LocalTime.now(); + return (now.isAfter(openingTime) && now.isBefore(closingTime)) ? "Open" : "Closed"; + } }