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; } = [];
}