// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using UnivateProperties_API.Context;

namespace UnivateProperties_API.Migrations
{
    [DbContext(typeof(DataContext))]
    [Migration("20201030070202_addFieldsToPayments1")]
    partial class addFieldsToPayments1
    {
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasAnnotation("ProductVersion", "2.2.0-rtm-35687")
                .HasAnnotation("Relational:MaxIdentifierLength", 128)
                .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

            modelBuilder.Entity("UnivateProperties_API.Model.Banks.Bank", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<DateTime>("Created");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<string>("Name");

                    b.Property<string>("UniversalBranchCode");

                    b.HasKey("Id");

                    b.ToTable("Banks");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Banks.BankAccount", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<string>("AccountHolder");

                    b.Property<string>("AccountNumber");

                    b.Property<int?>("BankId");

                    b.Property<DateTime>("Created");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<int?>("OwnerId");

                    b.HasKey("Id");

                    b.HasIndex("BankId");

                    b.HasIndex("OwnerId");

                    b.ToTable("BankAccounts");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Campaigns.Campaign", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<string>("Body");

                    b.Property<DateTime>("Created");

                    b.Property<DateTime>("EndDate");

                    b.Property<bool>("IsDeleted");

                    b.Property<string>("ItemBody");

                    b.Property<int>("ItemsPerRow");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<string>("Name");

                    b.Property<DateTime>("StartDate");

                    b.Property<string>("Subject");

                    b.HasKey("Id");

                    b.ToTable("Campaigns");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Campaigns.CampaignItem", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<int>("CampaignId");

                    b.Property<DateTime>("Created");

                    b.Property<string>("Image");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<int>("WeekId");

                    b.HasKey("Id");

                    b.HasIndex("CampaignId");

                    b.HasIndex("WeekId");

                    b.ToTable("CampaignItems");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Campaigns.CampaignItemPlaceHolder", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<int>("CampaignItemId");

                    b.Property<DateTime>("Created");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<string>("PlaceHolder");

                    b.Property<string>("Value");

                    b.HasKey("Id");

                    b.HasIndex("CampaignItemId");

                    b.ToTable("CampaignItemPlaceHolders");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Campaigns.CampaignPlaceHolder", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<string>("BoundTo");

                    b.Property<string>("BoundToClass");

                    b.Property<string>("BoundToClassDisplay");

                    b.Property<int>("CampaignId");

                    b.Property<DateTime>("Created");

                    b.Property<string>("Format");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<string>("Name");

                    b.HasKey("Id");

                    b.HasIndex("CampaignId");

                    b.ToTable("CampaignPlaceHolders");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Communication.Email", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<string>("BCC");

                    b.Property<string>("Body");

                    b.Property<string>("CC");

                    b.Property<string>("Comment");

                    b.Property<DateTime>("Created");

                    b.Property<bool>("IsBodyHtml");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<int>("SenderId");

                    b.Property<string>("Subject");

                    b.Property<string>("To");

                    b.Property<string>("ToDisplay");

                    b.HasKey("Id");

                    b.HasIndex("SenderId");

                    b.ToTable("Emails");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Communication.MailRecipient", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<DateTime>("Created");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<string>("RecipientMail");

                    b.Property<string>("RecipientName");

                    b.Property<string>("RecipientUsage");

                    b.HasKey("Id");

                    b.ToTable("MailRecipients");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Communication.PlaceHolder", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<string>("BoundTo");

                    b.Property<string>("BoundToClass");

                    b.Property<string>("BoundToClassDisplay");

                    b.Property<DateTime>("Created");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<string>("Name");

                    b.Property<int>("TemplateId");

                    b.HasKey("Id");

                    b.HasIndex("TemplateId");

                    b.ToTable("PlaceHolders");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Communication.SMTPAccount", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<string>("Address");

                    b.Property<DateTime>("Created");

                    b.Property<bool>("Default");

                    b.Property<string>("DisplayName");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<int>("SMTPHostId");

                    b.HasKey("Id");

                    b.HasIndex("SMTPHostId");

                    b.ToTable("Accounts");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Communication.SMTPHost", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<DateTime>("Created");

                    b.Property<string>("Host");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<bool>("NeedsAuthorize");

                    b.Property<string>("Password");

                    b.Property<bool>("UseSSL");

                    b.Property<string>("User");

                    b.HasKey("Id");

                    b.ToTable("Hosts");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Communication.Template", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<string>("Body");

                    b.Property<DateTime>("Created");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<string>("Name");

                    b.Property<int?>("SenderId");

                    b.Property<string>("Subject");

                    b.HasKey("Id");

                    b.HasIndex("SenderId");

                    b.ToTable("Templates");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Financial.ListingFee", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<double>("Amount");

                    b.Property<DateTime>("Created");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<string>("Name");

                    b.HasKey("Id");

                    b.ToTable("ListingFees");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Financial.Payment", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<decimal>("Amount");

                    b.Property<string>("Checksum");

                    b.Property<DateTime>("Created");

                    b.Property<int?>("CreatedById");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<string>("PayRequestId");

                    b.Property<string>("PaymentStatus");

                    b.Property<string>("PaymentToken");

                    b.Property<int?>("PropertyId");

                    b.Property<int?>("TimeshareWeekId");

                    b.HasKey("Id");

                    b.HasIndex("CreatedById");

                    b.HasIndex("PropertyId");

                    b.HasIndex("TimeshareWeekId");

                    b.ToTable("Payments");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Logging.SearchLog", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<DateTime>("Created");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<string>("Search");

                    b.Property<string>("Type");

                    b.HasKey("Id");

                    b.ToTable("SearchLogs");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Misc.Address", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<string>("City");

                    b.Property<DateTime>("Created");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<int?>("OwnerId");

                    b.Property<string>("PostalCode");

                    b.Property<string>("Province");

                    b.Property<string>("Street");

                    b.Property<string>("StreetNumber");

                    b.Property<string>("Suburb");

                    b.HasKey("Id");

                    b.HasIndex("OwnerId");

                    b.ToTable("Addresses");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Misc.Carousel", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<DateTime>("Created");

                    b.Property<string>("Header");

                    b.Property<string>("Image");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<int>("PropertyId");

                    b.Property<int>("TimeshareId");

                    b.HasKey("Id");

                    b.ToTable("Carousel");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Misc.Default", b =>
                {
                    b.Property<string>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<string>("Value");

                    b.HasKey("Id");

                    b.ToTable("Defaults");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Misc.Location", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<DateTime>("Created");

                    b.Property<bool>("IsDeleted");

                    b.Property<bool>("IsTesting");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<string>("PropertyImageLocation");

                    b.HasKey("Id");

                    b.ToTable("Location");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Misc.PlaceHolderFormat", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<DateTime>("Created");

                    b.Property<string>("DisplayName");

                    b.Property<string>("Format");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.HasKey("Id");

                    b.ToTable("PlaceHolderFormats");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Misc.TC", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<DateTime>("Created");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<string>("TermsConditions");

                    b.Property<string>("Version");

                    b.HasKey("Id");

                    b.ToTable("TermsConditions");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.ProcessFlow.BidItem", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<double>("Amount");

                    b.Property<int?>("BidMakerId");

                    b.Property<string>("Comment");

                    b.Property<DateTime>("Created");

                    b.Property<string>("DeclinedReason");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<int?>("PropertyId");

                    b.Property<int?>("StatusId");

                    b.Property<int?>("TimeshareWeekId");

                    b.HasKey("Id");

                    b.HasIndex("BidMakerId");

                    b.HasIndex("PropertyId");

                    b.HasIndex("StatusId");

                    b.HasIndex("TimeshareWeekId");

                    b.ToTable("BidItems");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.ProcessFlow.ProcessFlow", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<DateTime>("Created");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<int?>("PropertyID");

                    b.Property<int>("StatusID");

                    b.Property<int?>("TimeshareID");

                    b.HasKey("Id");

                    b.HasIndex("PropertyID");

                    b.HasIndex("StatusID");

                    b.HasIndex("TimeshareID");

                    b.ToTable("ProcessFlows");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Properties.Property", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<string>("AddressOther");

                    b.Property<string>("AddressURL");

                    b.Property<int?>("AgencyId");

                    b.Property<int?>("AgentId");

                    b.Property<string>("City");

                    b.Property<string>("Country");

                    b.Property<DateTime>("Created");

                    b.Property<DateTime>("CutOffDisplayDate");

                    b.Property<DateTime>("DateAvailable");

                    b.Property<DateTime>("DatePublished");

                    b.Property<string>("Description");

                    b.Property<bool>("IsDeleted");

                    b.Property<bool>("IsSale");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<decimal>("OperationalCosts");

                    b.Property<int?>("OwnerId");

                    b.Property<string>("PostalCode");

                    b.Property<decimal>("Price");

                    b.Property<string>("PricePer");

                    b.Property<bool>("PriceRedused");

                    b.Property<string>("PropertCoords");

                    b.Property<string>("PropertyName");

                    b.Property<string>("PropertyRef");

                    b.Property<int>("PropertyTypeId");

                    b.Property<string>("Province");

                    b.Property<bool>("Published");

                    b.Property<string>("ShortDescription");

                    b.Property<bool>("ShowAddress");

                    b.Property<DateTime>("StatusDate");

                    b.Property<int?>("StatusId");

                    b.Property<string>("StreetName");

                    b.Property<string>("StreetNumber");

                    b.Property<string>("Suburb");

                    b.Property<string>("Unit");

                    b.Property<string>("Video");

                    b.Property<string>("VirtualTour");

                    b.HasKey("Id");

                    b.HasIndex("AgencyId");

                    b.HasIndex("AgentId");

                    b.HasIndex("OwnerId");

                    b.HasIndex("PropertyTypeId");

                    b.ToTable("Properties");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Properties.PropertyImage", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<DateTime>("Created");

                    b.Property<string>("Image");

                    b.Property<bool>("IsDefault");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<int>("PropertyId");

                    b.HasKey("Id");

                    b.HasIndex("PropertyId");

                    b.ToTable("PropertyImages");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Properties.PropertyType", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<DateTime>("Created");

                    b.Property<string>("Description");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<int>("UsageType");

                    b.HasKey("Id");

                    b.ToTable("PropertyTypes");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Properties.PropertyUserField", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<DateTime>("Created");

                    b.Property<string>("Description");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<int>("PropertyId");

                    b.Property<int>("UserDefinedFieldId");

                    b.Property<string>("Value");

                    b.HasKey("Id");

                    b.HasIndex("PropertyId");

                    b.HasIndex("UserDefinedFieldId");

                    b.ToTable("PropertyUserFields");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Properties.UserDefinedField", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<DateTime>("Created");

                    b.Property<string>("FieldName");

                    b.Property<string>("FieldType");

                    b.Property<int>("GroupId");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<int>("Rank");

                    b.HasKey("Id");

                    b.HasIndex("GroupId");

                    b.ToTable("UserDefinedFields");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Properties.UserDefinedGroup", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<DateTime>("Created");

                    b.Property<string>("Description");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<int>("Rank");

                    b.Property<int>("UsageType");

                    b.HasKey("Id");

                    b.ToTable("UserDefinedGroups");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Region.City", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<string>("Code");

                    b.Property<DateTime>("Created");

                    b.Property<string>("Description");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<int>("ProvinceId");

                    b.HasKey("Id");

                    b.HasIndex("ProvinceId");

                    b.ToTable("Cities");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Region.Province", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<string>("Code");

                    b.Property<DateTime>("Created");

                    b.Property<string>("Description");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.HasKey("Id");

                    b.ToTable("Provinces");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Region.Suburb", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<int>("CityId");

                    b.Property<DateTime>("Created");

                    b.Property<string>("Description");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<string>("PostalCode");

                    b.HasKey("Id");

                    b.HasIndex("CityId");

                    b.ToTable("Suburbs");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Timeshare.Season", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<DateTime>("Created");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<string>("Name");

                    b.HasKey("Id");

                    b.ToTable("Seasons");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Timeshare.Status", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<string>("Code");

                    b.Property<DateTime>("Created");

                    b.Property<string>("Description");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<int>("StatusType");

                    b.HasKey("Id");

                    b.ToTable("Status");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Timeshare.TimeshareWeek", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<int?>("AgencyId");

                    b.Property<bool>("AgentAsRep");

                    b.Property<double>("AgentCommision");

                    b.Property<int?>("AgentId");

                    b.Property<DateTime>("ArrivalDate");

                    b.Property<double>("AskingPrice");

                    b.Property<string>("BankedWith");

                    b.Property<int>("Bedrooms");

                    b.Property<DateTime>("Created");

                    b.Property<bool>("CurrentYearBanked");

                    b.Property<DateTime>("DateMandated");

                    b.Property<DateTime>("DepartureDate");

                    b.Property<string>("DisplayOwner");

                    b.Property<bool>("IsDeleted");

                    b.Property<bool>("LeviesPaidInFull");

                    b.Property<double>("LevyAmount");

                    b.Property<bool>("Mandate");

                    b.Property<int>("MaxSleep");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<string>("Module");

                    b.Property<DateTime>("OriginalPurchaseDate");

                    b.Property<double>("OriginalPurchasePrice");

                    b.Property<bool>("OtherResort");

                    b.Property<string>("OtherResortName");

                    b.Property<int>("OwnerId");

                    b.Property<bool>("Publish");

                    b.Property<DateTime>("PulbishedDate");

                    b.Property<bool>("ReferedByAgent");

                    b.Property<int>("RegionId");

                    b.Property<string>("ResortCode");

                    b.Property<string>("ResortName");

                    b.Property<string>("Season");

                    b.Property<double>("SellPrice");

                    b.Property<int>("StatusId");

                    b.Property<string>("UnitNumber");

                    b.Property<string>("WeekNumber");

                    b.Property<bool>("WeekPlacedForRental");

                    b.Property<string>("WeekStatus");

                    b.Property<int>("WeekType");

                    b.HasKey("Id");

                    b.HasIndex("AgencyId");

                    b.HasIndex("AgentId");

                    b.HasIndex("OwnerId");

                    b.HasIndex("RegionId");

                    b.HasIndex("StatusId");

                    b.ToTable("Weeks");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Timeshare.UnitConfiguration", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<int>("Adults");

                    b.Property<int>("Bedrooms");

                    b.Property<int>("Children");

                    b.Property<string>("Code");

                    b.Property<DateTime>("Created");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.HasKey("Id");

                    b.HasIndex("Code")
                        .IsUnique()
                        .HasFilter("[Code] IS NOT NULL");

                    b.ToTable("UnitConfigurations");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Timeshare.UnitConfigurationType", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<DateTime>("Created");

                    b.Property<string>("Description");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<int>("UnitConfigurationId");

                    b.HasKey("Id");

                    b.HasIndex("UnitConfigurationId");

                    b.ToTable("UnitConfigurationTypes");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Users.Agency", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<string>("AgencyName");

                    b.Property<string>("CompanyRegNumber");

                    b.Property<DateTime>("Created");

                    b.Property<string>("EAABEFFCNumber");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.HasKey("Id");

                    b.ToTable("Agencies");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Users.Agent", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<int?>("AgencyId");

                    b.Property<string>("CellNumber");

                    b.Property<DateTime>("Created");

                    b.Property<string>("Email");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<string>("Name");

                    b.Property<string>("Surname");

                    b.Property<string>("Telephone");

                    b.Property<int?>("TemplateId");

                    b.Property<int?>("UserId");

                    b.HasKey("Id");

                    b.HasIndex("AgencyId");

                    b.HasIndex("TemplateId");

                    b.HasIndex("UserId");

                    b.ToTable("Agents");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Users.Individual", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<int?>("AddressId");

                    b.Property<int?>("BankAccountId");

                    b.Property<string>("CellNumber");

                    b.Property<string>("CompanyRegNumber");

                    b.Property<DateTime>("Created");

                    b.Property<string>("Email");

                    b.Property<int>("HowMarried");

                    b.Property<string>("IdNumber");

                    b.Property<string>("IncomeTaxNumber");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<string>("Name");

                    b.Property<string>("SpouseCellnumber");

                    b.Property<string>("SpouseEmail");

                    b.Property<string>("SpouseName");

                    b.Property<string>("SpouseSurname");

                    b.Property<string>("SpouseTelephone");

                    b.Property<string>("Surname");

                    b.Property<string>("Telephone");

                    b.Property<int?>("TemplateId");

                    b.Property<int?>("UserId");

                    b.HasKey("Id");

                    b.HasIndex("AddressId");

                    b.HasIndex("BankAccountId");

                    b.HasIndex("TemplateId");

                    b.HasIndex("UserId");

                    b.HasIndex("Telephone", "CellNumber", "Email")
                        .IsUnique()
                        .HasFilter("[Telephone] IS NOT NULL AND [CellNumber] IS NOT NULL AND [Email] IS NOT NULL");

                    b.ToTable("Individuals");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Users.Person", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<string>("CellNumber");

                    b.Property<DateTime>("Created");

                    b.Property<string>("Email");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<string>("Name");

                    b.Property<string>("Surname");

                    b.Property<string>("Telephone");

                    b.Property<int?>("UserId");

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("Person");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Users.User", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<bool>("AcceptedTerms");

                    b.Property<DateTime>("Created");

                    b.Property<string>("FPToken");

                    b.Property<bool>("IsDeleted");

                    b.Property<bool>("LoginPasswordChange");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<byte[]>("PasswordHash");

                    b.Property<byte[]>("PasswordSalt");

                    b.Property<string>("Role");

                    b.Property<string>("Token");

                    b.Property<string>("Username");

                    b.Property<bool>("Verified");

                    b.HasKey("Id");

                    b.HasIndex("Username")
                        .IsUnique()
                        .HasFilter("[Username] IS NOT NULL");

                    b.ToTable("Users");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Users.UserRole", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<DateTime>("Created");

                    b.Property<bool>("IsDeleted");

                    b.Property<DateTime>("Modified");

                    b.Property<string>("ModifiedBy");

                    b.Property<string>("RoleDescription");

                    b.Property<string>("RoleName");

                    b.HasKey("Id");

                    b.ToTable("Roles");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Banks.BankAccount", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Banks.Bank", "Bank")
                        .WithMany()
                        .HasForeignKey("BankId");

                    b.HasOne("UnivateProperties_API.Model.Users.Individual", "Owner")
                        .WithMany()
                        .HasForeignKey("OwnerId");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Campaigns.CampaignItem", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Campaigns.Campaign", "Campaign")
                        .WithMany("Items")
                        .HasForeignKey("CampaignId")
                        .OnDelete(DeleteBehavior.Cascade);

