namespace Backend.Contracts;

public sealed record SponsorDto(
    int Id,
    int SeasonId,
    string Name,
    string WebsiteUrl,
    string LogoUrl,
    string Description,
    string Tier,
    int SortOrder,
    bool IsVisible);

public sealed record PublicSponsorsResponse(int Year, SponsorDto[] Items);

public sealed record UpsertSponsorRequest(
    string Name,
    string WebsiteUrl,
    string LogoUrl,
    string Description,
    string Tier,
    int SortOrder,
    bool IsVisible);

public sealed record ShowactApplicationDto(
    int Id,
    int SeasonId,
    string ArtistName,
    string ContactEmail,
    string ContactDiscord,
    string PlatformUrl,
    string PerformanceType,
    string Description,
    string TechnicalNotes,
    string ReferenceUrl,
    string Status,
    string? ReviewNote,
    DateTimeOffset CreatedAt,
    DateTimeOffset? ReviewedAt,
    string FieldResponsesJson);

public sealed record CreateShowactApplicationRequest(
    string? ArtistName = null,
    string? ContactEmail = null,
    string? ContactDiscord = null,
    string? PlatformUrl = null,
    string? PerformanceType = null,
    string? Description = null,
    string? TechnicalNotes = null,
    string? ReferenceUrl = null,
    string? FieldResponsesJson = null);

public sealed record UpdateShowactStatusRequest(string Status, string? ReviewNote);
