Files
velocity-pay-springboot/src/main/java/zw/qantra/tm/domain/models/GroupBatchItem.java

70 lines
2.1 KiB
Java

package zw.qantra.tm.domain.models;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.hibernate.annotations.SQLRestriction;
import zw.qantra.tm.domain.enums.GroupBatchItemConfirmStatus;
import zw.qantra.tm.domain.enums.GroupBatchItemIntegrationStatus;
import zw.qantra.tm.domain.enums.GroupBatchItemStatus;
import java.math.BigDecimal;
import java.util.UUID;
@Entity
@Table(name = "group_batch_item", indexes = {
@Index(name = "idx_gbi_batch_id", columnList = "group_batch_id"),
@Index(name = "idx_gbi_batch_confirm", columnList = "group_batch_id, confirm_status"),
@Index(name = "idx_gbi_batch_integ", columnList = "group_batch_id, integration_status"),
@Index(name = "idx_gbi_txn_id", columnList = "transaction_id"),
})
@Getter
@Setter
@Builder
@AllArgsConstructor
@NoArgsConstructor
@SQLRestriction("deleted = false")
public class GroupBatchItem extends BaseEntity {
@Column(name = "group_batch_id")
private UUID groupBatchId;
@Column(name = "recipient_id")
private UUID recipientId;
@Column(name = "recipient_name")
private String recipientName;
@Column(name = "recipient_phone")
private String recipientPhone;
private String recipientAccount;
private BigDecimal amount;
@Enumerated(EnumType.STRING)
private GroupBatchItemStatus status;
@Enumerated(EnumType.STRING)
@Column(name = "confirm_status")
private GroupBatchItemConfirmStatus confirmStatus;
@Enumerated(EnumType.STRING)
@Column(name = "integration_status")
private GroupBatchItemIntegrationStatus integrationStatus;
@Column(columnDefinition = "TEXT")
private String confirmError;
@Column(columnDefinition = "TEXT")
private String integrationError;
@ManyToOne
@JoinColumn(name = "transaction_id")
private Transaction transaction;
private String billClientId;
private String billName;
private String billProductName;
private String providerImage;
private String providerLabel;
}