using System.Text.Json.Serialization; using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Enums; namespace SPTarkov.Server.Core.Models.Spt.Mod; /// /// New quest detail object for use with the CustomQuestService. /// public record NewQuestDetails { /// /// Quest to be added to the database /// [JsonPropertyName("newQuest")] public required Quest NewQuest { get; init; } /// /// Locales for this quest. The primary key is the language to add to locale entries to
/// The secondary key is the locale key, the value is the locale text itself. ///
[JsonPropertyName("locales")] public required Dictionary> Locales { get; init; } /// /// Only Usec and Bear are valid entries here, /// if used it will lock that quest to only being available to that specific side.

/// /// If not used, this should be left null to keep the quest open to both Usec and Bears. ///
[JsonPropertyName("lockedToSide")] public PlayerSide? LockedToSide { get; init; } } /// /// Result from either creating a new quest or cloning one. /// public record CreateQuestResult(bool Success, MongoId? QuestId) { [JsonPropertyName("success")] public bool Success { get; set; } = Success; [JsonPropertyName("questId")] public MongoId? QuestId { get; set; } = QuestId; [JsonPropertyName("errors")] public List Errors { get; } = []; }