Rev 3339 | Rev 3390 | 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,PRODUCT_QUESTION = 7,OTHER = 8}enum ActivityType {SEND_EMAIL_TO_CUSTOMER = 1,RECEIVED_EMAIL_FROM_CUSTOMER = 2,CALLED_CUSTOMER = 3,RECEIVED_CALL_FROM_CUSTOMER = 4,OTHER = 5}struct Ticket {1:i64 id,2:optional i64 customerId, // used for registered users3:optional string customerEmailId, // used for un-registered users4:i64 openDate,5:optional i64 closeDate,6:optional string description,7:TicketPriority priority,8:TicketCategory category,9:TicketStatus status,10:optional i64 assigneeId,11:i64 creatorId,12:optional i64 orderId,13:optional string airwayBillNo,14:optional string productName}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:optional string customerMobileNumber, // used for unregistered users7:i64 creatorId,// represents the numeric identifier for the emails sent to customers// These are archived in helper..useremailarchive or helper..useremail8:optional i64 emailId,// ticket related fields to track changes on ticket fields9:optional i64 ticketId,10:optional TicketPriority ticketPriority,11:optional i64 ticketAssigneeId,12:optional TicketStatus ticketStatus,13:optional TicketCategory ticketCategory,14:optional string ticketDescription}struct Agent {1:i64 id,2:string name,3:string emailId,4:optional i64 managerId,5:string password}service CRMService extends GenericService.GenericService{// Methods to read/write tickets from/in databaselist<Ticket> getTickets(1:i64 customerId);list<Ticket> getAssignedTickets(1:i64 agentId);list<Ticket> getUnassignedTickets();// Retrieves all tickets assigned to an agent or its reportee.list<Ticket> getAllTickets(1:i64 agentId);Ticket getTicket(1:i64 ticketId);void updateTicket(1:Ticket ticket, 2:Activity activity);i64 insertTicket(1:Ticket ticket, 2:Activity activity);// Methods to read/write activities from/in databaselist<Activity> getActivities(1:i64 customerId);list<Activity> getActivitiesByCreator(1:i64 creatorId);list<Activity> getActivitiesForTicket(1:i64 ticketId);Activity getActivity(1:i64 activityId);Activity getLastActivity(1:i64 ticketId);void insertActivity(1:Activity activity);// Methods to read agent informationlist<Agent> getAllAgents();Agent getAgent(1:i64 agentId);Agent getAgentByEmailId(1:string agentEmailId);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);}