Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package models.db.core.project;
- import com.fasterxml.jackson.annotation.JsonProperty;
- import io.ebean.Model;
- import io.ebean.annotation.DbJsonB;
- import jakarta.persistence.*;
- import models.db.core.custom.CustomListElement;
- import utils.core.common.CurrencyAmount;
- import utils.core.common.enums.PrivacyLevelEnum;
- import utils.core.project.ProjectCallExtraData;
- import java.util.Date;
- import java.util.List;
- /**
- * This class represents a call for projects
- *
- * @author jfsfo
- */
- @Entity
- @Table(name = "core_project_project_call")
- public class ProjectCall extends Model {
- public static final int MAX_SIZE = 255;
- @Id
- @GeneratedValue(strategy = GenerationType.SEQUENCE)
- @Column(name = "id", nullable = false)
- private Long id;
- // The year in which the project call was issued
- @Column(name = "year")
- private Integer year;
- // The funding type of the project call
- @ManyToOne
- private CustomListElement fundingType;
- // The origin of the funding entities (International, National, Mixed)
- @ManyToOne
- private CustomListElement fundingOrigin;
- // The designation of the project call (visible in the system) (in Portuguese)
- @Column(name = "designation_pt", length = MAX_SIZE)
- private String designationPt;
- // The designation of the project call (visible in the system) (in English)
- @Column(name = "designation_en", length = MAX_SIZE)
- private String designationEn;
- // The title of the project call assigned by the funding entity (in Portuguese)
- @Column(name = "title_pt", length = MAX_SIZE)
- private String titlePt;
- // The title of the project call assigned by the funding entity (in English)
- @Column(name = "title_en", length = MAX_SIZE)
- private String titleEn;
- // The detailed description of the project call (in Portuguese)
- @Column(name = "description_pt", columnDefinition = "TEXT")
- private String descriptionPt;
- // The detailed description of the project call (in English)
- @Column(name = "description_en", columnDefinition = "TEXT")
- private String descriptionEn;
- // The scientific areas covered by the project call
- @ManyToMany
- private List<CustomListElement> scientificAreas;
- // The total budget allocated for the project call
- @JsonProperty(value = "total_budget")
- private CurrencyAmount totalBudget;
- // The privacy level of the total budget
- @Column(name = "total_budget_privacy_level")
- private PrivacyLevelEnum totalBudgetPrivacyLevel;
- // The maximum number of funded proposals
- @Column(name = "number_of_funded_proposals")
- private Integer numberOfFundedProposals;
- // The maximum funding amount per project
- @JsonProperty(value = "funding_amount_per_project")
- private CurrencyAmount fundingAmountPerProject;
- // The privacy level of the funding amount
- @Column(name = "funding_amount_per_project_privacy_level")
- private PrivacyLevelEnum fundingAmountPerProjectPrivacyLevel;
- // The expected duration of the projects (in months)
- @Column(name = "duration_in_months")
- private Integer durationInMonths;
- // The start date of the project call
- @Column(name = "call_start_date")
- private Date callStartDate;
- // The end date of the project call
- @Column(name = "call_end_date")
- private Date callEndDate;
- // Whether the project call is currently public in the system
- @Column(name = "privacy_level")
- private PrivacyLevelEnum privacyLevel;
- @DbJsonB
- @Column(name = "extra_data")
- private ProjectCallExtraData extraData;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement