diff --git a/src/main/java/org/breedinginsight/model/Trait.java b/src/main/java/org/breedinginsight/model/Trait.java index 7ad7cc9e1..04611a5df 100644 --- a/src/main/java/org/breedinginsight/model/Trait.java +++ b/src/main/java/org/breedinginsight/model/Trait.java @@ -91,6 +91,7 @@ public Trait(TraitEntity traitEntity) { this.setUpdatedAt(traitEntity.getUpdatedAt()); this.setUpdatedBy(traitEntity.getUpdatedBy()); this.setActive(traitEntity.getActive()); + this.setTermType(traitEntity.getTermType()); } public static Trait parseSqlRecord(Record record) { @@ -106,6 +107,7 @@ public static Trait parseSqlRecord(Record record) { .updatedAt(record.getValue(TRAIT.UPDATED_AT)) .updatedBy(record.getValue(TRAIT.UPDATED_BY)) .active(record.getValue(TRAIT.ACTIVE)) + .termType(record.getValue(TRAIT.TERM_TYPE)) .build(); } diff --git a/src/main/java/org/breedinginsight/services/TraitService.java b/src/main/java/org/breedinginsight/services/TraitService.java index f2b2953aa..ee6ea3347 100644 --- a/src/main/java/org/breedinginsight/services/TraitService.java +++ b/src/main/java/org/breedinginsight/services/TraitService.java @@ -217,6 +217,7 @@ public List createTraits(UUID programId, List traits, Authenticate .createdBy(actingUser.getId()) .updatedBy(actingUser.getId()) .active(true) + .termType(trait.getTermType()) .build(); traitDAO.insert(jooqTrait); trait.setId(jooqTrait.getId()); @@ -416,6 +417,7 @@ public List updateTraits(UUID programId, List traits, Authenticate existingTraitEntity.setObservationVariableName(updatedTrait.getObservationVariableName()); existingTraitEntity.setProgramObservationLevelId(updatedTrait.getProgramObservationLevel().getId()); existingTraitEntity.setUpdatedBy(user.getId()); + existingTraitEntity.setTermType(updatedTrait.getTermType()); traitDAO.update(existingTraitEntity); // Update in brapi diff --git a/src/main/java/org/breedinginsight/utilities/response/mappers/TraitQueryMapper.java b/src/main/java/org/breedinginsight/utilities/response/mappers/TraitQueryMapper.java index 3afac5e67..ac8cccc22 100644 --- a/src/main/java/org/breedinginsight/utilities/response/mappers/TraitQueryMapper.java +++ b/src/main/java/org/breedinginsight/utilities/response/mappers/TraitQueryMapper.java @@ -73,7 +73,8 @@ public TraitQueryMapper() { Map.entry("updatedByUserId", trait -> trait.getUpdatedByUser() != null ? trait.getUpdatedByUser().getId() : null), Map.entry("updatedByUserName", - trait -> trait.getUpdatedByUser() != null ? trait.getUpdatedByUser().getName() : null) + trait -> trait.getUpdatedByUser() != null ? trait.getUpdatedByUser().getName() : null), + Map.entry("termType", Trait::getTermType) ); } diff --git a/src/main/resources/db/migration/V1.0.10__add_onto_term_type.sql b/src/main/resources/db/migration/V1.0.10__add_onto_term_type.sql new file mode 100644 index 000000000..872df67e7 --- /dev/null +++ b/src/main/resources/db/migration/V1.0.10__add_onto_term_type.sql @@ -0,0 +1,25 @@ +/* + * See the NOTICE file distributed with this work for additional information + * regarding copyright ownership. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +CREATE TYPE "term_type" AS ENUM ( + 'PHENOTYPE', + 'GERM_ATTRIBUTE', + 'GERM_PASSPORT' +); + +ALTER TABLE trait ADD COLUMN term_type term_type NOT NULL DEFAULT 'PHENOTYPE'; +UPDATE trait SET term_type='PHENOTYPE'; \ No newline at end of file