Subversion Repositories SmartDukaan

Rev

Rev 3106 | Rev 3269 | Go to most recent revision | 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           emailId;

    // 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;

    /**
     * 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.customerId = tactivity.getCustomerId();
        activity.description = tactivity.getDescription();

        if (tactivity.isSetEmailId()) {
            activity.emailId = tactivity.getEmailId();
        }

        activity.emailId = tactivity.getEmailId();
        activity.creationTimestamp = new Date(tactivity.getCreationTimestamp());
        activity.creatorId = tactivity.getCreatorId();

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

        activity.ticketPriority = tactivity.getTicketPriority();
        activity.ticketStatus = tactivity.getTicketStatus();
        activity.ticketCategory = tactivity.getTicketCategory();
        activity.ticketDescription = tactivity.getTicketDescription();

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

        activity.type = tactivity.getType();
        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.setCustomerId(customerId);
        tactivity.setDescription(description);
        tactivity.setType(type);
        
        if (emailId != null) {
            tactivity.setEmailId(emailId);
        }
        else {
            tactivity.setEmailIdIsSet(false);
        }

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

        tactivity.setCreationTimestamp(creationTimestamp.getTime());
        tactivity.setCreatorId(creatorId);
        
        if (ticketAssigneeId != null) {
            tactivity.setTicketAssigneeId(ticketAssigneeId);
        }
        else {
            tactivity.setTicketAssigneeIdIsSet(false);
        }

        tactivity.setTicketPriority(ticketPriority);
        tactivity.setTicketStatus(ticketStatus);
        tactivity.setTicketCategory(ticketCategory);
        tactivity.setTicketDescription(ticketDescription);
        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 getEmailId() {
        return emailId;
    }

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