using System;
using Microsoft.EntityFrameworkCore.Migrations;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace Demo2.Migrations
{
///
public partial class InitialCreate2 : Migration
{
///
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.EnsureSchema(
name: "task16-09");
migrationBuilder.CreateTable(
name: "gender",
schema: "task16-09",
columns: table => new
{
code = table.Column(type: "character(1)", maxLength: 1, nullable: false),
name = table.Column(type: "character varying(10)", maxLength: 10, nullable: true)
},
constraints: table =>
{
table.PrimaryKey("gender_pkey", x => x.code);
});
migrationBuilder.CreateTable(
name: "manufacturer",
schema: "task16-09",
columns: table => new
{
id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
name = table.Column(type: "character varying(100)", maxLength: 100, nullable: false),
startdate = table.Column(type: "date", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("manufacturer_pkey", x => x.id);
});
migrationBuilder.CreateTable(
name: "service",
schema: "task16-09",
columns: table => new
{
id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
title = table.Column(type: "character varying(100)", maxLength: 100, nullable: false),
cost = table.Column(type: "numeric(19,4)", precision: 19, scale: 4, nullable: false),
durationinseconds = table.Column(type: "integer", nullable: false),
description = table.Column(type: "text", nullable: true),
discount = table.Column(type: "double precision", nullable: true),
mainimagepath = table.Column(type: "character varying(1000)", maxLength: 1000, nullable: true)
},
constraints: table =>
{
table.PrimaryKey("service_pkey", x => x.id);
});
migrationBuilder.CreateTable(
name: "tag",
schema: "task16-09",
columns: table => new
{
id = table.Column(type: "integer", nullable: false),
title = table.Column(type: "character varying(30)", maxLength: 30, nullable: false),
color = table.Column(type: "character(8)", fixedLength: true, maxLength: 8, nullable: false)
},
constraints: table =>
{
table.PrimaryKey("tag_pkey", x => x.id);
});
migrationBuilder.CreateTable(
name: "client",
schema: "task16-09",
columns: table => new
{
id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
firstname = table.Column(type: "character varying(50)", maxLength: 50, nullable: false),
lastname = table.Column(type: "character varying(50)", maxLength: 50, nullable: false),
patronymic = table.Column(type: "character varying(50)", maxLength: 50, nullable: true),
birthday = table.Column(type: "date", nullable: true),
registrationdate = table.Column(type: "timestamp(6) without time zone", nullable: false),
email = table.Column(type: "character varying(255)", maxLength: 255, nullable: true),
phone = table.Column(type: "character varying(20)", maxLength: 20, nullable: false),
gendercode = table.Column(type: "character(1)", maxLength: 1, nullable: false),
photopath = table.Column(type: "character varying(1000)", maxLength: 1000, nullable: true)
},
constraints: table =>
{
table.PrimaryKey("client_pkey", x => x.id);
table.ForeignKey(
name: "fk_client_gender",
column: x => x.gendercode,
principalSchema: "task16-09",
principalTable: "gender",
principalColumn: "code");
});
migrationBuilder.CreateTable(
name: "product",
schema: "task16-09",
columns: table => new
{
id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
title = table.Column(type: "character varying(100)", maxLength: 100, nullable: false),
cost = table.Column(type: "numeric(19,4)", precision: 19, scale: 4, nullable: false),
description = table.Column(type: "text", nullable: true),
mainimagepath = table.Column(type: "character varying(1000)", maxLength: 1000, nullable: true),
isactive = table.Column(type: "integer", nullable: false),
manufacturerid = table.Column(type: "integer", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("product_pkey", x => x.id);
table.ForeignKey(
name: "fk_product_manufacturer",
column: x => x.manufacturerid,
principalSchema: "task16-09",
principalTable: "manufacturer",
principalColumn: "id");
});
migrationBuilder.CreateTable(
name: "servicephoto",
schema: "task16-09",
columns: table => new
{
id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
serviceid = table.Column(type: "integer", nullable: false),
photopath = table.Column(type: "character varying(1000)", maxLength: 1000, nullable: false)
},
constraints: table =>
{
table.PrimaryKey("servicephoto_pkey", x => x.id);
table.ForeignKey(
name: "fk_servicephoto_service",
column: x => x.serviceid,
principalSchema: "task16-09",
principalTable: "service",
principalColumn: "id");
});
migrationBuilder.CreateTable(
name: "clientservice",
schema: "task16-09",
columns: table => new
{
id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
clientid = table.Column(type: "integer", nullable: false),
serviceid = table.Column(type: "integer", nullable: false),
starttime = table.Column(type: "timestamp(6) without time zone", nullable: false),
comment = table.Column(type: "text", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("clientservice_pkey", x => x.id);
table.ForeignKey(
name: "fk_clientservice_client",
column: x => x.clientid,
principalSchema: "task16-09",
principalTable: "client",
principalColumn: "id");
table.ForeignKey(
name: "fk_clientservice_service",
column: x => x.serviceid,
principalSchema: "task16-09",
principalTable: "service",
principalColumn: "id");
});
migrationBuilder.CreateTable(
name: "tagofclient",
schema: "task16-09",
columns: table => new
{
clientid = table.Column(type: "integer", nullable: false),
tagid = table.Column(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("tagofclient_pkey", x => new { x.clientid, x.tagid });
table.ForeignKey(
name: "fk_tagofclient_client",
column: x => x.clientid,
principalSchema: "task16-09",
principalTable: "client",
principalColumn: "id");
table.ForeignKey(
name: "tagofclient_tag_fk",
column: x => x.tagid,
principalSchema: "task16-09",
principalTable: "tag",
principalColumn: "id");
});
migrationBuilder.CreateTable(
name: "attachedproduct",
schema: "task16-09",
columns: table => new
{
mainproductid = table.Column(type: "integer", nullable: false),
attachedproductid = table.Column(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("attachedproduct_pkey", x => new { x.mainproductid, x.attachedproductid });
table.ForeignKey(
name: "fk_attachedproduct_product",
column: x => x.mainproductid,
principalSchema: "task16-09",
principalTable: "product",
principalColumn: "id");
table.ForeignKey(
name: "fk_attachedproduct_product1",
column: x => x.attachedproductid,
principalSchema: "task16-09",
principalTable: "product",
principalColumn: "id");
});
migrationBuilder.CreateTable(
name: "productphoto",
schema: "task16-09",
columns: table => new
{
id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
productid = table.Column(type: "integer", nullable: false),
photopath = table.Column(type: "character varying(1000)", maxLength: 1000, nullable: false)
},
constraints: table =>
{
table.PrimaryKey("productphoto_pkey", x => x.id);
table.ForeignKey(
name: "fk_productphoto_product",
column: x => x.productid,
principalSchema: "task16-09",
principalTable: "product",
principalColumn: "id");
});
migrationBuilder.CreateTable(
name: "documentbyservice",
schema: "task16-09",
columns: table => new
{
id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
clientserviceid = table.Column(type: "integer", nullable: false),
documentpath = table.Column(type: "character varying(1000)", maxLength: 1000, nullable: false)
},
constraints: table =>
{
table.PrimaryKey("documentbyservice_pkey", x => x.id);
table.ForeignKey(
name: "fk_documentbyservice_clientservice",
column: x => x.clientserviceid,
principalSchema: "task16-09",
principalTable: "clientservice",
principalColumn: "id");
});
migrationBuilder.CreateTable(
name: "productsale",
schema: "task16-09",
columns: table => new
{
id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
saledate = table.Column(type: "timestamp(6) without time zone", nullable: false),
productid = table.Column(type: "integer", nullable: false),
quantity = table.Column(type: "integer", nullable: false),
clientserviceid = table.Column(type: "integer", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("productsale_pkey", x => x.id);
table.ForeignKey(
name: "fk_productsale_clientservice",
column: x => x.clientserviceid,
principalSchema: "task16-09",
principalTable: "clientservice",
principalColumn: "id");
table.ForeignKey(
name: "fk_productsale_product",
column: x => x.productid,
principalSchema: "task16-09",
principalTable: "product",
principalColumn: "id");
});
migrationBuilder.CreateIndex(
name: "IX_attachedproduct_attachedproductid",
schema: "task16-09",
table: "attachedproduct",
column: "attachedproductid");
migrationBuilder.CreateIndex(
name: "IX_client_gendercode",
schema: "task16-09",
table: "client",
column: "gendercode");
migrationBuilder.CreateIndex(
name: "IX_clientservice_clientid",
schema: "task16-09",
table: "clientservice",
column: "clientid");
migrationBuilder.CreateIndex(
name: "IX_clientservice_serviceid",
schema: "task16-09",
table: "clientservice",
column: "serviceid");
migrationBuilder.CreateIndex(
name: "IX_documentbyservice_clientserviceid",
schema: "task16-09",
table: "documentbyservice",
column: "clientserviceid");
migrationBuilder.CreateIndex(
name: "IX_product_manufacturerid",
schema: "task16-09",
table: "product",
column: "manufacturerid");
migrationBuilder.CreateIndex(
name: "IX_productphoto_productid",
schema: "task16-09",
table: "productphoto",
column: "productid");
migrationBuilder.CreateIndex(
name: "IX_productsale_clientserviceid",
schema: "task16-09",
table: "productsale",
column: "clientserviceid");
migrationBuilder.CreateIndex(
name: "IX_productsale_productid",
schema: "task16-09",
table: "productsale",
column: "productid");
migrationBuilder.CreateIndex(
name: "IX_servicephoto_serviceid",
schema: "task16-09",
table: "servicephoto",
column: "serviceid");
migrationBuilder.CreateIndex(
name: "IX_tagofclient_tagid",
schema: "task16-09",
table: "tagofclient",
column: "tagid");
}
///
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "attachedproduct",
schema: "task16-09");
migrationBuilder.DropTable(
name: "documentbyservice",
schema: "task16-09");
migrationBuilder.DropTable(
name: "productphoto",
schema: "task16-09");
migrationBuilder.DropTable(
name: "productsale",
schema: "task16-09");
migrationBuilder.DropTable(
name: "servicephoto",
schema: "task16-09");
migrationBuilder.DropTable(
name: "tagofclient",
schema: "task16-09");
migrationBuilder.DropTable(
name: "clientservice",
schema: "task16-09");
migrationBuilder.DropTable(
name: "product",
schema: "task16-09");
migrationBuilder.DropTable(
name: "tag",
schema: "task16-09");
migrationBuilder.DropTable(
name: "client",
schema: "task16-09");
migrationBuilder.DropTable(
name: "service",
schema: "task16-09");
migrationBuilder.DropTable(
name: "manufacturer",
schema: "task16-09");
migrationBuilder.DropTable(
name: "gender",
schema: "task16-09");
}
}
}