Subversion Repositories SmartDukaan

Rev

Rev 3026 | Rev 3106 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3026 mandeep.dh 1
namespace java in.shop2020.crm
2
namespace py shop2020.thriftpy.crm
3
 
4
enum TicketPriority {
5
    LOW = 0,
6
    HIGH = 1,
7
    MEDIUM = 2
8
}
9
 
10
enum TicketStatus {
11
    OPEN = 0,
12
    CLOSED = 1,
13
    REOPEN = 2
14
}
15
 
16
enum ContactMedium {
17
    PHONE = 0,
18
    EMAIL = 1
19
}
20
 
21
enum TicketCategory {
22
    RETURN_FORM = 1,
23
    ORDER_CANCELLATION = 2,
24
    DELIVERY_PROBLEM = 3,
25
    PAYMENT_STATUS = 4,
26
    ORDER_STATUS = 5,
27
    PRODUCT_REQUEST = 6,
28
    PRODUCT_QUESTION = 7,
29
    OTHER = 8
30
}
31
 
32
struct Ticket {
33
    1:i64 id,
34
    2:i64 customerId,
35
    3:i64 openDate,
36
    4:i64 closeDate,
37
    5:string subject,
38
    6:i64 creatorId,
39
    7:i64 receipientId,
40
    8:i64 orderId,
41
    9:string airwayBillNo,
42
   10:string productName
43
}
44
 
45
struct Activity {
46
    1:i64 id,
47
    2:string description,
48
    3:i64 contactTimestamp,
49
    4:ContactMedium contactMedium,
50
    5:i64 customerId,
51
    6:i64 creatorId,
52
    7:i64 contactingAgentId, // id of agent that contacted the customer!
53
 
54
    // ticket related fields
55
    8:i64 ticketId,
56
    9:TicketPriority ticketPriority,
57
   10:i64 ticketAssigneeId,
58
   11:TicketStatus ticketStatus,
59
   12:TicketCategory ticketCategory
60
}
61
 
62
struct Agent {
63
    1:i64 id,
64
    2:string name,
65
    3:string emailId,
66
    4:i64 managerId,
67
    5:string password
68
}
69
 
70
service CRMService {
71
    // Methods to read/write tickets from/in database
72
    list<Ticket> getTickets(1:i64 customerId);
3087 mandeep.dh 73
    list<Ticket> getAssignedTickets(1:i64 agentId);
74
    list<Ticket> getOpenTickets();
3026 mandeep.dh 75
    Ticket getTicket(1:i64 ticketId);
76
    void updateTicket(1:Ticket ticket);
77
    i64 insertTicket(1:Ticket ticket);
78
 
79
    // Methods to read/write activities from/in database
80
    list<Activity> getActivities(1:i64 customerId);
81
    list<Activity> getActivitiesForTicket(1:i64 ticketId);
82
    Activity getActivity(1:i64 activityId);
83
    Activity getLastActivity(1:i64 ticketId);
84
    void insertActivity(1:Activity activity);
85
 
86
    // Methods to read agent information
3087 mandeep.dh 87
    list<Agent> getAllAgents();
3026 mandeep.dh 88
    Agent getAgent(1:i64 agentId);
89
    Agent getAgentByEmailId(1:string agentEmailId);
3087 mandeep.dh 90
    void updatePasswordForAgent(1:string agentEmailId, 2:string password);
91
 
92
    // Methods to read roles and permissions information
93
    list<string> getRoleNamesForAgent(1:string agentEmailId);
94
    list<string> getPermissionsForRoleName(1:string roleName);    
3026 mandeep.dh 95
}