Skip to content

Update dependency io.micronaut.platform:micronaut-platform to v4.5.0 #30

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jun 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions bpmn-process/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@ micronaut {
testRuntime("junit5")
}

tasks.compileJava {
options.compilerArgs.add("-Amicronaut.jsonschema.baseUri=https://www.pledger.io/schemas") // (1)
}

dependencies {
annotationProcessor(mn.micronaut.json.schema.processor)
annotationProcessor(mn.lombok)

implementation(libs.lang)
Expand All @@ -19,6 +24,7 @@ dependencies {
implementation(mn.micronaut.jackson.databind)
implementation(mn.micronaut.serde.jackson)
implementation(mn.validation)
implementation(mn.micronaut.json.schema.annotations)

implementation(project(":core"))
implementation(project(":domain"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,43 @@

import com.jongsoft.finance.domain.account.Account;
import com.jongsoft.finance.schedule.Periodicity;
import io.micronaut.core.annotation.NonNull;
import io.micronaut.core.annotation.Nullable;
import io.micronaut.jsonschema.JsonSchema;
import io.micronaut.serde.annotation.Serdeable;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import org.bouncycastle.util.encoders.Hex;

import java.io.Serializable;
import java.util.function.Supplier;

@Getter
@Setter
@Data
@Builder
@Serdeable
@JsonSchema(uri = "/account", title = "Account", description = "A account is a financial account that can be used to record transactions.")
public class AccountJson implements Serializable {

/**
* The name of the account.
*/
@NonNull
private String name;
/**
* The description of the account.
*/
private String description;
/**
* The currency of the account, in a 3-letter ISO currency code.
*/
@NonNull
private String currency;

/**
* The icon of the account, in a base64 encoded string.
*/
private String icon;

private double interest;
Expand All @@ -29,6 +47,10 @@ public class AccountJson implements Serializable {
private String iban;
private String bic;
private String number;
/**
* The type of the account.
*/
@NonNull
private String type;

public static AccountJson fromDomain(Account account, Supplier<byte[]> iconSupplier) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,36 +1,49 @@
package com.jongsoft.finance.serialized;

import com.jongsoft.finance.domain.user.Budget;
import io.micronaut.core.annotation.NonNull;
import io.micronaut.jsonschema.JsonSchema;
import io.micronaut.serde.annotation.Serdeable;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDate;
import java.util.List;
import java.util.stream.Collectors;

@Getter
@Setter
@Data
@Builder
@Serdeable
@JsonSchema(title = "Budget", description = "Budget for a user", uri = "/budget")
public class BudgetJson implements Serializable {

@Getter
@Setter
@Data
@Builder
@Serdeable
@JsonSchema(title = "Expense", description = "Expense for a budget", uri = "/budget-expense")
public static class ExpenseJson implements Serializable {
@NonNull
private String name;
private double lowerBound;
private double upperBound;
}

/**
* Start date of the budget, in ISO 8601 format.
*/
@NonNull
private LocalDate start;
private LocalDate end;

/**
* Expected income for the budget.
*/
private double expectedIncome;
/**
* List of expenses for the budget.
*/
@NonNull
private List<ExpenseJson> expenses;

public static BudgetJson fromDomain(Budget budget) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,25 @@
package com.jongsoft.finance.serialized;

import com.jongsoft.finance.domain.user.Category;
import io.micronaut.core.annotation.NonNull;
import io.micronaut.jsonschema.JsonSchema;
import io.micronaut.serde.annotation.Serdeable;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;

@Getter
@Setter
@Data
@Builder
@Serdeable
@JsonSchema(
title = "Category",
description = "Category of a transaction",
uri = "/category"
)
public class CategoryJson implements Serializable {

@NonNull
private String label;
private String description;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.jongsoft.finance.serialized;

import com.jongsoft.finance.domain.account.Contract;
import io.micronaut.core.annotation.NonNull;
import io.micronaut.jsonschema.JsonSchema;
import io.micronaut.serde.annotation.Serdeable;
import lombok.Builder;
import lombok.Data;
Expand All @@ -12,18 +14,25 @@
import java.time.LocalDate;
import java.util.function.Supplier;

@Getter
@Setter
@Data
@Builder
@Serdeable
@JsonSchema(title = "Contract", description = "Contract details", uri = "/contract")
public class ContractJson implements Serializable {

@NonNull
private String name;
private String description;
@NonNull
private String company;
/**
* The contract attachment as a hex string.
*/
private String contract;
private boolean terminated;
@NonNull
private LocalDate start;
@NonNull
private LocalDate end;

public static ContractJson fromDomain(Contract contract, Supplier<byte[]> attachmentSupplier) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
package com.jongsoft.finance.serialized;

import io.micronaut.jsonschema.JsonSchema;
import io.micronaut.serde.annotation.Serdeable;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.List;

@Getter
@Setter
@Data
@Builder
@Serdeable
@JsonSchema(title = "Profile", description = "A user profile", uri = "/profile")
public class ExportJson implements Serializable {

private List<AccountJson> accounts;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@
import com.jongsoft.finance.core.RuleColumn;
import com.jongsoft.finance.core.RuleOperation;
import com.jongsoft.finance.domain.transaction.TransactionRule;
import io.micronaut.jsonschema.JsonSchema;
import io.micronaut.serde.annotation.Serdeable;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

Expand All @@ -13,16 +15,16 @@
import java.util.function.BiFunction;
import java.util.stream.Collectors;

@Getter
@Setter
@Data
@Builder
@Serdeable
@JsonSchema(title = "Transaction Rules", description = "Configuration for transaction rules", uri = "/rules")
public class RuleConfigJson implements Serializable {

@Getter
@Setter
@Data
@Builder
@Serdeable
@JsonSchema(title = "Transaction Rule", description = "A single transaction rule", uri = "/rule")
public static class RuleJson implements Serializable {
private String name;
private String description;
Expand Down Expand Up @@ -57,8 +59,7 @@ public static RuleJson fromDomain(TransactionRule rule, BiFunction<RuleColumn, S

}

@Getter
@Setter
@Data
@Builder
@Serdeable
public static class ConditionJson implements Serializable {
Expand All @@ -67,8 +68,7 @@ public static class ConditionJson implements Serializable {
private String value;
}

@Getter
@Setter
@Data
@Builder
@Serdeable
public static class ChangeJson implements Serializable {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,27 +1,41 @@
package com.jongsoft.finance.serialized;

import com.jongsoft.finance.domain.transaction.Transaction;
import io.micronaut.core.annotation.NonNull;
import io.micronaut.jsonschema.JsonSchema;
import io.micronaut.serde.annotation.Serdeable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;

import java.io.Serializable;
import java.time.LocalDate;

@Data
@Builder
@Getter
@Serdeable
@AllArgsConstructor
@JsonSchema(title = "Transaction", description = "Transaction details", uri = "/transaction")
public class TransactionJson implements Serializable {

/**
* The account from which the transaction was made.
*/
@NonNull
private final String fromAccount;
/**
* The account to which the transaction was made.
*/
@NonNull
private final String toAccount;

@NonNull
private final String description;
@NonNull
private final String currency;
private final double amount;

@NonNull
private final LocalDate date;
private final LocalDate interestDate;
private final LocalDate bookDate;
Expand Down
40 changes: 0 additions & 40 deletions bpmn-process/src/main/resources/schema/account.schema.json

This file was deleted.

Loading
Loading