Subversion Repositories SmartDukaan

Rev

Rev 3088 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

/**
 * 
 */
package in.shop2020.crm.domain;

import in.shop2020.crm.ContactMedium;
import in.shop2020.crm.TicketCategory;
import in.shop2020.crm.TicketPriority;
import in.shop2020.crm.TicketStatus;

import java.text.ParseException;
import java.util.Date;

/**
 * Domain class for Activity.
 * 
 * @author mandeep
 */
public class Activity {
    
    // Basic attributes of activity
    private long           id;
    private String         description;
    
    // time at which the activity happened
    private Date           contactTimestamp;
    private long           customerId;

    // id of the agent who contacted customer as part of this activity
    private long           contactingAgentId;

    // id of the agent who created this ticket
    private long           creatorId;

    // ticket attributes that can change with an activity
    private ContactMedium  contactMedium;
    private Long           ticketId;
    private TicketStatus   ticketStatus;
    private TicketCategory ticketCategory;
    private long           ticketAssigneeId;
    private TicketPriority ticketPriority;

    /**
     * Converts a thrift activity object to our domain object for activity
     *
     * @param tactivity
     * @return
     * @throws ParseException
     */
    public static Activity create(in.shop2020.crm.Activity tactivity)
            throws ParseException {
        Activity activity = new Activity();
        activity.id = tactivity.getId();
        activity.ticketAssigneeId = tactivity.getTicketAssigneeId();
        activity.customerId = tactivity.getCustomerId();
        activity.description = tactivity.getDescription();
        activity.contactTimestamp = new Date(tactivity.getContactTimestamp());
        activity.contactMedium = tactivity.getContactMedium();
        activity.creatorId = tactivity.getCreatorId();
        activity.contactingAgentId = tactivity.getContactingAgentId();

        if (tactivity.isSetTicketId() && tactivity.getTicketId() != 0) {
            activity.ticketId = tactivity.getTicketId();
        }

        activity.ticketPriority = tactivity.getTicketPriority();
        activity.ticketStatus = tactivity.getTicketStatus();
        activity.setTicketCategory(tactivity.getTicketCategory());
        return activity;
    }

    /**
     * Converts our domain object to its corresponding thrift model object.
     * @return
     */
    public in.shop2020.crm.Activity getThriftActivity() {
        in.shop2020.crm.Activity tactivity = new in.shop2020.crm.Activity();
        tactivity.setId(id);
        tactivity.setTicketAssigneeId(ticketAssigneeId);
        tactivity.setCustomerId(customerId);
        tactivity.setDescription(description);

        if (ticketId != null) {
            tactivity.setTicketId(ticketId);
        }

        tactivity.setContactMedium(contactMedium);
        tactivity.setContactTimestamp(contactTimestamp.getTime());
        tactivity.setCreatorId(creatorId);
        tactivity.setTicketPriority(ticketPriority);
        tactivity.setTicketStatus(ticketStatus);
        tactivity.setContactingAgentId(contactingAgentId);
        tactivity.setTicketCategory(ticketCategory);
        return tactivity;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Date getContactTimestamp() {
        return contactTimestamp;
    }

    public void setContactTimestamp(Date contactTimestamp) {
        this.contactTimestamp = contactTimestamp;
    }

    public long getTicketAssigneeId() {
        return ticketAssigneeId;
    }

    public void setTicketAssigneeId(long ticketAssigneeId) {
        this.ticketAssigneeId = ticketAssigneeId;
    }

    public TicketPriority getTicketPriority() {
        return ticketPriority;
    }

    public void setTicketPriority(TicketPriority ticketPriority) {
        this.ticketPriority = ticketPriority;
    }

    public long getCustomerId() {
        return customerId;
    }

    public void setCustomerId(long customerId) {
        this.customerId = customerId;
    }

    public long getTicketId() {
        return ticketId;
    }

    public void setTicketId(long ticketId) {
        this.ticketId = ticketId;
    }

    public long getCreatorId() {
        return creatorId;
    }

    public void setCreatorId(long creatorId) {
        this.creatorId = creatorId;
    }

    public ContactMedium getContactMedium() {
        return contactMedium;
    }

    public void setContactMedium(ContactMedium contactMedium) {
        this.contactMedium = contactMedium;
    }

    public TicketStatus getTicketStatus() {
        return ticketStatus;
    }

    public void setTicketStatus(TicketStatus ticketStatus) {
        this.ticketStatus = ticketStatus;
    }

    public long getContactingAgentId() {
        return contactingAgentId;
    }

    public void setContactingAgentId(long contactingAgentId) {
        this.contactingAgentId = contactingAgentId;
    }

    public TicketCategory getTicketCategory() {
        return ticketCategory;
    }

    public void setTicketCategory(TicketCategory ticketCategory) {
        this.ticketCategory = ticketCategory;
    }
}