added model indexes

This commit is contained in:
Prince
2026-06-12 22:33:58 +02:00
parent c6ce11026c
commit 573e4b154c
20 changed files with 352 additions and 36 deletions

View File

@@ -1,12 +1,7 @@
package zw.qantra.tm.domain.models;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.OneToOne;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
@@ -17,15 +12,21 @@ import zw.qantra.tm.domain.enums.RequestType;
@Getter
@Setter
@Entity
@Table(name = "additional_data", indexes = {
@Index(name = "idx_additional_data_txn_id", columnList = "transaction_id"),
@Index(name = "idx_additional_data_txn_type", columnList = "transaction_id, request_type"),
})
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class AdditionalData extends BaseEntity {
@Column(name = "transaction_id")
private String transactionId;
@Column(columnDefinition = "TEXT")
private String jsonString;
@Enumerated(EnumType.STRING)
@Column(name = "request_type")
private RequestType requestType;
}

View File

@@ -1,10 +1,13 @@
package zw.qantra.tm.domain.models;
import jakarta.persistence.Entity;
import jakarta.persistence.*;
import lombok.*;
import org.hibernate.annotations.SQLRestriction;
@Entity
@Table(name = "category", indexes = {
@Index(name = "idx_category_name", columnList = "name"),
})
@Setter
@Getter
@Builder

View File

