diff --git a/Backend/EVABackend/EVABackend/Migrations/20190515103649_TestCreate1.Designer.cs b/Backend/EVABackend/EVABackend/Migrations/20190515103649_TestCreate1.Designer.cs deleted file mode 100644 index 5e44b06..0000000 --- a/Backend/EVABackend/EVABackend/Migrations/20190515103649_TestCreate1.Designer.cs +++ /dev/null @@ -1,85 +0,0 @@ -// -using EVABackend.Models; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -namespace EVABackend.Migrations -{ - [DbContext(typeof(EVAContext))] - [Migration("20190515103649_TestCreate1")] - partial class TestCreate1 - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "2.1.8-servicing-32085"); - - modelBuilder.Entity("EVABackend.Models.Kurs", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("Kuendigungsfrist"); - - b.Property("Laufzeit"); - - b.Property("Name") - .IsRequired(); - - b.Property("Preis"); - - b.Property("UnterrichtsTyp"); - - b.HasKey("Id"); - - b.ToTable("Kurse"); - }); - - modelBuilder.Entity("EVABackend.Models.KursSchueler", b => - { - b.Property("SchuelerId"); - - b.Property("KursId"); - - b.HasKey("SchuelerId", "KursId"); - - b.HasIndex("KursId"); - - b.ToTable("KursSchueler"); - }); - - modelBuilder.Entity("EVABackend.Models.Schueler", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("Name") - .IsRequired(); - - b.Property("Vorname") - .IsRequired(); - - b.HasKey("Id"); - - b.ToTable("Schueler"); - }); - - modelBuilder.Entity("EVABackend.Models.KursSchueler", b => - { - b.HasOne("EVABackend.Models.Kurs", "Kurs") - .WithMany("KursSchueler") - .HasForeignKey("KursId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("EVABackend.Models.Schueler", "Schueler") - .WithMany("KursSchueler") - .HasForeignKey("SchuelerId") - .OnDelete(DeleteBehavior.Cascade); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/Backend/EVABackend/EVABackend/Migrations/20190515103649_TestCreate1.cs b/Backend/EVABackend/EVABackend/Migrations/20190515103649_TestCreate1.cs deleted file mode 100644 index 2db1801..0000000 --- a/Backend/EVABackend/EVABackend/Migrations/20190515103649_TestCreate1.cs +++ /dev/null @@ -1,82 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -namespace EVABackend.Migrations -{ - public partial class TestCreate1 : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "Kurse", - columns: table => new - { - Id = table.Column(nullable: false) - .Annotation("Sqlite:Autoincrement", true), - Name = table.Column(nullable: false), - Preis = table.Column(nullable: false), - Laufzeit = table.Column(nullable: false), - Kuendigungsfrist = table.Column(nullable: false), - UnterrichtsTyp = table.Column(nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Kurse", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "Schueler", - columns: table => new - { - Id = table.Column(nullable: false) - .Annotation("Sqlite:Autoincrement", true), - Name = table.Column(nullable: false), - Vorname = table.Column(nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Schueler", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "KursSchueler", - columns: table => new - { - SchuelerId = table.Column(nullable: false), - KursId = table.Column(nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_KursSchueler", x => new { x.SchuelerId, x.KursId }); - table.ForeignKey( - name: "FK_KursSchueler_Kurse_KursId", - column: x => x.KursId, - principalTable: "Kurse", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_KursSchueler_Schueler_SchuelerId", - column: x => x.SchuelerId, - principalTable: "Schueler", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateIndex( - name: "IX_KursSchueler_KursId", - table: "KursSchueler", - column: "KursId"); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "KursSchueler"); - - migrationBuilder.DropTable( - name: "Kurse"); - - migrationBuilder.DropTable( - name: "Schueler"); - } - } -} diff --git a/Backend/EVABackend/EVABackend/Migrations/EVAContextModelSnapshot.cs b/Backend/EVABackend/EVABackend/Migrations/EVAContextModelSnapshot.cs deleted file mode 100644 index 7180a44..0000000 --- a/Backend/EVABackend/EVABackend/Migrations/EVAContextModelSnapshot.cs +++ /dev/null @@ -1,83 +0,0 @@ -// -using EVABackend.Models; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -namespace EVABackend.Migrations -{ - [DbContext(typeof(EVAContext))] - partial class EVAContextModelSnapshot : ModelSnapshot - { - protected override void BuildModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "2.1.8-servicing-32085"); - - modelBuilder.Entity("EVABackend.Models.Kurs", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("Kuendigungsfrist"); - - b.Property("Laufzeit"); - - b.Property("Name") - .IsRequired(); - - b.Property("Preis"); - - b.Property("UnterrichtsTyp"); - - b.HasKey("Id"); - - b.ToTable("Kurse"); - }); - - modelBuilder.Entity("EVABackend.Models.KursSchueler", b => - { - b.Property("SchuelerId"); - - b.Property("KursId"); - - b.HasKey("SchuelerId", "KursId"); - - b.HasIndex("KursId"); - - b.ToTable("KursSchueler"); - }); - - modelBuilder.Entity("EVABackend.Models.Schueler", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("Name") - .IsRequired(); - - b.Property("Vorname") - .IsRequired(); - - b.HasKey("Id"); - - b.ToTable("Schueler"); - }); - - modelBuilder.Entity("EVABackend.Models.KursSchueler", b => - { - b.HasOne("EVABackend.Models.Kurs", "Kurs") - .WithMany("KursSchueler") - .HasForeignKey("KursId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("EVABackend.Models.Schueler", "Schueler") - .WithMany("KursSchueler") - .HasForeignKey("SchuelerId") - .OnDelete(DeleteBehavior.Cascade); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/Backend/EVABackend/EVABackend/Models/EVAContext.cs b/Backend/EVABackend/EVABackend/Models/EVAContext.cs index 793afd8..b559dbd 100644 --- a/Backend/EVABackend/EVABackend/Models/EVAContext.cs +++ b/Backend/EVABackend/EVABackend/Models/EVAContext.cs @@ -1,4 +1,5 @@ using Microsoft.EntityFrameworkCore; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; @@ -8,12 +9,17 @@ namespace EVABackend.Models public class EVAContext : DbContext { public DbSet Schueler { get; set; } + public DbSet Donzenten { get; set; } public DbSet Kurse { get; set; } public DbSet KursSchueler { get; set; } + public DbSet Unterrichte { get; set; } + public DbSet Instrumente { get; set; } + public DbSet Raeume { get; set; } + public DbSet Antraege { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { - optionsBuilder.UseSqlite("Data Source=eva.db"); + optionsBuilder.UseSqlite("Data Source=eva_ls.db"); } protected override void OnModelCreating(ModelBuilder modelBuilder) @@ -33,7 +39,7 @@ namespace EVABackend.Models } } - public class Schueler + public abstract class Person { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] @@ -42,9 +48,38 @@ namespace EVABackend.Models public string Name { get; set; } [Required] public string Vorname { get; set; } + public DateTime Geburtsdatum { get; set; } + [Required] + public string Geburtsort { get; set; } + public int PLZ { get; set; } + [Required] + public string Ort { get; set; } + [Required] + public string Strasse { get; set; } + [Required] + public string Telefon { get; set; } + [Required] + public string EMail { get; set; } + [Required] + public string Bankname { get; set; } + [Required] + public string BLZ { get; set; } + [Required] + public string KontoNr { get; set; } public virtual ICollection KursSchueler { get; set; } } + public class Schueler : Person + { + public bool IstErmaessigt { get; set; } + } + + public class Dozent : Person + { + public decimal Stundensatz { get; set; } + public virtual ICollection Instrumente { get; set; } + } + public class Kurs { [Key] @@ -52,10 +87,12 @@ namespace EVABackend.Models public int Id { get; set; } [Required] public string Name { get; set; } - public decimal Preis { get; set; } public int Laufzeit { get; set; } public int Kuendigungsfrist { get; set; } + public bool Bestaetigt { get; set; } public UnterrichtTyp UnterrichtsTyp { get; set; } + public virtual ICollection Instrumente { get; set; } + public virtual ICollection Unterrichte { get; set; } public virtual ICollection KursSchueler { get; set; } } @@ -67,8 +104,50 @@ namespace EVABackend.Models public virtual Kurs Kurs { get; set; } } + public class Unterricht + { + [Key] + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int Id { get; set; } + public DateTime Startzeit { get; set; } + public string Notiz { get; set; } + public Raum Raum { get; set; } + } + + public class Raum + { + [Key] + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int Id { get; set; } + [Required] + public string Name { get; set; } + public bool Belegt { get; set; } + public virtual ICollection Instrumente { get; set; } + } + + public class Antrag + { + [Key] + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int Id { get; set; } + public Schueler Schueler { get; set; } + public UnterrichtTyp UnterrichtTyp { get; set; } + public virtual ICollection Instrumente { get; set; } + } + public enum UnterrichtTyp { - Einzel, Gruppe + Einzel, Gruppe, MusikalischFrueherziehung + } + + public class Instrument + { + public int Id { get; set; } + public InstrumentTyp InstrumentTyp { get; set; } + } + + public enum InstrumentTyp + { + Klavier, Schlagzeug, Geige, Gitarre, Band } } diff --git a/Backend/EVABackend/EVABackend/eva.db b/Backend/EVABackend/EVABackend/eva.db deleted file mode 100644 index 3cfb609..0000000 Binary files a/Backend/EVABackend/EVABackend/eva.db and /dev/null differ