Advertisement
IronJoo

ProjectCall

Dec 18th, 2024
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.50 KB | None | 0 0
  1. @Entity
  2. @Table(name = "core_project_project_call")
  3. public class ProjectCall extends Model {
  4.  
  5.     public static final int MAX_SIZE_SHORT = 255;
  6.     public static final int MAX_SIZE_LONG = 65000;
  7.  
  8.     @Id
  9.     @GeneratedValue(strategy = GenerationType.SEQUENCE)
  10.     @Column(name = "id", nullable = false)
  11.     private Long id;
  12.  
  13.     // The year in which the project call was issued
  14.     @Column(name = "year")
  15.     private Integer year;
  16.  
  17.     // The funding type of the project call
  18.     @ManyToOne
  19.     private CustomListElement fundingType;
  20.  
  21.     // The origin of the funding entities (International, National, Mixed)
  22.     @ManyToOne
  23.     private CustomListElement fundingOrigin;
  24.  
  25.     // The designation of the project call (visible in the system) (in Portuguese)
  26.     @Column(name = "designation_pt", length = MAX_SIZE_SHORT)
  27.     private String designationPt;
  28.  
  29.     // The designation of the project call (visible in the system) (in English)
  30.     @Column(name = "designation_en", length = MAX_SIZE_SHORT)
  31.     private String designationEn;
  32.  
  33.     // The title of the project call assigned by the funding entity (in Portuguese)
  34.     @Column(name = "title_pt", length = MAX_SIZE_SHORT)
  35.     private String titlePt;
  36.  
  37.     // The title of the project call assigned by the funding entity (in English)
  38.     @Column(name = "title_en", length = MAX_SIZE_SHORT)
  39.     private String titleEn;
  40.  
  41.     // The detailed description of the project call (in Portuguese)
  42.     @Column(name = "description_pt", columnDefinition = "TEXT")
  43.     private String descriptionPt;
  44.  
  45.     // The detailed description of the project call (in English)
  46.     @Column(name = "description_en", columnDefinition = "TEXT")
  47.     private String descriptionEn;
  48.  
  49.     // The scientific areas covered by the project call
  50.     @ManyToMany
  51.     @JoinTable(
  52.             name = "core_project_project_call_scientific_area", // Name of the join table
  53.             joinColumns = @JoinColumn(name = "project_call_id"), // Foreign key to the current entity
  54.             inverseJoinColumns = @JoinColumn(name = "scientific_area_id") // Foreign key to the other entity
  55.     )
  56.     private List<CustomListElement> scientificAreas;
  57.  
  58.     // The total budget allocated for the project call
  59.     @JsonProperty(value = "total_budget")
  60.     private CurrencyAmount totalBudget;
  61.  
  62.     // The privacy level of the total budget
  63.     @Column(name = "total_budget_privacy_level")
  64.     private PrivacyLevelEnum totalBudgetPrivacyLevel;
  65.  
  66.     // The maximum number of funded proposals
  67.     @Column(name = "number_of_funded_proposals")
  68.     private Integer numberOfFundedProposals;
  69.  
  70.     // The maximum funding amount per project
  71.     @JsonProperty(value = "funding_amount_per_project")
  72.     private CurrencyAmount fundingAmountPerProject;
  73.  
  74.     // The privacy level of the funding amount
  75.     @Column(name = "funding_amount_per_project_privacy_level")
  76.     private PrivacyLevelEnum fundingAmountPerProjectPrivacyLevel;
  77.  
  78.     // The expected duration of the projects (in months)
  79.     @Column(name = "duration_in_months")
  80.     private Integer durationInMonths;
  81.  
  82.     // The start date of the project call
  83.     @Column(name = "call_start_date")
  84.     private Date callStartDate;
  85.  
  86.     // The end date of the project call
  87.     @Column(name = "call_end_date")
  88.     private Date callEndDate;
  89.  
  90.     // Whether the project call is currently public in the system
  91.     @Column(name = "privacy_level")
  92.     private PrivacyLevelEnum privacyLevel;
  93.  
  94.     @DbJsonB
  95.     @Column(name = "extra_data")
  96.     private ProjectCallExtraData extraData;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement