You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

105 lines
3.7 KiB

package com.gcc.communityHall.entity;
import jakarta.persistence.*;
import java.time.LocalDateTime;
/**
* Audit log table that records every refund-follow-up mail dispatched
* for 6-month-old bookings from the /sixmonthold-transactions page.
*
* DDL (run once):
* CREATE TABLE six_month_mail_log (
* id BIGINT AUTO_INCREMENT PRIMARY KEY,
* booking_id INT NOT NULL,
* booking_status VARCHAR(50),
* transaction_id VARCHAR(100),
* tpsl_id VARCHAR(100),
* refund_amount DOUBLE,
* sent_by VARCHAR(100),
* sent_at DATETIME DEFAULT CURRENT_TIMESTAMP,
* mail_content TEXT
* );
*
* Also add to booking_details (run once):
* ALTER TABLE booking_details
* ADD COLUMN mail_sent TINYINT(1) DEFAULT 0,
* ADD COLUMN mail_sent_date DATETIME NULL;
*/
@Entity
@Table(name = "six_month_mail_log")
public class SixMonthMailLog {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "booking_id", nullable = false)
private int bookingId;
@Column(name = "booking_status", length = 50)
private String bookingStatus;
@Column(name = "transaction_id", length = 100)
private String transactionId;
@Column(name = "tpsl_id", length = 100)
private String tpslId;
@Column(name = "refund_amount")
private Double refundAmount;
@Column(name = "sent_by", length = 100)
private String sentBy;
@Column(name = "sent_at")
private LocalDateTime sentAt;
@Column(name = "mail_content", columnDefinition = "TEXT")
private String mailContent;
// ──── Constructors ────────────────────────────────────────────────────────
public SixMonthMailLog() {
}
public SixMonthMailLog(int bookingId, String bookingStatus, String transactionId,
String tpslId, Double refundAmount, String sentBy, String mailContent) {
this.bookingId = bookingId;
this.bookingStatus = bookingStatus;
this.transactionId = transactionId;
this.tpslId = tpslId;
this.refundAmount = refundAmount;
this.sentBy = sentBy;
this.sentAt = LocalDateTime.now();
this.mailContent = mailContent;
}
// ──── Getters & Setters ───────────────────────────────────────────────────
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public int getBookingId() { return bookingId; }
public void setBookingId(int bookingId) { this.bookingId = bookingId; }
public String getBookingStatus() { return bookingStatus; }
public void setBookingStatus(String bookingStatus) { this.bookingStatus = bookingStatus; }
public String getTransactionId() { return transactionId; }
public void setTransactionId(String transactionId) { this.transactionId = transactionId; }
public String getTpslId() { return tpslId; }
public void setTpslId(String tpslId) { this.tpslId = tpslId; }
public Double getRefundAmount() { return refundAmount; }
public void setRefundAmount(Double refundAmount) { this.refundAmount = refundAmount; }
public String getSentBy() { return sentBy; }
public void setSentBy(String sentBy) { this.sentBy = sentBy; }
public LocalDateTime getSentAt() { return sentAt; }
public void setSentAt(LocalDateTime sentAt) { this.sentAt = sentAt; }
public String getMailContent() { return mailContent; }
public void setMailContent(String mailContent) { this.mailContent = mailContent; }
}