mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-02-16 10:42:08 +00:00
begin scaffolding data access layer
This commit is contained in:
35
DataAccessLayer/BeerPost.cs
Normal file
35
DataAccessLayer/BeerPost.cs
Normal file
@@ -0,0 +1,35 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace DataAccessLayer;
|
||||
|
||||
public partial class BeerPost
|
||||
{
|
||||
public Guid BeerPostID { get; set; }
|
||||
|
||||
public string Name { get; set; } = null!;
|
||||
|
||||
public string Description { get; set; } = null!;
|
||||
|
||||
public decimal ABV { get; set; }
|
||||
|
||||
public int IBU { get; set; }
|
||||
|
||||
public Guid PostedByID { get; set; }
|
||||
|
||||
public Guid BeerStyleID { get; set; }
|
||||
|
||||
public Guid BrewedByID { get; set; }
|
||||
|
||||
public DateTime CreatedAt { get; set; }
|
||||
|
||||
public DateTime? UpdatedAt { get; set; }
|
||||
|
||||
public virtual ICollection<BeerPostPhoto> BeerPostPhotos { get; set; } = new List<BeerPostPhoto>();
|
||||
|
||||
public virtual BeerStyle BeerStyle { get; set; } = null!;
|
||||
|
||||
public virtual BreweryPost BrewedBy { get; set; } = null!;
|
||||
|
||||
public virtual UserAccount PostedBy { get; set; } = null!;
|
||||
}
|
||||
19
DataAccessLayer/BeerPostPhoto.cs
Normal file
19
DataAccessLayer/BeerPostPhoto.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace DataAccessLayer;
|
||||
|
||||
public partial class BeerPostPhoto
|
||||
{
|
||||
public Guid BeerPostPhotoID { get; set; }
|
||||
|
||||
public Guid BeerPostID { get; set; }
|
||||
|
||||
public Guid PhotoID { get; set; }
|
||||
|
||||
public DateTime LinkedAt { get; set; }
|
||||
|
||||
public virtual BeerPost BeerPost { get; set; } = null!;
|
||||
|
||||
public virtual Photo Photo { get; set; } = null!;
|
||||
}
|
||||
15
DataAccessLayer/BeerStyle.cs
Normal file
15
DataAccessLayer/BeerStyle.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace DataAccessLayer;
|
||||
|
||||
public partial class BeerStyle
|
||||
{
|
||||
public Guid BeerStyleID { get; set; }
|
||||
|
||||
public string StyleName { get; set; } = null!;
|
||||
|
||||
public string? Description { get; set; }
|
||||
|
||||
public virtual ICollection<BeerPost> BeerPosts { get; set; } = new List<BeerPost>();
|
||||
}
|
||||
300
DataAccessLayer/BiergartenContext.cs
Normal file
300
DataAccessLayer/BiergartenContext.cs
Normal file
@@ -0,0 +1,300 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace DataAccessLayer;
|
||||
|
||||
public partial class BiergartenContext : DbContext
|
||||
{
|
||||
public BiergartenContext()
|
||||
{
|
||||
}
|
||||
|
||||
public BiergartenContext(DbContextOptions<BiergartenContext> options)
|
||||
: base(options)
|
||||
{
|
||||
}
|
||||
|
||||
public virtual DbSet<BeerPost> BeerPosts { get; set; }
|
||||
|
||||
public virtual DbSet<BeerPostPhoto> BeerPostPhotos { get; set; }
|
||||
|
||||
public virtual DbSet<BeerStyle> BeerStyles { get; set; }
|
||||
|
||||
public virtual DbSet<BreweryPost> BreweryPosts { get; set; }
|
||||
|
||||
public virtual DbSet<BreweryPostPhoto> BreweryPostPhotos { get; set; }
|
||||
|
||||
public virtual DbSet<Comment> Comments { get; set; }
|
||||
|
||||
public virtual DbSet<Photo> Photos { get; set; }
|
||||
|
||||
public virtual DbSet<UserAccount> UserAccounts { get; set; }
|
||||
|
||||
public virtual DbSet<UserAvatar> UserAvatars { get; set; }
|
||||
|
||||
public virtual DbSet<UserCredential> UserCredentials { get; set; }
|
||||
|
||||
public virtual DbSet<UserFollow> UserFollows { get; set; }
|
||||
|
||||
public virtual DbSet<UserVerification> UserVerifications { get; set; }
|
||||
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
#warning To protect potentially sensitive information in your connection string, you should move it out of source code. You can avoid scaffolding the connection string by using the Name= syntax to read it from configuration - see https://go.microsoft.com/fwlink/?linkid=2131148. For more guidance on storing connection strings, see https://go.microsoft.com/fwlink/?LinkId=723263.
|
||||
=> optionsBuilder.UseSqlServer("Server=(localdb)\\ProjectModels;Database=Biergarten;Trusted_Connection=True;");
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
modelBuilder.Entity<BeerPost>(entity =>
|
||||
{
|
||||
entity.ToTable("BeerPost");
|
||||
|
||||
entity.HasIndex(e => e.BeerStyleID, "IX_BeerPost_BeerStyle");
|
||||
|
||||
entity.HasIndex(e => e.BrewedByID, "IX_BeerPost_BrewedBy");
|
||||
|
||||
entity.HasIndex(e => e.PostedByID, "IX_BeerPost_PostedBy");
|
||||
|
||||
entity.Property(e => e.BeerPostID).HasDefaultValueSql("(newid())");
|
||||
entity.Property(e => e.ABV).HasColumnType("decimal(4, 2)");
|
||||
entity.Property(e => e.CreatedAt)
|
||||
.HasDefaultValueSql("(getdate())")
|
||||
.HasColumnType("datetime");
|
||||
entity.Property(e => e.Name).HasMaxLength(100);
|
||||
entity.Property(e => e.UpdatedAt).HasColumnType("datetime");
|
||||
|
||||
entity.HasOne(d => d.BeerStyle).WithMany(p => p.BeerPosts)
|
||||
.HasForeignKey(d => d.BeerStyleID)
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("FK_BeerPost_BeerStyle");
|
||||
|
||||
entity.HasOne(d => d.BrewedBy).WithMany(p => p.BeerPosts)
|
||||
.HasForeignKey(d => d.BrewedByID)
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("FK_BeerPost_Brewery");
|
||||
|
||||
entity.HasOne(d => d.PostedBy).WithMany(p => p.BeerPosts)
|
||||
.HasForeignKey(d => d.PostedByID)
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("FK_BeerPost_PostedBy");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<BeerPostPhoto>(entity =>
|
||||
{
|
||||
entity.ToTable("BeerPostPhoto");
|
||||
|
||||
entity.HasIndex(e => new { e.BeerPostID, e.PhotoID }, "IX_BeerPostPhoto_BeerPost_Photo");
|
||||
|
||||
entity.HasIndex(e => new { e.PhotoID, e.BeerPostID }, "IX_BeerPostPhoto_Photo_BeerPost");
|
||||
|
||||
entity.Property(e => e.BeerPostPhotoID).HasDefaultValueSql("(newid())");
|
||||
entity.Property(e => e.LinkedAt)
|
||||
.HasDefaultValueSql("(getdate())")
|
||||
.HasColumnType("datetime");
|
||||
|
||||
entity.HasOne(d => d.BeerPost).WithMany(p => p.BeerPostPhotos)
|
||||
.HasForeignKey(d => d.BeerPostID)
|
||||
.HasConstraintName("FK_BeerPostPhoto_BeerPost");
|
||||
|
||||
entity.HasOne(d => d.Photo).WithMany(p => p.BeerPostPhotos)
|
||||
.HasForeignKey(d => d.PhotoID)
|
||||
.HasConstraintName("FK_BeerPostPhoto_Photo");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<BeerStyle>(entity =>
|
||||
{
|
||||
entity.ToTable("BeerStyle");
|
||||
|
||||
entity.HasIndex(e => e.StyleName, "AK_BeerStyle_StyleName").IsUnique();
|
||||
|
||||
entity.Property(e => e.BeerStyleID).HasDefaultValueSql("(newid())");
|
||||
entity.Property(e => e.StyleName).HasMaxLength(100);
|
||||
});
|
||||
|
||||
modelBuilder.Entity<BreweryPost>(entity =>
|
||||
{
|
||||
entity.ToTable("BreweryPost");
|
||||
|
||||
entity.HasIndex(e => e.PostedByID, "IX_BreweryPost_PostedByID");
|
||||
|
||||
entity.Property(e => e.BreweryPostID).HasDefaultValueSql("(newid())");
|
||||
entity.Property(e => e.CreatedAt)
|
||||
.HasDefaultValueSql("(getdate())")
|
||||
.HasColumnType("datetime");
|
||||
entity.Property(e => e.Description).HasMaxLength(512);
|
||||
entity.Property(e => e.UpdatedAt).HasColumnType("datetime");
|
||||
|
||||
entity.HasOne(d => d.PostedBy).WithMany(p => p.BreweryPosts)
|
||||
.HasForeignKey(d => d.PostedByID)
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("FK_BreweryPost_UserAccount");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<BreweryPostPhoto>(entity =>
|
||||
{
|
||||
entity.ToTable("BreweryPostPhoto");
|
||||
|
||||
entity.HasIndex(e => new { e.BreweryPostID, e.PhotoID }, "IX_BreweryPostPhoto_BreweryPost_Photo");
|
||||
|
||||
entity.HasIndex(e => new { e.PhotoID, e.BreweryPostID }, "IX_BreweryPostPhoto_Photo_BreweryPost");
|
||||
|
||||
entity.Property(e => e.BreweryPostPhotoID).HasDefaultValueSql("(newid())");
|
||||
entity.Property(e => e.LinkedAt)
|
||||
.HasDefaultValueSql("(getdate())")
|
||||
.HasColumnType("datetime");
|
||||
|
||||
entity.HasOne(d => d.BreweryPost).WithMany(p => p.BreweryPostPhotos)
|
||||
.HasForeignKey(d => d.BreweryPostID)
|
||||
.HasConstraintName("FK_BreweryPostPhoto_BreweryPost");
|
||||
|
||||
entity.HasOne(d => d.Photo).WithMany(p => p.BreweryPostPhotos)
|
||||
.HasForeignKey(d => d.PhotoID)
|
||||
.HasConstraintName("FK_BreweryPostPhoto_Photo");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<Comment>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.CommentID).HasName("PK_CommentID");
|
||||
|
||||
entity.ToTable("Comment");
|
||||
|
||||
entity.HasIndex(e => e.PostedByID, "IX_Comment_PostedByID");
|
||||
|
||||
entity.Property(e => e.CommentID).HasDefaultValueSql("(newid())");
|
||||
entity.Property(e => e.CommentText).HasMaxLength(512);
|
||||
|
||||
entity.HasOne(d => d.PostedBy).WithMany(p => p.Comments)
|
||||
.HasForeignKey(d => d.PostedByID)
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("FK_PostedByID");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<Photo>(entity =>
|
||||
{
|
||||
entity.ToTable("Photo");
|
||||
|
||||
entity.HasIndex(e => e.UploadedByID, "IX_Photo_UploadedByID");
|
||||
|
||||
entity.Property(e => e.PhotoID).HasDefaultValueSql("(newid())");
|
||||
entity.Property(e => e.Hyperlink).HasMaxLength(256);
|
||||
entity.Property(e => e.UploadedAt)
|
||||
.HasDefaultValueSql("(getdate())")
|
||||
.HasColumnType("datetime");
|
||||
|
||||
entity.HasOne(d => d.UploadedBy).WithMany(p => p.Photos)
|
||||
.HasForeignKey(d => d.UploadedByID)
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("FK_Photo_UploadedBy");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<UserAccount>(entity =>
|
||||
{
|
||||
entity.ToTable("UserAccount");
|
||||
|
||||
entity.HasIndex(e => e.Email, "AK_Email").IsUnique();
|
||||
|
||||
entity.HasIndex(e => e.Username, "AK_Username").IsUnique();
|
||||
|
||||
entity.Property(e => e.UserAccountID).HasDefaultValueSql("(newid())");
|
||||
entity.Property(e => e.CreatedAt).HasColumnType("datetime");
|
||||
entity.Property(e => e.DateOfBirth).HasColumnType("datetime");
|
||||
entity.Property(e => e.Email)
|
||||
.HasMaxLength(128)
|
||||
.IsUnicode(false);
|
||||
entity.Property(e => e.FirstName).HasMaxLength(128);
|
||||
entity.Property(e => e.LastName).HasMaxLength(128);
|
||||
entity.Property(e => e.UpdatedAt).HasColumnType("datetime");
|
||||
entity.Property(e => e.Username)
|
||||
.HasMaxLength(64)
|
||||
.IsUnicode(false);
|
||||
});
|
||||
|
||||
modelBuilder.Entity<UserAvatar>(entity =>
|
||||
{
|
||||
entity.ToTable("UserAvatar");
|
||||
|
||||
entity.HasIndex(e => e.UserAccountID, "AK_UserAvatar_UserAccountID").IsUnique();
|
||||
|
||||
entity.HasIndex(e => e.UserAccountID, "IX_UserAvatar_UserAccount");
|
||||
|
||||
entity.Property(e => e.UserAvatarID).HasDefaultValueSql("(newid())");
|
||||
|
||||
entity.HasOne(d => d.Photo).WithMany(p => p.UserAvatars)
|
||||
.HasForeignKey(d => d.PhotoID)
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("FK_UserAvatar_PhotoID");
|
||||
|
||||
entity.HasOne(d => d.UserAccount).WithOne(p => p.UserAvatar)
|
||||
.HasForeignKey<UserAvatar>(d => d.UserAccountID)
|
||||
.HasConstraintName("FK_UserAvatar_UserAccount");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<UserCredential>(entity =>
|
||||
{
|
||||
entity.ToTable("UserCredential");
|
||||
|
||||
entity.HasIndex(e => e.UserAccountID, "AK_UserCredential_UserAccountID").IsUnique();
|
||||
|
||||
entity.HasIndex(e => e.UserAccountID, "IX_UserCredential_UserAccount");
|
||||
|
||||
entity.Property(e => e.UserCredentialID).HasDefaultValueSql("(newid())");
|
||||
entity.Property(e => e.CreatedAt)
|
||||
.HasDefaultValueSql("(getdate())")
|
||||
.HasColumnType("datetime");
|
||||
entity.Property(e => e.Expiry)
|
||||
.HasDefaultValueSql("(dateadd(day,(90),getdate()))")
|
||||
.HasColumnType("datetime");
|
||||
entity.Property(e => e.Hash).HasMaxLength(100);
|
||||
|
||||
entity.HasOne(d => d.UserAccount).WithOne(p => p.UserCredential)
|
||||
.HasForeignKey<UserCredential>(d => d.UserAccountID)
|
||||
.HasConstraintName("FK_UserCredential_UserAccount");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<UserFollow>(entity =>
|
||||
{
|
||||
entity.ToTable("UserFollow");
|
||||
|
||||
entity.HasIndex(e => new { e.FollowingID, e.UserAccountID }, "IX_UserFollow_FollowingID_UserAccount");
|
||||
|
||||
entity.HasIndex(e => new { e.UserAccountID, e.FollowingID }, "IX_UserFollow_UserAccount_FollowingID");
|
||||
|
||||
entity.Property(e => e.UserFollowID).HasDefaultValueSql("(newid())");
|
||||
entity.Property(e => e.CreatedAt)
|
||||
.HasDefaultValueSql("(getdate())")
|
||||
.HasColumnType("datetime");
|
||||
|
||||
entity.HasOne(d => d.Following).WithMany(p => p.UserFollowFollowings)
|
||||
.HasForeignKey(d => d.FollowingID)
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("FK_UserFollow_UserAccountFollowing");
|
||||
|
||||
entity.HasOne(d => d.UserAccount).WithMany(p => p.UserFollowUserAccounts)
|
||||
.HasForeignKey(d => d.UserAccountID)
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("FK_UserFollow_UserAccount");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<UserVerification>(entity =>
|
||||
{
|
||||
entity.ToTable("UserVerification");
|
||||
|
||||
entity.HasIndex(e => e.UserAccountID, "AK_UserVerification_UserAccountID").IsUnique();
|
||||
|
||||
entity.HasIndex(e => e.UserAccountID, "IX_UserVerification_UserAccount");
|
||||
|
||||
entity.Property(e => e.UserVerificationID).HasDefaultValueSql("(newid())");
|
||||
entity.Property(e => e.VerificationDateTime)
|
||||
.HasDefaultValueSql("(getdate())")
|
||||
.HasColumnType("datetime");
|
||||
|
||||
entity.HasOne(d => d.UserAccount).WithOne(p => p.UserVerification)
|
||||
.HasForeignKey<UserVerification>(d => d.UserAccountID)
|
||||
.HasConstraintName("FK_UserVerification_UserAccount");
|
||||
});
|
||||
|
||||
OnModelCreatingPartial(modelBuilder);
|
||||
}
|
||||
|
||||
partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
|
||||
}
|
||||
23
DataAccessLayer/BreweryPost.cs
Normal file
23
DataAccessLayer/BreweryPost.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace DataAccessLayer;
|
||||
|
||||
public partial class BreweryPost
|
||||
{
|
||||
public Guid BreweryPostID { get; set; }
|
||||
|
||||
public Guid PostedByID { get; set; }
|
||||
|
||||
public string Description { get; set; } = null!;
|
||||
|
||||
public DateTime CreatedAt { get; set; }
|
||||
|
||||
public DateTime? UpdatedAt { get; set; }
|
||||
|
||||
public virtual ICollection<BeerPost> BeerPosts { get; set; } = new List<BeerPost>();
|
||||
|
||||
public virtual ICollection<BreweryPostPhoto> BreweryPostPhotos { get; set; } = new List<BreweryPostPhoto>();
|
||||
|
||||
public virtual UserAccount PostedBy { get; set; } = null!;
|
||||
}
|
||||
19
DataAccessLayer/BreweryPostPhoto.cs
Normal file
19
DataAccessLayer/BreweryPostPhoto.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace DataAccessLayer;
|
||||
|
||||
public partial class BreweryPostPhoto
|
||||
{
|
||||
public Guid BreweryPostPhotoID { get; set; }
|
||||
|
||||
public Guid BreweryPostID { get; set; }
|
||||
|
||||
public Guid PhotoID { get; set; }
|
||||
|
||||
public DateTime LinkedAt { get; set; }
|
||||
|
||||
public virtual BreweryPost BreweryPost { get; set; } = null!;
|
||||
|
||||
public virtual Photo Photo { get; set; } = null!;
|
||||
}
|
||||
15
DataAccessLayer/Comment.cs
Normal file
15
DataAccessLayer/Comment.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace DataAccessLayer;
|
||||
|
||||
public partial class Comment
|
||||
{
|
||||
public Guid CommentID { get; set; }
|
||||
|
||||
public string? CommentText { get; set; }
|
||||
|
||||
public Guid PostedByID { get; set; }
|
||||
|
||||
public virtual UserAccount PostedBy { get; set; } = null!;
|
||||
}
|
||||
18
DataAccessLayer/DataAccessLayer.csproj
Normal file
18
DataAccessLayer/DataAccessLayer.csproj
Normal file
@@ -0,0 +1,18 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RootNamespace>DataAccessLayer</RootNamespace>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.10" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.10">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
23
DataAccessLayer/Photo.cs
Normal file
23
DataAccessLayer/Photo.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace DataAccessLayer;
|
||||
|
||||
public partial class Photo
|
||||
{
|
||||
public Guid PhotoID { get; set; }
|
||||
|
||||
public string? Hyperlink { get; set; }
|
||||
|
||||
public Guid UploadedByID { get; set; }
|
||||
|
||||
public DateTime UploadedAt { get; set; }
|
||||
|
||||
public virtual ICollection<BeerPostPhoto> BeerPostPhotos { get; set; } = new List<BeerPostPhoto>();
|
||||
|
||||
public virtual ICollection<BreweryPostPhoto> BreweryPostPhotos { get; set; } = new List<BreweryPostPhoto>();
|
||||
|
||||
public virtual UserAccount UploadedBy { get; set; } = null!;
|
||||
|
||||
public virtual ICollection<UserAvatar> UserAvatars { get; set; } = new List<UserAvatar>();
|
||||
}
|
||||
41
DataAccessLayer/UserAccount.cs
Normal file
41
DataAccessLayer/UserAccount.cs
Normal file
@@ -0,0 +1,41 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace DataAccessLayer;
|
||||
|
||||
public partial class UserAccount
|
||||
{
|
||||
public Guid UserAccountID { get; set; }
|
||||
|
||||
public string Username { get; set; } = null!;
|
||||
|
||||
public string FirstName { get; set; } = null!;
|
||||
|
||||
public string LastName { get; set; } = null!;
|
||||
|
||||
public string Email { get; set; } = null!;
|
||||
|
||||
public DateTime CreatedAt { get; set; }
|
||||
|
||||
public DateTime? UpdatedAt { get; set; }
|
||||
|
||||
public DateTime DateOfBirth { get; set; }
|
||||
|
||||
public virtual ICollection<BeerPost> BeerPosts { get; set; } = new List<BeerPost>();
|
||||
|
||||
public virtual ICollection<BreweryPost> BreweryPosts { get; set; } = new List<BreweryPost>();
|
||||
|
||||
public virtual ICollection<Comment> Comments { get; set; } = new List<Comment>();
|
||||
|
||||
public virtual ICollection<Photo> Photos { get; set; } = new List<Photo>();
|
||||
|
||||
public virtual UserAvatar? UserAvatar { get; set; }
|
||||
|
||||
public virtual UserCredential? UserCredential { get; set; }
|
||||
|
||||
public virtual ICollection<UserFollow> UserFollowFollowings { get; set; } = new List<UserFollow>();
|
||||
|
||||
public virtual ICollection<UserFollow> UserFollowUserAccounts { get; set; } = new List<UserFollow>();
|
||||
|
||||
public virtual UserVerification? UserVerification { get; set; }
|
||||
}
|
||||
17
DataAccessLayer/UserAvatar.cs
Normal file
17
DataAccessLayer/UserAvatar.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace DataAccessLayer;
|
||||
|
||||
public partial class UserAvatar
|
||||
{
|
||||
public Guid UserAvatarID { get; set; }
|
||||
|
||||
public Guid UserAccountID { get; set; }
|
||||
|
||||
public Guid PhotoID { get; set; }
|
||||
|
||||
public virtual Photo Photo { get; set; } = null!;
|
||||
|
||||
public virtual UserAccount UserAccount { get; set; } = null!;
|
||||
}
|
||||
19
DataAccessLayer/UserCredential.cs
Normal file
19
DataAccessLayer/UserCredential.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace DataAccessLayer;
|
||||
|
||||
public partial class UserCredential
|
||||
{
|
||||
public Guid UserCredentialID { get; set; }
|
||||
|
||||
public Guid UserAccountID { get; set; }
|
||||
|
||||
public DateTime CreatedAt { get; set; }
|
||||
|
||||
public DateTime Expiry { get; set; }
|
||||
|
||||
public string Hash { get; set; } = null!;
|
||||
|
||||
public virtual UserAccount UserAccount { get; set; } = null!;
|
||||
}
|
||||
19
DataAccessLayer/UserFollow.cs
Normal file
19
DataAccessLayer/UserFollow.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace DataAccessLayer;
|
||||
|
||||
public partial class UserFollow
|
||||
{
|
||||
public Guid UserFollowID { get; set; }
|
||||
|
||||
public Guid UserAccountID { get; set; }
|
||||
|
||||
public Guid FollowingID { get; set; }
|
||||
|
||||
public DateTime CreatedAt { get; set; }
|
||||
|
||||
public virtual UserAccount Following { get; set; } = null!;
|
||||
|
||||
public virtual UserAccount UserAccount { get; set; } = null!;
|
||||
}
|
||||
15
DataAccessLayer/UserVerification.cs
Normal file
15
DataAccessLayer/UserVerification.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace DataAccessLayer;
|
||||
|
||||
public partial class UserVerification
|
||||
{
|
||||
public Guid UserVerificationID { get; set; }
|
||||
|
||||
public Guid UserAccountID { get; set; }
|
||||
|
||||
public DateTime VerificationDateTime { get; set; }
|
||||
|
||||
public virtual UserAccount UserAccount { get; set; } = null!;
|
||||
}
|
||||
Reference in New Issue
Block a user