using System.Text.Json.Serialization;
namespace NeonSprawl.Server.Game.Quests;
/// POST body for POST /game/players/{{id}}/__dev/quest-fixture (NEO-137 Bruno/manual QA).
public sealed class QuestFixtureRequest
{
public const int CurrentSchemaVersion = 1;
[JsonPropertyName("schemaVersion")]
public int SchemaVersion { get; init; }
/// Quest ids to mark completed via store activate+complete (no reward delivery).
[JsonPropertyName("completedQuestIds")]
public IReadOnlyList CompletedQuestIds { get; init; } = [];
/// Quest ids to clear from player progress (dev Bruno reset).
[JsonPropertyName("resetQuestIds")]
public IReadOnlyList ResetQuestIds { get; init; } = [];
/// Faction ids to clear from player standing (dev Bruno reset; missing row reads as 0).
[JsonPropertyName("resetFactionIds")]
public IReadOnlyList ResetFactionIds { get; init; } = [];
/// Contract instance ids to clear from instance, delivery, and outcome stores (dev Bruno reset).
[JsonPropertyName("resetContractInstanceIds")]
public IReadOnlyList ResetContractInstanceIds { get; init; } = [];
}
/// POST response for quest fixture apply.
public sealed class QuestFixtureResponse
{
public bool Applied { get; init; }
}