//
using System;
using System.Collections.Generic;
using System.Net;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using NetTopologySuite.Geometries;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
using WhatApi;
#nullable disable
namespace WhatApi.Migrations
{
[DbContext(typeof(Database))]
partial class DatabaseModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.9")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "postgis");
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
modelBuilder.Entity("WhatApi.Tables.AuditTrail", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.PrimitiveCollection>("ChangedColumns")
.IsRequired()
.HasColumnType("jsonb");
b.Property("DateUtc")
.HasColumnType("timestamp with time zone");
b.Property("EntityName")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("character varying(100)");
b.Property>("NewValues")
.IsRequired()
.HasColumnType("jsonb");
b.Property>("OldValues")
.IsRequired()
.HasColumnType("jsonb");
b.Property("PrimaryKey")
.HasMaxLength(100)
.HasColumnType("character varying(100)");
b.Property("TrailType")
.IsRequired()
.HasColumnType("text");
b.Property("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("EntityName");
b.ToTable("audit_trails", (string)null);
});
modelBuilder.Entity("WhatApi.Tables.Content", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property("BlobId")
.HasColumnType("uuid");
b.Property("CreatedAtUtc")
.HasColumnType("timestamp with time zone");
b.Property("CreatedBy")
.HasColumnType("uuid");
b.Property("Ip")
.IsRequired()
.HasColumnType("inet");
b.Property("Mime")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("character varying(100)");
b.Property("UpdatedAtUtc")
.HasColumnType("timestamp with time zone");
b.Property("UpdatedBy")
.HasColumnType("uuid");
b.HasKey("Id");
b.ToTable("content", (string)null);
});
modelBuilder.Entity("WhatApi.Tables.Place", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property("ContentId")
.HasColumnType("uuid");
b.Property("CreatedAtUtc")
.HasColumnType("timestamp with time zone");
b.Property("CreatedBy")
.HasColumnType("uuid");
b.Property("Location")
.IsRequired()
.HasColumnType("geometry(point,4326)");
b.Property("UpdatedAtUtc")
.HasColumnType("timestamp with time zone");
b.Property("UpdatedBy")
.HasColumnType("uuid");
b.Property("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("ContentId");
b.HasIndex("Location");
NpgsqlIndexBuilderExtensions.HasMethod(b.HasIndex("Location"), "gist");
b.HasIndex("UserId");
b.ToTable("place", (string)null);
});
modelBuilder.Entity("WhatApi.Tables.User", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property("CreatedAtUtc")
.HasColumnType("timestamp with time zone");
b.Property("CreatedBy")
.HasColumnType("uuid");
b.Property("Email")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("character varying(100)");
b.Property("LastSeen")
.HasColumnType("timestamp with time zone");
b.Property("Name")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property("Password")
.IsRequired()
.HasColumnType("text");
b.Property("UpdatedAtUtc")
.HasColumnType("timestamp with time zone");
b.Property("UpdatedBy")
.HasColumnType("uuid");
b.HasKey("Id");
b.ToTable("user", (string)null);
});
modelBuilder.Entity("WhatApi.Tables.Place", b =>
{
b.HasOne("WhatApi.Tables.Content", "Content")
.WithMany()
.HasForeignKey("ContentId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("WhatApi.Tables.User", null)
.WithMany("Places")
.HasForeignKey("UserId");
b.Navigation("Content");
});
modelBuilder.Entity("WhatApi.Tables.User", b =>
{
b.Navigation("Places");
});
#pragma warning restore 612, 618
}
}
}