using System; using Microsoft.EntityFrameworkCore.Migrations; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable namespace VeterinaryDatabaseImplement.Migrations { /// public partial class InitialCreate10 : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "Doctors", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), DoctorFIO = table.Column(type: "text", nullable: false), Login = table.Column(type: "text", nullable: false), Password = table.Column(type: "text", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Doctors", x => x.Id); }); migrationBuilder.CreateTable( name: "Owners", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), OwnerFIO = table.Column(type: "text", nullable: false), Login = table.Column(type: "text", nullable: false), Password = table.Column(type: "text", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Owners", x => x.Id); }); migrationBuilder.CreateTable( name: "Drugs", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), DrugName = table.Column(type: "text", nullable: false), Price = table.Column(type: "double precision", nullable: false), Count = table.Column(type: "integer", nullable: false), DoctorId = table.Column(type: "integer", nullable: false), DateCreate = table.Column(type: "timestamp without time zone", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Drugs", x => x.Id); table.ForeignKey( name: "FK_Drugs_Doctors_DoctorId", column: x => x.DoctorId, principalTable: "Doctors", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "Medications", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), MedicationName = table.Column(type: "text", nullable: false), Price = table.Column(type: "double precision", nullable: false), DoctorId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Medications", x => x.Id); table.ForeignKey( name: "FK_Medications_Doctors_DoctorId", column: x => x.DoctorId, principalTable: "Doctors", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "Visits", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), OwnerId = table.Column(type: "integer", nullable: false), DoctorId = table.Column(type: "integer", nullable: false), VisitName = table.Column(type: "text", nullable: false), DateVisit = table.Column(type: "timestamp without time zone", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Visits", x => x.Id); table.ForeignKey( name: "FK_Visits_Doctors_DoctorId", column: x => x.DoctorId, principalTable: "Doctors", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Visits_Owners_OwnerId", column: x => x.OwnerId, principalTable: "Owners", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "Purchases", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), OwnerId = table.Column(type: "integer", nullable: false), PuchaseName = table.Column(type: "text", nullable: false), DrugId = table.Column(type: "integer", nullable: false), Count = table.Column(type: "integer", nullable: false), Sum = table.Column(type: "double precision", nullable: false), DateCreate = table.Column(type: "timestamp without time zone", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Purchases", x => x.Id); table.ForeignKey( name: "FK_Purchases_Drugs_DrugId", column: x => x.DrugId, principalTable: "Drugs", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Purchases_Owners_OwnerId", column: x => x.OwnerId, principalTable: "Owners", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "DrugMedications", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), DrugId = table.Column(type: "integer", nullable: false), MedicationId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_DrugMedications", x => x.Id); table.ForeignKey( name: "FK_DrugMedications_Drugs_DrugId", column: x => x.DrugId, principalTable: "Drugs", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_DrugMedications_Medications_MedicationId", column: x => x.MedicationId, principalTable: "Medications", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "Pets", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), OwnerId = table.Column(type: "integer", nullable: false), PetName = table.Column(type: "text", nullable: false), PetType = table.Column(type: "text", nullable: false), PetBreed = table.Column(type: "text", nullable: false), PetGender = table.Column(type: "text", nullable: false), MedicationId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Pets", x => x.Id); table.ForeignKey( name: "FK_Pets_Medications_MedicationId", column: x => x.MedicationId, principalTable: "Medications", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Pets_Owners_OwnerId", column: x => x.OwnerId, principalTable: "Owners", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "Services", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), ServiceName = table.Column(type: "text", nullable: false), DoctorId = table.Column(type: "integer", nullable: false), VisitId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Services", x => x.Id); table.ForeignKey( name: "FK_Services_Doctors_DoctorId", column: x => x.DoctorId, principalTable: "Doctors", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Services_Visits_VisitId", column: x => x.VisitId, principalTable: "Visits", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "PurchasePets", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), PurchaseId = table.Column(type: "integer", nullable: false), PetId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_PurchasePets", x => x.Id); table.ForeignKey( name: "FK_PurchasePets_Pets_PetId", column: x => x.PetId, principalTable: "Pets", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_PurchasePets_Purchases_PurchaseId", column: x => x.PurchaseId, principalTable: "Purchases", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "VisitPets", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), VisitId = table.Column(type: "integer", nullable: false), PetId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_VisitPets", x => x.Id); table.ForeignKey( name: "FK_VisitPets_Pets_PetId", column: x => x.PetId, principalTable: "Pets", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_VisitPets_Visits_VisitId", column: x => x.VisitId, principalTable: "Visits", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "DrugServices", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), DrugId = table.Column(type: "integer", nullable: false), ServiceId = table.Column(type: "integer", nullable: false), MedicationId = table.Column(type: "integer", nullable: true) }, constraints: table => { table.PrimaryKey("PK_DrugServices", x => x.Id); table.ForeignKey( name: "FK_DrugServices_Drugs_DrugId", column: x => x.DrugId, principalTable: "Drugs", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_DrugServices_Medications_MedicationId", column: x => x.MedicationId, principalTable: "Medications", principalColumn: "Id"); table.ForeignKey( name: "FK_DrugServices_Services_ServiceId", column: x => x.ServiceId, principalTable: "Services", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "ServiceMedications", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), ServiceId = table.Column(type: "integer", nullable: false), MedicationId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ServiceMedications", x => x.Id); table.ForeignKey( name: "FK_ServiceMedications_Medications_MedicationId", column: x => x.MedicationId, principalTable: "Medications", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_ServiceMedications_Services_ServiceId", column: x => x.ServiceId, principalTable: "Services", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( name: "IX_DrugMedications_DrugId", table: "DrugMedications", column: "DrugId"); migrationBuilder.CreateIndex( name: "IX_DrugMedications_MedicationId", table: "DrugMedications", column: "MedicationId"); migrationBuilder.CreateIndex( name: "IX_Drugs_DoctorId", table: "Drugs", column: "DoctorId"); migrationBuilder.CreateIndex( name: "IX_DrugServices_DrugId", table: "DrugServices", column: "DrugId"); migrationBuilder.CreateIndex( name: "IX_DrugServices_MedicationId", table: "DrugServices", column: "MedicationId"); migrationBuilder.CreateIndex( name: "IX_DrugServices_ServiceId", table: "DrugServices", column: "ServiceId"); migrationBuilder.CreateIndex( name: "IX_Medications_DoctorId", table: "Medications", column: "DoctorId"); migrationBuilder.CreateIndex( name: "IX_Pets_MedicationId", table: "Pets", column: "MedicationId"); migrationBuilder.CreateIndex( name: "IX_Pets_OwnerId", table: "Pets", column: "OwnerId"); migrationBuilder.CreateIndex( name: "IX_PurchasePets_PetId", table: "PurchasePets", column: "PetId"); migrationBuilder.CreateIndex( name: "IX_PurchasePets_PurchaseId", table: "PurchasePets", column: "PurchaseId"); migrationBuilder.CreateIndex( name: "IX_Purchases_DrugId", table: "Purchases", column: "DrugId"); migrationBuilder.CreateIndex( name: "IX_Purchases_OwnerId", table: "Purchases", column: "OwnerId"); migrationBuilder.CreateIndex( name: "IX_ServiceMedications_MedicationId", table: "ServiceMedications", column: "MedicationId"); migrationBuilder.CreateIndex( name: "IX_ServiceMedications_ServiceId", table: "ServiceMedications", column: "ServiceId"); migrationBuilder.CreateIndex( name: "IX_Services_DoctorId", table: "Services", column: "DoctorId"); migrationBuilder.CreateIndex( name: "IX_Services_VisitId", table: "Services", column: "VisitId"); migrationBuilder.CreateIndex( name: "IX_VisitPets_PetId", table: "VisitPets", column: "PetId"); migrationBuilder.CreateIndex( name: "IX_VisitPets_VisitId", table: "VisitPets", column: "VisitId"); migrationBuilder.CreateIndex( name: "IX_Visits_DoctorId", table: "Visits", column: "DoctorId"); migrationBuilder.CreateIndex( name: "IX_Visits_OwnerId", table: "Visits", column: "OwnerId"); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "DrugMedications"); migrationBuilder.DropTable( name: "DrugServices"); migrationBuilder.DropTable( name: "PurchasePets"); migrationBuilder.DropTable( name: "ServiceMedications"); migrationBuilder.DropTable( name: "VisitPets"); migrationBuilder.DropTable( name: "Purchases"); migrationBuilder.DropTable( name: "Services"); migrationBuilder.DropTable( name: "Pets"); migrationBuilder.DropTable( name: "Drugs"); migrationBuilder.DropTable( name: "Visits"); migrationBuilder.DropTable( name: "Medications"); migrationBuilder.DropTable( name: "Owners"); migrationBuilder.DropTable( name: "Doctors"); } } }