@@ -12,6 +12,10 @@ import java.util.HashSet;
import java.util.Set;
@Entity
@Table(name = "charge", indexes = {
@Index(name = "idx_charge_currency", columnList = "currency"),
@Index(name = "idx_charge_label_currency", columnList = "charge_label, currency"),
})
@Getter
@Setter
@Builder
@@ -32,6 +36,7 @@ public class Charge extends BaseEntity {
private BigDecimal maximumAmount;
@Enumerated(EnumType.STRING)
@Column(name = "charge_label")
private ChargeLabelEnum chargeLabel;
@Enumerated(EnumType.STRING)
private CurrencyType currency;

View File

@@ -7,6 +7,9 @@ import zw.qantra.tm.domain.enums.ChargeConditionType;
import java.util.List;
@Entity
@Table(name = "charge_condition", indexes = {
@Index(name = "idx_charge_condition_codes", columnList = "codes"),
})
@Getter
@Setter
@Builder

View File

@@ -1,15 +1,19 @@
package zw.qantra.tm.domain.models;
import jakarta.persistence.Entity;
import jakarta.persistence.*;
import lombok.*;
@Entity
@Table(name = "currency", indexes = {
@Index(name = "idx_currency_iso_code", columnList = "iso_code"),
})
@Getter
@Setter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Currency extends BaseEntity {
@Column(name = "iso_code")
private String isoCode;
private String name;
private String displayName;

View File

@@ -1,10 +1,7 @@
package zw.qantra.tm.domain.models;
import com.fasterxml.jackson.annotation.JsonInclude;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
@@ -18,6 +15,13 @@ import java.time.LocalDateTime;
import java.util.UUID;
@Entity
@Table(name = "group_batch", indexes = {
@Index(name = "idx_group_batch_user_id", columnList = "user_id"),
@Index(name = "idx_group_batch_status", columnList = "status"),
@Index(name = "idx_group_batch_recipient_group_id", columnList = "recipient_group_id"),
@Index(name = "idx_group_batch_created_at", columnList = "created_at"),
@Index(name = "idx_group_batch_payment_ref", columnList = "payment_reference"),
})
@Getter
@Setter
@Builder
@@ -26,7 +30,9 @@ import java.util.UUID;
@SQLRestriction("deleted = false")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class GroupBatch extends BaseEntity {
@Column(name = "recipient_group_id")
private UUID recipientGroupId;
@Column(name = "user_id")
private String userId;
private String description;
private String requestedBy;
@@ -35,8 +41,11 @@ public class GroupBatch extends BaseEntity {
@Enumerated(EnumType.STRING)
private GroupBatchStatus status;
@Column(name = "payment_reference")
private String paymentReference;
@Column(name = "payment_transaction_id")
private UUID paymentTransactionId;
@Column(name = "workflow_id")
private Long workflowId;
private String confirmIdempotencyKey;

View File

@@ -15,6 +15,12 @@ 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
@@ -22,9 +28,13 @@ import java.util.UUID;
@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 BigDecimal amount;
@@ -32,9 +42,11 @@ public class GroupBatchItem extends BaseEntity {
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")

View File

@@ -1,13 +1,14 @@
package zw.qantra.tm.domain.models;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.*;
import lombok.*;
import zw.qantra.tm.domain.enums.Status;
@Entity
@Table(name = "otp", indexes = {
@Index(name = "idx_otp_username_type", columnList = "username, otp_type"),
})
@Getter
@Setter
@Builder
@@ -17,6 +18,8 @@ public class Otp extends BaseEntity{
private String username;
private String otp;
@Enumerated(EnumType.STRING)
@Column(name = "otp_status")
private Status otpStatus;
@Column(name = "otp_type")
private String otpType;
}

View File

@@ -1,11 +1,13 @@
package zw.qantra.tm.domain.models;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.*;
import lombok.*;
import org.hibernate.annotations.SQLRestriction;
@Entity
@Table(name = "payment_processor", indexes = {
@Index(name = "idx_payment_processor_label", columnList = "label"),
})
@Getter
@Setter
@Builder

View File

@@ -1,15 +1,16 @@
package zw.qantra.tm.domain.models;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.*;
import lombok.*;
import org.hibernate.annotations.SQLRestriction;
import zw.qantra.tm.domain.enums.CurrencyType;
@Entity
@Table(name = "provider", indexes = {
@Index(name = "idx_provider_category", columnList = "category"),
@Index(name = "idx_provider_client_id", columnList = "client_id"),
})
@Getter
@Setter
@Builder
@@ -17,6 +18,7 @@ import zw.qantra.tm.domain.enums.CurrencyType;
@NoArgsConstructor
@SQLRestriction("deleted = false")
public class Provider extends BaseEntity {
@Column(name = "client_id")
private String clientId;
private String label;
private String name;

View File

@@ -2,12 +2,18 @@ package zw.qantra.tm.domain.models;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import jakarta.persistence.Entity;
import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
import lombok.*;
import org.hibernate.annotations.SQLRestriction;
@Entity
@Table(name = "recipient", indexes = {
@Index(name = "idx_recipient_account_user", columnList = "account, user_id"),
@Index(name = "idx_recipient_user_id", columnList = "user_id"),
@Index(name = "idx_recipient_phone", columnList = "phone_number"),
@Index(name = "idx_recipient_email", columnList = "email"),
})
@Getter
@Setter
@Builder
@@ -18,10 +24,13 @@ import org.hibernate.annotations.SQLRestriction;
public class Recipient extends BaseEntity {
private String name;
private String email;
@Column(name = "phone_number")
private String phoneNumber;
private String address;
private String account;
private String initials;
@Column(name = "latest_provider_label")
private String latestProviderLabel;
@Column(name = "user_id")
private String userId;
}

View File

@@ -1,7 +1,7 @@
package zw.qantra.tm.domain.models;
import com.fasterxml.jackson.annotation.JsonInclude;
import jakarta.persistence.Entity;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
@@ -10,6 +10,9 @@ import lombok.Setter;
import org.hibernate.annotations.SQLRestriction;
@Entity
@Table(name = "recipient_group", indexes = {
@Index(name = "idx_recipient_group_user_id", columnList = "user_id"),
})
@Getter
@Setter
@Builder
@@ -20,6 +23,7 @@ import org.hibernate.annotations.SQLRestriction;
public class RecipientGroup extends BaseEntity {
private String name;
private String description;
@Column(name = "user_id")
private String userId;
}

View File

@@ -1,9 +1,7 @@
package zw.qantra.tm.domain.models;
import com.fasterxml.jackson.annotation.JsonInclude;
import jakarta.persistence.Entity;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
@@ -14,6 +12,10 @@ import org.hibernate.annotations.SQLRestriction;
import java.util.UUID;
@Entity
@Table(name = "recipient_group_member", indexes = {
@Index(name = "idx_rgm_group_id", columnList = "recipient_group_id"),
@Index(name = "idx_rgm_group_recipient", columnList = "recipient_group_id, recipient_id"),
})
@Getter
@Setter
@Builder
@@ -22,12 +24,15 @@ import java.util.UUID;
@JsonInclude(JsonInclude.Include.NON_NULL)
@SQLRestriction("deleted = false")
public class RecipientGroupMember extends BaseEntity {
@Column(name = "recipient_group_id")
private UUID recipientGroupId;
@ManyToOne
@JoinColumn(name = "recipient_id")
private Recipient recipient;
@Column(name = "recipient_uid")
private UUID recipientUid;
private String account;
@Column(name = "user_id")
private String userId;
}

View File

@@ -1,6 +1,6 @@
package zw.qantra.tm.domain.models;
import jakarta.persistence.Entity;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
@@ -8,12 +8,17 @@ import lombok.NoArgsConstructor;
import lombok.Setter;
@Entity
@Table(name = "setting", indexes = {
@Index(name = "idx_setting_name", columnList = "setting_name"),
})
@Getter
@Setter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Setting extends BaseEntity {
@Column(name = "setting_name")
private String settingName;
@Column(name = "setting_value")
private String settingValue;
}

View File

@@ -12,6 +12,18 @@ import java.math.BigDecimal;
import java.util.UUID;
@Entity
@Table(name = "transaction", indexes = {
@Index(name = "idx_transaction_trace_type", columnList = "trace, type"),
@Index(name = "idx_transaction_reference", columnList = "reference"),
@Index(name = "idx_transaction_user_id", columnList = "user_id"),
@Index(name = "idx_transaction_confirm_pay_integ", columnList = "confirmation_status, payment_status, integration_status"),
@Index(name = "idx_transaction_pay_poll", columnList = "payment_status, polling_status"),
@Index(name = "idx_transaction_status", columnList = "status"),
@Index(name = "idx_transaction_created_at", columnList = "created_at"),
@Index(name = "idx_transaction_debit_phone", columnList = "debit_phone"),
@Index(name = "idx_transaction_credit_phone", columnList = "credit_phone"),
@Index(name = "idx_transaction_workflow_id", columnList = "workflow_id"),
})
@Getter
@Setter
@Builder
@@ -19,7 +31,9 @@ import java.util.UUID;
@NoArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
@SQLRestriction("deleted = false")
public class Transaction extends BaseEntity {
@Column(name = "user_id")
private String userId;
private String trace;
private String region;
@@ -39,6 +53,7 @@ public class Transaction extends BaseEntity {
private String rrn;
private String channelName;
private String channel;
@Column(name = "debit_phone")
private String debitPhone;
private String debitAccount;
@Enumerated(EnumType.STRING)
@@ -47,6 +62,7 @@ public class Transaction extends BaseEntity {
private String debitCard;
private String debitRef;
private String debitEmail;
@Column(name = "credit_phone")
private String creditPhone;
private String creditAccount;
@Enumerated(EnumType.STRING)
@@ -69,14 +85,18 @@ public class Transaction extends BaseEntity {
@Enumerated(EnumType.STRING)
private Status authorizationStatus;
@Enumerated(EnumType.STRING)
@Column(name = "confirmation_status")
private Status confirmationStatus;
@Enumerated(EnumType.STRING)
@Column(name = "payment_status")
private Status paymentStatus;
@Enumerated(EnumType.STRING)
@Column(name = "integration_status")
private Status integrationStatus;
@Enumerated(EnumType.STRING)
private Status reversalStatus;
@Enumerated(EnumType.STRING)
@Column(name = "polling_status")
private Status pollingStatus;
@@ -92,7 +112,7 @@ public class Transaction extends BaseEntity {
private String erpPurchasePaymentRef;
private String erpCommissionJournalRef;
@Column(nullable = true)
@Column(name = "workflow_id", nullable = true)
private long workflowId;
@Enumerated(EnumType.STRING)

View File

@@ -2,10 +2,7 @@ package zw.qantra.tm.domain.models;
import com.fasterxml.jackson.annotation.JsonInclude;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Enumerated;
import jakarta.persistence.EnumType;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
@@ -14,6 +11,9 @@ import lombok.Setter;
import zw.qantra.tm.domain.enums.Status;
@Entity
@Table(name = "transaction_event", indexes = {
@Index(name = "idx_txn_event_txn_id", columnList = "transaction_id"),
})
@Getter
@Setter
@Builder
@@ -21,6 +21,7 @@ import zw.qantra.tm.domain.enums.Status;
@NoArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class TransactionEvent extends BaseEntity {
@Column(name = "transaction_id")
private String transactionId;
private String event;
@Enumerated(EnumType.STRING)

View File

@@ -12,7 +12,9 @@ import java.util.Collection;
import java.util.List;
@Entity
@Table(name = "users")
@Table(name = "users", indexes = {
@Index(name = "idx_user_phone", columnList = "phone"),
})
@Data
@EqualsAndHashCode(callSuper = true)
@SQLRestriction("deleted = false")

View File

@@ -40,8 +40,8 @@ ecocash.url=https://developers.ecocash.co.zw/api/ecocash_pay/api/v2/payment/inst
#velocity.api.base-url=https://api.velocityafrica.net
#velocity.api.api-key=z5WdSlItIhYL6nd7rxzf-jFdKN3jJyL1LubhDFBvXmc
velocity.api.base-url=http://localhost:6975
velocity.api.api-key=gH13nirZdUQdqC9impgzTzqEqv-jdbLOTx_HD5fQr_A
#velocity.api.base-url=http://localhost:6975
#velocity.api.api-key=gH13nirZdUQdqC9impgzTzqEqv-jdbLOTx_HD5fQr_A
velocity.api.cancel-url=http://localhost:9005/poll
velocity.api.success-url=http://localhost:9005/poll

View File

@@ -67,7 +67,7 @@ hot.password=Stikbanch@50
hot.cache.duration.minutes=5
velocity.api.base-url=https://api.velocityafrica.net
velocity.api.api-key=cHE08ADmiATtf8VYgA59-wKVKVKj2WusKDAaaRLDsG8
velocity.api.api-key=hL5KvXqRAYWH_I8anEZsbiL-tFoM2y25g5tkYuLuw3s
velocity.api.cancel-url=https://pay.velocityafrica.net/poll
velocity.api.success-url=https://pay.velocityafrica.net/poll

View File

@@ -0,0 +1,226 @@
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:pro="http://www.liquibase.org/xml/ns/pro" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/pro http://www.liquibase.org/xml/ns/pro/liquibase-pro-latest.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd">
<changeSet author="khoza (generated)" id="1781292513634-7">
<createIndex indexName="IX_charge_exclude_productsPK" tableName="charge_exclude_products" unique="true">
<column name="charge_id"/>
<column name="charge_condition_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-8">
<createIndex indexName="IX_charge_include_productsPK" tableName="charge_include_products" unique="true">
<column name="charge_id"/>
<column name="charge_condition_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-9">
<createIndex indexName="idx_additional_data_txn_id" tableName="additional_data">
<column name="transaction_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-10">
<createIndex indexName="idx_additional_data_txn_type" tableName="additional_data">
<column name="transaction_id"/>
<column name="request_type"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-11">
<createIndex indexName="idx_category_name" tableName="category">
<column name="name"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-12">
<createIndex indexName="idx_charge_condition_codes" tableName="charge_condition">
<column name="codes"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-13">
<createIndex indexName="idx_charge_currency" tableName="charge">
<column name="currency"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-14">
<createIndex indexName="idx_charge_label_currency" tableName="charge">
<column name="charge_label"/>
<column name="currency"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-15">
<createIndex indexName="idx_currency_iso_code" tableName="currency">
<column name="iso_code"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-16">
<createIndex indexName="idx_gbi_batch_confirm" tableName="group_batch_item">
<column name="group_batch_id"/>
<column name="confirm_status"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-17">
<createIndex indexName="idx_gbi_batch_id" tableName="group_batch_item">
<column name="group_batch_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-18">
<createIndex indexName="idx_gbi_batch_integ" tableName="group_batch_item">
<column name="group_batch_id"/>
<column name="integration_status"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-19">
<createIndex indexName="idx_gbi_txn_id" tableName="group_batch_item">
<column name="transaction_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-20">
<createIndex indexName="idx_group_batch_created_at" tableName="group_batch">
<column name="created_at"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-21">
<createIndex indexName="idx_group_batch_payment_ref" tableName="group_batch">
<column name="payment_reference"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-22">
<createIndex indexName="idx_group_batch_recipient_group_id" tableName="group_batch">
<column name="recipient_group_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-23">
<createIndex indexName="idx_group_batch_status" tableName="group_batch">
<column name="status"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-24">
<createIndex indexName="idx_group_batch_user_id" tableName="group_batch">
<column name="user_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-25">
<createIndex indexName="idx_otp_username_type" tableName="otp">
<column name="username"/>
<column name="otp_type"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-26">
<createIndex indexName="idx_payment_processor_label" tableName="payment_processor">
<column name="label"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-27">
<createIndex indexName="idx_provider_category" tableName="provider">
<column name="category"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-28">
<createIndex indexName="idx_provider_client_id" tableName="provider">
<column name="client_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-29">
<createIndex indexName="idx_recipient_account_user" tableName="recipient">
<column name="account"/>
<column name="user_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-30">
<createIndex indexName="idx_recipient_email" tableName="recipient">
<column name="email"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-31">
<createIndex indexName="idx_recipient_group_user_id" tableName="recipient_group">
<column name="user_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-32">
<createIndex indexName="idx_recipient_phone" tableName="recipient">
<column name="phone_number"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-33">
<createIndex indexName="idx_recipient_user_id" tableName="recipient">
<column name="user_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-34">
<createIndex indexName="idx_rgm_group_id" tableName="recipient_group_member">
<column name="recipient_group_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-35">
<createIndex indexName="idx_rgm_group_recipient" tableName="recipient_group_member">
<column name="recipient_group_id"/>
<column name="recipient_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-36">
<createIndex indexName="idx_setting_name" tableName="setting">
<column name="setting_name"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-37">
<createIndex indexName="idx_transaction_confirm_pay_integ" tableName="transaction">
<column name="confirmation_status"/>
<column name="payment_status"/>
<column name="integration_status"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-38">
<createIndex indexName="idx_transaction_created_at" tableName="transaction">
<column name="created_at"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-39">
<createIndex indexName="idx_transaction_credit_phone" tableName="transaction">
<column name="credit_phone"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-40">
<createIndex indexName="idx_transaction_debit_phone" tableName="transaction">
<column name="debit_phone"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-41">
<createIndex indexName="idx_transaction_pay_poll" tableName="transaction">
<column name="payment_status"/>
<column name="polling_status"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-42">
<createIndex indexName="idx_transaction_reference" tableName="transaction">
<column name="reference"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-43">
<createIndex indexName="idx_transaction_status" tableName="transaction">
<column name="status"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-44">
<createIndex indexName="idx_transaction_trace_type" tableName="transaction">
<column name="trace"/>
<column name="type"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-45">
<createIndex indexName="idx_transaction_user_id" tableName="transaction">
<column name="user_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-46">
<createIndex indexName="idx_transaction_workflow_id" tableName="transaction">
<column name="workflow_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-47">
<createIndex indexName="idx_txn_event_txn_id" tableName="transaction_event">
<column name="transaction_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-48">
<createIndex indexName="idx_user_phone" tableName="users">
<column name="phone"/>
</createIndex>
</changeSet>
</databaseChangeLog>