using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace DorkNet.Server.Migrations
{
///
public partial class Initial : Migration
{
///
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "AdminActions",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
AdminPlayerId = table.Column(type: "INTEGER", nullable: false),
Action = table.Column(type: "TEXT", maxLength: 64, nullable: false),
TargetType = table.Column(type: "TEXT", maxLength: 32, nullable: false),
TargetId = table.Column(type: "INTEGER", nullable: false),
Reason = table.Column(type: "TEXT", maxLength: 512, nullable: false),
Timestamp = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_AdminActions", x => x.Id);
});
migrationBuilder.CreateTable(
name: "BugReports",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
ReporterPlayerId = table.Column(type: "INTEGER", nullable: false),
Title = table.Column(type: "TEXT", maxLength: 128, nullable: false),
Body = table.Column(type: "TEXT", maxLength: 4000, nullable: false),
GameSessionId = table.Column(type: "INTEGER", nullable: false),
ClientVersion = table.Column(type: "TEXT", maxLength: 64, nullable: false),
Platform = table.Column(type: "TEXT", maxLength: 32, nullable: false),
Category = table.Column(type: "TEXT", maxLength: 32, nullable: false),
CreatedAt = table.Column(type: "TEXT", nullable: false),
ReadAt = table.Column(type: "TEXT", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_BugReports", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Cards",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
PlayerId = table.Column(type: "INTEGER", nullable: true),
Title = table.Column(type: "TEXT", maxLength: 128, nullable: false),
Body = table.Column(type: "TEXT", maxLength: 2000, nullable: false),
ImageName = table.Column(type: "TEXT", maxLength: 256, nullable: false),
ActionUrl = table.Column(type: "TEXT", maxLength: 512, nullable: false),
Category = table.Column(type: "TEXT", maxLength: 32, nullable: false),
Priority = table.Column(type: "INTEGER", nullable: false),
CreatedAt = table.Column(type: "TEXT", nullable: false),
ExpiresAt = table.Column(type: "TEXT", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Cards", x => x.Id);
});
migrationBuilder.CreateTable(
name: "ChatMessages",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
ThreadKey = table.Column(type: "TEXT", maxLength: 64, nullable: false),
SenderPlayerId = table.Column(type: "INTEGER", nullable: false),
Body = table.Column(type: "TEXT", maxLength: 2000, nullable: false),
SentAt = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ChatMessages", x => x.Id);
});
migrationBuilder.CreateTable(
name: "ChatThreadMembers",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
ThreadKey = table.Column(type: "TEXT", nullable: false),
PlayerId = table.Column(type: "INTEGER", nullable: false),
JoinedAt = table.Column(type: "TEXT", nullable: false),
SnoozeUntil = table.Column(type: "TEXT", nullable: true),
LastReadMessageId = table.Column(type: "INTEGER", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_ChatThreadMembers", x => x.Id);
});
migrationBuilder.CreateTable(
name: "ChatThreads",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
ThreadKey = table.Column(type: "TEXT", maxLength: 96, nullable: false),
Name = table.Column(type: "TEXT", maxLength: 128, nullable: false),
CreatorPlayerId = table.Column(type: "INTEGER", nullable: false),
CreatedAt = table.Column(type: "TEXT", nullable: false),
UpdatedAt = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ChatThreads", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Cheers",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
FromPlayerId = table.Column(type: "INTEGER", nullable: false),
TargetPlayerId = table.Column(type: "INTEGER", nullable: false),
TargetRoomId = table.Column(type: "INTEGER", nullable: false),
TargetPhotoId = table.Column(type: "INTEGER", nullable: false),
TargetInventionId = table.Column(type: "INTEGER", nullable: false),
Type = table.Column(type: "INTEGER", nullable: false),
CheeredAt = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Cheers", x => x.Id);
});
migrationBuilder.CreateTable(
name: "ClubAnnouncementReads",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
AnnouncementId = table.Column(type: "INTEGER", nullable: false),
PlayerId = table.Column(type: "INTEGER", nullable: false),
ReadAt = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ClubAnnouncementReads", x => x.Id);
});
migrationBuilder.CreateTable(
name: "ClubAnnouncements",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
ClubId = table.Column(type: "INTEGER", nullable: false),
AuthorPlayerId = table.Column(type: "INTEGER", nullable: false),
Title = table.Column(type: "TEXT", maxLength: 200, nullable: false),
Body = table.Column(type: "TEXT", maxLength: 4000, nullable: false),
ImageName = table.Column(type: "TEXT", maxLength: 256, nullable: false),
CreatedAt = table.Column(type: "TEXT", nullable: false),
UpdatedAt = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ClubAnnouncements", x => x.Id);
});
migrationBuilder.CreateTable(
name: "ClubCategoryAssignments",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
ClubId = table.Column(type: "INTEGER", nullable: false),
CategoryTagId = table.Column(type: "INTEGER", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ClubCategoryAssignments", x => x.Id);
});
migrationBuilder.CreateTable(
name: "ClubCategoryTags",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Name = table.Column(type: "TEXT", maxLength: 64, nullable: false),
OrderIndex = table.Column(type: "INTEGER", nullable: false),
Active = table.Column(type: "INTEGER", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ClubCategoryTags", x => x.Id);
});
migrationBuilder.CreateTable(
name: "ClubMemberships",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
ClubId = table.Column(type: "INTEGER", nullable: false),
PlayerId = table.Column(type: "INTEGER", nullable: false),
Permissions = table.Column(type: "INTEGER", nullable: false),
JoinedAt = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ClubMemberships", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Clubs",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Name = table.Column(type: "TEXT", maxLength: 128, nullable: false, collation: "NOCASE"),
Description = table.Column(type: "TEXT", maxLength: 2000, nullable: false),
CreatorPlayerId = table.Column(type: "INTEGER", nullable: false),
ImageName = table.Column(type: "TEXT", maxLength: 256, nullable: false),
BanStatus = table.Column(type: "INTEGER", nullable: false),
State = table.Column(type: "INTEGER", nullable: false),
Category = table.Column(type: "TEXT", maxLength: 64, nullable: false),
Visibility = table.Column(type: "INTEGER", nullable: false),
Joinability = table.Column(type: "INTEGER", nullable: false),
AllowJuniors = table.Column(type: "INTEGER", nullable: false),
IsRRO = table.Column(type: "INTEGER", nullable: false),
ClubhouseRoomId = table.Column(type: "INTEGER", nullable: true),
ClubType = table.Column(type: "INTEGER", nullable: false),
CreatedAt = table.Column(type: "TEXT", nullable: false),
UpdatedAt = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Clubs", x => x.Id);
});
migrationBuilder.CreateTable(
name: "ClubSubscriptions",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
ClubId = table.Column(type: "INTEGER", nullable: false),
PlayerId = table.Column(type: "INTEGER", nullable: false),
SubscribedAt = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ClubSubscriptions", x => x.Id);
});
migrationBuilder.CreateTable(
name: "CohortAssignments",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
PlayerId = table.Column(type: "INTEGER", nullable: false),
CohortKey = table.Column(type: "TEXT", maxLength: 64, nullable: false),
Variant = table.Column(type: "TEXT", maxLength: 32, nullable: false),
AssignedAt = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_CohortAssignments", x => x.Id);
});
migrationBuilder.CreateTable(
name: "CommunityBoardRows",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false),
Json = table.Column(type: "TEXT", nullable: false),
UpdatedAt = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_CommunityBoardRows", x => x.Id);
});
migrationBuilder.CreateTable(
name: "CouponRedemptions",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
CouponId = table.Column(type: "INTEGER", nullable: false),
PlayerId = table.Column(type: "INTEGER", nullable: false),
RedeemedAt = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_CouponRedemptions", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Coupons",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Code = table.Column(type: "TEXT", maxLength: 64, nullable: false),
Description = table.Column(type: "TEXT", maxLength: 256, nullable: false),
RewardType = table.Column(type: "INTEGER", nullable: false),
RewardCurrencyType = table.Column(type: "INTEGER", nullable: false),
RewardAmount = table.Column(type: "INTEGER", nullable: false),
RewardItemSlug = table.Column(type: "TEXT", maxLength: 64, nullable: false),
IsActive = table.Column(type: "INTEGER", nullable: false),
MaxRedemptions = table.Column(type: "INTEGER", nullable: false),
RedemptionCount = table.Column(type: "INTEGER", nullable: false),
ExpiresAt = table.Column(type: "TEXT", nullable: true),
CreatedAt = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Coupons", x => x.Id);
});
migrationBuilder.CreateTable(
name: "CurrencyBalances",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
PlayerId = table.Column(type: "INTEGER", nullable: false),
CurrencyType = table.Column(type: "INTEGER", nullable: false),
Balance = table.Column(type: "INTEGER", nullable: false),
UpdatedAt = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_CurrencyBalances", x => x.Id);
});
migrationBuilder.CreateTable(
name: "DormStates",
columns: table => new
{
PlayerId = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
CurrentDataBlobName = table.Column(type: "TEXT", maxLength: 128, nullable: false),
CreatedAt = table.Column(type: "TEXT", nullable: false),
UpdatedAt = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_DormStates", x => x.PlayerId);
});
migrationBuilder.CreateTable(
name: "GameRewardSelections",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
PlayerId = table.Column(type: "INTEGER", nullable: false),
RewardType = table.Column(type: "INTEGER", nullable: false),
GiftContext = table.Column(type: "INTEGER", nullable: false),
Message = table.Column(type: "TEXT", maxLength: 256, nullable: false),
CreatedAt = table.Column(type: "TEXT", nullable: false),
SelectedAt = table.Column(type: "TEXT", nullable: true),
SelectedGiftDropId = table.Column(type: "INTEGER", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_GameRewardSelections", x => x.Id);
});
migrationBuilder.CreateTable(
name: "GameSessions",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
RoomId = table.Column(type: "TEXT", maxLength: 64, nullable: false),
ActivityLevelId = table.Column(type: "TEXT", maxLength: 64, nullable: false),
Region = table.Column(type: "TEXT", maxLength: 16, nullable: false),
PhotonRoomName = table.Column(type: "TEXT", maxLength: 128, nullable: false),
MaxCapacity = table.Column(type: "INTEGER", nullable: false),
PlayerCount = table.Column(type: "INTEGER", nullable: false),
CreatedAt = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_GameSessions", x => x.Id);
});
migrationBuilder.CreateTable(
name: "GiftPackages",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
RecipientPlayerId = table.Column(type: "INTEGER", nullable: false),
FromPlayerId = table.Column(type: "INTEGER", nullable: true),
ConsumableItemDesc = table.Column(type: "TEXT", maxLength: 128, nullable: false),
AvatarItemType = table.Column(type: "INTEGER", nullable: true),
AvatarItemDescOrHairDyeDesc = table.Column(type: "TEXT", maxLength: 128, nullable: false),
EquipmentPrefabName = table.Column(type: "TEXT", maxLength: 128, nullable: false),
EquipmentModificationGuid = table.Column(type: "TEXT", maxLength: 64, nullable: false),
CurrencyType = table.Column(type: "INTEGER", nullable: false),
Currency = table.Column(type: "INTEGER", nullable: false),
Xp = table.Column(type: "INTEGER", nullable: false),
Level = table.Column(type: "INTEGER", nullable: false),
GiftContext = table.Column(type: "INTEGER", nullable: false),
GiftRarity = table.Column(type: "INTEGER", nullable: false),
Message = table.Column(type: "TEXT", maxLength: 512, nullable: false),
Platform = table.Column(type: "INTEGER", nullable: false),
PackageMaterial = table.Column(type: "TEXT", maxLength: 128, nullable: false),
PackageVariant = table.Column(type: "TEXT", maxLength: 128, nullable: false),
Consumed = table.Column(type: "INTEGER", nullable: false),
IsValid = table.Column(type: "INTEGER", nullable: false),
ErrorMessage = table.Column(type: "TEXT", maxLength: 512, nullable: false),
SupportsCurrentPlatform = table.Column(type: "INTEGER", nullable: false),
IsGifted = table.Column(type: "INTEGER", nullable: false),
ConsumedAt = table.Column(type: "TEXT", nullable: true),
CreatedAt = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_GiftPackages", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Inventions",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
CreatorPlayerId = table.Column(type: "INTEGER", nullable: false),
ReplicationId = table.Column(type: "TEXT", maxLength: 64, nullable: false),
Name = table.Column(type: "TEXT", maxLength: 128, nullable: false),
Description = table.Column(type: "TEXT", maxLength: 2000, nullable: false),
ImageName = table.Column(type: "TEXT", maxLength: 256, nullable: false),
Permission = table.Column(type: "INTEGER", nullable: false),
CreatorPermission = table.Column(type: "INTEGER", nullable: false),
GeneralPermission = table.Column(type: "INTEGER", nullable: false),
IsPublished = table.Column(type: "INTEGER", nullable: false),
CurrentVersionNumber = table.Column(type: "INTEGER", nullable: false),
FirstPublishedAt = table.Column(type: "TEXT", nullable: true),
CreationRoomId = table.Column(type: "INTEGER", nullable: true),
NumPlayersHaveUsedInRoom = table.Column(type: "INTEGER", nullable: false),
IsAgInvention = table.Column(type: "INTEGER", nullable: false),
CurrentBlobName = table.Column(type: "TEXT", maxLength: 128, nullable: false),
TagsCsv = table.Column(type: "TEXT", maxLength: 1024, nullable: false),
CheerCount = table.Column(type: "INTEGER", nullable: false),
SpawnCount = table.Column(type: "INTEGER", nullable: false),
IsDeleted = table.Column(type: "INTEGER", nullable: false),
CreatedAt = table.Column(type: "TEXT", nullable: false),
UpdatedAt = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Inventions", x => x.Id);
});
migrationBuilder.CreateTable(
name: "InventionVersions",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
InventionId = table.Column(type: "INTEGER", nullable: false),
ReplicationId = table.Column(type: "TEXT", maxLength: 64, nullable: false),
VersionNumber = table.Column(type: "INTEGER", nullable: false),
BlobName = table.Column(type: "TEXT", maxLength: 128, nullable: false),
InstantiationCost = table.Column(type: "INTEGER", nullable: false),
LightsCost = table.Column(type: "INTEGER", nullable: false),
CreatedAt = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_InventionVersions", x => x.Id);
});
migrationBuilder.CreateTable(
name: "IpBans",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Cidr = table.Column(type: "TEXT", maxLength: 64, nullable: false),
Reason = table.Column(type: "TEXT", maxLength: 512, nullable: false),
BannedByAdminId = table.Column(type: "INTEGER", nullable: false),
BannedAt = table.Column(type: "TEXT", nullable: false),
Until = table.Column(type: "TEXT", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_IpBans", x => x.Id);
});
migrationBuilder.CreateTable(
name: "LeaderboardChannelMeta",
columns: table => new
{
Channel = table.Column(type: "INTEGER", nullable: false),
RoomId = table.Column(type: "INTEGER", nullable: false),
Name = table.Column(type: "TEXT", nullable: false),
LowerIsBetter = table.Column(type: "INTEGER", nullable: false),
ValueFormat = table.Column(type: "TEXT", nullable: false),
CreatedAt = table.Column(type: "TEXT", nullable: false),
UpdatedAt = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_LeaderboardChannelMeta", x => new { x.RoomId, x.Channel });
});
migrationBuilder.CreateTable(
name: "LeaderboardStats",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
PlayerId = table.Column(type: "INTEGER", nullable: false),
RoomId = table.Column(type: "INTEGER", nullable: false),
StatChannel = table.Column(type: "INTEGER", nullable: false),
Value = table.Column(type: "INTEGER", nullable: false),
UpdatedAt = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_LeaderboardStats", x => x.Id);
});
migrationBuilder.CreateTable(
name: "LoadingScreenTips",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Title = table.Column(type: "TEXT", maxLength: 128, nullable: false),
Message = table.Column(type: "TEXT", maxLength: 512, nullable: false),
ImageName = table.Column(type: "TEXT", maxLength: 128, nullable: false),
Context = table.Column(type: "INTEGER", nullable: false),
PlatformMask = table.Column(type: "INTEGER", nullable: false),
RoomNamesCsv = table.Column(type: "TEXT", maxLength: 512, nullable: false),
SortOrder = table.Column(type: "INTEGER", nullable: false),
IsActive = table.Column(type: "INTEGER", nullable: false),
CreatedAt = table.Column(type: "TEXT", nullable: false),
UpdatedAt = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_LoadingScreenTips", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Messages",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
SenderPlayerId = table.Column(type: "INTEGER", nullable: false),
RecipientPlayerId = table.Column(type: "INTEGER", nullable: false),
Body = table.Column(type: "TEXT", maxLength: 2000, nullable: false),
Type = table.Column(type: "INTEGER", nullable: false),
RoomId = table.Column(type: "INTEGER", nullable: true),
SentAt = table.Column(type: "TEXT", nullable: false),
ReadAt = table.Column(type: "TEXT", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Messages", x => x.Id);
});
migrationBuilder.CreateTable(
name: "NotificationPrefs",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
PlayerId = table.Column(type: "INTEGER", nullable: false),
Platform = table.Column(type: "TEXT", maxLength: 32, nullable: false),
AllowAll = table.Column(type: "INTEGER", nullable: false),
AllowFriendRequest = table.Column(type: "INTEGER", nullable: false),
AllowMessage = table.Column(type: "INTEGER", nullable: false),
AllowEventInvite = table.Column(type: "INTEGER", nullable: false),
AllowAnnouncements = table.Column(type: "INTEGER", nullable: false),
UpdatedAt = table.Column(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_NotificationPrefs", x => x.Id);
});
migrationBuilder.CreateTable(
name: "ObjectiveProgress",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
PlayerId = table.Column(type: "INTEGER", nullable: false),
Key = table.Column(type: "TEXT", maxLength: 128, nullable: false),
IsCompleted = table.Column(type: "INTEGER", nullable: false),
ClearedAt = table.Column(type: "TEXT", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_ObjectiveProgress", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Photos",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
UploaderPlayerId = table.Column(type: "INTEGER", nullable: false),
BlobName = table.Column