using System.Text.Json.Serialization;

namespace MemberCenter.Api.Contracts;

public sealed record IssueFileDownloadTokenRequest(
    [property: JsonPropertyName("tenant_id")] Guid TenantId,
    [property: JsonPropertyName("user_id")] Guid UserId,
    [property: JsonPropertyName("file_id")] string? FileId,
    [property: JsonPropertyName("object_key")] string? ObjectKey,
    [property: JsonPropertyName("method")] string? Method,
    [property: JsonPropertyName("expires_in_seconds")] int? ExpiresInSeconds);

public sealed record ValidateFileDownloadTokenRequest(
    [property: JsonPropertyName("token")] string Token,
    [property: JsonPropertyName("tenant_id")] Guid TenantId,
    [property: JsonPropertyName("file_id")] string? FileId,
    [property: JsonPropertyName("object_key")] string? ObjectKey,
    [property: JsonPropertyName("method")] string? Method);
