Dodaj skrypt czyszczenia danych testowych i wylacz ogloszenia demo
Deploy Polska Lokalnie / deploy (push) Successful in 10s

scripts/cleanup-test-data.sql zostawia wylacznie konta zatorskipascal@gmail.com
i admin@softspm.com. Usuwa pozostale konta, ogloszenia spoza tych dwoch kont
oraz powiazane dane (wiadomosci, powiadomienia, ustawienia, leady, zamowienia
promocji, zgloszenia, poradniki), w tym sieroty po kontach usunietych wczesniej
z panelu admina. Domyslnie dziala na sucho (ROLLBACK), zapis tylko z -v apply=1;
przerywa, gdy ktoregos z zachowywanych kont nie ma w bazie.

DataSeeder nie dodaje juz ogloszen demo: robil to przy kazdym starcie z pusta
tabela ogloszen, wiec po wyczyszczeniu danych wracalyby przy kolejnym wdrozeniu.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-21 14:36:14 +02:00
parent 4453ef2305
commit bc2f5ce634
2 changed files with 130 additions and 47 deletions
@@ -10,11 +10,6 @@ import org.springframework.stereotype.Component;
import pl.polskalokalnie.banner.Banner;
import pl.polskalokalnie.banner.BannerRepository;
import pl.polskalokalnie.banner.BannerSlot;
import pl.polskalokalnie.listing.ListingRepository;
import pl.polskalokalnie.listing.ListingStatus;
import pl.polskalokalnie.listing.OfferType;
import pl.polskalokalnie.listing.PropertyListing;
import pl.polskalokalnie.listing.PropertyType;
import pl.polskalokalnie.promotion.PromotionPackage;
import pl.polskalokalnie.promotion.PromotionPackageRepository;
import pl.polskalokalnie.promotion.PromotionPlan;
@@ -31,7 +26,6 @@ public class DataSeeder implements CommandLineRunner {
private static final Logger log = LoggerFactory.getLogger(DataSeeder.class);
private final UserRepository userRepository;
private final ListingRepository listingRepository;
private final BannerRepository bannerRepository;
private final PromotionPlanRepository promotionPlanRepository;
private final PromotionPackageRepository promotionPackageRepository;
@@ -44,7 +38,6 @@ public class DataSeeder implements CommandLineRunner {
public DataSeeder(
UserRepository userRepository,
ListingRepository listingRepository,
BannerRepository bannerRepository,
PromotionPlanRepository promotionPlanRepository,
PromotionPackageRepository promotionPackageRepository,
@@ -56,7 +49,6 @@ public class DataSeeder implements CommandLineRunner {
@Value("${app.admin.reset-password:false}") boolean adminResetPassword
) {
this.userRepository = userRepository;
this.listingRepository = listingRepository;
this.bannerRepository = bannerRepository;
this.promotionPlanRepository = promotionPlanRepository;
this.promotionPackageRepository = promotionPackageRepository;
@@ -71,7 +63,8 @@ public class DataSeeder implements CommandLineRunner {
@Override
public void run(String... args) {
seedAdmin();
seedDemoListings();
// Bez ogloszen demo: seeder dodawal je przy kazdym starcie z pusta tabela ogloszen,
// wiec po wyczyszczeniu danych testowych na produkcji wracalyby przy kolejnym wdrozeniu.
seedBanners();
seedPromotion();
}
@@ -183,42 +176,4 @@ public class DataSeeder implements CommandLineRunner {
+ " Wylacz te zmienna po odzyskaniu dostepu.", email);
}
private void seedDemoListings() {
if (listingRepository.count() > 0) {
return;
}
listingRepository.save(demoListing(
"Słoneczne 3 pokoje na Mokotowie", "Rozkładowe mieszkanie po remoncie, blisko metra.",
OfferType.SALE, PropertyType.APARTMENT, "Warszawa", "ul. Puławska 120",
new BigDecimal("749000"), 62.0, 3, ListingStatus.APPROVED));
listingRepository.save(demoListing(
"Dom z ogrodem pod Krakowem", "Wolnostojący dom, działka 600 m², cicha okolica.",
OfferType.SALE, PropertyType.HOUSE, "Kraków", "ul. Podgórska 8",
new BigDecimal("1290000"), 145.0, 5, ListingStatus.PENDING));
listingRepository.save(demoListing(
"Kawalerka do wynajęcia - Wrocław", "Umeblowana kawalerka w centrum, dostępna od zaraz.",
OfferType.RENT, PropertyType.APARTMENT, "Wrocław", "ul. Krupnicza 3",
new BigDecimal("2600"), 30.0, 1, ListingStatus.PENDING));
}
private PropertyListing demoListing(
String title, String description, OfferType offerType, PropertyType propertyType,
String city, String address, BigDecimal price, Double area, Integer rooms, ListingStatus status
) {
PropertyListing listing = new PropertyListing();
listing.setTitle(title);
listing.setDescription(description);
listing.setOfferType(offerType);
listing.setPropertyType(propertyType);
listing.setCity(city);
listing.setAddress(address);
listing.setPrice(price);
listing.setArea(area);
listing.setRooms(rooms);
listing.setContactName("Biuro Polska Lokalnie");
listing.setContactPhone("+48 600 100 200");
listing.setOwnerEmail("demo.user@polskalokalnie.pl");
listing.setStatus(status);
return listing;
}
}