completed initial charge logic

This commit is contained in:
2025-06-18 09:28:01 +02:00
parent b214d42d2f
commit 9ae78635c7
34 changed files with 614 additions and 102 deletions

View File

@@ -0,0 +1,28 @@
package zw.qantra.tm.domain.models;
import jakarta.persistence.Column;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.MappedSuperclass;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.JdbcTypeCode;
import org.hibernate.type.SqlTypes;
import java.util.UUID;
@Getter
@Setter
@MappedSuperclass
public class BaseEntity {
@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(
name = "UUID",
strategy = "org.hibernate.id.UUIDGenerator"
)
@JdbcTypeCode(SqlTypes.UUID)
@Column(name = "id", updatable = false, nullable = false)
private UUID id;
}

View File

@@ -10,7 +10,6 @@ import zw.qantra.tm.domain.enums.TargetEvent;
import java.math.BigDecimal;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
@Entity
@Getter
@@ -18,11 +17,7 @@ import java.util.UUID;
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Charge {
@Id
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;
public class Charge extends BaseEntity {
private String description;
// % rate to charge

View File

@@ -5,7 +5,6 @@ import lombok.*;
import zw.qantra.tm.domain.enums.ChargeConditionType;
import java.util.List;
import java.util.UUID;
@Entity
@Getter
@@ -13,15 +12,11 @@ import java.util.UUID;
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ChargeCondition {
@Id
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;
public class ChargeCondition extends BaseEntity {
private String name;
@Enumerated(EnumType.STRING)
private ChargeConditionType type;
@Column(columnDefinition = "longtext")
@Column(columnDefinition = "TEXT")
private String codes;
@ManyToMany(mappedBy = "includes")

View File

@@ -1,11 +1,6 @@
package zw.qantra.tm.domain.models;
import java.util.UUID;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import lombok.*;
@Entity
@@ -14,11 +9,7 @@ import lombok.*;
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Currency {
@Id
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;
public class Currency extends BaseEntity {
private String isoCode;
private String name;
private String displayName;

View File

@@ -1,11 +1,6 @@
package zw.qantra.tm.domain.models;
import java.util.UUID;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import lombok.*;
@Entity
@@ -14,12 +9,8 @@ import lombok.*;
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class IntegrationProcessor {
@Id
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;
public class IntegrationProcessor extends BaseEntity {
private String name;
private String description;
private String type;
private String label;
}

View File

@@ -3,7 +3,7 @@ package zw.qantra.tm.domain.models;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Column;
import lombok.*;
import java.util.UUID;
@@ -14,9 +14,9 @@ import java.util.UUID;
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class PaymentProcessor {
@Id
public class PaymentProcessor extends BaseEntity {
@GeneratedValue(strategy = GenerationType.UUID)
@Column(columnDefinition = "VARCHAR(36)")
private UUID id;
private String name;

View File

@@ -1,12 +1,8 @@
package zw.qantra.tm.domain.models;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import lombok.*;
import java.util.UUID;
@Entity
@Getter
@@ -14,12 +10,9 @@ import java.util.UUID;
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Provider {
@Id
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;
public class Provider extends BaseEntity {
private String clientId;
private String name;
private String label;
private String description;
private String externalId;
}

View File

@@ -1,11 +1,6 @@
package zw.qantra.tm.domain.models;
import java.util.UUID;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
@@ -18,11 +13,7 @@ import lombok.Setter;
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Setting {
@Id
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;
public class Setting extends BaseEntity {
private String name;
private String value;
}

View File

@@ -9,7 +9,6 @@ import zw.qantra.tm.domain.enums.Status;
import java.math.BigDecimal;
import java.util.List;
import java.util.UUID;
@Entity
@Getter
@@ -18,11 +17,7 @@ import java.util.UUID;
@AllArgsConstructor
@NoArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Transaction {
@Id
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;
public class Transaction extends BaseEntity {
private String trace;
private BigDecimal amount;
private BigDecimal charge;
@@ -34,6 +29,7 @@ public class Transaction {
private String productUid;
private String paymentProcessorLabel;
private String integrationProcessorLabel;
private String providerLabel;
private String rrn;
private String channelName;
private String channel;