Subversion Repositories SmartDukaan

Rev

Rev 3546 | Blame | Compare with Previous | Last modification | View Log | RSS feed

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

import in.shop2020.crm.ActivityType;
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;
    private ActivityType   type;
    private Long           customerId;
    private Long           userEmailId;

    // time at which the activity happened
    private Date           creationTimestamp;
    private long           creatorId;

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

    // relevant only for the activities generated by customer
    // tracks whether its being read by any agent or not
    private boolean        isRead = true;

    // fields for unregistered users
    private String         customerEmailId;
    private String         customerName;
    private String         customerMobileNumber;
    private String         attachments;

    /**
     * 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.userEmailId = tactivity.getUserEmailId();
        activity.creationTimestamp = new Date(tactivity.getCreationTimestamp());
        activity.creatorId = tactivity.getCreatorId();
        activity.ticketPriority = tactivity.getTicketPriority();
        activity.ticketStatus = tactivity.getTicketStatus();
        activity.ticketCategory = tactivity.getTicketCategory();
        activity.ticketDescription = tactivity.getTicketDescription();
        activity.description = tactivity.getDescription();
        activity.type = tactivity.getType();
        
        if (tactivity.isSetIsRead()) {
            activity.isRead = tactivity.isIsRead();
        }

        if (tactivity.isSetCustomerId()) {
            activity.customerId = tactivity.getCustomerId();
        }

        if (tactivity.isSetUserEmailId()) {
            activity.userEmailId = tactivity.getUserEmailId();
        }

        if (tactivity.isSetCustomerName()) {
            activity.customerName = tactivity.getCustomerName();
        }

        if (tactivity.isSetCustomerEmailId()) {
            activity.customerEmailId = tactivity.getCustomerEmailId();
        }

        if (tactivity.isSetCustomerMobileNumber()) {
            activity.customerMobileNumber = tactivity.getCustomerMobileNumber();
        }

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

        if (tactivity.isSetTicketAssigneeId()) {
            activity.ticketAssigneeId = tactivity.getTicketAssigneeId();
        }

        if (tactivity.isSetAttachments()) {
            activity.attachments = tactivity.getAttachments();
        }

        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.setDescription(description);
        tactivity.setType(type);
        tactivity.setTicketPriority(ticketPriority);
        tactivity.setTicketStatus(ticketStatus);
        tactivity.setTicketCategory(ticketCategory);
        tactivity.setTicketDescription(ticketDescription);
        tactivity.setCreationTimestamp(creationTimestamp.getTime());
        tactivity.setCreatorId(creatorId);
        tactivity.setIsRead(isRead);

        if (customerId != null) {
            tactivity.setCustomerId(customerId);            
        }

        if (userEmailId != null) {
            tactivity.setUserEmailId(userEmailId);
        }

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

        if (customerMobileNumber != null) {
            tactivity.setCustomerMobileNumber(customerMobileNumber);
        }

        if (customerName != null) {
            tactivity.setCustomerName(customerName);
        }

        if (customerEmailId != null) {
            tactivity.setCustomerEmailId(customerEmailId);
        }

        if (attachments != null) {
            tactivity.setAttachments(attachments);
        }

        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 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 TicketStatus getTicketStatus() {
        return ticketStatus;
    }

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

    public TicketCategory getTicketCategory() {
        return ticketCategory;
    }

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

    public Date getCreationTimestamp() {
        return creationTimestamp;
    }

    public void setCreationTimestamp(Date creationTimestamp) {
        this.creationTimestamp = creationTimestamp;
    }

    public String getTicketDescription() {
        return ticketDescription;
    }

    public void setTicketDescription(String ticketDescription) {
        this.ticketDescription = ticketDescription;
    }

    public ActivityType getType() {
        return type;
    }

    public void setType(ActivityType type) {
        this.type = type;
    }

    public Long getUserEmailId() {
        return userEmailId;
    }

    public void setUserEmailId(Long emailId) {
        this.userEmailId = emailId;
    }

    public String getCustomerMobileNumber() {
        return customerMobileNumber;
    }

    public void setCustomerMobileNumber(String customerMobileNumber) {
        this.customerMobileNumber = customerMobileNumber;
    }

    public boolean isRead() {
        return isRead;
    }

    public void setRead(boolean isRead) {
        this.isRead = isRead;
    }

    public String getCustomerEmailId() {
        return customerEmailId;
    }

    public void setCustomerEmailId(String customerEmailId) {
        this.customerEmailId = customerEmailId;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public String getAttachments() {
        return attachments;
    }

    public void setAttachments(String attachments) {
        this.attachments = attachments;
    }

}