67 lines
1.6 KiB
Java
67 lines
1.6 KiB
Java
package com.goldenchart.entity;
|
|
|
|
import jakarta.persistence.*;
|
|
import lombok.*;
|
|
|
|
import java.math.BigDecimal;
|
|
import java.time.LocalDateTime;
|
|
|
|
/**
|
|
* 보유종목.
|
|
*/
|
|
@Entity
|
|
@Table(name = "gc_holdings",
|
|
uniqueConstraints = @UniqueConstraint(name = "uk_holdings_user_symbol",
|
|
columnNames = {"user_id", "device_id", "symbol"}))
|
|
@Getter @Setter @NoArgsConstructor @AllArgsConstructor @Builder
|
|
public class GcHoldings {
|
|
|
|
@Id
|
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
|
private Long id;
|
|
|
|
@Column(name = "user_id")
|
|
private Long userId;
|
|
|
|
@Column(name = "device_id", length = 100)
|
|
private String deviceId;
|
|
|
|
@Column(name = "symbol", length = 50, nullable = false)
|
|
private String symbol;
|
|
|
|
@Column(name = "korean_name", length = 100)
|
|
private String koreanName;
|
|
|
|
@Column(name = "english_name", length = 100)
|
|
private String englishName;
|
|
|
|
/** 평균 매입가 */
|
|
@Column(name = "avg_price", precision = 30, scale = 8)
|
|
private BigDecimal avgPrice;
|
|
|
|
/** 보유 수량 */
|
|
@Column(name = "quantity", precision = 30, scale = 8)
|
|
private BigDecimal quantity;
|
|
|
|
@Column(name = "display_order")
|
|
@Builder.Default
|
|
private Integer displayOrder = 0;
|
|
|
|
@Column(name = "created_at", nullable = false, updatable = false)
|
|
private LocalDateTime createdAt;
|
|
|
|
@Column(name = "updated_at")
|
|
private LocalDateTime updatedAt;
|
|
|
|
@PrePersist
|
|
protected void onCreate() {
|
|
createdAt = LocalDateTime.now();
|
|
updatedAt = LocalDateTime.now();
|
|
}
|
|
|
|
@PreUpdate
|
|
protected void onUpdate() {
|
|
updatedAt = LocalDateTime.now();
|
|
}
|
|
}
|