2022-06-06 21:51:25 +00:00
|
|
|
|
using FluentMigrator;
|
|
|
|
|
using VoidCat.Model;
|
|
|
|
|
|
|
|
|
|
namespace VoidCat.Services.Migrations.Database;
|
|
|
|
|
|
|
|
|
|
[Migration(20220604_2232)]
|
2022-06-08 16:18:22 +00:00
|
|
|
|
public class Init : Migration
|
|
|
|
|
{
|
2022-06-06 21:51:25 +00:00
|
|
|
|
public override void Up()
|
|
|
|
|
{
|
|
|
|
|
Create.Table("Users")
|
|
|
|
|
.WithColumn("Id").AsGuid().PrimaryKey()
|
|
|
|
|
.WithColumn("Email").AsString().NotNullable().Indexed()
|
|
|
|
|
.WithColumn("Password").AsString()
|
|
|
|
|
.WithColumn("Created").AsDateTime().WithDefault(SystemMethods.CurrentDateTime)
|
|
|
|
|
.WithColumn("LastLogin").AsDateTime().Nullable()
|
|
|
|
|
.WithColumn("Avatar").AsString().Nullable()
|
|
|
|
|
.WithColumn("DisplayName").AsString().WithDefaultValue("void user")
|
2022-06-08 16:18:22 +00:00
|
|
|
|
.WithColumn("Flags").AsInt32().WithDefaultValue((int) VoidUserFlags.PublicProfile);
|
2022-06-06 21:51:25 +00:00
|
|
|
|
|
|
|
|
|
Create.Table("Files")
|
|
|
|
|
.WithColumn("Id").AsGuid().PrimaryKey()
|
|
|
|
|
.WithColumn("Name").AsString()
|
|
|
|
|
.WithColumn("Size").AsInt64()
|
|
|
|
|
.WithColumn("Uploaded").AsDateTime().Indexed().WithDefault(SystemMethods.CurrentDateTime)
|
|
|
|
|
.WithColumn("Description").AsString().Nullable()
|
|
|
|
|
.WithColumn("MimeType").AsString().WithDefaultValue("application/octet-stream")
|
|
|
|
|
.WithColumn("Digest").AsString()
|
|
|
|
|
.WithColumn("EditSecret").AsGuid();
|
|
|
|
|
|
|
|
|
|
Create.Table("UserFiles")
|
|
|
|
|
.WithColumn("File").AsGuid().ForeignKey("Files", "Id")
|
|
|
|
|
.WithColumn("User").AsGuid().ForeignKey("Users", "Id").Indexed();
|
|
|
|
|
|
|
|
|
|
Create.UniqueConstraint()
|
|
|
|
|
.OnTable("UserFiles")
|
|
|
|
|
.Columns("File", "User");
|
|
|
|
|
|
|
|
|
|
Create.Table("Paywall")
|
|
|
|
|
.WithColumn("File").AsGuid().ForeignKey("Files", "Id").Unique()
|
|
|
|
|
.WithColumn("Type").AsInt16()
|
|
|
|
|
.WithColumn("Currency").AsInt16()
|
|
|
|
|
.WithColumn("Amount").AsDecimal();
|
|
|
|
|
|
|
|
|
|
Create.Table("PaywallStrike")
|
|
|
|
|
.WithColumn("File").AsGuid().ForeignKey("Files", "Id").Unique()
|
|
|
|
|
.WithColumn("Handle").AsString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void Down()
|
|
|
|
|
{
|
|
|
|
|
Delete.Table("Users");
|
|
|
|
|
Delete.Table("Files");
|
|
|
|
|
Delete.Table("UsersFiles");
|
|
|
|
|
Delete.Table("Paywall");
|
|
|
|
|
Delete.Table("PaywallStrike");
|
|
|
|
|
}
|
|
|
|
|
}
|