flower comment supported
This commit is contained in:
parent
cec1e3bf71
commit
697631c8d3
@ -67,6 +67,7 @@ public sealed class Constants
|
||||
[(int)EventTypes.Sell] = new("sell", "出售", true),
|
||||
[(int)EventTypes.Share] = new("share", "分享"),
|
||||
[(int)EventTypes.Move] = new("move", "移动"),
|
||||
[(int)EventTypes.Comment] = new("comment", "评论"),
|
||||
};
|
||||
}
|
||||
|
||||
@ -103,6 +104,10 @@ public enum EventTypes
|
||||
/// 移动
|
||||
/// </summary>
|
||||
Move = 14,
|
||||
/// <summary>
|
||||
/// 评论
|
||||
/// </summary>
|
||||
Comment = 15,
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -37,6 +37,7 @@ public class EventApiController : BaseController
|
||||
/// p: bool?
|
||||
///
|
||||
/// </remarks>
|
||||
/// <param name="flowerId">花草唯一 id</param>
|
||||
/// <param name="eventId">事件类型 id</param>
|
||||
/// <param name="key">查询关键字</param>
|
||||
/// <param name="from">起始日期</param>
|
||||
@ -56,6 +57,7 @@ public class EventApiController : BaseController
|
||||
[HttpGet]
|
||||
[ResponseCache(NoStore = true, Location = ResponseCacheLocation.None)]
|
||||
public ActionResult<RecordItem[]> GetRecords(
|
||||
[FromQuery(Name = "fid")] int? flowerId,
|
||||
[FromQuery(Name = "eid")] int? eventId,
|
||||
[FromQuery] string? key,
|
||||
[FromQuery] long? from,
|
||||
@ -74,7 +76,25 @@ public class EventApiController : BaseController
|
||||
|
||||
SaveDatabase();
|
||||
|
||||
var records = database.Records.Where(r => r.OwnerId == user.Id);
|
||||
var records = database.Records.Where(r => r.OwnerId == user.Id).Select(r => new RecordItem
|
||||
{
|
||||
Id = r.Id,
|
||||
OwnerId = r.OwnerId,
|
||||
ByUserId = r.ByUserId,
|
||||
DateUnixTime = r.DateUnixTime,
|
||||
EventId = r.EventId,
|
||||
FlowerId = r.FlowerId,
|
||||
IsHidden = r.IsHidden,
|
||||
Latitude = r.Latitude,
|
||||
Longitude = r.Longitude,
|
||||
Title = r.Title,
|
||||
Memo = r.Memo,
|
||||
ByUserName = string.IsNullOrEmpty(r.ByUserName) && r.ByUserId != null ? database.Users.Single(u => u.Id == r.ByUserId).Name : r.ByUserName
|
||||
});
|
||||
if (flowerId != null)
|
||||
{
|
||||
records = records.Where(r => r.FlowerId == flowerId);
|
||||
}
|
||||
if (eventId != null)
|
||||
{
|
||||
records = records.Where(r => r.EventId == eventId);
|
||||
@ -99,7 +119,16 @@ public class EventApiController : BaseController
|
||||
records = records.Include(r => r.Photos);
|
||||
}
|
||||
|
||||
return Ok(records.ToArray());
|
||||
var array = records.ToArray();
|
||||
foreach (var r in array)
|
||||
{
|
||||
if (string.IsNullOrEmpty(r.ByUserName))
|
||||
{
|
||||
r.ByUserName = user.Name;
|
||||
}
|
||||
}
|
||||
|
||||
return Ok(array);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -249,8 +278,10 @@ public class EventApiController : BaseController
|
||||
FlowerId = @event.FlowerId,
|
||||
EventId = @event.CategoryId,
|
||||
DateUnixTime = now,
|
||||
IsHidden = @event.IsHidden,
|
||||
ByUserId = @event.ByUser == null ? user.Id : null,
|
||||
ByUserName = @event.ByUser,
|
||||
Title = @event.Title,
|
||||
Memo = @event.Memo,
|
||||
Latitude = @event.Latitude,
|
||||
Longitude = @event.Longitude
|
||||
@ -357,6 +388,7 @@ public class EventApiController : BaseController
|
||||
record.FlowerId = update.FlowerId;
|
||||
record.EventId = update.CategoryId;
|
||||
record.DateUnixTime = now;
|
||||
record.IsHidden = update.IsHidden;
|
||||
if (update.ByUser == null)
|
||||
{
|
||||
record.ByUserId = user.Id;
|
||||
@ -367,6 +399,7 @@ public class EventApiController : BaseController
|
||||
record.ByUserId = null;
|
||||
record.ByUserName = update.ByUser;
|
||||
}
|
||||
record.Title = update.Title;
|
||||
record.Memo = update.Memo;
|
||||
record.Latitude = update.Latitude;
|
||||
record.Longitude = update.Longitude;
|
||||
|
@ -25,21 +25,26 @@ public record EventParameter
|
||||
/// <summary>
|
||||
/// 操作人姓名
|
||||
/// </summary>
|
||||
[Required]
|
||||
[FromForm(Name = "byUser")]
|
||||
public required string ByUser { get; init; }
|
||||
public string? ByUser { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// 标题
|
||||
/// </summary>
|
||||
[FromForm(Name = "title")]
|
||||
public string? Title { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注
|
||||
/// </summary>
|
||||
[FromForm(Name = "memo")]
|
||||
public string? Memo { get; set; }
|
||||
public string? Memo { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// 纬度
|
||||
/// </summary>
|
||||
[FromForm(Name = "lat")]
|
||||
public double? Latitude { get; set; }
|
||||
public double? Latitude { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// 经度
|
||||
@ -47,6 +52,12 @@ public record EventParameter
|
||||
[FromForm(Name = "lon")]
|
||||
public double? Longitude { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否为私有记录
|
||||
/// </summary>
|
||||
[FromForm(Name = "hidden")]
|
||||
public bool? IsHidden { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联的照片
|
||||
/// </summary>
|
||||
@ -64,5 +75,5 @@ public record EventUpdateParameter : EventParameter
|
||||
/// </summary>
|
||||
[Required]
|
||||
[FromForm(Name = "id")]
|
||||
public required int Id { get; set; }
|
||||
public required int Id { get; init; }
|
||||
}
|
||||
|
@ -301,7 +301,7 @@ public class FlowerApiController : BaseController
|
||||
|
||||
var loc = database.Records
|
||||
.OrderByDescending(r => r.DateUnixTime)
|
||||
.FirstOrDefault(r => r.FlowerId == id && (r.EventId == (int)EventTypes.Move || r.EventId == (int)EventTypes.Born));
|
||||
.SingleOrDefault(r => r.FlowerId == id && (r.EventId == (int)EventTypes.Move || r.EventId == (int)EventTypes.Born));
|
||||
if (loc != null)
|
||||
{
|
||||
item.Location = loc.Memo;
|
||||
|
@ -64,25 +64,25 @@ public record FlowerParameter : CoverParameter
|
||||
/// 备注
|
||||
/// </summary>
|
||||
[FromForm(Name = "memo")]
|
||||
public string? Memo { get; set; }
|
||||
public string? Memo { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// 纬度
|
||||
/// </summary>
|
||||
[FromForm(Name = "lat")]
|
||||
public double? Latitude { get; set; }
|
||||
public double? Latitude { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// 经度
|
||||
/// </summary>
|
||||
[FromForm(Name = "lon")]
|
||||
public double? Longitude { get; set; }
|
||||
public double? Longitude { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// 存放位置
|
||||
/// </summary>
|
||||
[FromForm(Name = "location")]
|
||||
public string? Location { get; set; }
|
||||
public string? Location { get; init; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -114,13 +114,13 @@ public record FlowerCoverParameter : CoverParameter
|
||||
/// 纬度
|
||||
/// </summary>
|
||||
[FromForm(Name = "lat")]
|
||||
public double? Latitude { get; set; }
|
||||
public double? Latitude { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// 经度
|
||||
/// </summary>
|
||||
[FromForm(Name = "lon")]
|
||||
public double? Longitude { get; set; }
|
||||
public double? Longitude { get; init; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -93,7 +93,7 @@ public class ImageController : BaseController
|
||||
{
|
||||
return BadRequest();
|
||||
}
|
||||
if (!referrer.StartsWith(BaseUrl))
|
||||
if (!referrer.StartsWith("https://app.tsanie.org"))
|
||||
{
|
||||
return Forbid();
|
||||
}
|
||||
|
@ -61,6 +61,12 @@ public class RecordItem : ILocation
|
||||
[JsonPropertyName("date")]
|
||||
public required long DateUnixTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否为私有记录
|
||||
/// </summary>
|
||||
[Column("hidden")]
|
||||
public bool? IsHidden { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作人 uid
|
||||
/// </summary>
|
||||
@ -73,6 +79,12 @@ public class RecordItem : ILocation
|
||||
[Column("byname")]
|
||||
public string? ByUserName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 标题
|
||||
/// </summary>
|
||||
[Column("title")]
|
||||
public string? Title { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注
|
||||
/// </summary>
|
||||
|
357
Server/Migrations/20230804035653_Add-Hidden-For-Record.Designer.cs
generated
Normal file
357
Server/Migrations/20230804035653_Add-Hidden-For-Record.Designer.cs
generated
Normal file
@ -0,0 +1,357 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using Blahblah.FlowerStory.Server.Data;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace Blahblah.FlowerStory.Server.Migrations
|
||||
{
|
||||
[DbContext(typeof(FlowerDatabase))]
|
||||
[Migration("20230804035653_Add-Hidden-For-Record")]
|
||||
partial class AddHiddenForRecord
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
{
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder.HasAnnotation("ProductVersion", "7.0.9");
|
||||
|
||||
modelBuilder.Entity("Blahblah.FlowerStory.Server.Data.Model.FlowerItem", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("fid");
|
||||
|
||||
b.Property<int>("CategoryId")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("categoryid");
|
||||
|
||||
b.Property<decimal?>("Cost")
|
||||
.HasColumnType("real")
|
||||
.HasColumnName("cost");
|
||||
|
||||
b.Property<long>("DateBuyUnixTime")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("datebuy")
|
||||
.HasAnnotation("Relational:JsonPropertyName", "dateBuy");
|
||||
|
||||
b.Property<double?>("Latitude")
|
||||
.HasColumnType("REAL")
|
||||
.HasColumnName("latitude");
|
||||
|
||||
b.Property<double?>("Longitude")
|
||||
.HasColumnType("REAL")
|
||||
.HasColumnName("longitude");
|
||||
|
||||
b.Property<string>("Memo")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("memo");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("name");
|
||||
|
||||
b.Property<int>("OwnerId")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("uid");
|
||||
|
||||
b.Property<string>("Purchase")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("purchase");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("OwnerId");
|
||||
|
||||
b.ToTable("flowers");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Blahblah.FlowerStory.Server.Data.Model.PhotoItem", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("pid");
|
||||
|
||||
b.Property<long>("DateUploadUnixTime")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("dateupload")
|
||||
.HasAnnotation("Relational:JsonPropertyName", "dateUpload");
|
||||
|
||||
b.Property<string>("FileName")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("filename");
|
||||
|
||||
b.Property<string>("FileType")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("filetype");
|
||||
|
||||
b.Property<int?>("FlowerId")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("fid");
|
||||
|
||||
b.Property<int?>("Height")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("height");
|
||||
|
||||
b.Property<int>("OwnerId")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("uid");
|
||||
|
||||
b.Property<string>("Path")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("path");
|
||||
|
||||
b.Property<int?>("RecordId")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("rid");
|
||||
|
||||
b.Property<int?>("Width")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("width");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("FlowerId");
|
||||
|
||||
b.HasIndex("OwnerId");
|
||||
|
||||
b.HasIndex("RecordId");
|
||||
|
||||
b.ToTable("photos");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Blahblah.FlowerStory.Server.Data.Model.RecordItem", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("rid");
|
||||
|
||||
b.Property<int?>("ByUserId")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("byuid");
|
||||
|
||||
b.Property<string>("ByUserName")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("byname");
|
||||
|
||||
b.Property<long>("DateUnixTime")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("date")
|
||||
.HasAnnotation("Relational:JsonPropertyName", "date");
|
||||
|
||||
b.Property<int>("EventId")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("eid");
|
||||
|
||||
b.Property<int>("FlowerId")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("fid");
|
||||
|
||||
b.Property<bool?>("Hidden")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("hidden");
|
||||
|
||||
b.Property<double?>("Latitude")
|
||||
.HasColumnType("REAL")
|
||||
.HasColumnName("latitude");
|
||||
|
||||
b.Property<double?>("Longitude")
|
||||
.HasColumnType("REAL")
|
||||
.HasColumnName("longitude");
|
||||
|
||||
b.Property<string>("Memo")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("memo");
|
||||
|
||||
b.Property<int>("OwnerId")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("uid");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("FlowerId");
|
||||
|
||||
b.HasIndex("OwnerId");
|
||||
|
||||
b.ToTable("records");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Blahblah.FlowerStory.Server.Data.Model.TokenItem", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("tid");
|
||||
|
||||
b.Property<long>("ActiveDateUnixTime")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("activedate")
|
||||
.HasAnnotation("Relational:JsonPropertyName", "activeDate");
|
||||
|
||||
b.Property<string>("ClientAgent")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("clientagent");
|
||||
|
||||
b.Property<string>("ClientApp")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("clientapp");
|
||||
|
||||
b.Property<string>("DeviceId")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("deviceid");
|
||||
|
||||
b.Property<long>("ExpireDateUnixTime")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("expiredate")
|
||||
.HasAnnotation("Relational:JsonPropertyName", "expireDate");
|
||||
|
||||
b.Property<int>("ExpireSeconds")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("expiresecs");
|
||||
|
||||
b.Property<long>("LogonDateUnixTime")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("logondate")
|
||||
.HasAnnotation("Relational:JsonPropertyName", "logonDate");
|
||||
|
||||
b.Property<int>("UserId")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("uid");
|
||||
|
||||
b.Property<string>("VerifyCode")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("verifycode");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("tokens");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Blahblah.FlowerStory.Server.Data.Model.UserItem", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("uid");
|
||||
|
||||
b.Property<long?>("ActiveDateUnixTime")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("activedate");
|
||||
|
||||
b.Property<byte[]>("Avatar")
|
||||
.HasColumnType("BLOB")
|
||||
.HasColumnName("avatar");
|
||||
|
||||
b.Property<string>("Email")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("email");
|
||||
|
||||
b.Property<int>("Level")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("level");
|
||||
|
||||
b.Property<string>("Mobile")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("mobile");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("name");
|
||||
|
||||
b.Property<string>("Password")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("password");
|
||||
|
||||
b.Property<long>("RegisterDateUnixTime")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("regdate")
|
||||
.HasAnnotation("Relational:JsonPropertyName", "registerDate");
|
||||
|
||||
b.Property<string>("UserId")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("id");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("users");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Blahblah.FlowerStory.Server.Data.Model.FlowerItem", b =>
|
||||
{
|
||||
b.HasOne("Blahblah.FlowerStory.Server.Data.Model.UserItem", "Owner")
|
||||
.WithMany()
|
||||
.HasForeignKey("OwnerId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Owner");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Blahblah.FlowerStory.Server.Data.Model.PhotoItem", b =>
|
||||
{
|
||||
b.HasOne("Blahblah.FlowerStory.Server.Data.Model.FlowerItem", "Flower")
|
||||
.WithMany("Photos")
|
||||
.HasForeignKey("FlowerId");
|
||||
|
||||
b.HasOne("Blahblah.FlowerStory.Server.Data.Model.UserItem", "Owner")
|
||||
.WithMany()
|
||||
.HasForeignKey("OwnerId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Blahblah.FlowerStory.Server.Data.Model.RecordItem", "Record")
|
||||
.WithMany("Photos")
|
||||
.HasForeignKey("RecordId");
|
||||
|
||||
b.Navigation("Flower");
|
||||
|
||||
b.Navigation("Owner");
|
||||
|
||||
b.Navigation("Record");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Blahblah.FlowerStory.Server.Data.Model.RecordItem", b =>
|
||||
{
|
||||
b.HasOne("Blahblah.FlowerStory.Server.Data.Model.FlowerItem", "Flower")
|
||||
.WithMany()
|
||||
.HasForeignKey("FlowerId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Blahblah.FlowerStory.Server.Data.Model.UserItem", "Owner")
|
||||
.WithMany()
|
||||
.HasForeignKey("OwnerId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Flower");
|
||||
|
||||
b.Navigation("Owner");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Blahblah.FlowerStory.Server.Data.Model.FlowerItem", b =>
|
||||
{
|
||||
b.Navigation("Photos");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Blahblah.FlowerStory.Server.Data.Model.RecordItem", b =>
|
||||
{
|
||||
b.Navigation("Photos");
|
||||
});
|
||||
#pragma warning restore 612, 618
|
||||
}
|
||||
}
|
||||
}
|
28
Server/Migrations/20230804035653_Add-Hidden-For-Record.cs
Normal file
28
Server/Migrations/20230804035653_Add-Hidden-For-Record.cs
Normal file
@ -0,0 +1,28 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace Blahblah.FlowerStory.Server.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class AddHiddenForRecord : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<bool>(
|
||||
name: "hidden",
|
||||
table: "records",
|
||||
type: "INTEGER",
|
||||
nullable: true);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropColumn(
|
||||
name: "hidden",
|
||||
table: "records");
|
||||
}
|
||||
}
|
||||
}
|
361
Server/Migrations/20230804133228_Add-Title-For-Record.Designer.cs
generated
Normal file
361
Server/Migrations/20230804133228_Add-Title-For-Record.Designer.cs
generated
Normal file
@ -0,0 +1,361 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using Blahblah.FlowerStory.Server.Data;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace Blahblah.FlowerStory.Server.Migrations
|
||||
{
|
||||
[DbContext(typeof(FlowerDatabase))]
|
||||
[Migration("20230804133228_Add-Title-For-Record")]
|
||||
partial class AddTitleForRecord
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
{
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder.HasAnnotation("ProductVersion", "7.0.9");
|
||||
|
||||
modelBuilder.Entity("Blahblah.FlowerStory.Server.Data.Model.FlowerItem", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("fid");
|
||||
|
||||
b.Property<int>("CategoryId")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("categoryid");
|
||||
|
||||
b.Property<decimal?>("Cost")
|
||||
.HasColumnType("real")
|
||||
.HasColumnName("cost");
|
||||
|
||||
b.Property<long>("DateBuyUnixTime")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("datebuy")
|
||||
.HasAnnotation("Relational:JsonPropertyName", "dateBuy");
|
||||
|
||||
b.Property<double?>("Latitude")
|
||||
.HasColumnType("REAL")
|
||||
.HasColumnName("latitude");
|
||||
|
||||
b.Property<double?>("Longitude")
|
||||
.HasColumnType("REAL")
|
||||
.HasColumnName("longitude");
|
||||
|
||||
b.Property<string>("Memo")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("memo");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("name");
|
||||
|
||||
b.Property<int>("OwnerId")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("uid");
|
||||
|
||||
b.Property<string>("Purchase")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("purchase");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("OwnerId");
|
||||
|
||||
b.ToTable("flowers");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Blahblah.FlowerStory.Server.Data.Model.PhotoItem", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("pid");
|
||||
|
||||
b.Property<long>("DateUploadUnixTime")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("dateupload")
|
||||
.HasAnnotation("Relational:JsonPropertyName", "dateUpload");
|
||||
|
||||
b.Property<string>("FileName")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("filename");
|
||||
|
||||
b.Property<string>("FileType")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("filetype");
|
||||
|
||||
b.Property<int?>("FlowerId")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("fid");
|
||||
|
||||
b.Property<int?>("Height")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("height");
|
||||
|
||||
b.Property<int>("OwnerId")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("uid");
|
||||
|
||||
b.Property<string>("Path")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("path");
|
||||
|
||||
b.Property<int?>("RecordId")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("rid");
|
||||
|
||||
b.Property<int?>("Width")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("width");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("FlowerId");
|
||||
|
||||
b.HasIndex("OwnerId");
|
||||
|
||||
b.HasIndex("RecordId");
|
||||
|
||||
b.ToTable("photos");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Blahblah.FlowerStory.Server.Data.Model.RecordItem", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("rid");
|
||||
|
||||
b.Property<int?>("ByUserId")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("byuid");
|
||||
|
||||
b.Property<string>("ByUserName")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("byname");
|
||||
|
||||
b.Property<long>("DateUnixTime")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("date")
|
||||
.HasAnnotation("Relational:JsonPropertyName", "date");
|
||||
|
||||
b.Property<int>("EventId")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("eid");
|
||||
|
||||
b.Property<int>("FlowerId")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("fid");
|
||||
|
||||
b.Property<bool?>("IsHidden")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("hidden");
|
||||
|
||||
b.Property<double?>("Latitude")
|
||||
.HasColumnType("REAL")
|
||||
.HasColumnName("latitude");
|
||||
|
||||
b.Property<double?>("Longitude")
|
||||
.HasColumnType("REAL")
|
||||
.HasColumnName("longitude");
|
||||
|
||||
b.Property<string>("Memo")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("memo");
|
||||
|
||||
b.Property<int>("OwnerId")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("uid");
|
||||
|
||||
b.Property<string>("Title")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("title");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("FlowerId");
|
||||
|
||||
b.HasIndex("OwnerId");
|
||||
|
||||
b.ToTable("records");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Blahblah.FlowerStory.Server.Data.Model.TokenItem", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("tid");
|
||||
|
||||
b.Property<long>("ActiveDateUnixTime")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("activedate")
|
||||
.HasAnnotation("Relational:JsonPropertyName", "activeDate");
|
||||
|
||||
b.Property<string>("ClientAgent")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("clientagent");
|
||||
|
||||
b.Property<string>("ClientApp")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("clientapp");
|
||||
|
||||
b.Property<string>("DeviceId")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("deviceid");
|
||||
|
||||
b.Property<long>("ExpireDateUnixTime")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("expiredate")
|
||||
.HasAnnotation("Relational:JsonPropertyName", "expireDate");
|
||||
|
||||
b.Property<int>("ExpireSeconds")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("expiresecs");
|
||||
|
||||
b.Property<long>("LogonDateUnixTime")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("logondate")
|
||||
.HasAnnotation("Relational:JsonPropertyName", "logonDate");
|
||||
|
||||
b.Property<int>("UserId")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("uid");
|
||||
|
||||
b.Property<string>("VerifyCode")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("verifycode");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("tokens");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Blahblah.FlowerStory.Server.Data.Model.UserItem", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("uid");
|
||||
|
||||
b.Property<long?>("ActiveDateUnixTime")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("activedate");
|
||||
|
||||
b.Property<byte[]>("Avatar")
|
||||
.HasColumnType("BLOB")
|
||||
.HasColumnName("avatar");
|
||||
|
||||
b.Property<string>("Email")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("email");
|
||||
|
||||
b.Property<int>("Level")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("level");
|
||||
|
||||
b.Property<string>("Mobile")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("mobile");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("name");
|
||||
|
||||
b.Property<string>("Password")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("password");
|
||||
|
||||
b.Property<long>("RegisterDateUnixTime")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("regdate")
|
||||
.HasAnnotation("Relational:JsonPropertyName", "registerDate");
|
||||
|
||||
b.Property<string>("UserId")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("id");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("users");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Blahblah.FlowerStory.Server.Data.Model.FlowerItem", b =>
|
||||
{
|
||||
b.HasOne("Blahblah.FlowerStory.Server.Data.Model.UserItem", "Owner")
|
||||
.WithMany()
|
||||
.HasForeignKey("OwnerId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Owner");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Blahblah.FlowerStory.Server.Data.Model.PhotoItem", b =>
|
||||
{
|
||||
b.HasOne("Blahblah.FlowerStory.Server.Data.Model.FlowerItem", "Flower")
|
||||
.WithMany("Photos")
|
||||
.HasForeignKey("FlowerId");
|
||||
|
||||
b.HasOne("Blahblah.FlowerStory.Server.Data.Model.UserItem", "Owner")
|
||||
.WithMany()
|
||||
.HasForeignKey("OwnerId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Blahblah.FlowerStory.Server.Data.Model.RecordItem", "Record")
|
||||
.WithMany("Photos")
|
||||
.HasForeignKey("RecordId");
|
||||
|
||||
b.Navigation("Flower");
|
||||
|
||||
b.Navigation("Owner");
|
||||
|
||||
b.Navigation("Record");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Blahblah.FlowerStory.Server.Data.Model.RecordItem", b =>
|
||||
{
|
||||
b.HasOne("Blahblah.FlowerStory.Server.Data.Model.FlowerItem", "Flower")
|
||||
.WithMany()
|
||||
.HasForeignKey("FlowerId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Blahblah.FlowerStory.Server.Data.Model.UserItem", "Owner")
|
||||
.WithMany()
|
||||
.HasForeignKey("OwnerId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Flower");
|
||||
|
||||
b.Navigation("Owner");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Blahblah.FlowerStory.Server.Data.Model.FlowerItem", b =>
|
||||
{
|
||||
b.Navigation("Photos");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Blahblah.FlowerStory.Server.Data.Model.RecordItem", b =>
|
||||
{
|
||||
b.Navigation("Photos");
|
||||
});
|
||||
#pragma warning restore 612, 618
|
||||
}
|
||||
}
|
||||
}
|
28
Server/Migrations/20230804133228_Add-Title-For-Record.cs
Normal file
28
Server/Migrations/20230804133228_Add-Title-For-Record.cs
Normal file
@ -0,0 +1,28 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace Blahblah.FlowerStory.Server.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class AddTitleForRecord : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<string>(
|
||||
name: "title",
|
||||
table: "records",
|
||||
type: "TEXT",
|
||||
nullable: true);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropColumn(
|
||||
name: "title",
|
||||
table: "records");
|
||||
}
|
||||
}
|
||||
}
|
@ -155,6 +155,10 @@ namespace Blahblah.FlowerStory.Server.Migrations
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("fid");
|
||||
|
||||
b.Property<bool?>("IsHidden")
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("hidden");
|
||||
|
||||
b.Property<double?>("Latitude")
|
||||
.HasColumnType("REAL")
|
||||
.HasColumnName("latitude");
|
||||
@ -171,6 +175,10 @@ namespace Blahblah.FlowerStory.Server.Migrations
|
||||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("uid");
|
||||
|
||||
b.Property<string>("Title")
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("title");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("FlowerId");
|
||||
|
@ -11,7 +11,7 @@ public class Program
|
||||
/// <inheritdoc/>
|
||||
public const string ProjectName = "Flower Story";
|
||||
/// <inheritdoc/>
|
||||
public const string Version = "0.8.803";
|
||||
public const string Version = "1.0.807";
|
||||
|
||||
/// <inheritdoc/>
|
||||
public static void Main(string[] args)
|
||||
|
@ -13,7 +13,7 @@
|
||||
"commandName": "Project",
|
||||
"dotnetRunMessages": true,
|
||||
"launchBrowser": true,
|
||||
"launchUrl": "#tag/UserApi",
|
||||
"launchUrl": "swagger",
|
||||
"applicationUrl": "http://localhost:5247",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
|
Loading…
x
Reference in New Issue
Block a user