                    b.HasOne("UnivateProperties_API.Model.Timeshare.TimeshareWeek", "Week")
                        .WithMany()
                        .HasForeignKey("WeekId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Campaigns.CampaignItemPlaceHolder", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Campaigns.CampaignItem", "CampaignItem")
                        .WithMany("CampaignItemPlaceHolder")
                        .HasForeignKey("CampaignItemId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Campaigns.CampaignPlaceHolder", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Campaigns.Campaign", "Campaign")
                        .WithMany("PlaceHolders")
                        .HasForeignKey("CampaignId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Communication.Email", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Communication.SMTPAccount", "Sender")
                        .WithMany("Emails")
                        .HasForeignKey("SenderId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Communication.PlaceHolder", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Communication.Template", "Template")
                        .WithMany("PlaceHolders")
                        .HasForeignKey("TemplateId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Communication.SMTPAccount", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Communication.SMTPHost", "SMTPHost")
                        .WithMany("SMTPAccounts")
                        .HasForeignKey("SMTPHostId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Communication.Template", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Communication.SMTPAccount", "Sender")
                        .WithMany("Templates")
                        .HasForeignKey("SenderId");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Financial.Payment", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Users.User", "CreatedBy")
                        .WithMany()
                        .HasForeignKey("CreatedById");

                    b.HasOne("UnivateProperties_API.Model.Properties.Property", "Property")
                        .WithMany()
                        .HasForeignKey("PropertyId");

                    b.HasOne("UnivateProperties_API.Model.Timeshare.TimeshareWeek", "TimeshareWeek")
                        .WithMany()
                        .HasForeignKey("TimeshareWeekId");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Misc.Address", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Users.Individual", "Owner")
                        .WithMany()
                        .HasForeignKey("OwnerId");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.ProcessFlow.BidItem", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Users.Individual", "BidMaker")
                        .WithMany()
                        .HasForeignKey("BidMakerId");

                    b.HasOne("UnivateProperties_API.Model.Properties.Property", "Property")
                        .WithMany("BidItems")
                        .HasForeignKey("PropertyId");

                    b.HasOne("UnivateProperties_API.Model.Timeshare.Status", "Status")
                        .WithMany()
                        .HasForeignKey("StatusId");

                    b.HasOne("UnivateProperties_API.Model.Timeshare.TimeshareWeek", "TimeshareWeek")
                        .WithMany("BidItems")
                        .HasForeignKey("TimeshareWeekId");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.ProcessFlow.ProcessFlow", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Properties.Property", "Property")
                        .WithMany("ProcessFlows")
                        .HasForeignKey("PropertyID");

                    b.HasOne("UnivateProperties_API.Model.Timeshare.Status", "Status")
                        .WithMany()
                        .HasForeignKey("StatusID")
                        .OnDelete(DeleteBehavior.Cascade);

                    b.HasOne("UnivateProperties_API.Model.Timeshare.TimeshareWeek", "Timeshare")
                        .WithMany("ProcessFlows")
                        .HasForeignKey("TimeshareID");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Properties.Property", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Users.Agency", "Agency")
                        .WithMany("Properties")
                        .HasForeignKey("AgencyId");

                    b.HasOne("UnivateProperties_API.Model.Users.Agent", "Agent")
                        .WithMany("Properties")
                        .HasForeignKey("AgentId");

                    b.HasOne("UnivateProperties_API.Model.Users.Individual", "Owner")
                        .WithMany("Properties")
                        .HasForeignKey("OwnerId");

                    b.HasOne("UnivateProperties_API.Model.Properties.PropertyType", "PropertyType")
                        .WithMany()
                        .HasForeignKey("PropertyTypeId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Properties.PropertyImage", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Properties.Property", "Property")
                        .WithMany("PropertyImages")
                        .HasForeignKey("PropertyId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Properties.PropertyUserField", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Properties.Property", "Property")
                        .WithMany("PropertyUserFields")
                        .HasForeignKey("PropertyId")
                        .OnDelete(DeleteBehavior.Cascade);

                    b.HasOne("UnivateProperties_API.Model.Properties.UserDefinedField", "UserDefinedField")
                        .WithMany()
                        .HasForeignKey("UserDefinedFieldId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Properties.UserDefinedField", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Properties.UserDefinedGroup", "Group")
                        .WithMany("Fields")
                        .HasForeignKey("GroupId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Region.City", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Region.Province", "Province")
                        .WithMany()
                        .HasForeignKey("ProvinceId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Region.Suburb", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Region.City", "City")
                        .WithMany()
                        .HasForeignKey("CityId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Timeshare.TimeshareWeek", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Users.Agency", "Agency")
                        .WithMany()
                        .HasForeignKey("AgencyId");

                    b.HasOne("UnivateProperties_API.Model.Users.Agent", "Agent")
                        .WithMany()
                        .HasForeignKey("AgentId");

                    b.HasOne("UnivateProperties_API.Model.Users.Individual", "Owner")
                        .WithMany()
                        .HasForeignKey("OwnerId")
                        .OnDelete(DeleteBehavior.Cascade);

                    b.HasOne("UnivateProperties_API.Model.Region.Province", "Region")
                        .WithMany()
                        .HasForeignKey("RegionId")
                        .OnDelete(DeleteBehavior.Cascade);

                    b.HasOne("UnivateProperties_API.Model.Timeshare.Status", "Status")
                        .WithMany()
                        .HasForeignKey("StatusId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Timeshare.UnitConfigurationType", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Timeshare.UnitConfiguration", "UnitConfiguration")
                        .WithMany("Types")
                        .HasForeignKey("UnitConfigurationId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Users.Agent", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Users.Agency", "Agency")
                        .WithMany("Agents")
                        .HasForeignKey("AgencyId");

                    b.HasOne("UnivateProperties_API.Model.Communication.Template")
                        .WithMany("AgentBCC")
                        .HasForeignKey("TemplateId");

                    b.HasOne("UnivateProperties_API.Model.Users.User", "User")
                        .WithMany()
                        .HasForeignKey("UserId");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Users.Individual", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Misc.Address", "Address")
                        .WithMany()
                        .HasForeignKey("AddressId");

                    b.HasOne("UnivateProperties_API.Model.Banks.BankAccount", "BankAccount")
                        .WithMany()
                        .HasForeignKey("BankAccountId");

                    b.HasOne("UnivateProperties_API.Model.Communication.Template")
                        .WithMany("IndividualBCC")
                        .HasForeignKey("TemplateId");

                    b.HasOne("UnivateProperties_API.Model.Users.User", "User")
                        .WithMany()
                        .HasForeignKey("UserId");
                });

            modelBuilder.Entity("UnivateProperties_API.Model.Users.Person", b =>
                {
                    b.HasOne("UnivateProperties_API.Model.Users.User", "User")
                        .WithMany()
                        .HasForeignKey("UserId");
                });
#pragma warning restore 612, 618
        }
    }
}