초기커밋
This commit is contained in:
163
BrokerApiCore/Repository/SqlConfig/PlanetExchangeOrderConfig.cs
Normal file
163
BrokerApiCore/Repository/SqlConfig/PlanetExchangeOrderConfig.cs
Normal file
@@ -0,0 +1,163 @@
|
||||
namespace BrokerCore.DbEntity;
|
||||
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
|
||||
public class PlanetExchangeOrderConfig : IEntityTypeConfiguration<PlanetItemExchangeOrder>
|
||||
{
|
||||
public void Configure(EntityTypeBuilder<PlanetItemExchangeOrder> builder)
|
||||
{
|
||||
builder.ToTable("planet_item_exchange_order");
|
||||
builder.HasIndex(o => o.CreatedAt);
|
||||
builder.HasIndex(o => o.OrderStatus);
|
||||
builder.HasIndex(o => o.PlanetId);
|
||||
builder.HasIndex(o => o.SeasonId);
|
||||
builder.HasIndex(o => o.AccountId);
|
||||
builder.HasIndex(o => o.UserGuid);
|
||||
|
||||
// 기본 키 (Primary Key)
|
||||
builder.HasKey(o => o.OrderId);
|
||||
builder.Property(o => o.OrderId)
|
||||
.HasColumnOrder(1)
|
||||
.HasColumnName("order_id")
|
||||
.HasMaxLength(50)
|
||||
.IsRequired()
|
||||
.HasComment("교환 주문 아이디 (GUID)");
|
||||
|
||||
// 주문 상태 (Enum)
|
||||
builder.Property(o => o.OrderStatus)
|
||||
.HasColumnOrder(2)
|
||||
.HasColumnName("order_status")
|
||||
.IsRequired()
|
||||
.HasConversion<string>()
|
||||
.HasMaxLength(50)
|
||||
.HasComment("교환 주문 상태");
|
||||
|
||||
// 플래닛 ID (string)
|
||||
builder.Property(o => o.PlanetId)
|
||||
.HasColumnOrder(3)
|
||||
.HasColumnName("planet_id")
|
||||
.HasMaxLength(50)
|
||||
.IsRequired()
|
||||
.HasComment("플래닛 아이디");
|
||||
|
||||
// PlanetInfo와의 외래 키 관계 설정
|
||||
builder.HasOne<PlanetInfo>()
|
||||
.WithMany()
|
||||
.HasForeignKey(o => o.PlanetId)
|
||||
.OnDelete(DeleteBehavior.Restrict) // 삭제 동작 정책을 Restrict로 설정
|
||||
.HasConstraintName("FK_PlanetExchangeOrder_PlanetInfo");
|
||||
|
||||
builder.Property(o => o.SeasonId)
|
||||
.HasColumnOrder(4)
|
||||
.HasColumnName("season_id")
|
||||
.HasMaxLength(50)
|
||||
.IsRequired()
|
||||
.HasComment("시즌 아이디");
|
||||
|
||||
builder.Property(o => o.ExchangeMetaId)
|
||||
.HasColumnOrder(5)
|
||||
.HasColumnName("exchange_meta_id")
|
||||
.HasMaxLength(50)
|
||||
.IsRequired()
|
||||
.HasComment("교환 메타 아이디");
|
||||
|
||||
builder.Property(o => o.ExchangeMetaAmount)
|
||||
.HasColumnOrder(6)
|
||||
.HasColumnName("exchange_meta_amount")
|
||||
.HasColumnType("INT")
|
||||
.IsRequired()
|
||||
.HasComment("교환 메타 수량");
|
||||
|
||||
// 계정 ID (ulong)
|
||||
builder.Property(o => o.AccountId)
|
||||
.HasColumnOrder(7)
|
||||
.HasColumnName("account_id")
|
||||
.HasMaxLength(50)
|
||||
.IsRequired()
|
||||
.HasComment("SSO 아이디");
|
||||
|
||||
// 사용자 GUID (string)
|
||||
builder.Property(o => o.UserGuid)
|
||||
.HasColumnOrder(8)
|
||||
.HasColumnName("user_guid")
|
||||
.HasMaxLength(50)
|
||||
.IsRequired()
|
||||
.HasComment("유저 아이디 (GUID)");
|
||||
|
||||
// 사용자 닉네임 (string)
|
||||
builder.Property(o => o.Nickname)
|
||||
.HasColumnOrder(9)
|
||||
.HasColumnName("nickname")
|
||||
.HasMaxLength(50)
|
||||
.IsRequired()
|
||||
.HasComment("유저 닉네임");
|
||||
|
||||
// 칼리버스 아이템 타입 (Enum)
|
||||
builder.Property(o => o.CaliverseItemType)
|
||||
.HasColumnOrder(10)
|
||||
.HasColumnName("caliverse_item_type")
|
||||
.IsRequired()
|
||||
.HasConversion<string>()
|
||||
.HasMaxLength(50)
|
||||
.HasComment("칼리버스 아이템 타입");
|
||||
|
||||
// 칼리버스 아이템 ID (string)
|
||||
builder.Property(o => o.CaliverseItemId)
|
||||
.HasColumnOrder(11)
|
||||
.HasColumnName("caliverse_item_id")
|
||||
.HasMaxLength(50)
|
||||
.IsRequired()
|
||||
.HasComment("칼리버스 아이템 아이디");
|
||||
|
||||
// 칼리버스 아이템 수량 (long)
|
||||
builder.Property(o => o.CaliverseItemDeltaAmount)
|
||||
.HasColumnOrder(12)
|
||||
.HasColumnName("caliverse_item_quantity")
|
||||
.HasColumnType("INT")
|
||||
.IsRequired()
|
||||
.HasComment("칼리버스 아이템 갯수");
|
||||
|
||||
// 플래닛 아이템 타입 (Enum)
|
||||
builder.Property(o => o.PlanetItemType)
|
||||
.HasColumnOrder(13)
|
||||
.HasColumnName("planet_item_type")
|
||||
.IsRequired()
|
||||
.HasConversion<string>()
|
||||
.HasMaxLength(50)
|
||||
.HasComment("플래닛 아이템 타입");
|
||||
|
||||
// 플래닛 아이템 ID (string)
|
||||
builder.Property(o => o.PlanetItemId)
|
||||
.HasColumnOrder(14)
|
||||
.HasColumnName("planet_item_id")
|
||||
.HasMaxLength(50)
|
||||
.IsRequired()
|
||||
.HasComment("플래닛 아이템 아이디");
|
||||
|
||||
// 플래닛 아이템 수량 (long)
|
||||
builder.Property(o => o.PlanetItemDeltaAmount)
|
||||
.HasColumnOrder(15)
|
||||
.HasColumnName("planet_item_quantity")
|
||||
.HasColumnType("INT")
|
||||
.IsRequired()
|
||||
.HasComment("플래닛 아이템 갯수");
|
||||
|
||||
// 생성 시간 (TIMESTAMP)
|
||||
builder.Property(o => o.CreatedAt)
|
||||
.HasColumnOrder(16)
|
||||
.HasColumnName("created_at")
|
||||
.HasColumnType("TIMESTAMP")
|
||||
.IsRequired()
|
||||
.HasDefaultValueSql("CURRENT_TIMESTAMP")
|
||||
.HasComment("교환 주문 시작 시간");
|
||||
|
||||
// 완료 시간 (TIMESTAMP?) - Nullable
|
||||
builder.Property(o => o.CompletedAt)
|
||||
.HasColumnOrder(17)
|
||||
.HasColumnName("completed_at")
|
||||
.HasColumnType("TIMESTAMP")
|
||||
.IsRequired(false)
|
||||
.HasComment("교환 주문 완료 시간");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user