//
using System;
using System.Collections.Generic;
using ArtPlatform.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace ArtPlatform.Database.Migrations
{
[DbContext(typeof(ApplicationDbContext))]
[Migration("20240128002310_stoff")]
partial class stoff
{
///
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "8.0.1")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
modelBuilder.Entity("ArtPlatform.Database.Entities.SellerProfilePortfolioPiece", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
b.Property("FileReference")
.HasColumnType("text");
b.Property("SellerProfileId")
.HasColumnType("integer");
b.Property("SellerServiceId")
.HasColumnType("integer");
b.HasKey("Id");
b.HasIndex("SellerProfileId");
b.HasIndex("SellerServiceId");
b.ToTable("SellerProfilePortfolioPieces");
});
modelBuilder.Entity("ArtPlatform.Database.Entities.SellerProfileRequest", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
b.Property("Accepted")
.HasColumnType("boolean");
b.Property("AcceptedDate")
.HasColumnType("timestamp with time zone");
b.Property("RequestDate")
.HasColumnType("timestamp with time zone");
b.Property("UserId")
.IsRequired()
.HasColumnType("text");
b.HasKey("Id");
b.HasIndex("UserId");
b.ToTable("SellerProfileRequests");
});
modelBuilder.Entity("ArtPlatform.Database.Entities.SellerService", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
b.Property("Description")
.IsRequired()
.HasColumnType("text");
b.Property("Name")
.IsRequired()
.HasColumnType("text");
b.Property("Price")
.HasColumnType("double precision");
b.Property("SellerProfileId")
.HasColumnType("integer");
b.HasKey("Id");
b.HasIndex("SellerProfileId");
b.ToTable("SellerServices");
});
modelBuilder.Entity("ArtPlatform.Database.Entities.SellerServiceOrder", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
b.Property("BuyerId")
.IsRequired()
.HasColumnType("text");
b.Property("CreatedDate")
.HasColumnType("timestamp with time zone");
b.Property("EndDate")
.HasColumnType("timestamp with time zone");
b.Property("PaymentUrl")
.HasColumnType("text");
b.Property("Price")
.HasColumnType("double precision");
b.Property("SellerId")
.HasColumnType("integer");
b.Property("SellerServiceId")
.HasColumnType("integer");
b.Property("Status")
.HasColumnType("integer");
b.Property("TermsAcceptedDate")
.HasColumnType("timestamp with time zone");
b.HasKey("Id");
b.HasIndex("BuyerId");
b.HasIndex("SellerId");
b.HasIndex("SellerServiceId");
b.ToTable("SellerServiceOrders");
});
modelBuilder.Entity("ArtPlatform.Database.Entities.SellerServiceOrderMessage", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
b.Property("Message")
.IsRequired()
.HasColumnType("text");
b.Property("SellerServiceOrderId")
.HasColumnType("integer");
b.Property("SenderId")
.IsRequired()
.HasColumnType("text");
b.Property("SentAt")
.HasColumnType("timestamp with time zone");
b.HasKey("Id");
b.HasIndex("SellerServiceOrderId");
b.HasIndex("SenderId");
b.ToTable("SellerServiceOrderMessages");
});
modelBuilder.Entity("ArtPlatform.Database.Entities.SellerServiceOrderMessageAttachment", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
b.Property("FileReference")
.IsRequired()
.HasColumnType("text");
b.Property("SellerServiceOrderMessageId")
.HasColumnType("integer");
b.HasKey("Id");
b.HasIndex("SellerServiceOrderMessageId");
b.ToTable("SellerServiceOrderMessageAttachments");
});
modelBuilder.Entity("ArtPlatform.Database.Entities.SellerServiceOrderReview", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
b.Property("Rating")
.HasColumnType("integer");
b.Property("Review")
.HasColumnType("text");
b.Property("ReviewDate")
.HasColumnType("timestamp with time zone");
b.Property("ReviewerId")
.IsRequired()
.HasColumnType("text");
b.Property("SellerServiceId")
.HasColumnType("integer");
b.Property("SellerServiceOrderId")
.HasColumnType("integer");
b.HasKey("Id");
b.HasIndex("ReviewerId");
b.HasIndex("SellerServiceId");
b.HasIndex("SellerServiceOrderId");
b.ToTable("SellerServiceOrderReviews");
});
modelBuilder.Entity("ArtPlatform.Database.Entities.User", b =>
{
b.Property("Id")
.HasColumnType("text");
b.Property("Biography")
.IsRequired()
.HasColumnType("text");
b.Property("DisplayName")
.IsRequired()
.HasColumnType("text");
b.Property("Email")
.IsRequired()
.HasColumnType("text");
b.Property("StripeCustomerId")
.IsRequired()
.HasColumnType("text");
b.Property("UserSellerProfileId")
.HasColumnType("integer");
b.HasKey("Id");
b.ToTable("Users");
});
modelBuilder.Entity("ArtPlatform.Database.Entities.UserSellerProfile", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
b.Property("AgeRestricted")
.HasColumnType("boolean");
b.Property("Biography")
.IsRequired()
.HasColumnType("text");
b.Property("PrepaymentRequired")
.HasColumnType("boolean");
b.Property>("SocialMediaLinks")
.IsRequired()
.HasColumnType("text[]");
b.Property("StripeAccountId")
.HasColumnType("text");
b.Property("UserId")
.IsRequired()
.HasColumnType("text");
b.HasKey("Id");
b.HasIndex("UserId")
.IsUnique();
b.ToTable("UserSellerProfiles");
});
modelBuilder.Entity("ArtPlatform.Database.Entities.SellerProfilePortfolioPiece", b =>
{
b.HasOne("ArtPlatform.Database.Entities.UserSellerProfile", "SellerProfile")
.WithMany("PortfolioPieces")
.HasForeignKey("SellerProfileId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("ArtPlatform.Database.Entities.SellerService", "SellerService")
.WithMany("PortfolioPieces")
.HasForeignKey("SellerServiceId");
b.Navigation("SellerProfile");
b.Navigation("SellerService");
});
modelBuilder.Entity("ArtPlatform.Database.Entities.SellerProfileRequest", b =>
{
b.HasOne("ArtPlatform.Database.Entities.User", "User")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("User");
});
modelBuilder.Entity("ArtPlatform.Database.Entities.SellerService", b =>
{
b.HasOne("ArtPlatform.Database.Entities.UserSellerProfile", "SellerProfile")
.WithMany("SellerServices")
.HasForeignKey("SellerProfileId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("SellerProfile");
});
modelBuilder.Entity("ArtPlatform.Database.Entities.SellerServiceOrder", b =>
{
b.HasOne("ArtPlatform.Database.Entities.User", "Buyer")
.WithMany("Orders")
.HasForeignKey("BuyerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("ArtPlatform.Database.Entities.UserSellerProfile", "Seller")
.WithMany()
.HasForeignKey("SellerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("ArtPlatform.Database.Entities.SellerService", "SellerService")
.WithMany()
.HasForeignKey("SellerServiceId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Buyer");
b.Navigation("Seller");
b.Navigation("SellerService");
});
modelBuilder.Entity("ArtPlatform.Database.Entities.SellerServiceOrderMessage", b =>
{
b.HasOne("ArtPlatform.Database.Entities.SellerServiceOrder", "SellerServiceOrder")
.WithMany("Messages")
.HasForeignKey("SellerServiceOrderId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("ArtPlatform.Database.Entities.User", "Sender")
.WithMany()
.HasForeignKey("SenderId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("SellerServiceOrder");
b.Navigation("Sender");
});
modelBuilder.Entity("ArtPlatform.Database.Entities.SellerServiceOrderMessageAttachment", b =>
{
b.HasOne("ArtPlatform.Database.Entities.SellerServiceOrderMessage", "SellerServiceOrderMessage")
.WithMany("Attachments")
.HasForeignKey("SellerServiceOrderMessageId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("SellerServiceOrderMessage");
});
modelBuilder.Entity("ArtPlatform.Database.Entities.SellerServiceOrderReview", b =>
{
b.HasOne("ArtPlatform.Database.Entities.User", "Reviewer")
.WithMany()
.HasForeignKey("ReviewerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("ArtPlatform.Database.Entities.SellerService", "SellerService")
.WithMany("Reviews")
.HasForeignKey("SellerServiceId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("ArtPlatform.Database.Entities.SellerServiceOrder", "SellerServiceOrder")
.WithMany("Reviews")
.HasForeignKey("SellerServiceOrderId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Reviewer");
b.Navigation("SellerService");
b.Navigation("SellerServiceOrder");
});
modelBuilder.Entity("ArtPlatform.Database.Entities.UserSellerProfile", b =>
{
b.HasOne("ArtPlatform.Database.Entities.User", "User")
.WithOne("UserSellerProfile")
.HasForeignKey("ArtPlatform.Database.Entities.UserSellerProfile", "UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("User");
});
modelBuilder.Entity("ArtPlatform.Database.Entities.SellerService", b =>
{
b.Navigation("PortfolioPieces");
b.Navigation("Reviews");
});
modelBuilder.Entity("ArtPlatform.Database.Entities.SellerServiceOrder", b =>
{
b.Navigation("Messages");
b.Navigation("Reviews");
});
modelBuilder.Entity("ArtPlatform.Database.Entities.SellerServiceOrderMessage", b =>
{
b.Navigation("Attachments");
});
modelBuilder.Entity("ArtPlatform.Database.Entities.User", b =>
{
b.Navigation("Orders");
b.Navigation("UserSellerProfile");
});
modelBuilder.Entity("ArtPlatform.Database.Entities.UserSellerProfile", b =>
{
b.Navigation("PortfolioPieces");
b.Navigation("SellerServices");
});
#pragma warning restore 612, 618
}
}
}