Rev 17274 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
namespace java in.shop2020.crmnamespace py shop2020.thriftpy.crminclude "GenericService.thrift"enum TicketPriority {LOW = 0,HIGH = 1,MEDIUM = 2}enum TicketStatus {OPEN = 0,CLOSED = 1,REOPEN = 2}enum TicketCategory {RETURN_FORM = 1,ORDER_CANCELLATION = 2,DELIVERY_PROBLEM = 3,PAYMENT_STATUS = 4,ORDER_STATUS = 5,PRODUCT_REQUEST = 6,RECHARGE_RELATED = 7,OTHER = 8,COD_VERIFICATION = 9,FAILED_PAYMENTS = 10,DELAYED_DELIVERY = 11,PAYMENT_FLAGGED = 12,DOA_RECEIVED = 13,PRODUCT_PROCUREMENT = 14,UNDELIVERED = 15,CATEGORY = 16,STORE_PICKUP = 17,ON_TIME_GUARANTEE = 18,LOW_INVENTORY_CANCELLED_ORDERS = 19,//Start:- Added By Manish Sharma for Creating a new Ticket: Category- RTO Refund on 21-Jun-2013RTO_REFUND = 20,//End:- Added By Manish Sharma for Creating a new Ticket: Category- RTO Refund on 21-Jun-2013Bulk_Order_ENQUIRY = 21,PROFITMANDI_FEEDBACK = 22,PROFITMANDI_ORDER_NOT_SEEN = 23,PROFITMANDI_CASHBACK = 24,PROFITMANDI_RECHARGE_ISSUE = 25,PROFITMANDI_OTHER = 26,PROFITMANDI_ORDER_TRACKING_ISSUE = 27,PROFITMANDI_REFUND_PROBLEM=28,PROFITMANDI_TECHNICAL_PROBLEM=29,PROFITMANDI_PRODUCT_ISSUE=30,PROFITMANDI_DELAYED_DELIVERY=31}enum ActivityType {SEND_EMAIL_TO_CUSTOMER = 1,RECEIVED_EMAIL_FROM_CUSTOMER = 2,CALLED_CUSTOMER = 3,RECEIVED_CALL_FROM_CUSTOMER = 4,OTHER = 5,ESCALATE_TICKET = 6,PROFITMANDI_CRM_APP_TICKET=7}struct Agent {1:i64 id,2:string name,3:string emailId,4:optional i64 managerId,5:string password,6:bool is_active,7:bool is_pmCrmUser,8:bool is_allAssignable;}struct Ticket {1:i64 id,2:optional i64 customerId,3:i64 openDate,4:optional i64 closeDate,5:optional string description,6:TicketPriority priority,7:TicketCategory category,8:TicketStatus status,9:optional i64 assigneeId,10:i64 creatorId,11:optional i64 orderId,12:optional string airwayBillNo,13:optional string productName,// used for un-registered users14:optional string customerMobileNumber,15:optional string customerEmailId,16:optional string customerName}struct Activity {1:i64 id,2:optional string description,3:i64 creationTimestamp, // represents time at which this activity occurred4:ActivityType type,5:optional i64 customerId, // used for registered users6:i64 creatorId,// represents the numeric identifier for the emails sent to customers// These are archived in helper..useremailarchive or helper..useremail7:optional i64 userEmailId,// ticket related fields to track changes on ticket fields8:optional i64 ticketId,9:optional TicketPriority ticketPriority,10:optional i64 ticketAssigneeId,11:optional TicketStatus ticketStatus,12:optional TicketCategory ticketCategory,13:optional string ticketDescription,// Activities created as part of mails received from customers// have to be explicitly marked as read by agents in CRM.// This flag is set over such activities when any agent marks it as read!14:optional bool isRead,// used for un-registered users15:optional string customerMobileNumber,16:optional string customerEmailId,17:optional string customerName,// used for attachments name separated by semicolon18:optional string attachments}struct SearchFilter {1:optional i64 ticketId,2:optional i64 activityId,3:optional list<i64> ticketAssigneeIds,4:optional list<i64> activityCreatorIds,5:optional i64 agentId,6:optional i64 customerId,7:optional i64 startTimestamp,8:optional i64 endTimestamp,9:optional bool isActivityRead,10:optional string agentEmailId,11:optional string customerEmailId,12:optional string customerMobileNumber,13:optional list<TicketStatus> ticketStatuses,14:optional TicketCategory ticketCategory,15:optional TicketPriority ticketPriority,16:optional ActivityType activityType,17:optional list<TicketCategory> ticketCategoryList,18:optional bool notShowPmTickets}exception CRMServiceException {1:GenericService.ExceptionType exceptionType,2:string message}service CRMService extends GenericService.GenericService{// Methods to read/write tickets from/in databaselist<Ticket> getTickets(1:SearchFilter searchFilter);list<Ticket> getUnassignedTickets();void updateTicket(1:Ticket ticket, 2:Activity activity);i64 insertTicket(1:Ticket ticket, 2:Activity activity);void unassignAgentTickets(1:i32 assigneeId);// Methods to read/write activities from/in databaselist<Activity> getActivities(1:SearchFilter searchFilter);i64 insertActivity(1:Activity activity);void markAsRead(1:i64 activityId, 2:i64 agentId);// Methods to read agent informationlist<Agent> getAgents(1:SearchFilter searchFilter);list<Agent> getInactiveAgents(1:SearchFilter searchFilter);void updatePasswordForAgent(1:string agentEmailId, 2:string password);// Methods to read roles and permissions informationlist<string> getRoleNamesForAgent(1:string agentEmailId);list<string> getPermissionsForRoleName(1:string roleName);// Misc methodsi64 getLastEmailProcessedTimestamp();void updateLastEmailProcessedTimestamp(1:i64 timestamp);// Method to change active/inactive status of Agentvoid changeAgentStatus(1:bool status, 2:string emailId);//Method to add a new CRM Agentvoid insertAgent(1:Agent agent, 2:list<string> role);//Method to change CRM agent rolevoid changeAgentRole(1:i64 id, 2:list<string> role);//Method to get openTicketCount for any agenti32 getOpenTicketCountForAgent(1:i64 agentId);//Method to get all open tickets grouped by categoriesmap<string,i64> getOpenTicketsMap();//Method to get Required Data Map for Fedex Reconciliationmap<string,string> getFedexReconciliationDataMap(1:list<i64> order_ids, string method_key);}