package org.xcolab.view.pages.proposals.requests;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotBlank;
import org.xcolab.client.contest.pojo.templates.PlanSectionDefinition;
import org.xcolab.client.proposals.pojo.Proposal;
import org.xcolab.util.enums.proposal.MoveType;
import java.util.HashMap;
import java.util.Map;
public class UpdateProposalDetailsBean {
private Map<Long, String> sectionsContent = new HashMap<>();
@Length(max = 140, message = "The pitch is limited to 140 characters.")
private String pitch;
@NotBlank(message = "Please enter a title.")
@Length(max = 80, message = "The title is limited to 80 characters.")
private String name;
@Length(max = 20, message = "The team name is limited to 20 characters.")
private String team;
private long imageId;
private long baseProposalId;
private long baseProposalContestId;
private Long moveToContestId;
private long moveFromContestPhaseId;
private boolean isMove;
private MoveType moveType;
private String uuid;
// legacy
private String description;
public UpdateProposalDetailsBean(Proposal proposal) {
for (PlanSectionDefinition section : proposal.getSections()) {
sectionsContent.put(section.getSectionDefinitionId(), section.getContent());
}
pitch = proposal.getPitch();
name = proposal.getName();
team = proposal.getTeam();
imageId = proposal.getImageId();
description = proposal.getDescription();
}
public UpdateProposalDetailsBean(Proposal proposal, Proposal baseProposal) {
for (PlanSectionDefinition section : baseProposal.getSections()) {
sectionsContent.put(section.getSectionDefinitionId(), section.getContent());
}
pitch = baseProposal.getPitch();
name = baseProposal.getName();
team = baseProposal.getTeam();
imageId = baseProposal.getImageId();
description = baseProposal.getDescription();
baseProposalId = baseProposal.getProposalId();
baseProposalContestId = baseProposal.getContestPK();
}
public UpdateProposalDetailsBean(Proposal proposal, Proposal baseProposal,
boolean isMove, MoveType moveType) {
this(proposal, baseProposal);
this.isMove = isMove;
this.moveType = moveType;
}
public UpdateProposalDetailsBean() { }
public Map<Long, String> getSectionsContent() {
return sectionsContent;
}
public void setSectionsContent(Map<Long, String> sectionsContent) {
this.sectionsContent = sectionsContent;
}
public String getPitch() {
return pitch;
}
public void setPitch(String pitch) {
this.pitch = pitch;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTeam() {
return team;
}
public void setTeam(String team) {
this.team = team;
}
public long getImageId() {
return imageId;
}
public void setImageId(long imageId) {
this.imageId = imageId;
}
public long getBaseProposalId() {
return baseProposalId;
}
public void setBaseProposalId(long baseProposalId) {
this.baseProposalId = baseProposalId;
}
public long getBaseProposalContestId() {
return baseProposalContestId;
}
public void setBaseProposalContestId(long baseProposalContestId) {
this.baseProposalContestId = baseProposalContestId;
}
public boolean getIsMove() {
return isMove;
}
public void setIsMove(boolean move) {
this.isMove = move;
}
public long getMoveToContestId() {
return moveToContestId == null ? -1 : moveToContestId;
}
public void setMoveToContestId(long moveToContestId) {
this.moveToContestId = moveToContestId;
}
public Long getMoveFromContestPhaseId() {
return moveFromContestPhaseId;
}
public void setMoveFromContestPhaseId(Long moveFromContestPhaseId) {
this.moveFromContestPhaseId = moveFromContestPhaseId;
}
public MoveType getMoveType() {
return moveType;
}
public void setMoveType(MoveType moveType) {
this.moveType = moveType;
}
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
}