package com.paymentlink.model.entity; import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import java.time.LocalDateTime; @Entity @Table(name = "currency_refresh_locks") @Data @NoArgsConstructor @AllArgsConstructor @Builder public class CurrencyRefreshLock { @Id @Column(length = 50) @Builder.Default private String lockName = "EXCHANGE_RATE_REFRESH"; @Column(nullable = false) private LocalDateTime lockedAt; @Column(nullable = false) private LocalDateTime expiresAt; @Column(length = 100) private String lockedByInstance; // hostname:port for debugging @Version private Long version; // Optimistic locking }