using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace Infrastructure.Migrations.AppDb { /// public partial class AddSeibroForeign : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "ForeignCustodyNation", columns: table => new { ID = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), StdDt = table.Column(type: "date", nullable: false, comment: "기준일자 (STD_DT, 스탬핑)"), NationCd = table.Column(type: "nvarchar(2)", maxLength: 2, nullable: false, comment: "국가코드 (NATION_CD, 스탬핑) — US/JP/HK/CN/E1 등 43종"), SecnTpcd = table.Column(type: "nvarchar(2)", maxLength: 2, nullable: false, comment: "종목구분코드 (SECN_TPCD) — 71외화주식~78외화수익증권"), FrsecCusAmt = table.Column(type: "decimal(24,2)", nullable: true, comment: "외화증권보관금액 (FRSEC_CUS_AMT) — USD"), UpdatedAt = table.Column(type: "datetime2", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ForeignCustodyNation", x => x.ID); }, comment: "SEIBro 국가별 외화증권 보관현황 (getNationFrsecCusInfo) — KSD 보관 외화증권 보관금액(USD), 국가×종목구분별. 서학개미 추이 소스"); migrationBuilder.CreateTable( name: "ForeignCustodySecurity", columns: table => new { ID = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), StdDt = table.Column(type: "date", nullable: false, comment: "기준일자 (STD_DT, 스탬핑)"), Isin = table.Column(type: "nvarchar(12)", maxLength: 12, nullable: false, comment: "종목코드 (ISIN, 스탬핑)"), NationCd = table.Column(type: "nvarchar(2)", maxLength: 2, nullable: true, comment: "국가코드 (NATION_CD)"), SecnTpcd = table.Column(type: "nvarchar(2)", maxLength: 2, nullable: true, comment: "종목구분코드 (SECN_TPCD) — 71외화주식~78외화수익증권"), FrsecTotHoldAmt = table.Column(type: "decimal(24,2)", nullable: true, comment: "외화증권보유금액 (FRSEC_TOT_HOLD_AMT) — USD"), FrsecTotHoldQty = table.Column(type: "decimal(28,6)", nullable: true, comment: "외화증권총보유수량 (FRSEC_TOT_HOLD_QTY)"), UpdatedAt = table.Column(type: "datetime2", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ForeignCustodySecurity", x => x.ID); }, comment: "SEIBro 종목별 외화증권 보관현황 (getSecnFrsecCusInfo) — 특정 외화종목(ISIN) 보유금액(USD)·보유수량. ForeignIsins seed 시 활성"); migrationBuilder.CreateTable( name: "ForeignSettlementNation", columns: table => new { ID = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), SetlDt = table.Column(type: "date", nullable: false, comment: "결제일자 (SETL_DT, 스탬핑)"), NationCd = table.Column(type: "nvarchar(2)", maxLength: 2, nullable: false, comment: "국가코드 (NATION_CD, 스탬핑) — US/JP/HK/CN/E1 등 43종"), IntlBizCacd = table.Column(type: "nvarchar(4)", maxLength: 4, nullable: false, comment: "국제업무분류코드 (INTL_BIZ_CACD) — 1110매수 1120매도"), SecnTpcd = table.Column(type: "nvarchar(2)", maxLength: 2, nullable: false, comment: "종목구분코드 (SECN_TPCD) — 71외화주식~78외화수익증권"), SetlCount = table.Column(type: "bigint", nullable: true, comment: "결제건수 (SETL_COUNT)"), FrsecSetlAmt = table.Column(type: "decimal(30,10)", nullable: true, comment: "외화증권결제금액 (FRSEC_SETL_AMT) — USD, NUMBER(26,10)"), UpdatedAt = table.Column(type: "datetime2", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ForeignSettlementNation", x => x.ID); }, comment: "SEIBro 국가별 외화증권 결제현황 (getNationFrsecSetlInfo) — KSD 결제 매수/매도 결제건수·금액(USD), 국가×매매×종목구분별"); migrationBuilder.CreateTable( name: "ForeignSettlementSecurity", columns: table => new { ID = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), ProcDt = table.Column(type: "date", nullable: false, comment: "결제처리일 (PROC_DT, 스탬핑, 한국시간) — 미국시간 T일 결제는 T+1 반영"), Isin = table.Column(type: "nvarchar(12)", maxLength: 12, nullable: false, comment: "종목코드 (ISIN, 스탬핑)"), IntlBizCacd = table.Column(type: "nvarchar(4)", maxLength: 4, nullable: false, comment: "국제업무분류코드 (INTL_BIZ_CACD) — 1110매수 1120매도"), NationCd = table.Column(type: "nvarchar(2)", maxLength: 2, nullable: true, comment: "국가코드 (NATION_CD)"), SecnTpcd = table.Column(type: "nvarchar(2)", maxLength: 2, nullable: true, comment: "종목구분코드 (SECN_TPCD) — 71외화주식~78외화수익증권"), SetlAskQty = table.Column(type: "decimal(28,6)", nullable: true, comment: "결제신청수량 (SETL_ASK_QTY) — 주식:주, 채권:액면금액"), SetlAmt = table.Column(type: "decimal(24,2)", nullable: true, comment: "결제금액 (SETL_AMT) — USD"), UpdatedAt = table.Column(type: "datetime2", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ForeignSettlementSecurity", x => x.ID); }, comment: "SEIBro 종목별 외화증권 결제현황 (getSecnFrsecSetlInfo) — 특정 외화종목(ISIN) 매수/매도 결제신청수량·금액(USD). PROC_DT=T+1 반영"); migrationBuilder.CreateIndex( name: "IX_ForeignCustodyNation_NationCd_StdDt", table: "ForeignCustodyNation", columns: new[] { "NationCd", "StdDt" }); migrationBuilder.CreateIndex( name: "IX_ForeignCustodyNation_StdDt_NationCd_SecnTpcd", table: "ForeignCustodyNation", columns: new[] { "StdDt", "NationCd", "SecnTpcd" }, unique: true); migrationBuilder.CreateIndex( name: "IX_ForeignCustodySecurity_Isin_StdDt", table: "ForeignCustodySecurity", columns: new[] { "Isin", "StdDt" }); migrationBuilder.CreateIndex( name: "IX_ForeignCustodySecurity_StdDt_Isin", table: "ForeignCustodySecurity", columns: new[] { "StdDt", "Isin" }, unique: true); migrationBuilder.CreateIndex( name: "IX_ForeignSettlementNation_NationCd_SetlDt", table: "ForeignSettlementNation", columns: new[] { "NationCd", "SetlDt" }); migrationBuilder.CreateIndex( name: "IX_ForeignSettlementNation_SetlDt_NationCd_IntlBizCacd_SecnTpcd", table: "ForeignSettlementNation", columns: new[] { "SetlDt", "NationCd", "IntlBizCacd", "SecnTpcd" }, unique: true); migrationBuilder.CreateIndex( name: "IX_ForeignSettlementSecurity_Isin_ProcDt", table: "ForeignSettlementSecurity", columns: new[] { "Isin", "ProcDt" }); migrationBuilder.CreateIndex( name: "IX_ForeignSettlementSecurity_ProcDt_Isin_IntlBizCacd", table: "ForeignSettlementSecurity", columns: new[] { "ProcDt", "Isin", "IntlBizCacd" }, unique: true); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "ForeignCustodyNation"); migrationBuilder.DropTable( name: "ForeignCustodySecurity"); migrationBuilder.DropTable( name: "ForeignSettlementNation"); migrationBuilder.DropTable( name: "ForeignSettlementSecurity"); } } }