From d2e5a694298303ffc414af9a2293bb0af348ddc7 Mon Sep 17 00:00:00 2001 From: ZMiguel Alves Date: Sat, 9 Mar 2019 18:47:20 +0000 Subject: [PATCH] Fixed DB --- api/Controllers/TeamsController.cs | 2 +- .../20190309183026_TeamsV2.Designer.cs | 450 ++++++++++++++++ api/Migrations/20190309183026_TeamsV2.cs | 496 ++++++++++++++++++ api/Migrations/DataContextModelSnapshot.cs | 448 ++++++++++++++++ api/Models/Team.cs | 3 + api/Models/User.cs | 3 + 6 files changed, 1401 insertions(+), 1 deletion(-) create mode 100644 api/Migrations/20190309183026_TeamsV2.Designer.cs create mode 100644 api/Migrations/20190309183026_TeamsV2.cs create mode 100644 api/Migrations/DataContextModelSnapshot.cs diff --git a/api/Controllers/TeamsController.cs b/api/Controllers/TeamsController.cs index 408d99cd..a7274ace 100644 --- a/api/Controllers/TeamsController.cs +++ b/api/Controllers/TeamsController.cs @@ -67,7 +67,7 @@ namespace api.Controllers { User tCap = await context.Users.FirstOrDefaultAsync(u=>u.QRcode == TeamAddDetails.capQR); - + if(tCap.team == null){ Team tAdd = new Team{EventId = TeamAddDetails.EventId, Nome = TeamAddDetails.Nome, Cap = tCap, NMembros = 1, Pontos = 0}; diff --git a/api/Migrations/20190309183026_TeamsV2.Designer.cs b/api/Migrations/20190309183026_TeamsV2.Designer.cs new file mode 100644 index 00000000..68ef50d4 --- /dev/null +++ b/api/Migrations/20190309183026_TeamsV2.Designer.cs @@ -0,0 +1,450 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using api.Data; + +namespace api.Migrations +{ + [DbContext(typeof(DataContext))] + [Migration("20190309183026_TeamsV2")] + partial class TeamsV2 + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "2.2.0-rtm-35687") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("RoleId"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("UserId"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.Property("LoginProvider"); + + b.Property("ProviderKey"); + + b.Property("ProviderDisplayName"); + + b.Property("UserId"); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.Property("UserId"); + + b.Property("LoginProvider"); + + b.Property("Name"); + + b.Property("Value"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens"); + }); + + modelBuilder.Entity("api.Models.Event", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Desc"); + + b.Property("Nome"); + + b.HasKey("Id"); + + b.ToTable("Events"); + }); + + modelBuilder.Entity("api.Models.EventLoc", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Desc"); + + b.Property("EventId"); + + b.Property("ImgId"); + + b.Property("Lat"); + + b.Property("Long"); + + b.Property("Nome"); + + b.HasKey("Id"); + + b.HasIndex("ImgId"); + + b.ToTable("EventLocs"); + }); + + modelBuilder.Entity("api.Models.EventLocVisited", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("LocationId"); + + b.Property("TeamId"); + + b.Property("timestamp"); + + b.HasKey("Id"); + + b.HasIndex("LocationId"); + + b.HasIndex("TeamId"); + + b.ToTable("EventLocsVisited"); + }); + + modelBuilder.Entity("api.Models.Log", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("UserId"); + + b.Property("UserId1"); + + b.Property("amount"); + + b.Property("available"); + + b.Property("logType"); + + b.Property("productId"); + + b.Property("transactionId"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.HasIndex("UserId1"); + + b.HasIndex("productId"); + + b.ToTable("Logs"); + }); + + modelBuilder.Entity("api.Models.Photo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("DateAdded"); + + b.Property("Description"); + + b.Property("IsMain"); + + b.Property("Url"); + + b.Property("UserId"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("Photos"); + }); + + modelBuilder.Entity("api.Models.Product", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("basePrice"); + + b.Property("name"); + + b.Property("revenue"); + + b.Property("sold"); + + b.HasKey("Id"); + + b.ToTable("Products"); + }); + + modelBuilder.Entity("api.Models.Role", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Name") + .HasMaxLength(256); + + b.Property("NormalizedName") + .HasMaxLength(256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasName("RoleNameIndex"); + + b.ToTable("AspNetRoles"); + }); + + modelBuilder.Entity("api.Models.Team", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CapID"); + + b.Property("EventId"); + + b.Property("NMembros"); + + b.Property("Nome"); + + b.Property("Pontos"); + + b.HasKey("Id"); + + b.HasIndex("CapID"); + + b.ToTable("Teams"); + }); + + modelBuilder.Entity("api.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AccessFailedCount"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Email") + .HasMaxLength(256); + + b.Property("EmailConfirmed"); + + b.Property("LockoutEnabled"); + + b.Property("LockoutEnd"); + + b.Property("NormalizedEmail") + .HasMaxLength(256); + + b.Property("NormalizedUserName") + .HasMaxLength(256); + + b.Property("PasswordHash"); + + b.Property("PhoneNumber"); + + b.Property("PhoneNumberConfirmed"); + + b.Property("QRcode"); + + b.Property("SecurityStamp"); + + b.Property("TwoFactorEnabled"); + + b.Property("UserName") + .HasMaxLength(256); + + b.Property("drinks"); + + b.Property("food"); + + b.Property("teamID"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasName("UserNameIndex"); + + b.HasIndex("teamID"); + + b.ToTable("AspNetUsers"); + }); + + modelBuilder.Entity("api.Models.UserRole", b => + { + b.Property("UserId"); + + b.Property("RoleId"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles"); + }); + + modelBuilder.Entity("api.Models.Value", b => + { + b.Property("id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.HasKey("id"); + + b.ToTable("Values"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.HasOne("api.Models.Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.HasOne("api.Models.User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.HasOne("api.Models.User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("api.Models.User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("api.Models.EventLoc", b => + { + b.HasOne("api.Models.Photo", "Img") + .WithMany() + .HasForeignKey("ImgId"); + }); + + modelBuilder.Entity("api.Models.EventLocVisited", b => + { + b.HasOne("api.Models.EventLoc", "Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("api.Models.Team", "Team") + .WithMany() + .HasForeignKey("TeamId"); + }); + + modelBuilder.Entity("api.Models.Log", b => + { + b.HasOne("api.Models.User") + .WithMany("logsFebrada") + .HasForeignKey("UserId"); + + b.HasOne("api.Models.User") + .WithMany("logsFestarola") + .HasForeignKey("UserId1"); + + b.HasOne("api.Models.Product", "product") + .WithMany() + .HasForeignKey("productId"); + }); + + modelBuilder.Entity("api.Models.Photo", b => + { + b.HasOne("api.Models.User", "User") + .WithMany("Photos") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("api.Models.Team", b => + { + b.HasOne("api.Models.User", "Cap") + .WithMany() + .HasForeignKey("CapID"); + }); + + modelBuilder.Entity("api.Models.User", b => + { + b.HasOne("api.Models.Team", "team") + .WithMany() + .HasForeignKey("teamID"); + }); + + modelBuilder.Entity("api.Models.UserRole", b => + { + b.HasOne("api.Models.Role", "Role") + .WithMany("UserRoles") + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("api.Models.User", "User") + .WithMany("UserRoles") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/api/Migrations/20190309183026_TeamsV2.cs b/api/Migrations/20190309183026_TeamsV2.cs new file mode 100644 index 00000000..9cd33c02 --- /dev/null +++ b/api/Migrations/20190309183026_TeamsV2.cs @@ -0,0 +1,496 @@ +using System; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; + +namespace api.Migrations +{ + public partial class TeamsV2 : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "AspNetRoles", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + Name = table.Column(maxLength: 256, nullable: true), + NormalizedName = table.Column(maxLength: 256, nullable: true), + ConcurrencyStamp = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AspNetRoles", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Events", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + Nome = table.Column(nullable: true), + Desc = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Events", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Products", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + name = table.Column(nullable: true), + basePrice = table.Column(nullable: false), + sold = table.Column(nullable: false), + revenue = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Products", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Values", + columns: table => new + { + id = table.Column(nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + Name = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Values", x => x.id); + }); + + migrationBuilder.CreateTable( + name: "AspNetRoleClaims", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + RoleId = table.Column(nullable: false), + ClaimType = table.Column(nullable: true), + ClaimValue = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AspNetRoleClaims", x => x.Id); + table.ForeignKey( + name: "FK_AspNetRoleClaims_AspNetRoles_RoleId", + column: x => x.RoleId, + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "AspNetUserRoles", + columns: table => new + { + UserId = table.Column(nullable: false), + RoleId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_AspNetUserRoles", x => new { x.UserId, x.RoleId }); + table.ForeignKey( + name: "FK_AspNetUserRoles_AspNetRoles_RoleId", + column: x => x.RoleId, + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "AspNetUserClaims", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + UserId = table.Column(nullable: false), + ClaimType = table.Column(nullable: true), + ClaimValue = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AspNetUserClaims", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "AspNetUserLogins", + columns: table => new + { + LoginProvider = table.Column(nullable: false), + ProviderKey = table.Column(nullable: false), + ProviderDisplayName = table.Column(nullable: true), + UserId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_AspNetUserLogins", x => new { x.LoginProvider, x.ProviderKey }); + }); + + migrationBuilder.CreateTable( + name: "AspNetUserTokens", + columns: table => new + { + UserId = table.Column(nullable: false), + LoginProvider = table.Column(nullable: false), + Name = table.Column(nullable: false), + Value = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AspNetUserTokens", x => new { x.UserId, x.LoginProvider, x.Name }); + }); + + migrationBuilder.CreateTable( + name: "Logs", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + amount = table.Column(nullable: false), + available = table.Column(nullable: false), + productId = table.Column(nullable: true), + transactionId = table.Column(nullable: true), + logType = table.Column(nullable: true), + UserId = table.Column(nullable: true), + UserId1 = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Logs", x => x.Id); + table.ForeignKey( + name: "FK_Logs_Products_productId", + column: x => x.productId, + principalTable: "Products", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateTable( + name: "Photos", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + Url = table.Column(nullable: true), + Description = table.Column(nullable: true), + DateAdded = table.Column(nullable: false), + IsMain = table.Column(nullable: false), + UserId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Photos", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "EventLocs", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + EventId = table.Column(nullable: false), + Lat = table.Column(nullable: false), + Long = table.Column(nullable: false), + Nome = table.Column(nullable: true), + Desc = table.Column(nullable: true), + ImgId = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_EventLocs", x => x.Id); + table.ForeignKey( + name: "FK_EventLocs_Photos_ImgId", + column: x => x.ImgId, + principalTable: "Photos", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateTable( + name: "Teams", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + EventId = table.Column(nullable: false), + Nome = table.Column(nullable: true), + CapID = table.Column(nullable: true), + NMembros = table.Column(nullable: false), + Pontos = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Teams", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "AspNetUsers", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + UserName = table.Column(maxLength: 256, nullable: true), + NormalizedUserName = table.Column(maxLength: 256, nullable: true), + Email = table.Column(maxLength: 256, nullable: true), + NormalizedEmail = table.Column(maxLength: 256, nullable: true), + EmailConfirmed = table.Column(nullable: false), + PasswordHash = table.Column(nullable: true), + SecurityStamp = table.Column(nullable: true), + ConcurrencyStamp = table.Column(nullable: true), + PhoneNumber = table.Column(nullable: true), + PhoneNumberConfirmed = table.Column(nullable: false), + TwoFactorEnabled = table.Column(nullable: false), + LockoutEnd = table.Column(nullable: true), + LockoutEnabled = table.Column(nullable: false), + AccessFailedCount = table.Column(nullable: false), + QRcode = table.Column(nullable: true), + drinks = table.Column(nullable: false), + food = table.Column(nullable: false), + teamID = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AspNetUsers", x => x.Id); + table.ForeignKey( + name: "FK_AspNetUsers_Teams_teamID", + column: x => x.teamID, + principalTable: "Teams", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateTable( + name: "EventLocsVisited", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + TeamId = table.Column(nullable: true), + LocationId = table.Column(nullable: true), + timestamp = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_EventLocsVisited", x => x.Id); + table.ForeignKey( + name: "FK_EventLocsVisited_EventLocs_LocationId", + column: x => x.LocationId, + principalTable: "EventLocs", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_EventLocsVisited_Teams_TeamId", + column: x => x.TeamId, + principalTable: "Teams", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateIndex( + name: "IX_AspNetRoleClaims_RoleId", + table: "AspNetRoleClaims", + column: "RoleId"); + + migrationBuilder.CreateIndex( + name: "RoleNameIndex", + table: "AspNetRoles", + column: "NormalizedName", + unique: true); + + migrationBuilder.CreateIndex( + name: "IX_AspNetUserClaims_UserId", + table: "AspNetUserClaims", + column: "UserId"); + + migrationBuilder.CreateIndex( + name: "IX_AspNetUserLogins_UserId", + table: "AspNetUserLogins", + column: "UserId"); + + migrationBuilder.CreateIndex( + name: "IX_AspNetUserRoles_RoleId", + table: "AspNetUserRoles", + column: "RoleId"); + + migrationBuilder.CreateIndex( + name: "EmailIndex", + table: "AspNetUsers", + column: "NormalizedEmail"); + + migrationBuilder.CreateIndex( + name: "UserNameIndex", + table: "AspNetUsers", + column: "NormalizedUserName", + unique: true); + + migrationBuilder.CreateIndex( + name: "IX_AspNetUsers_teamID", + table: "AspNetUsers", + column: "teamID"); + + migrationBuilder.CreateIndex( + name: "IX_EventLocs_ImgId", + table: "EventLocs", + column: "ImgId"); + + migrationBuilder.CreateIndex( + name: "IX_EventLocsVisited_LocationId", + table: "EventLocsVisited", + column: "LocationId"); + + migrationBuilder.CreateIndex( + name: "IX_EventLocsVisited_TeamId", + table: "EventLocsVisited", + column: "TeamId"); + + migrationBuilder.CreateIndex( + name: "IX_Logs_UserId", + table: "Logs", + column: "UserId"); + + migrationBuilder.CreateIndex( + name: "IX_Logs_UserId1", + table: "Logs", + column: "UserId1"); + + migrationBuilder.CreateIndex( + name: "IX_Logs_productId", + table: "Logs", + column: "productId"); + + migrationBuilder.CreateIndex( + name: "IX_Photos_UserId", + table: "Photos", + column: "UserId"); + + migrationBuilder.CreateIndex( + name: "IX_Teams_CapID", + table: "Teams", + column: "CapID"); + + migrationBuilder.AddForeignKey( + name: "FK_AspNetUserRoles_AspNetUsers_UserId", + table: "AspNetUserRoles", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + + migrationBuilder.AddForeignKey( + name: "FK_AspNetUserClaims_AspNetUsers_UserId", + table: "AspNetUserClaims", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + + migrationBuilder.AddForeignKey( + name: "FK_AspNetUserLogins_AspNetUsers_UserId", + table: "AspNetUserLogins", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + + migrationBuilder.AddForeignKey( + name: "FK_AspNetUserTokens_AspNetUsers_UserId", + table: "AspNetUserTokens", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + + migrationBuilder.AddForeignKey( + name: "FK_Logs_AspNetUsers_UserId", + table: "Logs", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + + migrationBuilder.AddForeignKey( + name: "FK_Logs_AspNetUsers_UserId1", + table: "Logs", + column: "UserId1", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + + migrationBuilder.AddForeignKey( + name: "FK_Photos_AspNetUsers_UserId", + table: "Photos", + column: "UserId", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + + migrationBuilder.AddForeignKey( + name: "FK_Teams_AspNetUsers_CapID", + table: "Teams", + column: "CapID", + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_Teams_AspNetUsers_CapID", + table: "Teams"); + + migrationBuilder.DropTable( + name: "AspNetRoleClaims"); + + migrationBuilder.DropTable( + name: "AspNetUserClaims"); + + migrationBuilder.DropTable( + name: "AspNetUserLogins"); + + migrationBuilder.DropTable( + name: "AspNetUserRoles"); + + migrationBuilder.DropTable( + name: "AspNetUserTokens"); + + migrationBuilder.DropTable( + name: "EventLocsVisited"); + + migrationBuilder.DropTable( + name: "Events"); + + migrationBuilder.DropTable( + name: "Logs"); + + migrationBuilder.DropTable( + name: "Values"); + + migrationBuilder.DropTable( + name: "AspNetRoles"); + + migrationBuilder.DropTable( + name: "EventLocs"); + + migrationBuilder.DropTable( + name: "Products"); + + migrationBuilder.DropTable( + name: "Photos"); + + migrationBuilder.DropTable( + name: "AspNetUsers"); + + migrationBuilder.DropTable( + name: "Teams"); + } + } +} diff --git a/api/Migrations/DataContextModelSnapshot.cs b/api/Migrations/DataContextModelSnapshot.cs new file mode 100644 index 00000000..7b8d9f5b --- /dev/null +++ b/api/Migrations/DataContextModelSnapshot.cs @@ -0,0 +1,448 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using api.Data; + +namespace api.Migrations +{ + [DbContext(typeof(DataContext))] + partial class DataContextModelSnapshot : ModelSnapshot + { + protected override void BuildModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "2.2.0-rtm-35687") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("RoleId"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("UserId"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.Property("LoginProvider"); + + b.Property("ProviderKey"); + + b.Property("ProviderDisplayName"); + + b.Property("UserId"); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.Property("UserId"); + + b.Property("LoginProvider"); + + b.Property("Name"); + + b.Property("Value"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens"); + }); + + modelBuilder.Entity("api.Models.Event", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Desc"); + + b.Property("Nome"); + + b.HasKey("Id"); + + b.ToTable("Events"); + }); + + modelBuilder.Entity("api.Models.EventLoc", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Desc"); + + b.Property("EventId"); + + b.Property("ImgId"); + + b.Property("Lat"); + + b.Property("Long"); + + b.Property("Nome"); + + b.HasKey("Id"); + + b.HasIndex("ImgId"); + + b.ToTable("EventLocs"); + }); + + modelBuilder.Entity("api.Models.EventLocVisited", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("LocationId"); + + b.Property("TeamId"); + + b.Property("timestamp"); + + b.HasKey("Id"); + + b.HasIndex("LocationId"); + + b.HasIndex("TeamId"); + + b.ToTable("EventLocsVisited"); + }); + + modelBuilder.Entity("api.Models.Log", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("UserId"); + + b.Property("UserId1"); + + b.Property("amount"); + + b.Property("available"); + + b.Property("logType"); + + b.Property("productId"); + + b.Property("transactionId"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.HasIndex("UserId1"); + + b.HasIndex("productId"); + + b.ToTable("Logs"); + }); + + modelBuilder.Entity("api.Models.Photo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("DateAdded"); + + b.Property("Description"); + + b.Property("IsMain"); + + b.Property("Url"); + + b.Property("UserId"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("Photos"); + }); + + modelBuilder.Entity("api.Models.Product", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("basePrice"); + + b.Property("name"); + + b.Property("revenue"); + + b.Property("sold"); + + b.HasKey("Id"); + + b.ToTable("Products"); + }); + + modelBuilder.Entity("api.Models.Role", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Name") + .HasMaxLength(256); + + b.Property("NormalizedName") + .HasMaxLength(256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasName("RoleNameIndex"); + + b.ToTable("AspNetRoles"); + }); + + modelBuilder.Entity("api.Models.Team", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CapID"); + + b.Property("EventId"); + + b.Property("NMembros"); + + b.Property("Nome"); + + b.Property("Pontos"); + + b.HasKey("Id"); + + b.HasIndex("CapID"); + + b.ToTable("Teams"); + }); + + modelBuilder.Entity("api.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AccessFailedCount"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Email") + .HasMaxLength(256); + + b.Property("EmailConfirmed"); + + b.Property("LockoutEnabled"); + + b.Property("LockoutEnd"); + + b.Property("NormalizedEmail") + .HasMaxLength(256); + + b.Property("NormalizedUserName") + .HasMaxLength(256); + + b.Property("PasswordHash"); + + b.Property("PhoneNumber"); + + b.Property("PhoneNumberConfirmed"); + + b.Property("QRcode"); + + b.Property("SecurityStamp"); + + b.Property("TwoFactorEnabled"); + + b.Property("UserName") + .HasMaxLength(256); + + b.Property("drinks"); + + b.Property("food"); + + b.Property("teamID"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasName("UserNameIndex"); + + b.HasIndex("teamID"); + + b.ToTable("AspNetUsers"); + }); + + modelBuilder.Entity("api.Models.UserRole", b => + { + b.Property("UserId"); + + b.Property("RoleId"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles"); + }); + + modelBuilder.Entity("api.Models.Value", b => + { + b.Property("id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.HasKey("id"); + + b.ToTable("Values"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.HasOne("api.Models.Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.HasOne("api.Models.User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.HasOne("api.Models.User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("api.Models.User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("api.Models.EventLoc", b => + { + b.HasOne("api.Models.Photo", "Img") + .WithMany() + .HasForeignKey("ImgId"); + }); + + modelBuilder.Entity("api.Models.EventLocVisited", b => + { + b.HasOne("api.Models.EventLoc", "Location") + .WithMany() + .HasForeignKey("LocationId"); + + b.HasOne("api.Models.Team", "Team") + .WithMany() + .HasForeignKey("TeamId"); + }); + + modelBuilder.Entity("api.Models.Log", b => + { + b.HasOne("api.Models.User") + .WithMany("logsFebrada") + .HasForeignKey("UserId"); + + b.HasOne("api.Models.User") + .WithMany("logsFestarola") + .HasForeignKey("UserId1"); + + b.HasOne("api.Models.Product", "product") + .WithMany() + .HasForeignKey("productId"); + }); + + modelBuilder.Entity("api.Models.Photo", b => + { + b.HasOne("api.Models.User", "User") + .WithMany("Photos") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("api.Models.Team", b => + { + b.HasOne("api.Models.User", "Cap") + .WithMany() + .HasForeignKey("CapID"); + }); + + modelBuilder.Entity("api.Models.User", b => + { + b.HasOne("api.Models.Team", "team") + .WithMany() + .HasForeignKey("teamID"); + }); + + modelBuilder.Entity("api.Models.UserRole", b => + { + b.HasOne("api.Models.Role", "Role") + .WithMany("UserRoles") + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("api.Models.User", "User") + .WithMany("UserRoles") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/api/Models/Team.cs b/api/Models/Team.cs index f37efe2a..b70deb1e 100755 --- a/api/Models/Team.cs +++ b/api/Models/Team.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; namespace api.Models @@ -9,6 +10,8 @@ namespace api.Models public int Id{get;set;} //id public int EventId{get;set;} //equipa para o evento ID public string Nome{get;set;} //Nome da equipa + + [ForeignKey("CapID")] public User Cap{get;set;} //Capitao da equipa public int NMembros {get;set;} //Numero de Membros na equipa public int Pontos {get;set;} //Postos da equipa diff --git a/api/Models/User.cs b/api/Models/User.cs index 318e6345..56acc712 100755 --- a/api/Models/User.cs +++ b/api/Models/User.cs @@ -1,6 +1,8 @@ using System; using Microsoft.AspNetCore.Identity; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; + namespace api.Models @@ -16,6 +18,7 @@ namespace api.Models public int drinks{get;set;} public int food{get;set;} + [ForeignKey("teamID")] public Team team{get;set;} }