using Domain.Entities.Stocks; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace Infrastructure.Persistence.Configurations.Stocks; public sealed class MeetingAgendaConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable(nameof(MeetingAgenda), t => t.HasComment("SEIBro 총회안건 정보 (getGmeetMeasureInfo) — 주총 안건·결과. GeneralMeeting 동일 트리거")); builder.HasKey(x => x.ID); builder.HasIndex(x => new { x.IssucoCustno, x.RgtStdDt, x.AgendaSeq }).IsUnique(); builder.Property(x => x.IssucoCustno).HasComment("발행회사 고객번호 (ISSUCO_CUSTNO)"); builder.Property(x => x.IssuinNo).HasMaxLength(6).HasComment("발행회사발행체번호 (ISSUIN_NO)"); builder.Property(x => x.RgtStdDt).IsRequired().HasComment("권리기준일자 (RGT_STD_DT)"); builder.Property(x => x.GmetDt).HasComment("총회일자 (GMET_DT)"); builder.Property(x => x.GmetKacd).HasMaxLength(3).HasComment("총회종류코드 (GMET_KACD)"); builder.Property(x => x.AgendaSeq).HasComment("안건일련번호 (AGENDA_SEQ)"); builder.Property(x => x.AgendaXpresNo).HasMaxLength(12).HasComment("안건표시번호 (AGENDA_XPRES_NO)"); builder.Property(x => x.AgendaSchSeqo).HasMaxLength(6).HasComment("안건조회순서 (AGENDA_SCH_SEQO)"); builder.Property(x => x.AgendaNo).HasMaxLength(12).HasComment("안건번호 (AGENDA_NO)"); builder.Property(x => x.DtailAgendaNo).HasMaxLength(12).HasComment("세부안건번호 (DTAIL_AGENDA_NO)"); builder.Property(x => x.AgendaNm).HasMaxLength(500).IsRequired().HasComment("안건명 (AGENDA_NM)"); builder.Property(x => x.EngAgendaNm).HasMaxLength(500).HasComment("영문안건명 (ENG_AGENDA_NM)"); builder.Property(x => x.DtailAgendaNm).HasMaxLength(200).HasComment("세부안건명 (DTAIL_AGENDA_NM)"); builder.Property(x => x.DtailEngAgendaNm).HasMaxLength(200).HasComment("세부영문안건명 (DTAIL_ENG_AGENDA_NM)"); builder.Property(x => x.VoteMannTpcd).HasMaxLength(1).HasComment("투표방식구분코드 (VOTE_MANN_TPCD)"); builder.Property(x => x.GmetResultTpcd).HasMaxLength(1).HasComment("총회결과구분코드 (GMET_RESULT_TPCD) — 1승인 2부결 3수정승인 4부분승인 5철회"); } }