goldenChat base source add
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
package com.goldenchart.entity;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
import org.hibernate.annotations.JdbcTypeCode;
|
||||
import org.hibernate.type.SqlTypes;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 사용자 차트 워크스페이스.
|
||||
* 멀티차트 레이아웃 및 슬롯 집합을 관리한다.
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "gc_chart_workspace")
|
||||
@Getter @Setter @NoArgsConstructor @AllArgsConstructor @Builder
|
||||
public class GcChartWorkspace {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long id;
|
||||
|
||||
/** 소유 사용자 ID (users.id 논리 참조) */
|
||||
@Column(name = "user_id")
|
||||
private Long userId;
|
||||
|
||||
/** 비회원 기기 식별자 */
|
||||
@Column(name = "device_id", length = 100)
|
||||
private String deviceId;
|
||||
|
||||
/** 현재 적용된 레이아웃 ID (frontend layoutTypes.ts 의 LayoutDef.id 와 일치: "1","2v","2h",...) */
|
||||
@Column(name = "layout_id", length = 20, nullable = false)
|
||||
private String layoutId;
|
||||
|
||||
/** 차트 슬롯 설정 목록 (1:N) */
|
||||
@OneToMany(mappedBy = "workspace", cascade = CascadeType.ALL, orphanRemoval = true)
|
||||
@OrderBy("slotIndex ASC")
|
||||
@Builder.Default
|
||||
private List<GcChartSlot> slots = new ArrayList<>();
|
||||
|
||||
/** 차트 간 동기화 옵션 JSON {"symbol":true,"timeframe":false,"crosshair":true} */
|
||||
@Column(name = "sync_options_json", columnDefinition = "JSON")
|
||||
@JdbcTypeCode(SqlTypes.JSON)
|
||||
private String syncOptionsJson;
|
||||
|
||||
@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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user