diff --git a/backend/exence/src/main/java/com/exence/finance/common/util/ValidationConstants.java b/backend/exence/src/main/java/com/exence/finance/common/util/ValidationConstants.java index 95ee7ee..1772aac 100644 --- a/backend/exence/src/main/java/com/exence/finance/common/util/ValidationConstants.java +++ b/backend/exence/src/main/java/com/exence/finance/common/util/ValidationConstants.java @@ -32,6 +32,7 @@ public class ValidationConstants { public static final int CATEGORY_NAME_MIN_LENGTH = 1; public static final int CATEGORY_NAME_MAX_LENGTH = 25; public static final int CATEGORY_EMOJI_MAX_LENGTH = 50; + public static final int CATEGORY_NOTE_MAX_LENGTH = 500; // Transaction validations public static final int TRANSACTION_TITLE_MIN_LENGTH = 1; diff --git a/backend/exence/src/main/java/com/exence/finance/modules/category/dto/CategoryDTO.java b/backend/exence/src/main/java/com/exence/finance/modules/category/dto/CategoryDTO.java index 6bcf36e..3860b1b 100644 --- a/backend/exence/src/main/java/com/exence/finance/modules/category/dto/CategoryDTO.java +++ b/backend/exence/src/main/java/com/exence/finance/modules/category/dto/CategoryDTO.java @@ -14,6 +14,7 @@ import static com.exence.finance.common.util.ValidationConstants.CATEGORY_NAME_MAX_LENGTH; import static com.exence.finance.common.util.ValidationConstants.CATEGORY_NAME_MIN_LENGTH; +import static com.exence.finance.common.util.ValidationConstants.CATEGORY_NOTE_MAX_LENGTH; @SuperBuilder @NoArgsConstructor @@ -33,4 +34,8 @@ public class CategoryDTO { @ValidEmoji(allowEmpty = false, message = "Must contain exactly one emoji character") private String emoji; + + @Size(max = CATEGORY_NOTE_MAX_LENGTH, + message = "Note can be a maximum of " + CATEGORY_NOTE_MAX_LENGTH + " characters.") + private String note; } diff --git a/backend/exence/src/main/java/com/exence/finance/modules/category/entity/Category.java b/backend/exence/src/main/java/com/exence/finance/modules/category/entity/Category.java index ebdfdb8..37d36db 100644 --- a/backend/exence/src/main/java/com/exence/finance/modules/category/entity/Category.java +++ b/backend/exence/src/main/java/com/exence/finance/modules/category/entity/Category.java @@ -28,6 +28,7 @@ import static com.exence.finance.common.util.ValidationConstants.CATEGORY_EMOJI_MAX_LENGTH; import static com.exence.finance.common.util.ValidationConstants.CATEGORY_NAME_MAX_LENGTH; +import static com.exence.finance.common.util.ValidationConstants.CATEGORY_NOTE_MAX_LENGTH; @SuperBuilder @Entity @@ -53,6 +54,9 @@ public class Category extends BaseAuditableEntity { @Column(name = "emoji", length = CATEGORY_EMOJI_MAX_LENGTH) private String emoji; + @Column(name = "note", length = CATEGORY_NOTE_MAX_LENGTH) + private String note; + @ManyToOne(fetch = FetchType.LAZY, optional = false) @JoinColumn(name = "user_id", nullable = false) private User user; diff --git a/backend/exence/src/main/resources/db/changelog/db.changelog-master.yaml b/backend/exence/src/main/resources/db/changelog/db.changelog-master.yaml index b37113b..14508bc 100644 --- a/backend/exence/src/main/resources/db/changelog/db.changelog-master.yaml +++ b/backend/exence/src/main/resources/db/changelog/db.changelog-master.yaml @@ -4,6 +4,10 @@ databaseChangeLog: file: v1.0.0/changelog-v1.0.0.yaml relativeToChangelogFile: true + - include: + file: v1.1.0/changelog-v1.1.0.yaml + relativeToChangelogFile: true + # Test data - include: file: data/test-data.yaml diff --git a/backend/exence/src/main/resources/db/changelog/v1.1.0/add-note-to-category.yaml b/backend/exence/src/main/resources/db/changelog/v1.1.0/add-note-to-category.yaml new file mode 100644 index 0000000..7d1d308 --- /dev/null +++ b/backend/exence/src/main/resources/db/changelog/v1.1.0/add-note-to-category.yaml @@ -0,0 +1,12 @@ +databaseChangeLog: + - changeSet: + id: add-note-to-category + author: tamibalogh + comment: Create note column in category table + changes: + - addColumn: + tableName: category + columns: + - column: + name: note + type: VARCHAR(500) diff --git a/backend/exence/src/main/resources/db/changelog/v1.1.0/changelog-v1.1.0.yaml b/backend/exence/src/main/resources/db/changelog/v1.1.0/changelog-v1.1.0.yaml new file mode 100644 index 0000000..181b9c5 --- /dev/null +++ b/backend/exence/src/main/resources/db/changelog/v1.1.0/changelog-v1.1.0.yaml @@ -0,0 +1,4 @@ +databaseChangeLog: + - include: + file: add-note-to-category.yaml + relativeToChangelogFile: true diff --git a/frontend/Exence/src/app/data-model/modules/category/Category.ts b/frontend/Exence/src/app/data-model/modules/category/Category.ts index d2e9ef0..ed609fa 100644 --- a/frontend/Exence/src/app/data-model/modules/category/Category.ts +++ b/frontend/Exence/src/app/data-model/modules/category/Category.ts @@ -2,4 +2,5 @@ export interface Category { id?: number; name: string; emoji: string; + note?: string; } diff --git a/frontend/Exence/src/app/private/transactions-and-categories/create-category-dialog/create-category-dialog.component.html b/frontend/Exence/src/app/private/transactions-and-categories/create-category-dialog/create-category-dialog.component.html index 2d33055..f4086b1 100644 --- a/frontend/Exence/src/app/private/transactions-and-categories/create-category-dialog/create-category-dialog.component.html +++ b/frontend/Exence/src/app/private/transactions-and-categories/create-category-dialog/create-category-dialog.component.html @@ -48,6 +48,15 @@