1 package fr.ifremer.dali.service.administration.campaign;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 import fr.ifremer.quadrige3.core.security.AuthenticationInfo;
25 import fr.ifremer.dali.dto.SearchDateDTO;
26 import fr.ifremer.dali.dto.data.survey.CampaignDTO;
27 import org.springframework.security.access.prepost.PreAuthorize;
28 import org.springframework.transaction.annotation.Transactional;
29
30 import java.util.Collection;
31 import java.util.Date;
32 import java.util.List;
33
34
35
36
37 @Transactional(readOnly = true)
38 public interface CampaignService {
39
40 List<CampaignDTO> getAllCampaigns();
41
42 List<CampaignDTO> findCampaignsByCriteria(String name, SearchDateDTO startDateSearch, Date startDate1, Date startDate2, SearchDateDTO endDateSearch, Date endDate1, Date endDate2);
43
44 List<CampaignDTO> findCampaignsIncludingDate(Date date);
45
46 boolean checkCampaignNameDuplicates(Integer id, String name);
47
48 @Transactional
49
50 @PreAuthorize("hasPermission(null, T(fr.ifremer.quadrige3.core.security.QuadrigeUserAuthority).USER)")
51 void saveCampaigns(AuthenticationInfo authenticationInfo, Collection<? extends CampaignDTO> campaigns);
52
53 @Transactional
54
55 @PreAuthorize("hasPermission(null, T(fr.ifremer.quadrige3.core.security.QuadrigeUserAuthority).USER)")
56 void deleteCampaign(AuthenticationInfo authenticationInfo, List<Integer> campaignIds);
57
58 boolean isCampaignUsedByFilter(int campaignId);
59
60 long countSurveysWithCampaign(int campaignId);
61 }