Subversion Repositories SmartDukaan

Rev

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