Subversion Repositories SmartDukaan

Rev

Rev 35626 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
24383 amit.gupta 1
package com.spice.profitmandi.dao.repository.cs;
2
 
27819 tejbeer 3
import com.spice.profitmandi.dao.entity.auth.AuthUser;
24383 amit.gupta 4
import com.spice.profitmandi.dao.entity.cs.Ticket;
24699 govind 5
import com.spice.profitmandi.dao.entity.cs.TicketSearchType;
26283 tejbeer 6
import com.spice.profitmandi.dao.entity.fofo.ActivityType;
24439 govind 7
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
30416 tejbeer 8
import com.spice.profitmandi.dao.model.TicketViewModel;
35631 ranu 9
import org.springframework.stereotype.Repository;
24383 amit.gupta 10
 
35631 ranu 11
import javax.swing.*;
12
import java.time.LocalDateTime;
13
import java.util.List;
14
import java.util.Map;
15
import java.util.Optional;
16
 
24383 amit.gupta 17
@Repository
18
public interface TicketRepository {
31762 tejbeer 19
    void persist(Ticket ticket);
26283 tejbeer 20
 
31762 tejbeer 21
    Ticket selectById(int ticketId);
26283 tejbeer 22
 
31762 tejbeer 23
    List<Ticket> selectAllByAssignee(int assigneeId, Optional<Boolean> resolved, int offset, int limit);
26283 tejbeer 24
 
31762 tejbeer 25
    List<Ticket> selectAllByCreator(int creatorId, Optional<Boolean> resolved, SortOrder sortOrder);
26283 tejbeer 26
 
31762 tejbeer 27
    List<Ticket> selectAll(int offset, int limit, Optional<Boolean> resolved);
26283 tejbeer 28
 
31762 tejbeer 29
    List<Ticket> selectAllEscalated(Optional<Boolean> resolved, int offset, int limit);
26283 tejbeer 30
 
31762 tejbeer 31
    List<Ticket> selectAllEscalatedByCreator(int fofoId, Optional<Boolean> resolved, int offset, int limit);
26283 tejbeer 32
 
31762 tejbeer 33
    List<Ticket> selectAllEscalatedByAssignee(int assigneId, Optional<Boolean> resolved, int offset, int limit);
26283 tejbeer 34
 
31762 tejbeer 35
    public long selectAllCountByCreator(int creatorId, Optional<Boolean> resolved);
26283 tejbeer 36
 
31762 tejbeer 37
    public List<Ticket> selectAllByEscalatedUserType(int authUser, EscalationType escalationType, int offset, int limit);
26283 tejbeer 38
 
31762 tejbeer 39
    public long selectAllCountByEscalatedUserType(int authUser, EscalationType escalationType);
26283 tejbeer 40
 
31762 tejbeer 41
    public Long selectAllCount();
26283 tejbeer 42
 
31762 tejbeer 43
    public List<Ticket> selectAllNotClosedTickets();
26283 tejbeer 44
 
31762 tejbeer 45
    public List<Ticket> selectAllOpenTicketByRetailer(int fofoId);
27660 tejbeer 46
 
31762 tejbeer 47
    public Map<Integer, Long> selectAllOpenTicketsGroupByRetailer();
26418 tejbeer 48
 
31762 tejbeer 49
    public List<Ticket> selectAllByAssignee(int assigneeId, Optional<Boolean> resolved, SortOrder sortOrder, TicketSearchType ticketSearchType, int searchTerm);
26283 tejbeer 50
 
31762 tejbeer 51
    public List<Ticket> selectAllByTicketIds(List<Integer> ticketIds);
26283 tejbeer 52
 
31762 tejbeer 53
    public long selectAllCountByAssignee(int assigneeId, Optional<Boolean> resolved, TicketSearchType ticketSearchType, int searchTerm);
26283 tejbeer 54
 
31762 tejbeer 55
    public List<Ticket> selectAllManagerTicket(int authUserId, SortOrder sortOrder, Optional<Boolean> resolved, TicketSearchType ticketSearchType, int searchTerm);
26283 tejbeer 56
 
31762 tejbeer 57
    public long selectAllCountByManagerTicket(int authUserId, Optional<Boolean> resolved, TicketSearchType ticketSearchType, int searchTerm);
26283 tejbeer 58
 
31762 tejbeer 59
    public List<Ticket> selectAllResolvedMarkedTicketByCreator(int assigneeId);
26283 tejbeer 60
 
31762 tejbeer 61
    public List<Ticket> selectAllNotClosedTicketsWithStatus(ActivityType activityType);
27819 tejbeer 62
 
31762 tejbeer 63
    public Map<AuthUser, Long> selectAllAuthUserTicketCount(Optional<Boolean> resolved);
30416 tejbeer 64
 
32923 ranu 65
    List<Ticket> selectAllOpenTickets(List<Integer> fofoIds);
66
 
33041 ranu 67
    List<Ticket> selectAllOpenTickets();
68
 
31762 tejbeer 69
    public List<TicketViewModel> selectRecentClosedTicket(int fofoId, LocalDateTime startDate);
35592 amit 70
 
71
    /**
72
     * Select all tickets for CRM users with status and search filtering.
73
     * CRM users need to see ALL tickets to respond to partner communications.
74
     */
75
    List<Ticket> selectAllTickets(Optional<Boolean> resolved, SortOrder sortOrder, TicketSearchType ticketSearchType, int searchTerm);
76
 
77
    long selectAllTicketsCount(Optional<Boolean> resolved, TicketSearchType ticketSearchType, int searchTerm);
35626 amit 78
 
79
    /**
80
     * Select all tickets with pagination, visibility filtering, and text search.
81
     * Visibility logic: Show ticket if subcategory.visibility=true OR subcategory.categoryId is in userCategoryIds.
82
     * Search covers: ticket ID, partner name, category name, subcategory name, creator name.
83
     */
84
    List<Ticket> selectAllTicketsPaginated(
85
            Optional<Boolean> resolved,
86
            SortOrder sortOrder,
87
            TicketSearchType searchType,
88
            int searchTerm,
89
            String searchText,
90
            List<Integer> userCategoryIds,
91
            int offset,
92
            int limit
93
    );
94
 
95
    long selectAllTicketsPaginatedCount(
96
            Optional<Boolean> resolved,
97
            TicketSearchType searchType,
98
            int searchTerm,
99
            String searchText,
100
            List<Integer> userCategoryIds
101
    );
102
 
103
    /**
104
     * Select tickets assigned to a user with pagination and text search.
105
     */
106
    List<Ticket> selectAllByAssigneePaginated(
107
            int assigneeId,
108
            Optional<Boolean> resolved,
109
            SortOrder sortOrder,
110
            TicketSearchType searchType,
111
            int searchTerm,
112
            String searchText,
113
            int offset,
114
            int limit
115
    );
116
 
117
    long selectAllByAssigneePaginatedCount(
118
            int assigneeId,
119
            Optional<Boolean> resolved,
120
            TicketSearchType searchType,
121
            int searchTerm,
122
            String searchText
123
    );
124
 
125
    /**
126
     * Select manager tickets with pagination and text search.
127
     */
128
    List<Ticket> selectAllManagerTicketPaginated(
129
            int authUserId,
130
            SortOrder sortOrder,
131
            Optional<Boolean> resolved,
132
            TicketSearchType searchType,
133
            int searchTerm,
134
            String searchText,
135
            int offset,
136
            int limit
137
    );
138
 
139
    long selectAllCountByManagerTicketPaginated(
140
            int authUserId,
141
            Optional<Boolean> resolved,
142
            TicketSearchType searchType,
143
            int searchTerm,
144
            String searchText
145
    );
35631 ranu 146
 
147
    /**
148
     * Get open ticket counts grouped by fofoId for specific fofoIds.
149
     * More efficient than fetching all tickets for all retailers.
150
     */
151
    Map<Integer, Long> selectOpenTicketsCountByFofoIds(List<Integer> fofoIds);
152
 
153
    List<Ticket> selectOpenEscalatedTicketsByAuthIds(List<Integer> authIds);
24439 govind 154
}