summaryrefslogtreecommitdiffstats
path: root/api/WhatApi/Tables/Place.cs
diff options
context:
space:
mode:
Diffstat (limited to 'api/WhatApi/Tables/Place.cs')
-rw-r--r--api/WhatApi/Tables/Place.cs22
1 files changed, 18 insertions, 4 deletions
diff --git a/api/WhatApi/Tables/Place.cs b/api/WhatApi/Tables/Place.cs
index ff95c96..abbd71a 100644
--- a/api/WhatApi/Tables/Place.cs
+++ b/api/WhatApi/Tables/Place.cs
@@ -1,11 +1,25 @@
-using NetTopologySuite.Geometries;
-
namespace WhatApi.Tables;
-public class Place
+public class Place : IAuditableEntity
{
public Guid Id { get; set; }
public Guid ContentId { get; set; }
- public Content Content { get; set; }
+ public Content Content { get; set; } = null!;
public required Point Location { get; set; }
+ public DateTimeOffset CreatedAtUtc { get; set; }
+ public DateTimeOffset? UpdatedAtUtc { get; set; }
+ public Guid CreatedBy { get; set; }
+ public Guid? UpdatedBy { get; set; }
+}
+
+public class PlaceConfiguration : IEntityTypeConfiguration<Place>
+{
+ public void Configure(EntityTypeBuilder<Place> builder) {
+ builder.ToTable("place");
+ builder.HasKey(x => x.Id);
+ builder.Property(x => x.Location).IsRequired();
+ builder.HasOne(x => x.Content);
+ builder.Property(x => x.Location).HasColumnType($"geometry(point,{Constants.Wgs84SpatialReferenceId})");
+ builder.HasIndex(x => x.Location).HasMethod("gist");
+ }
} \ No newline at end of file