65 lines
1.5 KiB
Java
65 lines
1.5 KiB
Java
package ru.soune.nocopy.entity.payout;
|
|||
|
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||
|
|
import jakarta.persistence.*;
|
||
|
|
import lombok.*;
|
||
|
|
import org.hibernate.annotations.CreationTimestamp;
|
||
|
|
import org.hibernate.annotations.UpdateTimestamp;
|
||
|
|
import ru.soune.nocopy.entity.user.User;
|
||
|
|
|
||
|
|
import java.math.BigDecimal;
|
||
|
|
import java.time.LocalDateTime;
|
||
|
|
|
||
|
|
|
||
|
|
@Entity
|
||
|
|
@Table(name = "payout_requests")
|
||
|
|
@Data
|
||
|
|
@Builder
|
||
|
|
@NoArgsConstructor
|
||
|
|
@AllArgsConstructor
|
||
|
|
@Getter
|
||
|
|
public class PayoutRequest {
|
||
|
|
|
||
|
|
@Id
|
||
|
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||
|
|
private Long id;
|
||
|
|
|
||
|
|
@ManyToOne(fetch = FetchType.LAZY)
|
||
|
|
@JoinColumn(name = "payout_method_id")
|
||
|
|
@JsonIgnore
|
||
|
|
private PayoutMethod payoutMethod;
|
||
|
|
|
||
|
|
@ManyToOne(fetch = FetchType.LAZY)
|
||
|
|
@JoinColumn(name = "user_id")
|
||
|
|
@JsonIgnore
|
||
|
|
private User user;
|
||
|
|
|
||
|
|
@Column(nullable = false)
|
||
|
|
private BigDecimal amount;
|
||
|
|
|
||
|
|
@Enumerated(EnumType.STRING)
|
||
|
|
@Column(nullable = false)
|
||
|
|
private PayoutRequestStatus status;
|
||
|
|
|
||
|
|
@Enumerated(EnumType.STRING)
|
||
|
|
@Column(nullable = false, name = "payout_type")
|
||
|
|
@JsonIgnore
|
||
|
|
private PayoutType payoutType;
|
||
|
|
|
||
|
|
@Column(name = "process_at")
|
||
|
|
private LocalDateTime processAt;
|
||
|
|
|
||
|
|
@Column(name = "completed_at")
|
||
|
|
private LocalDateTime completedAt;
|
||
|
|
|
||
|
|
@Column(name = "rejection_reason")
|
||
|
|
private String rejectionReason;
|
||
|
|
|
||
|
|
@CreationTimestamp
|
||
|
|
@Column(name = "created_at", updatable = false)
|
||
|
|
private LocalDateTime createdAt;
|
||
|
|
|
||
|
|
@UpdateTimestamp
|
||
|
|
@Column(name = "updated_at")
|
||
|
|
private LocalDateTime updatedAt;
|
||
|
|
}
|