package com.billpaymentservice.bbps.entites; import java.util.List; import com.fasterxml.jackson.annotation.JsonProperty; import jakarta.persistence.CascadeType; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; import jakarta.persistence.Id; import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import lombok.ToString; @Getter @Setter @Entity @Table(name = "transaction_master") @ToString @NoArgsConstructor @AllArgsConstructor public class TransactionMaster { // 👇 JSON me "txn_id" aayega, ye DB me bank_txn_id column me save hoga @Id @JsonProperty("txn_id") @Column(name = "bank_txn_id", nullable = false, unique = true) private String bankTxnId; // 👇 Apna internal transaction id, manually generate or system ke through @Column(name = "txn_id") private String txnId; @Column(name = "client_user_id") private String clientUserId; @Column(name = "mid") private String mid; @Column(name = "req_id") private String reqId; @Column(name = "ref_id") private String refId; @Column(name = "txn_npci_id") private String txnNpciId; @Column(name = "payment_ref_id") private String paymentRefId; @Column(name = "remitter_name") private String remitterName; @Column(name = "order_id") private String orderId; @Column(name = "bill_id") private String billId; @Column(name = "user_type") private String userType; @Column(name = "user_id") private String userId; @Column(name = "txn_amount") private Double txnAmount; @Column(name = "total_txn_amount") private Double totalTxnAmount; @Column(name = "biller_id") private String billerId; @Column(name = "biller_category") private String billerCategory; @Column(name = "biller_name") private String billerName; @Column(name = "client_req_id") private String clientReqId; @Column(name = "off_us_pay") private String offUsPay; @Column(name = "split_pay") private String splitPay; @Column(name = "quick_pay") private String quickPay; @Column(name = "payment_mode") private String paymentMode; @Column(name = "agent_payment_information", columnDefinition = "TEXT") private String agentPaymentInformation; @Column(name = "cust_conv_fee") private Double custConvFee; @Column(name = "currency") private String currency; @Column(name = "status") private String status; @Column(name = "requested_ip") private String requestedIp; @Column(name = "customer_mob_no") private String customerMobNo; @Column(name = "mac_address") private String macAddress; @Column(name = "split_pay_amount") private Double splitPayAmount; @Column(name = "cou_cust_conv_fee") private Double couCustConvFee; @Column(name = "settlement_verification") private Boolean settlementVerification; @Column(name = "fund_txn_type") private String fundTxnType; @Column(name = "reason", columnDefinition = "TEXT") private String reason; @Column(name = "amount_tags", columnDefinition = "TEXT") private String amountTags; @Column(name = "payment_information", columnDefinition = "TEXT") private String paymentInformation; // ✅ Relation with DeviceBlockTagEntity @OneToMany(mappedBy = "transactionMaster", cascade = CascadeType.ALL, fetch = FetchType.LAZY) private List deviceBlockTags; // ✅ Relation with CustomerParamEntity @OneToMany(mappedBy = "transactionMaster", cascade = CascadeType.ALL, fetch = FetchType.LAZY) private List customerParams; @Column(name = "plan_id") private String planId; @Column(name = "plan_type") private String planType; @Column(name = "creation_date") private String creationDate; @Column(name = "modified_date") private String modifiedDate; @Column(name = "created_epoch_date") private Long createdEpochDate; @Column(name = "modified_epoch_date") private Long modifiedEpochDate; }