cf439c5006
continuous-integration/drone/pr Build is passing
Resolved mediator source geenrator conflict with tests
472 lines
25 KiB
C#
472 lines
25 KiB
C#
using System;
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
|
|
|
#nullable disable
|
|
|
|
namespace LiteCharms.Features.MidrandBooks.Postgres.Migrations
|
|
{
|
|
/// <inheritdoc />
|
|
public sealed partial class Init : Migration
|
|
{
|
|
/// <inheritdoc />
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.CreateTable(
|
|
name: "Authors",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<long>(type: "bigint", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
CreatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now()"),
|
|
UpdatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: true, defaultValueSql: "now()"),
|
|
PublisherType = table.Column<int>(type: "integer", nullable: false),
|
|
Company = table.Column<string>(type: "text", nullable: true),
|
|
VatNumber = table.Column<string>(type: "character varying(255)", maxLength: 255, nullable: true),
|
|
Name = table.Column<string>(type: "character varying(255)", maxLength: 255, nullable: false),
|
|
LastName = table.Column<string>(type: "character varying(255)", maxLength: 255, nullable: false),
|
|
Biography = table.Column<string>(type: "character varying(2048)", maxLength: 2048, nullable: true),
|
|
Email = table.Column<string>(type: "character varying(512)", maxLength: 512, nullable: false),
|
|
Website = table.Column<string>(type: "character varying(1024)", maxLength: 1024, nullable: true),
|
|
ImageUrl = table.Column<string>(type: "character varying(2048)", maxLength: 2048, nullable: false),
|
|
ThumbnailImageUrl = table.Column<string>(type: "character varying(2048)", maxLength: 2048, nullable: true),
|
|
Enabled = table.Column<bool>(type: "boolean", nullable: false, defaultValue: true),
|
|
SocialMedia = table.Column<string>(type: "jsonb", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Authors", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Customers",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<long>(type: "bigint", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
CreatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now()"),
|
|
UpdatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: true, defaultValueSql: "now()"),
|
|
Company = table.Column<string>(type: "text", nullable: true),
|
|
VatNumber = table.Column<string>(type: "text", nullable: true),
|
|
Email = table.Column<string>(type: "text", nullable: false),
|
|
Website = table.Column<string>(type: "text", nullable: false),
|
|
Phone = table.Column<string>(type: "text", nullable: false),
|
|
Enabled = table.Column<bool>(type: "boolean", nullable: false, defaultValue: true),
|
|
SocialMedia = table.Column<string>(type: "jsonb", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Customers", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Orders",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<long>(type: "bigint", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
CreatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now()"),
|
|
UpdatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: true, defaultValueSql: "now()"),
|
|
CustomerId = table.Column<long>(type: "bigint", nullable: false),
|
|
Status = table.Column<int>(type: "integer", nullable: false),
|
|
Total = table.Column<decimal>(type: "numeric(18,2)", precision: 18, scale: 2, nullable: false),
|
|
Notes = table.Column<string>(type: "character varying(1000)", maxLength: 1000, nullable: true),
|
|
InvoiceUrl = table.Column<string>(type: "text", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Orders", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Products",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<long>(type: "bigint", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
CreatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now()"),
|
|
UpdatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: true, defaultValueSql: "now()"),
|
|
Type = table.Column<int>(type: "integer", nullable: false),
|
|
Name = table.Column<string>(type: "character varying(255)", maxLength: 255, nullable: false),
|
|
Summary = table.Column<string>(type: "character varying(512)", maxLength: 512, nullable: false),
|
|
Description = table.Column<string>(type: "character varying(1024)", maxLength: 1024, nullable: true),
|
|
ImageUrl = table.Column<string>(type: "character varying(1024)", maxLength: 1024, nullable: true),
|
|
ThumbnailUrls = table.Column<string[]>(type: "text[]", nullable: true),
|
|
Categories = table.Column<string[]>(type: "text[]", nullable: true),
|
|
Enabled = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false),
|
|
Metadata = table.Column<string>(type: "jsonb", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Products", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "ShippingProviders",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<long>(type: "bigint", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
CreatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
UpdatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
Type = table.Column<int>(type: "integer", nullable: false),
|
|
Name = table.Column<string>(type: "text", nullable: true),
|
|
Price = table.Column<decimal>(type: "numeric", nullable: true),
|
|
TrackingUrl = table.Column<string>(type: "text", nullable: true),
|
|
Enabled = table.Column<bool>(type: "boolean", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_ShippingProviders", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Addresses",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<long>(type: "bigint", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
CustomerId = table.Column<long>(type: "bigint", nullable: false),
|
|
Name = table.Column<string>(type: "text", nullable: false),
|
|
CreatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now()"),
|
|
UpdatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: true, defaultValueSql: "now()"),
|
|
Type = table.Column<int>(type: "integer", nullable: false),
|
|
BuildingType = table.Column<int>(type: "integer", nullable: false),
|
|
Street = table.Column<string>(type: "text", nullable: false),
|
|
City = table.Column<string>(type: "text", nullable: false),
|
|
State = table.Column<string>(type: "text", nullable: false),
|
|
PostalCode = table.Column<string>(type: "text", nullable: false),
|
|
Country = table.Column<string>(type: "text", nullable: false),
|
|
IsPrimary = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false),
|
|
Enabled = table.Column<bool>(type: "boolean", nullable: false, defaultValue: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Addresses", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Addresses_Customers_CustomerId",
|
|
column: x => x.CustomerId,
|
|
principalTable: "Customers",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Contacts",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<long>(type: "bigint", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
CustomerId = table.Column<long>(type: "bigint", nullable: false),
|
|
CreatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now()"),
|
|
UpdatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: true, defaultValueSql: "now()"),
|
|
Type = table.Column<int>(type: "integer", nullable: false),
|
|
Name = table.Column<string>(type: "text", nullable: false),
|
|
LastName = table.Column<string>(type: "text", nullable: false),
|
|
Email = table.Column<string>(type: "text", nullable: false),
|
|
Phone = table.Column<string>(type: "text", nullable: false),
|
|
IsPrimary = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false),
|
|
Enabled = table.Column<bool>(type: "boolean", nullable: false, defaultValue: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Contacts", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Contacts_Customers_CustomerId",
|
|
column: x => x.CustomerId,
|
|
principalTable: "Customers",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Refunds",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<long>(type: "bigint", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
CreatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now()"),
|
|
UpdatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: true, defaultValueSql: "now()"),
|
|
OrderId = table.Column<long>(type: "bigint", nullable: false),
|
|
Type = table.Column<int>(type: "integer", nullable: false),
|
|
Status = table.Column<int>(type: "integer", nullable: false),
|
|
Reason = table.Column<string>(type: "character varying(1000)", maxLength: 1000, nullable: true),
|
|
Amount = table.Column<decimal>(type: "numeric(18,2)", precision: 18, scale: 2, nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Refunds", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Refunds_Orders_OrderId",
|
|
column: x => x.OrderId,
|
|
principalTable: "Orders",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Restrict);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Books",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<long>(type: "bigint", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
CreatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
UpdatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
AuthorId = table.Column<long>(type: "bigint", nullable: false),
|
|
ProductId = table.Column<long>(type: "bigint", nullable: false),
|
|
Rating = table.Column<int>(type: "integer", nullable: false),
|
|
Ranking = table.Column<int>(type: "integer", nullable: false),
|
|
Enabled = table.Column<bool>(type: "boolean", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Books", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Books_Authors_AuthorId",
|
|
column: x => x.AuthorId,
|
|
principalTable: "Authors",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_Books_Products_ProductId",
|
|
column: x => x.ProductId,
|
|
principalTable: "Products",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Prices",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<long>(type: "bigint", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
CreatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now()"),
|
|
UpdatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: true, defaultValueSql: "now()"),
|
|
ProductId = table.Column<long>(type: "bigint", nullable: false),
|
|
Amount = table.Column<decimal>(type: "numeric(18,2)", precision: 18, scale: 2, nullable: false),
|
|
Discount = table.Column<decimal>(type: "numeric(18,2)", precision: 18, scale: 2, nullable: false),
|
|
Enabled = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Prices", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Prices_Products_ProductId",
|
|
column: x => x.ProductId,
|
|
principalTable: "Products",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Restrict);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Shippings",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<long>(type: "bigint", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
CreatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now()"),
|
|
UpdatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: true, defaultValueSql: "now()"),
|
|
OrderId = table.Column<long>(type: "bigint", nullable: false),
|
|
AddressId = table.Column<long>(type: "bigint", nullable: false),
|
|
ShippingProviderId = table.Column<long>(type: "bigint", nullable: false),
|
|
TrackingNumber = table.Column<string>(type: "character varying(255)", maxLength: 255, nullable: true),
|
|
Status = table.Column<int>(type: "integer", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Shippings", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Shippings_Addresses_AddressId",
|
|
column: x => x.AddressId,
|
|
principalTable: "Addresses",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Restrict);
|
|
table.ForeignKey(
|
|
name: "FK_Shippings_Orders_OrderId",
|
|
column: x => x.OrderId,
|
|
principalTable: "Orders",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Restrict);
|
|
table.ForeignKey(
|
|
name: "FK_Shippings_ShippingProviders_ShippingProviderId",
|
|
column: x => x.ShippingProviderId,
|
|
principalTable: "ShippingProviders",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Restrict);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "BookPages",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<long>(type: "bigint", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
AuthorBookId = table.Column<long>(type: "bigint", nullable: false),
|
|
CreatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now()"),
|
|
UpdatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: true, defaultValueSql: "now()"),
|
|
Type = table.Column<int>(type: "integer", nullable: false),
|
|
ContentType = table.Column<int>(type: "integer", nullable: false),
|
|
Number = table.Column<int>(type: "integer", nullable: false, defaultValue: 0),
|
|
Content = table.Column<byte[]>(type: "bytea", nullable: false),
|
|
Notes = table.Column<string[]>(type: "text[]", nullable: true),
|
|
Enabled = table.Column<bool>(type: "boolean", nullable: false, defaultValue: true),
|
|
References = table.Column<string>(type: "jsonb", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_BookPages", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_BookPages_Books_AuthorBookId",
|
|
column: x => x.AuthorBookId,
|
|
principalTable: "Books",
|
|
principalColumn: "Id");
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "OrderItems",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<long>(type: "bigint", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
CreatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now()"),
|
|
OrderId = table.Column<long>(type: "bigint", nullable: false),
|
|
AuthorBookId = table.Column<long>(type: "bigint", nullable: false),
|
|
ProductPriceId = table.Column<long>(type: "bigint", nullable: false),
|
|
Quantity = table.Column<int>(type: "integer", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_OrderItems", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_OrderItems_Books_AuthorBookId",
|
|
column: x => x.AuthorBookId,
|
|
principalTable: "Books",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Restrict);
|
|
table.ForeignKey(
|
|
name: "FK_OrderItems_Orders_OrderId",
|
|
column: x => x.OrderId,
|
|
principalTable: "Orders",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_OrderItems_Prices_ProductPriceId",
|
|
column: x => x.ProductPriceId,
|
|
principalTable: "Prices",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Restrict);
|
|
});
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Addresses_CustomerId",
|
|
table: "Addresses",
|
|
column: "CustomerId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_BookPages_AuthorBookId",
|
|
table: "BookPages",
|
|
column: "AuthorBookId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Books_AuthorId",
|
|
table: "Books",
|
|
column: "AuthorId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Books_ProductId",
|
|
table: "Books",
|
|
column: "ProductId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Contacts_CustomerId",
|
|
table: "Contacts",
|
|
column: "CustomerId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_OrderItems_AuthorBookId",
|
|
table: "OrderItems",
|
|
column: "AuthorBookId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_OrderItems_OrderId",
|
|
table: "OrderItems",
|
|
column: "OrderId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_OrderItems_ProductPriceId",
|
|
table: "OrderItems",
|
|
column: "ProductPriceId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Prices_ProductId",
|
|
table: "Prices",
|
|
column: "ProductId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Refunds_OrderId",
|
|
table: "Refunds",
|
|
column: "OrderId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Shippings_AddressId",
|
|
table: "Shippings",
|
|
column: "AddressId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Shippings_OrderId",
|
|
table: "Shippings",
|
|
column: "OrderId",
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Shippings_ShippingProviderId",
|
|
table: "Shippings",
|
|
column: "ShippingProviderId");
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.DropTable(
|
|
name: "BookPages");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Contacts");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "OrderItems");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Refunds");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Shippings");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Books");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Prices");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Addresses");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Orders");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "ShippingProviders");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Authors");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Products");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Customers");
|
|
}
|
|
}
|
|
}
|