using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace AMREZ.EOP.Infrastructures.Migrations { /// public partial class AddLocationCode : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "provinces", schema: "master", columns: table => new { Id = table.Column(type: "uuid", nullable: false), Code = table.Column(type: "character varying(2)", maxLength: 2, nullable: false), tenant_id = table.Column(type: "uuid", nullable: false), created_at = table.Column(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"), created_by = table.Column(type: "text", nullable: true), updated_at = table.Column(type: "timestamp with time zone", nullable: true), updated_by = table.Column(type: "text", nullable: true), is_deleted = table.Column(type: "boolean", nullable: false, defaultValue: false), Scope = table.Column(type: "text", nullable: false, defaultValue: "global"), Name = table.Column(type: "text", nullable: false), NameI18n = table.Column(type: "jsonb", nullable: true), OverridesGlobalId = table.Column(type: "uuid", nullable: true), IsActive = table.Column(type: "boolean", nullable: false, defaultValue: true), IsSystem = table.Column(type: "boolean", nullable: false, defaultValue: false), Meta = table.Column(type: "jsonb", nullable: true) }, constraints: table => { table.PrimaryKey("PK_provinces", x => x.Id); table.UniqueConstraint("AK_provinces_tenant_id_Id", x => new { x.tenant_id, x.Id }); table.CheckConstraint("ck_provinces_tenant_not_null", "tenant_id is not null"); table.CheckConstraint("ck_provinces_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'"); }); migrationBuilder.CreateTable( name: "districts", schema: "master", columns: table => new { Id = table.Column(type: "uuid", nullable: false), Code = table.Column(type: "character varying(4)", maxLength: 4, nullable: false), ProvinceId = table.Column(type: "uuid", nullable: false), tenant_id = table.Column(type: "uuid", nullable: false), created_at = table.Column(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"), created_by = table.Column(type: "text", nullable: true), updated_at = table.Column(type: "timestamp with time zone", nullable: true), updated_by = table.Column(type: "text", nullable: true), is_deleted = table.Column(type: "boolean", nullable: false, defaultValue: false), Scope = table.Column(type: "text", nullable: false, defaultValue: "global"), Name = table.Column(type: "text", nullable: false), NameI18n = table.Column(type: "jsonb", nullable: true), OverridesGlobalId = table.Column(type: "uuid", nullable: true), IsActive = table.Column(type: "boolean", nullable: false, defaultValue: true), IsSystem = table.Column(type: "boolean", nullable: false, defaultValue: false), Meta = table.Column(type: "jsonb", nullable: true) }, constraints: table => { table.PrimaryKey("PK_districts", x => x.Id); table.UniqueConstraint("AK_districts_tenant_id_Id", x => new { x.tenant_id, x.Id }); table.CheckConstraint("ck_districts_tenant_not_null", "tenant_id is not null"); table.CheckConstraint("ck_districts_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'"); table.ForeignKey( name: "FK_districts_provinces_tenant_id_ProvinceId", columns: x => new { x.tenant_id, x.ProvinceId }, principalSchema: "master", principalTable: "provinces", principalColumns: new[] { "tenant_id", "Id" }, onDelete: ReferentialAction.Restrict); }); migrationBuilder.CreateTable( name: "province_blocks", schema: "master", columns: table => new { Id = table.Column(type: "uuid", nullable: false), tenant_id = table.Column(type: "uuid", nullable: false), created_at = table.Column(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"), created_by = table.Column(type: "text", nullable: true), updated_at = table.Column(type: "timestamp with time zone", nullable: true), updated_by = table.Column(type: "text", nullable: true), is_deleted = table.Column(type: "boolean", nullable: false, defaultValue: false), GlobalId = table.Column(type: "uuid", nullable: false) }, constraints: table => { table.PrimaryKey("PK_province_blocks", x => x.Id); table.CheckConstraint("ck_province_blocks_tenant_not_null", "tenant_id is not null"); table.CheckConstraint("ck_province_blocks_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'"); table.ForeignKey( name: "FK_province_blocks_provinces_GlobalId", column: x => x.GlobalId, principalSchema: "master", principalTable: "provinces", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "district_blocks", schema: "master", columns: table => new { Id = table.Column(type: "uuid", nullable: false), tenant_id = table.Column(type: "uuid", nullable: false), created_at = table.Column(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"), created_by = table.Column(type: "text", nullable: true), updated_at = table.Column(type: "timestamp with time zone", nullable: true), updated_by = table.Column(type: "text", nullable: true), is_deleted = table.Column(type: "boolean", nullable: false, defaultValue: false), GlobalId = table.Column(type: "uuid", nullable: false) }, constraints: table => { table.PrimaryKey("PK_district_blocks", x => x.Id); table.CheckConstraint("ck_district_blocks_tenant_not_null", "tenant_id is not null"); table.CheckConstraint("ck_district_blocks_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'"); table.ForeignKey( name: "FK_district_blocks_districts_GlobalId", column: x => x.GlobalId, principalSchema: "master", principalTable: "districts", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "subdistricts", schema: "master", columns: table => new { Id = table.Column(type: "uuid", nullable: false), Code = table.Column(type: "character varying(6)", maxLength: 6, nullable: false), Postcode = table.Column(type: "character varying(10)", maxLength: 10, nullable: true), DistrictId = table.Column(type: "uuid", nullable: false), tenant_id = table.Column(type: "uuid", nullable: false), created_at = table.Column(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"), created_by = table.Column(type: "text", nullable: true), updated_at = table.Column(type: "timestamp with time zone", nullable: true), updated_by = table.Column(type: "text", nullable: true), is_deleted = table.Column(type: "boolean", nullable: false, defaultValue: false), Scope = table.Column(type: "text", nullable: false, defaultValue: "global"), Name = table.Column(type: "text", nullable: false), NameI18n = table.Column(type: "jsonb", nullable: true), OverridesGlobalId = table.Column(type: "uuid", nullable: true), IsActive = table.Column(type: "boolean", nullable: false, defaultValue: true), IsSystem = table.Column(type: "boolean", nullable: false, defaultValue: false), Meta = table.Column(type: "jsonb", nullable: true) }, constraints: table => { table.PrimaryKey("PK_subdistricts", x => x.Id); table.UniqueConstraint("AK_subdistricts_tenant_id_Id", x => new { x.tenant_id, x.Id }); table.CheckConstraint("ck_subdistricts_tenant_not_null", "tenant_id is not null"); table.CheckConstraint("ck_subdistricts_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'"); table.ForeignKey( name: "FK_subdistricts_districts_tenant_id_DistrictId", columns: x => new { x.tenant_id, x.DistrictId }, principalSchema: "master", principalTable: "districts", principalColumns: new[] { "tenant_id", "Id" }, onDelete: ReferentialAction.Restrict); }); migrationBuilder.CreateTable( name: "subdistrict_blocks", schema: "master", columns: table => new { Id = table.Column(type: "uuid", nullable: false), tenant_id = table.Column(type: "uuid", nullable: false), created_at = table.Column(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"), created_by = table.Column(type: "text", nullable: true), updated_at = table.Column(type: "timestamp with time zone", nullable: true), updated_by = table.Column(type: "text", nullable: true), is_deleted = table.Column(type: "boolean", nullable: false, defaultValue: false), GlobalId = table.Column(type: "uuid", nullable: false) }, constraints: table => { table.PrimaryKey("PK_subdistrict_blocks", x => x.Id); table.CheckConstraint("ck_subdistrict_blocks_tenant_not_null", "tenant_id is not null"); table.CheckConstraint("ck_subdistrict_blocks_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'"); table.ForeignKey( name: "FK_subdistrict_blocks_subdistricts_GlobalId", column: x => x.GlobalId, principalSchema: "master", principalTable: "subdistricts", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( name: "IX_district_blocks_GlobalId", schema: "master", table: "district_blocks", column: "GlobalId"); migrationBuilder.CreateIndex( name: "IX_district_blocks_tenant_id", schema: "master", table: "district_blocks", column: "tenant_id"); migrationBuilder.CreateIndex( name: "IX_district_blocks_tenant_id_GlobalId", schema: "master", table: "district_blocks", columns: new[] { "tenant_id", "GlobalId" }, unique: true); migrationBuilder.CreateIndex( name: "IX_districts_Code", schema: "master", table: "districts", column: "Code"); migrationBuilder.CreateIndex( name: "IX_districts_Scope_tenant_id_Code", schema: "master", table: "districts", columns: new[] { "Scope", "tenant_id", "Code" }, unique: true); migrationBuilder.CreateIndex( name: "IX_districts_tenant_id", schema: "master", table: "districts", column: "tenant_id"); migrationBuilder.CreateIndex( name: "IX_districts_tenant_id_ProvinceId", schema: "master", table: "districts", columns: new[] { "tenant_id", "ProvinceId" }); migrationBuilder.CreateIndex( name: "IX_province_blocks_GlobalId", schema: "master", table: "province_blocks", column: "GlobalId"); migrationBuilder.CreateIndex( name: "IX_province_blocks_tenant_id", schema: "master", table: "province_blocks", column: "tenant_id"); migrationBuilder.CreateIndex( name: "IX_province_blocks_tenant_id_GlobalId", schema: "master", table: "province_blocks", columns: new[] { "tenant_id", "GlobalId" }, unique: true); migrationBuilder.CreateIndex( name: "IX_provinces_Code", schema: "master", table: "provinces", column: "Code"); migrationBuilder.CreateIndex( name: "IX_provinces_Scope_tenant_id_Code", schema: "master", table: "provinces", columns: new[] { "Scope", "tenant_id", "Code" }, unique: true); migrationBuilder.CreateIndex( name: "IX_provinces_tenant_id", schema: "master", table: "provinces", column: "tenant_id"); migrationBuilder.CreateIndex( name: "IX_subdistrict_blocks_GlobalId", schema: "master", table: "subdistrict_blocks", column: "GlobalId"); migrationBuilder.CreateIndex( name: "IX_subdistrict_blocks_tenant_id", schema: "master", table: "subdistrict_blocks", column: "tenant_id"); migrationBuilder.CreateIndex( name: "IX_subdistrict_blocks_tenant_id_GlobalId", schema: "master", table: "subdistrict_blocks", columns: new[] { "tenant_id", "GlobalId" }, unique: true); migrationBuilder.CreateIndex( name: "IX_subdistricts_Code", schema: "master", table: "subdistricts", column: "Code"); migrationBuilder.CreateIndex( name: "IX_subdistricts_Postcode", schema: "master", table: "subdistricts", column: "Postcode"); migrationBuilder.CreateIndex( name: "IX_subdistricts_Scope_tenant_id_Code", schema: "master", table: "subdistricts", columns: new[] { "Scope", "tenant_id", "Code" }, unique: true); migrationBuilder.CreateIndex( name: "IX_subdistricts_tenant_id", schema: "master", table: "subdistricts", column: "tenant_id"); migrationBuilder.CreateIndex( name: "IX_subdistricts_tenant_id_DistrictId", schema: "master", table: "subdistricts", columns: new[] { "tenant_id", "DistrictId" }); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "district_blocks", schema: "master"); migrationBuilder.DropTable( name: "province_blocks", schema: "master"); migrationBuilder.DropTable( name: "subdistrict_blocks", schema: "master"); migrationBuilder.DropTable( name: "subdistricts", schema: "master"); migrationBuilder.DropTable( name: "districts", schema: "master"); migrationBuilder.DropTable( name: "provinces", schema: "master"); } } }