feat(web): add public master profiles
PR Checks / test-and-build (pull_request) Successful in 12m32s

Add sanitized public GM profiles with publication controls, public /gm/{slug} pages, and links from public game surfaces.

Bump version -> 3.5.0
This commit is contained in:
2026-05-29 00:08:14 +03:00
parent d81564c308
commit 0c1d3abd7e
21 changed files with 980 additions and 39 deletions
@@ -38,6 +38,15 @@ else if (club is not null)
<span>Ссылка клуба</span>
<a href="@PublicClubUrl" target="_blank" rel="noopener noreferrer">@PublicClubUrl</a>
</div>
@if (!string.IsNullOrWhiteSpace(club.MasterProfileSlug))
{
<div class="public-share-row">
<span>Мастер</span>
<a href="@MasterProfilePath(club.MasterProfileSlug)" target="_blank" rel="noopener noreferrer">
@(club.MasterDisplayName ?? "Профиль мастера")
</a>
</div>
}
</section>
@if (club.Sessions.Count == 0)
@@ -92,6 +101,8 @@ else if (club is not null)
private string PublicSessionPath(Guid sessionId) => $"/s/{sessionId}";
private static string MasterProfilePath(string slug) => $"/gm/{slug}";
private static string FormatSeats(WebPublicSession session)
{
var seats = session.MaxPlayers.HasValue